Mudanças entre as edições de "AULA 12 - Programação 1 - Graduação"
Ir para navegação
Ir para pesquisar
(24 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
;Exercícios parte 1 | ;Exercícios parte 1 | ||
#Ler um vetor de 10 números inteiros e colocar em ordem crescente. | #Ler um vetor de 10 números inteiros e colocar em ordem crescente. | ||
− | #Ler um vetor de char e trocar de minúsculas para maiúsculas. | + | #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. |
+ | |||
+ | {{collapse top|Solução 3}} | ||
+ | <syntaxhighlight lang=c> | ||
+ | #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); | ||
+ | } | ||
+ | </syntaxhighlight>{{collapse bottom}} | ||
+ | :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. | ||
+ | |||
+ | {{collapse top|Solução 3.a.b (contribuição do aluno: Pablo Fidelis Dias)}} | ||
+ | <syntaxhighlight lang=c> | ||
+ | #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); | ||
+ | }</syntaxhighlight>{{collapse bottom}} | ||
<br> | <br> | ||
+ | {{collapse top|Solução 2}} | ||
+ | <syntaxhighlight lang=c> | ||
+ | #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); | ||
+ | } | ||
+ | </syntaxhighlight>{{collapse bottom}} | ||
+ | <br> | ||
+ | |||
+ | {{collapse top|Solução 1}}<syntaxhighlight lang=c> | ||
+ | #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 | ||
+ | |||
+ | }</syntaxhighlight>{{collapse bottom}} | ||
+ | |||
+ | |||
+ | |||
;Exercícios parte 2 | ;Exercícios parte 2 | ||
Linha 21: | Linha 136: | ||
: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. | :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. | ||
+ | |||
+ | {{collapse top|Solução 2.3}} | ||
+ | <syntaxhighlight lang=c> | ||
+ | #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 | ||
+ | |||
+ | }</syntaxhighlight>{{collapse bottom}} | ||
Linha 27: | Linha 158: | ||
! style="background: #cdc5bf;" | [[AULA 11 - Programação 1 - Graduação | << ]] | ! style="background: #cdc5bf;" | [[AULA 11 - Programação 1 - Graduação | << ]] | ||
! style="background: #cdc5bf;" | Aula 12 | ! style="background: #cdc5bf;" | Aula 12 | ||
− | ! style="background: #cdc5bf;" | | + | ! style="background: #cdc5bf;" | [[AULA 13 - Programação 1 - Graduação | >> ]] |
|} | |} |
Edição atual tal como às 17h13min de 14 de abril de 2015
- 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);
}
|