PRG-2011

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Nome do Professor: Eraldo Silveira e Silva

email: eraldo@ifsc.edu.br

Material de Referência

Avaliação

Trabalhos: 30% Prova: 70%

Aulas

== 26/05:

01/06: Aula 1 e 2 do Curso UFMG

02/06: Cont.Aula 2 do Curso UFMG

08/06: Aula 2 do Curso UFMG

09/06: Aula 2 do Curso UFMG

15/06: Aula 3 do Curso UFMG

Propor resolver questão

Tarefa para casa:

1) Escrever um programa que leia como dados de entrada dois números inteiros positivos: "s" e "q". O programa deve computar os dez primeiros números da PG (progressão geométrica), onde "s" é o número inicial e "q" a razão da progressão.

Obs: Para PG tem-se:

ou

2) Repetir para P.A (progressão aritmética). Obs:

3) Organizar (1) e (2) em um programa único, com uma função para PG e outra para PA. Enviar para o professor até 07/06 às 23:59!

Controle de Entrega de Trabalhos

Legenda:

  • S: entregou
  • N: não entregou
Aluno Trabalho 1 Trabalho 2 Trabalho 3 Trabalho 4 Trabalho 5 Trabalho 6
Alfredo
Ângelo
Beatriz S
Bruno da Silva S
Bruno S
Caroline S
Danilo
Dayze S
Fabiana S
Felipe
Gabriel S
Grazielle
Jayson
Juliano
Leandro
Leonardo

16/06: Aula 7 do Curso UFMG

22/06: Semana de Telecomunicações

23/06: Feriado

29/06: Aula 4 e 5 do Curso UFMG

-revisão comando for

-comando while

-comando do

-comando switch

-revisão comandos break e continue;

EXERCÍCIOS

1) Fazer um programa para computar o número de caracteres de uma cadeia (string) lida pelo teclado.Use o comando for;

#include <stdio.h>

void main ()

{

   char alfa[50];

   int i;

   printf ("Entre com a cadeia: ");

   scanf("%s",alfa);

   for (i=0;alfa[i]!=0;i++)

	;

   printf ("\nNumero de caracteres em %s = %d \n", alfa, i);

}


2) Repetir (1) com while;

#include <stdio.h>

void main ()
{
   char alfa[50];
   int i;

   printf ("Entre com a cadeia: ");
   scanf("%s",alfa);
   i=0;
   while (alfa[i]!=0) {
   	i++;
   }
   printf ("\nNumero de caracteres em %s = %d \n", alfa, i);
}

3) Refazer o exercício 2 colocando a função que faz a computação do tamanho da cadeia em uma função;

#include <stdio.h>

int calc_tamanho(char cadeia[])
{
   int  i=0;
   while (cadeia[i]!=0) {
   	i++;
   }
   return i;
}

void main ()
{
   char alfa[50];
   int tamanho;
   

   printf ("Entre com a cadeia: ");
   scanf("%s",alfa);
   tamanho = calc_tamanho(alfa);
   printf ("\nNumero de caracteres em %s = %d \n", alfa, tamanho);
}


4) Fazer um programa para ler duas cadeias de caracteres (strings) e dizer qual delas possui mais caracter que a outra;

#include <stdio.h>

int calc_tamanho(char cadeia[])
{
   int  i=0;
   while (cadeia[i]!=0) {
   	i++;
   }
   return i;
}

void main ()
{
   char alfa[50],beta[50];
   int tam1,tam2;
   
   /* Leitura dos dados */
   printf ("\nEntre com a cadeia alfa: ");
   scanf("%s",alfa);  
   printf ("Entre com a cadeia beta: ");
   scanf("%s",beta);

   /* Computação dos tamanhos das cadeias */
   tam1=calc_tamanho(alfa);
   tam2=calc_tamanho(beta);
   
   /* Verificacão da cadeia maior */
   if (tam1>tam2)
      printf ("alfa maior que beta\n");
   else
      printf("beta maior que alfa\n");
}


