De MediaWiki do Campus São José
Ir para navegação
Ir para pesquisar
- Exercícios parte 1
- Ler um vetor de 10 números inteiros e colocar em ordem crescente.
- Ler um vetor de char e imprimir ao contrário os caracteres lidos. Exemplo: Marrocos >> socorraM
- 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
}
|}
|
|
|
|
|