AULA 12 - Programação 1 - Graduação

De MediaWiki do Campus São José
Revisão de 17h13min de 14 de abril de 2015 por Douglas (discussão | contribs)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa
Exercícios parte 1
  1. Ler um vetor de 10 números inteiros e colocar em ordem crescente.
  2. Ler um vetor de char e imprimir ao contrário os caracteres lidos. Exemplo: Marrocos >> socorraM
  3. Ler um vetor de char e trocar de minúsculas para maiúsculas. Exemplo: douglas de souza >> DOUGLAS DE SOUZA.
Solução 3
#include <stdio.h>
void main ()
{
   char alfa[50];
   int i=0;
 
   printf ("Entre com a cadeia em letras minúsculas: ");
   gets(alfa);
 
   while(alfa[i]!=0){
        if (alfa[i]!=32)		// na tabela ASCII 32 é o espaço em branco ' '.
            alfa[i]=alfa[i]-32; 	// na tabela ASCII maiúscula estão separadas de minúscula por 32.
	i++;
   }
   printf ("\nNova cadeia em maiúsculas: %s\n", alfa);
}
|}
a) Modificar o programa para que ele faça também, palavras com iniciais maiúsculas. Exemplo: douglas de souza >> Douglas De Souza.
b) Modifique o programa para que ele reconheça as ligações como: de, da, dos, e,... do nome e desconsidere. Exemplo: maria da silva >> Maria da Silva.
Solução 3.a.b (contribuição do aluno: Pablo Fidelis Dias)
#include <stdio.h>
void main ()
{
   char alfa[50];
   int i=0;
 
   printf ("Entre com a cadeia em letras minúsculas: ");
   gets(alfa);
 
   alfa [0]=alfa[i]-32;

   while(alfa[i]!=0){
        if (alfa[i]==32){
            if (!(alfa[i+1]=='d' && (alfa[i+3]==32 || alfa[i+4]==32)))
                alfa[i+1]=alfa[i+1]-32; 
        }
        i++;
   }
   printf ("\nNome: %s\n", alfa);
}
|}


Solução 2
#include <stdio.h>

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

void main()
{
   char alfa[50],beta[50];
   int tam,i;
 
   printf ("Entre com a cadeia : ");
   gets(alfa);
   tam=tam_string(alfa);	// pega o tamanho da cadeia de caracteres
   for(i=0;i<tam;i++)		// percorre o vetor até o tamanho
	beta[i]=alfa[tam-i-1];  // como começa de 0 eu preciso fazer (tam-i-1), ou seja, o primeiro é o ultimo
   beta[i]=0;			// preciso definir o final do vetor porque não vai até o ultimo que '\0'
   printf ("\nPrimeira cadeia: %s. Nova cadeia: %s\n", alfa, beta);
}
|}


Solução 1
#include <stdio.h>
 
void mostra_vet(int vet_aux[],int tam,int tipo) // tipo=0 vertical \n tipo=1 horizontal \t
{
  int i;
 
  if(tipo==0)
	printf("\n"); // vai deixar uma linha em branco só no tipo que quero.
  for(i=0;i<tam;i++)
    if(tipo==0)
      	printf("\n%d",vet_aux[i]);
    else
	printf("\t%d",vet_aux[i]);
  printf("\n");
}


void main()
{
  int i,j,num,vet_num[10];
  printf("\nDigite os números:\n");
  for(i=0;i<10;i++){
      scanf("%d",&num);
      vet_num[i]=num;
  }
  for(j=0;j<9;j++){		// varre os (10-1) vetores - o ultimo ele não tem que comparar
          for(i=0;i<(9-j);i++){ // depois da primeira passagem o ultimo elemento já é o maior...
              if(vet_num[i]>vet_num[i+1]){ 
                num=vet_num[i];
                vet_num[i]=vet_num[i+1];
                vet_num[i+1]=num;
              }
	      mostra_vet(vet_num,10,1); // mostra tipo=1 horizontal
          }
  }
  mostra_vet(vet_num,10,0); // mostrta tipo=0 verrtical
   
}
|}



Exercícios parte 2
1. O cálculo do juro composto é dado pela seguinte equação:



Onde PV é o valor presente, n o número de períodos de aplicação, i a taxa de juros e FV o valor futuro. Elabore um programa para computar o valor futuro para uma quantia aplicada de 10000 reais, dada uma taxa e o número de anos em que o valor é aplicado.

2. Refazer o exercício anterior armazenando o valor futuro de cada ano em uma posição de um vetor valores_futuros[]. Na posição 0 armazene o valor presente.
3. Gerar um vetor de 6 posições de inteiros e preenchê-lo com 6 números randômicos correspondentes a um jogo da megasena.
4. Fazer uma função adendo ao exercício anterior para ordenar o vetor gerado.
5. Adicionar uma interface para o exercício anterior para que um usuário possa entrar com 6 números de um jogo e o sistema conferir se o jogador ganhou ou não.
6. Implementar um sistema de controle de senha que permite abrir a porta para um usuário específico (userID) com uma senha específica.
Solução 2.3
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(void)
{
    int i;
    printf("intervalo da rand: [0,%d]\n", RAND_MAX); // para megasena é de 1 a 60
 
    for(i=0;i<6;i++) 
        printf("Numero %d: %d\n",i, rand());  // tem que ajustar para 59+1
 
}
|}


<< Aula 12 >>