5) Refazer (4) colocando a comparação em uma função.

#include <stdio.h>

 
int calc_tamanho(char cadeia[])
{
   int  i=0;
   while (cadeia[i]!=0) {
   	i++;
   }
   return i;
}

int comparar_cadeias(char cadeia1[], char cadeia2[])
{
   int tam1,tam2, condicao_retorno; 

	tam1 = calc_tamanho(cadeia1);
	tam2 = calc_tamanho(cadeia2);
   if (tam1 == tam2) 
		condicao_retorno = 0;
   else if (tam1>tam2)
	condicao_retorno = 1;
   else 
	condicao_retorno = -1;

   return condicao_retorno;
 
}

void main ()
{
   char alfa[50],beta[50];
   int condicao;

   /* Leitura dos dados */
   printf ("\nEntre com a cadeia alfa: ");
   scanf("%s",alfa);  
   printf ("Entre com a cadeia beta: ");
   scanf("%s",beta);

	/*Comparar cadeias */
   condicao = comparar_cadeias(alfa,beta);

   /* Mostrar resultado da comparacao */
   if (condicao==1)
       printf("\nalfa MAIOR que beta\n");
   else if (condicao==0)
	printf("\nCadeias de igual tamanho\n");
   else
	printf("\nalfa MENOR que beta\n");	
}

30/06: Finalizando conteúdo - EXERCÍCIOS

-Uso de biblioteca por exemplo: manipulação de strings -Tipos construídos pelo usuário: struct -O operador de endereços &

EXERCÍCIOS:

1) Construir uma função que recebe dois parâmetros: um vetor de floats e o tamanho do vetor. A função deve retornar a média dos valores deste vetor. O programa principal deve ler os elementos do vetor até um número negativo apareça. Este é o final da entrada de dados. A função deve ser chamada para computar a média.

2) Traduzir o programa contador de moedas da wiki do Prof.Marcelo Sobral para o C:

Contador de moedas: faça um programa que leia valores de moedas e some as quantidades de tipos de moedas informadas. Por exemplo, se o usuário digitar 25, 50, 25, 5, 10, 5, o programa deve informar: 2 moedas de 5 centavos, 1 moeda de 10 centavos, 2 moedas de 25 centavos, 1 moeda de 50 centavos. São aceitos apenas valores de moedas de 1, 5, 10, 25 e 50 centavos. Seu programa deve ler 10 valores de moedas, e então apresentar o resultado.

inicio
  inteiro m1, m5, m10, m25, m50
  inteiro moeda 
  inteiro n
    
  enquanto n < 10 faz
    escrever "Moeda: "
    ler moeda
    
    escolhe moeda 
      caso 1:
        m1 <- m1 + 1
      caso 5:
        m5 <- m5 + 1
      caso 10:
        m10 <- m10 + 1
      caso 25:
        m25 <- m25 + 1
      caso 50:
        m50 <- m50 + 1
      defeito:
        escrever "Valor invalido ...\n"
        n <- n - 1
    fimescolhe
    n <- n + 1
  fimenquanto

  escrever "Moedas de 1 centavo: ", m1
  escrever "\nMoedas de 5 centavos: ", m5
  escrever "\nMoedas de 10 centavos: ", m10  
  escrever "\nMoedas de 25 centavos: ", m25
  escrever "\nMoedas de 50 centavos: ", m50
fim

3) Um número complexo possui uma parte imaginaria e uma parte real. Fazer um programa para ler dois números complexos e somá-los. Defina o tipo complexo como uma struct da forma:

#include <stdio.h>
struct TComplexo {
  float real;
  float imaginario;
};

main()
{
  struct TComplexo Numero1,Numero2,Resultado;
  
  printf("\nEntre com a parte real do primeiro numero");
  scanf ("%f",&Numero1.real);

  :
}

6/07: PROVA FINAL

7/07: RECUPERAÇÃO