Mudanças entre as edições de "PRG29002-2019-2"
Linha 329: | Linha 329: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | =AULA 23 - Dia 16/10/2019= | ||
+ | |||
+ | ===Objetivos=== | ||
+ | *Resolução de [http://tele.sj.ifsc.edu.br/~tisemp/PRG/avaliacao_2.pdf Exercícios de preparação] | ||
+ | |||
+ | ===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. 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() | ||
+ | { | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | {{collapse top | solução}} | ||
+ | <!-- | ||
+ | <syntaxhighlight lang=c> | ||
+ | //desenvolvido pelo aluno: Jeferson Jair (2019-1) | ||
+ | |||
+ | #include <stdio.h> | ||
+ | |||
+ | int contar_espaco(char x[], char y[]){ | ||
+ | |||
+ | int i, cont=0; | ||
+ | |||
+ | for(i=0; x[i]!=0 ;i++){ | ||
+ | y[i]=x[i]; | ||
+ | if(x[i]==' ') | ||
+ | cont++; | ||
+ | } | ||
+ | y[i++]=0; | ||
+ | return cont; | ||
+ | } | ||
+ | |||
+ | int main(){ | ||
+ | |||
+ | char a[40] = "Instituto Federal do Santa Catarina"; | ||
+ | char b[40]; | ||
+ | |||
+ | printf("String b = %s com um total de %d espaços\n", b, contar_espaco(a,b)); | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | --> | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | solução}} | ||
+ | <!-- | ||
+ | <syntaxhighlight lang=c> | ||
+ | #include <stdio.h> | ||
+ | |||
+ | int eliminar_espaco(char x[], char y[]) | ||
+ | { | ||
+ | int i, /* index do vetor fonte */ | ||
+ | j, /* index do vetor de destino */ | ||
+ | cont; | ||
+ | |||
+ | i=0; | ||
+ | j=0; | ||
+ | cont=0; | ||
+ | while(x[i]!='\0') { | ||
+ | if (x[i]==' ') { | ||
+ | cont++; /* contar ocorrências do espaço */ | ||
+ | } else { | ||
+ | y[j]=x[i]; /* copiar normalmente */ | ||
+ | j++; /* incrementar para avançar o index de y após a cópia */ | ||
+ | } | ||
+ | i++; /* sempre avançar o index de x */ | ||
+ | } | ||
+ | y[j]='\0'; | ||
+ | return cont; /* retornar a contagem de espaços */ | ||
+ | } | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | char vetor1[100]=" Instituto Federal de Santa Catarina ", | ||
+ | vetor2[100]; | ||
+ | |||
+ | int espacos; | ||
+ | |||
+ | espacos = eliminar_espaco(vetor1, vetor2); | ||
+ | |||
+ | printf("vetor final = %s - total espaços = %d\n", vetor2, espacos); | ||
+ | return 0; | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | --> | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | ===Questão 2=== | ||
+ | |||
+ | Implementar 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) | ||
+ | |||
+ | {{collapse top | solução}} | ||
+ | <!-- | ||
+ | <syntaxhighlight lang=c> | ||
+ | #include <stdio.h> | ||
+ | |||
+ | float media_num_impar(int x[], int len) | ||
+ | { | ||
+ | int i,soma,cont; | ||
+ | |||
+ | soma=0; | ||
+ | cont=0; | ||
+ | for (i=0;i<len;i++){ | ||
+ | if (x[i]>0 && x[i]%2==1) { | ||
+ | soma = soma + x[i]; | ||
+ | cont++; | ||
+ | } | ||
+ | } | ||
+ | return (float)soma/cont; /* aqui teria um problema de truncamento se não houver casting*/ | ||
+ | } | ||
+ | |||
+ | main() | ||
+ | { | ||
+ | int alfa[5]={-5,-3,7,10,11}; | ||
+ | float media; | ||
+ | |||
+ | media = media_num_impar(alfa, 5); | ||
+ | printf("media ímpares não negativos do vetor = %f\n", media); | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | --> | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | ===Questão 3=== | ||
+ | |||
+ | Implementar 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) | ||
+ | |||
+ | {{collapse top|solução}} | ||
+ | <!-- | ||
+ | <syntaxhighlight lang=c> | ||
+ | #include <stdio.h> | ||
+ | |||
+ | #define TAM 5 | ||
+ | |||
+ | float media_lin_col(float vet[TAM][TAM]) | ||
+ | { | ||
+ | int i,j; | ||
+ | float media_soma=0; | ||
+ | int cont=0; | ||
+ | |||
+ | for (i=0;i<TAM;i++) | ||
+ | for (j=0;j<TAM;j++) { | ||
+ | if((i%2==0)&&(j%2==1)) { | ||
+ | media_soma = media_soma + vet[i][j]; | ||
+ | cont++; | ||
+ | } | ||
+ | } | ||
+ | media_soma = media_soma/cont; | ||
+ | return media_soma; | ||
+ | } | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | float x[TAM][TAM] = { 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, | ||
+ | }; | ||
+ | |||
+ | float media; | ||
+ | |||
+ | media = media_lin_col(x); | ||
+ | printf("Média: %.2f\n", media); | ||
+ | return 0; | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | --> | ||
+ | {{collapse bottom}} | ||
=Link para todas as aulas== | =Link para todas as aulas== | ||
*[https://wiki.sj.ifsc.edu.br/index.php/Proposta_de_Aulas_de_Introdu%C3%A7%C3%A3o_a_Programa%C3%A7%C3%A3o_C Aulas de C] | *[https://wiki.sj.ifsc.edu.br/index.php/Proposta_de_Aulas_de_Introdu%C3%A7%C3%A3o_a_Programa%C3%A7%C3%A3o_C Aulas de C] |
Edição das 15h41min de 15 de outubro de 2019
PROFESSOR
- Eraldo Silveira e Silva
ATENDIMENTO PARALELO
A DEFINIR...
LOCAL: Sala 1 de Professores de Telecomunicações ou em algum dos laboratórios de TELE/CAD
AULA 1 - Dia 31/7/2019
Objetivos
- Apresentação do Plano de Ensino;
- Conceituar Algoritmo
- Utilizar variáveis, constantes e expressões nas instruções do algoritmo.
- Representar Algoritmos na forma de Fluxogramas e Pseudocódigo
- Utilizar Teste de Mesa para verificar o funcionamento do algoritmo
Material de Referência
Aula Introdutória sobre Lógica de Programação
AULA 2 - Dia 1/8/2019
Objetivos
- Exercícios de Lógica de Programação (ver AULA 1)
- Estruturas de Decisão
Material de Referência
https://wiki.sj.ifsc.edu.br/index.php/AULA_2_-_Programa%C3%A7%C3%A3o_1_-_Engenharia
AULA 3 - Dia 7/8/2019
Objetivos
- Exercícios
- Continuação de Estruturas de Decisão
- Estruturas de Repetição
Material de Referência
AULA 4 - Dia 8/8/2019
Objetivos
- Estruturas de Repetição
Material de Referência
AULA 5 - Dia 13/8/2019
Objetivos
- Estruturas de Repetição
Material de Referência
AULA 6 - Dia 15/8/2019
Objetivos
- Exercícios de Estruturas de Repetição
- Introdução a Linguagem C
Material de Referência
AULA 7 - Dia 21/8/2019
Objetivos
- Introdução a Linguagem C (continuação)
- Estrutura if else de decisão no C
Material de Referência
AULA 8 - Dia 22/8/2019
Objetivos
- Estrutura if else de decisão no C
Material de Referência
AULA 9 - Dia 28/8/2019
Objetivos
- Estrutura if else de decisão no C (continuação)
Exercício proposto no início da aula.
/*
FAZER UM PROGRAMA C PARA
#Ler 2 números "a" e "b";
#SE "a" for maior que "b" então ler 3 números reais adicionais,
calcular a média destes 3 números
e caso a média seja maior que 6 mostrar uma mensagem;
#SE "a" for menor que "b" então ler um número inteiro "c" adicional,
calcular o produto de "a","b" e "c" e dividir o resultador por 3 mostrando o resultado;
#SE "a" for igual a "b" somente mostrar uma mensagem;
*/
*/
AULA 10 - Dia 29/8/2019
Objetivos
- Estruturas de Repetição no C
Material de Referência
AULA 11 - Dia 4/8/2019
Objetivos
- Estruturas de Repetição no C
Material de Referência
AULA 12 - Dia 5/8/2019
Objetivos
- Estruturas de Repetição no C
Material de Referência
AULA 13 - Dia 11/8/2019
Objetivos
- Aula de Exercícios de Preparação para AVALIAÇÃO 1
AULA 14 - Dia 12/8/2019
Objetivos
- Avaliação 1
AULA 15 - Dia 18/8/2019
Objetivos
- Uso de IDEs - Clion
- Correção da Avaliação usando o Clion
Material de Referência
AULA 16 - Dia 19/8/2019
Objetivos
- Funções no C
- Variáveis Globais X Variáveis Locais
Material de Referência
AULA 17 - Dia 25/9/2019
Objetivos
- Funções no C
- Variáveis Globais X Variáveis Locais
Material de Referência
1) Elaborar uma função que recebe 2 números reais como parâmetro e retorna a média entre eles. Testar na função main(). Chamar pelo menos 3 vezes.
float calc_media(float num1, float num2)
{
}
main()
{
int x,y=7.9;
x=calc_media(5.5,3.6);
x=calc_media(y,3.6);
x=calc_media(y=7.9,3.6);
x = calc_media(7.9,3.6) + calc_media(y*3,2.7);
printf("valor = %f\n", x=calc_media(x,y));
}
2) Elaborar uma função que recebe dois números inteiros e que retorna a soma de todos os números inteiros entre estes números (inclusive). Testar na função main().
</syntaxhighlight>
AULA 18 - Dia 26/9/2019
Objetivos
- Introdução a vetores
Material de Referência
AULA 19 - Dia 2/10/2019
Objetivos
- Introdução a vetores
Material de Referência
AULA 20 - Dia 3/10/2019
Objetivos
- Introdução a vetores: strings - exercicios
Material de Referência
Link para a computação do seno via série de Taylor
AULA 21 - Dia 9/10/2019
Objetivos
- Arranjos Multidimensionais
Referência
https://wiki.sj.ifsc.edu.br/index.php/AULA_12_-_Programa%C3%A7%C3%A3o_1_-_Engenharia
AULA 22 - Dia 10/10/2019
Objetivos
- Arranjos Multidimensionais
Referência
https://wiki.sj.ifsc.edu.br/index.php/AULA_12_-_Programa%C3%A7%C3%A3o_1_-_Engenharia
Implementar uma função que soma um escalar a cada um dos elementos de uma matriz de inteiros bidimensional de dimensão 3x3. Ver esqueleto abaixo. Testar o uso na função main().
- include <stdio.h>
void somar_escalar(int matriz[3][3], int escalar)
{
int i,j;
for(i=0;i<3;i++) {
for (j = 0; j < 3; j++)
matriz[i][j] = matriz[i][j] + escalar;
}
}
int main()
{
int x[3][3] = { 1 , 6, 9,
7, 5, 5,
11, 0, 7
};
int i,j;
somar_escalar(x, 10);
for(i=0;i<3;i++) {
for (j = 0; j < 3; j++)
printf("x[%d][%d] = %d\t", i, j, x[i][j]);
printf("\n");
}
// imprimir aqui a matriz x
}
</syntaxhighlight>
AULA 23 - Dia 16/10/2019
Objetivos
- Resolução de Exercícios de preparação
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. 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.
#include <stdio.h>
int eliminar_espaco(char x[], char y[])
{
}
main()
{
}
solução
solução
Questão 2
Implementar 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)
solução
Questão 3
Implementar 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)
solução
Link para todas as aulas=