Mudanças entre as edições de "PRG29002-2019-2"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(32 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 274: Linha 274:
 
*https://en.wikipedia.org/wiki/Trigonometric_functions
 
*https://en.wikipedia.org/wiki/Trigonometric_functions
  
=Link para todas as aulas==
+
=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().
 +
 
 +
<code>
 +
#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 [http://tele.sj.ifsc.edu.br/~tisemp/PRG/avaliacao_2.pdf Exercícios de preparação] (Prof.Tiago Semprebom)
 +
 
 +
===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}}
 +
 
 +
 
 +
=AULA 24 - Dia 17/10/2019=
 +
 
 +
==Objetivos==
 +
 
 +
*Introdução a Estruturas
 +
 
 +
==Material de ReferÊncia==
 +
 
 +
*[https://wiki.sj.ifsc.edu.br/index.php/AULA_13_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estruturas]
 +
 
 +
=AULA 25 - Dia 23/10/2019=
 +
 
 +
*Avaliação 2
 +
 
 +
=AULA 26 - Dia 24/10/2019=
 +
 
 +
*Palestra Feira de Ciência e Tecnologia
 +
 
 +
=AULA 27 - Dia 31/10/2019=
 +
 
 +
==Objetivos==
 +
 
 +
*[https://wiki.sj.ifsc.edu.br/index.php/AULA_13_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estruturas - Continuação]
 +
 
 +
=AULA 28 - Dia 6/11/2019=
 +
 
 +
==Objetivos==
 +
 
 +
*Introdução a ponteiros
 +
 
 +
==Referência==
 +
 
 +
*[https://wiki.sj.ifsc.edu.br/index.php/AULA_17_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Ponteiros]
 +
 
 +
=AULA 29 - Dia 7/11/2019=
 +
 
 +
==Objetivos==
 +
 
 +
*Ainda ponteiros
 +
 
 +
==Referência==
 +
 
 +
*[https://wiki.sj.ifsc.edu.br/index.php/AULA_17_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Ponteiros]
 +
 
 +
=AULA 30 - Dia 13/11/2019=
 +
 
 +
==Objetivos==
 +
 
 +
*Vetor de ponteiros e Passagem de ParÂmetros em linha de comando
 +
 
 +
==Referência==
 +
 
 +
*[https://wiki.sj.ifsc.edu.br/index.php/AULA_19_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Vetor de Ponteiros]
 +
 
 +
 
 +
=AULA 31 - Dia 14/11/2019=
 +
 
 +
==Objetivos==
 +
 
 +
*Vetor de ponteiros e Passagem de ParÂmetros em linha de comando
 +
 
 +
=AULA 32 - Dia 20/11/2019=
 +
 
 +
==Objetivos==
 +
 
 +
*Desenvolvimento do Projeto
 +
 
 +
=AULA 33 - Dia 21/11/2019=
 +
 
 +
==Objetivos==
 +
 
 +
*Desenvolvimento do Projeto
 +
*Acesso a Arquivos
 +
 
 +
==Material de Referência==
 +
 
 +
*[https://wiki.sj.ifsc.edu.br/index.php/AULA_22_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Acesso a Arquivos Parte 1]
 +
 
 +
=AULA 34 - Dia 27/11/2019=
 +
 
 +
==Objetivos==
 +
 
 +
*Desenvolvimento do Projeto
 +
*Organização do Projeto em Múltiplos Arquivos
 +
 
 +
==Material de Referência==
 +
 
 +
*[https://wiki.sj.ifsc.edu.br/index.php/AULA_25_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Múltiplos Arquivos]
 +
 
 +
=AULA 35 - Dia 28/11/2019=
 +
 
 +
==Objetivos==
 +
 
 +
*Desenvolvimento de Projeto
 +
 
 +
=AULA 36 - Dia 4/12/2019=
 +
 
 +
==Objetivos==
 +
 
 +
*Avaliação 3
 +
**Estruturas
 +
**Ponteiros
 +
**Vetor de Ponteiros
 +
 
 +
=AULA 37 - Dia 5/12/2019=
 +
 
 +
==Objetivos==
 +
 
 +
*Defesa do Projeto
 +
**Somente será feita defesa dos trabalhos postados no SIGAA conforme orientação do professor
 +
**Será realizada uma agenda individual para a defesa.
 +
 
 +
=AULA 38 - Dia 11/12/2019=
 +
 
 +
==Objetivos==
 +
 
 +
*Revisão para recuperação
 +
 
 +
=AULA 39 - Dia 12/12/2019=
 +
 
 +
==Objetivos==
 +
 
 +
*Revisão para recuperação
 +
 
 +
=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 atual tal como às 09h04min de 18 de dezembro 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().

  1. 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

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


AULA 24 - Dia 17/10/2019

Objetivos

  • Introdução a Estruturas

Material de ReferÊncia

AULA 25 - Dia 23/10/2019

  • Avaliação 2

AULA 26 - Dia 24/10/2019

  • Palestra Feira de Ciência e Tecnologia

AULA 27 - Dia 31/10/2019

Objetivos

AULA 28 - Dia 6/11/2019

Objetivos

  • Introdução a ponteiros

Referência

AULA 29 - Dia 7/11/2019

Objetivos

  • Ainda ponteiros

Referência

AULA 30 - Dia 13/11/2019

Objetivos

  • Vetor de ponteiros e Passagem de ParÂmetros em linha de comando

Referência


AULA 31 - Dia 14/11/2019

Objetivos

  • Vetor de ponteiros e Passagem de ParÂmetros em linha de comando

AULA 32 - Dia 20/11/2019

Objetivos

  • Desenvolvimento do Projeto

AULA 33 - Dia 21/11/2019

Objetivos

  • Desenvolvimento do Projeto
  • Acesso a Arquivos

Material de Referência

AULA 34 - Dia 27/11/2019

Objetivos

  • Desenvolvimento do Projeto
  • Organização do Projeto em Múltiplos Arquivos

Material de Referência

AULA 35 - Dia 28/11/2019

Objetivos

  • Desenvolvimento de Projeto

AULA 36 - Dia 4/12/2019

Objetivos

  • Avaliação 3
    • Estruturas
    • Ponteiros
    • Vetor de Ponteiros

AULA 37 - Dia 5/12/2019

Objetivos

  • Defesa do Projeto
    • Somente será feita defesa dos trabalhos postados no SIGAA conforme orientação do professor
    • Será realizada uma agenda individual para a defesa.

AULA 38 - Dia 11/12/2019

Objetivos

  • Revisão para recuperação

AULA 39 - Dia 12/12/2019

Objetivos

  • Revisão para recuperação

Link para todas as aulas