Mudanças entre as edições de "PRG29002 - Programação I - Eng.Telecom 2019-1"
Linha 496: | Linha 496: | ||
Elaborar uma função que recebe um vetor de inteiros e sua dimensão como parâmetro. Ela deverá retornar a quantidade de números pares do vetor. | Elaborar uma função que recebe um vetor de inteiros e sua dimensão como parâmetro. Ela deverá retornar a quantidade de números pares do vetor. | ||
− | |||
<syntaxhighlight lang=c> | <syntaxhighlight lang=c> | ||
#include <stdio.h> | #include <stdio.h> | ||
Linha 514: | Linha 513: | ||
{{collapse top | solução exercício 2}} | {{collapse top | solução exercício 2}} | ||
− | |||
<syntaxhighlight lang=c> | <syntaxhighlight lang=c> | ||
#include <stdio.h> | #include <stdio.h> | ||
Linha 535: | Linha 533: | ||
} | } | ||
<\code> | <\code> | ||
− | |||
{{collapse bottom}} | {{collapse bottom}} | ||
Edição das 14h27min de 26 de abril de 2019
PROFESSOR
Professor: Tiago Semprebom
Email: tisemp@ifsc.edu.br
diretório web:: tele.sj.ifsc.edu.br/~tisemp
IMPORTANTE: o direito de recuperar uma avaliação em que se faltou somente existe mediante justificativa reconhecida pela coordenação. Assim, deve-se protocolar a justificativa no prazo de 48 horas, contando da data e horário da avaliação, e aguardar o parecer da coordenação. O não cumprimento desse procedimento implica a impossibilidade de fazer a recuperação, e assim a reprovação na disciplina.
ATENDIMENTO PARALELO
SEGUNDA: 14h:30 às 15h35 QUINTA: 11h:00 às 12h:00.
LOCAL: Sala 2 de Professores de Telecomunicações.
MONITORIA
- Aluno(a): Sarom da Silva Torres
- e-mail: sarom.t@aluno.ifsc.edu.br
- Horários:
Segunda-feira: 13:30 - 15:30
Terça-feira: 13:30 - 16:30
Quarta-feira: 13:00 - 16:00
Quinta-feira: 16:00 - 17:30
Sexta-feira: 11:30 - 14:00
- Local de Atendimento: Sala de monitoria (ao lado do banheiro masculino do térreo).
Links Interessantes
- https://www.w3resource.com/c-programming-exercises
- Lógica de Programação, de Paulo Sérgio de Moraes
Introdução a algoritmos - 13/02/2019
Objetivos
- Apresentação do Plano de Ensino;
- Introdução a Fluxograma e pseudocódigo.
Material de Referência
Aula Introdutória sobre Lógica de Programação
Introdução: fluxogramas e pseudocódigo - 15/02/2019
Objetivos
- Introdução a Fluxograma e pseudocódigo.
- Estruturas de Decisão
Material de Referência
Lógica de Programação: Estruturas de Decisão
Fluxograma e pseudocódigo: Estruturas de decisão - 20/02/2019
Objetivos
- Introdução a Fluxograma e pseudocódigo.
- Estruturas de Decisão
Material de Referência
Lógica de Programação: Estruturas de Repetição
Introdução à linguagem C - 22/02/2019
Objetivos
O aluno devera ser capaz de:
- descrever o processo de compilação;
- diferenciar código fonte, objeto e executável;
- compilar, executar pequenos programa em C usando o gcc;
- declarar e usar variáveis locais inteiras e reais;
- usar as funções de entrada e saída: scanf() e printf.
Material de Referência
TAREFA
- Estudar AULA 2 e 3 de Apostila de C - UFMG
Programação C: estruturas de decisão - 27/02/2019
Objetivos
O aluno deverá ser capaz de:
- Utilizar os operadores relacionais e lógicos na programação C
- um pouco mais sobre variáveis: tipo char
- Utilizar o comando de decisão if else
- Utilizar o comando switch
Material e Referência
https://wiki.sj.ifsc.edu.br/index.php/AULA_5_-_Programa%C3%A7%C3%A3o_1_-_Engenharia
Programação C: estruturas de decisão - 01/03/2019
- Continuação da aula anterior.
Objetivos
O aluno deverá ser capaz de:
- Utilizar os operadores relacionais e lógicos na programação C
- um pouco mais sobre variáveis: tipo char
- Utilizar o comando de decisão if else
- Utilizar o comando switch
Material e Referência
https://wiki.sj.ifsc.edu.br/index.php/AULA_5_-_Programa%C3%A7%C3%A3o_1_-_Engenharia
Programação C: estruturas de decisão - 06/03/2019
- Quarta-feira de cinzas - aula a partir das 14h.
- Resolução de exercícios
Programação C: estruturas de repetição - 08/03/2019
Objetivos
- Estruturas de Repetição
Material e Referência
https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia
Programação C: estruturas de repetição (resolução exercícios) - 13/03/2019
Objetivos
- Resolução de exercícios de fixação sobre estruturas de repetição.
Programação C: estruturas de repetição - 15/03/2019
Objetivos
- Estruturas de Repetição: break, loop
- Uso de biblioteca matemática;
- Uso do Nemiver
Material e Referência
https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia
AULA 9 - 20/03/2019: Estruturas de Repetição (Prof. Eraldo)
Objetivos
- Estruturas de Repetição: lista de exercícios de preparação para avaliação proposta no SIGAA
Material e Referência
https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia
Avaliação 1 - 22/03/2019
- Avaliação 1 - Laboratório de Programação.
Resolução Avaliação 1 (vista de prova) - 27/03/2019
- Correção da Avaliação 1
- Enviar os exercícios resolvidos por e-mail: tisemp@ifsc.edu.br
Arranjos unidimensionais - 29/03/2019
- Vetores (arranjos unidimensionais).
Material de Referência
Vetores e Strings - 03/04/2019
Objetivos
- Continuação Vetores e Strings
- Funções
Material de Referência
https://wiki.sj.ifsc.edu.br/index.php/AULA_8_-_Programa%C3%A7%C3%A3o_1_-_Engenharia
Recuperação Avaliação 1 - 05/04/2019
- Recuperação da Avaliação 1 -
Funções - 10/04/19
Objetivos
- Correção da Recuperação (Alternativas)
- Funções e parâmetros
- Variáveis Locais e Globais
Material de Referência
Vetores: continuação (int, float, etc) - 12/04/19
Objetivos
- Vetores de inteiros, floats etc (arranjos unidimensionais)
Material de Referência
Matrizes - 17/04/19
Objetivos
- Definindo matrizes no C
- Operações com matrizes e passagem de parâmetros tipo matriz
- Matrizes com caracteres
Material de Referência
Matrizes (cont) - 24/04/19
Objetivos
- Continuação do conteúdo de matrizes: resolução de exercícios.
- Aula com Prof. Eraldo Silveira e Silva.
Material de Referência
Exercícios de Preparação para Avaliação 2 - 26/04/2019
Exercício 1
Elaborar uma função que recebe como parâmetro um vetor contendo uma string e um vetor com dados não identificados.
- A função deve copiar a string do primeiro vetor para o segundo, invertendo a mesma.
- A função também deve retornar a quantidade de caracteres 'i' na string. Exemplo:
#include <stdio.h>
int copiar_string(char vet1[100], char vet2[100])
{
/* implementar aqui */
}
main()
{
char aux1[100]="ifsc", aux2[100]="instituto",aux3[100];
int len;
len=copiar_string(aux1,aux3);
printf("%s %d\n", aux3,len);
len=copiar_string(aux2,aux3);
printf("%s %d\n", aux3,len);
}
A saída deve ser:
csfi 1 otutitsni 2
solução exercício 1 |
---|
Exercício 2
Elaborar uma função que recebe um vetor de inteiros e sua dimensão como parâmetro. Ela deverá retornar a quantidade de números pares do vetor.
#include <stdio.h>
int conta_par(int vet[], int len)
{
/* implementar aqui */
}
main()
{
int x[10]={1,2,5,9,4,3,2,4,10,23};
printf("Quantidade de pares = %d\n", conta_par(x,10));
}
solução exercício 2 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
#include <stdio.h>
int conta_par (int vet[], int len){
int i, cont=0;
for(i=0; i<len;i++){
if ((vet[i] % 2) == 0)
cont++;
}
return cont;
}
int main()
{
int x[10]={1,2,5,9,4,3,2,4,10,23};
printf("Quantidade de pares = %d\n", conta_par(x,10));
}
<\code>
{{collapse bottom}}
<!--
{{collapse top | solução exercício 2}}
<syntaxhighlight lang=c>
#include <stdio.h>
int conta_par(int vet[], int len)
{
int cont=0,i=0;
while(i<len){
if(vet[i]%2==0){
cont++;
}
i++;
}
return cont;
}
main()
{
int x[10]={1,2,5,9,4,3,2,4,10,23};
printf("Quantidade de pares = %d\n", conta_par(x,10));
}
<\code>
{{collapse bottom}}
-->
===Exercício 3===
Elaborar uma função que recebe uma matriz quadrada 5x5 de "floats" passada como parâmetro. A função deve retornar a média da diagonal. Teste a função chamando-a a partir do programa principal.
{{collapse top | solução exercício 3}}
<!--
<syntaxhighlight lang=c>
#include <stdio.h>
#define TAM 5
float diagonal(float mat[TAM][TAM])
{
int i,j;
float soma, media;
for(i=0;i<TAM;i++){
for(j=0;j<TAM;j++){
if (i == j){
soma = soma + mat[i][j];
}
}
}
media = (soma/TAM);
return media;
}
int main()
{
float mat[TAM][TAM]={ 1.1,1.2,1.3,1.4,1.5,
2.1,2.2,2.3,2.4,2.5,
3.1,3.2,3.3,3.4,3.5,
4.1,4.2,4.3,4.4,4.5,
5.1,5.2,5.3,5.4,5.5};
printf("A média da diagonal principal eh: %.2f \n", diagonal(mat));
}
<\code>
-->
{{collapse bottom}}
<!--
#include <stdio.h>
#include <string.h>
float calcula_media(float matriz[5][5])
{
int i =0, j=0;
float soma=0;
for( i = 0; i < 5; i++ ){
for( j = 0; j < 5; j++ ){
if( i==j ){
soma += matriz[i][j];
}
}
}
return soma/5;
}
int main()
{
float matriz[5][5] = {1,2,3,4,5,
1,2,3,4,5,
1,2,3,4,5,
1,2,3,4,5,
1,2,3,4,5};
int i,j;
float media;
media = calcula_media(matriz);
printf("%f",media);
}
-->
=AULA 19 - =
==Objetivos==
*Estruturas no C;
==Material de Referência==
*[https://wiki.sj.ifsc.edu.br/index.php/AULA_13_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estruturas no C]
=AULA 20 - =
==Objetivos==
*Estruturas no C;
==Material de Referência==
*[https://wiki.sj.ifsc.edu.br/index.php/AULA_13_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estruturas no C]
=AULA 21 - =
==Objetivos==
*Introdução aos ponteiros no C.
==Material de Referência==
*[https://wiki.sj.ifsc.edu.br/index.php/AULA_17_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Introdução a Ponteiros]
=AULA 22 - =
==Objetivos==
*Vetor de Ponteiros, Ponteiros para estruturas e Vetor de Ponteiros. Passagem de Parâmetro na linha de comando.
==Material de Referência==
*[https://wiki.sj.ifsc.edu.br/index.php/AULA_19_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Vetor de Ponteiros, Ponteiros para Estruturas]
=AULA 23 - =
*correção da avaliação II
*revisão e exercícios para recuperação.
==Correção da Avaliação - Dia==
===Questão 1===
Implementar uma função C que recebe dois vetores de char como parâmetro. No primeiro vetor se encontra uma string qualquer. A função deve copiar esta string para o segundo vetor MAS deve eliminar todos os espaços em branco. A função deve retornar a quantidade de espaços em branco eliminados. Segue o esqueleto e uma saída para a situação colocada no main.
<syntaxhighlight lang=c>
#include <stdio.h>
int eliminar_espaco(char x[], char y[])
{
}
main()
{
}
Solução:
Questão 2Implementar uma função que recebe um vetor de floats e sua dimensão como parâmetros. A função deve retornar a média entre o MENOR e o MAIOR número armazenado no vetor. Uma demonstração do uso da função deve ser apresentado no programa principal (função main) usando variáveis inicializadas (NÃO USAR scanf). Solução 1: Nesta solução armazenaremos o primeiro elemento do vetor em duas variáveis de apoio: maior e menor. Na sequência, percorreremos o valor examinando cada posição e testando se o que está armazenado ali é maior(ou menor) que o armazenado nas variáveis de apoio. A troca de valores é realizada se confirmado esta situação.
Questão 3Implementar uma função que recebe duas matrizes de floats 5x5 como parâmetros. A função deve comparar as duas matrizes e retornar o número de elementos que são diferentes. Uma demonstração do uso da função deve ser apresentado no programa principal (função main) usando variáveis inicializadas (NÃO USAR scanf). OBSERVAÇÃO: TODAS as funções e os testes da mesma (no main) deverão estar um arquivo único que deverá ser “uploaded” (carregado) na tarefa associada a avaliação no SIGAA. Solução:
Correção da Avaliação - NoiteQuestão 1Implementar uma função C que recebe dois vetores de char como parâmetro. No primeiro vetor se encontra uma string qualquer. A função deve copiar esta string para o segundo vetor MAS deve substituir cada espaço em branco por dois caracteres '?'. A função deve retornar a quantidade de espaços em branco substituídos. Segue o esqueleto e uma saída para a situação colocada no main. #include <stdio.h>
int substituir_espaco(char x[], char y[])
{
}
main()
{
char w[100]="Instituto Federal de Santa Catarina",
z[100];
int num_espacos;
num_espacos = substituir_espaco(w, z);
printf("string sem espaços = %s e números de substituições = %d", z, num_espacos);
}
Questão 2Implementar uma função que recebe um vetor de inteiros e sua dimensão como parâmetros. A função deve retornar a média de TODOS os números ímpares NÃO NEGATIVOS contidos no vetor. Uma demonstração do uso da função deve ser apresentado no programa principal (função main) usando variáveis inicializadas (NÃO USAR scanf)
Questão 3Implementar uma função que recebe uma matriz de floats 5x5 como parâmetro. A função deve computar a média de todos os números que fazem parte de linhas PARES e colunas ÍMPARES (considerando sempre que a primeira linha é a 0 e a primeira coluna é 0). Uma demonstração do uso da função deve ser apresentado no programa principal (função main) usando variáveis inicializadas (NÃO USAR scanf)
AULA 24 -
AULA 25 -Objetivos
ReferênciasAULA 26 -
SUGESTÕES DE PROJETOS
Sistema de acesso de uma sala contendo controle de horário permitido por categoria: aluno, professor e visitante. O administrador poderá editar, criar e remover usuários. Cada usuário terá 3 tentativas de acesso quando então será bloqueado. Na segunda e terceira tentativa será perguntado, de forma randômica mas sem repetir, o dia do nascimento, o primeiro nome da mãe ou o primeiro nome do pai. As senhas configuradas deverão ser de exatamente 6 caracteres com 3 letras, 2 números e um símbolo. Uma mensagem de boas vindas configurável por usuário poderá ser configurada pelo administrador. Todos os dados de usuários deverão ser recuperados de um arquivo.
REQUISITOS DOS PROJETOSRequisitos de TODOS os projetos:
AVALIAÇÃO
GRUPOSAULA 27 -
AULA 28 -
Uso de múltiplos arquivos nos projetosExemplo timer
|