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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 389: Linha 389:
  
 
===Exercício 2===
 
===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.
 +
 +
<syntaxhighlight lang=c>
 +
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));
 +
}
 +
</syntaxhighlight>
 +
 +
===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.
 
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.

Edição das 17h23min de 24 de setembro de 2018

PROFESSOR

  • Eraldo Silveira e Silva

ATENDIMENTO PARALELO

SEGUNDA: 11h às 12h QUARTA: 13h30 às 14h30.

LOCAL: Sala 1 de Professores de Telecomunicações ou em algum dos laboratórios de TELE/CAD

MONITORIA

  • Aluna: Sarom
  • Horários:
    • Segunda-feira 16h15 - 18h45 (2,5 horas)
    • Quarta-feira 11h30 - 14h00 (2,5 horas)
    • Quinta-feira 13h30 - 17h30 (4 horas)
    • Sexta-feira 11h30 - 14h30 (3 horas)

Links Interessantes

AULA 1 - 26/07/2018

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

AULA 2 - 31/07/2018

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

AULA 3 - 2/08/2018

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

AULA 4 - 7/08/2018

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

Introdução a Programação C

TAREFA

AULA 5 - 9/08/2018

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

AULA 6 - 14/08/2018

  • 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


AULA 7 - 16/08/2018

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

AULA 8 - 21/08/2018

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 - 23/08/2018

Objetivos

  • Estruturas de Repetição: lista de exercícios de preparação para avaliação proposta no SIGA A

Material e Referência

https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia

AULA 10 - 28/08/2018

  • Avaliação 1 - Proposta no SIGA A


AULA 11 - 29/08/2018

  • Vetores (arranjos unidimensionais)


Material de Referência

AULA 12 - 04/08/2018

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


AULA 13 - 6/09/2018

  • Recuperação da Avaliação 1 -

AULA 14 - 11/9/2018

Objetivos

  • Correção da Recuperação (Alternativas)
  • Funções e parâmetros
  • Variáveis Locais e Globais

Material de Referência

AULA 15 - 13/9/2018

Objetivos

  • Vetores de inteiros, floats etc (arranjos unidimensionais)

Material de Referência


AULA 16 - 18/9/2018

Objetivos

  • Exercício da Prova
  • Vetores de inteiros, floats etc (arranjos unidimensionais)
  • Matrizes

Exercício da Prova

1) Implementar um programa C com os requisitos abaixo:

  • O programa deve ler N números inteiros;
  • Deve ser mostrado a quantidade de números que estão na faixa (-100,100).
  • Deve ser realizada a média dos números que estão na faixa acima.
solução
#include <stdio.h>

main()
{
  int i,N, num,cont;
  float media, soma_ac;

  printf("Entre com a quantidade de números a serem fornecidos\n");
  scanf("%d", &N);

  soma_ac=0;
  cont=0;
  j=0;
  for(i=0;i<N;i++) {
      printf("Entre com um numero\n");
      scanf("%d",&num);
      if ((num>=-100) && (num<=100)) {
         soma_ac = soma_ac + num;
         cont++;
      }
  } 

  media = soma_ac/cont;

  printf("quantidade de numeros = %d\n", cont);
  printf("media = %.2f\n", media);
}

2) Refazer o exercício armazenando os valores da faixa indicada em um vetor. Fazer a média dos números da faixa usando os dados armazenados no vetor.

solução
#include <stdio.h>

#define TAM_MAX 300


void mostrar_vet(int x[], int tamanho)
{
  int i;

  printf("Imprime vetor\n");
  for (i=0;i<tamanho;i++)
      printf("x[%d] = %d  \n", i, x[i]);
  printf("==== FIM VETOR ====\n");
}

int main()
{
  int i,N, num,cont, 
      vetor[TAM_MAX]; /* vetor superdimensionado para comportar até 300 elementos */
  float media, soma_ac;

  printf("Entre com a quantidade de números a serem fornecidos\n");
  scanf("%d", &N);

  if (N>TAM_MAX) {
      printf ("Vetor não comporta o número especificado\n");
      return 1; /* um código de erro poderia ser retornado aqui */
  }

  cont=0;
  /* primeiro loop para leitura dos dados */
  for(i=0;i<N;i++) {
      printf("Entre com um numero\n");
      scanf("%d",&num);
      if ((num>=-100) && (num<=100)) {
         vetor[cont]=num;
         cont++;
      }
  } 

  printf("quantidade de numeros = %d\n", cont);
  
  /* segundo loop para processar os dados */
  soma_ac=0;
  for(i=0;i<cont;i++)
      soma_ac = soma_ac + vetor[i];

  /* media dos números armazenados no vetor */
  media = soma_ac/cont;

  mostrar_vet(vetor, cont);

  printf("media = %.2f\n", media);

  return 0;
}

3) Refazer o exercício criando uma função para receber um vetor e seu tamanho e retornar a média. Substituir o segundo loop pela função.

Material de Referência

AULA 17 - 20/9/2018

Objetivos

Material de Referência


AULA 18 - 25/9/2018

Exercícios de Preparação para Avaliação 1

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 invertendo a mesma. A função deve retornar a quantidade de caracteres 'i'. 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 len1;

  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


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.

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));
}

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.