Baixe o app para aproveitar ainda mais
Prévia do material em texto
Lista de Exercícios III – C++ 1. Leia um vetor A com 10 elementos inteiros. Construa um vetor B observando a seguinte lei de formação: todo elemento de B deverá ser igual ao dobro do elemento de A correspondente. Imprima A e B. #include<iostream> using namespace std; int main (){ system("color fc"); int a[10],b[10],i; for(i=0;i<10;i++){ cout<<"a["<<i+1<<"]= "; cin>>a[i];} for(i=0;i<10;i++) b[i]=2*a[i]; for(i=0;i<10;i++) cout<<"b["<<i+1<<"]= "<<b[i]<<"\n"; system("pause"); return 0; } 2. Construa e imprima uma matriz 5 X 5 em que os elementos da diagonal principal sejam iguais a 1; os demais elementos devem ser iguais a soma dos respectivos índices de linha e coluna. #include<iostream> using namespace std; int main (){ system("color fc"); int m[5][5],i,j; for(i=0;i<5;i++){ for(j=0;j<5;j++){ if(i==j) m[i][j]=1; else m[i][j]=i+j; }} for(i=0;i<5;i++){ cout<<"\n"; for(j=0;j<5;j++){ cout<<"m["<<i<<"]["<<j<<"]= "<<m[i][j]<<" ";}} cout<<"\n\n"; system("pause");return 0; } 3. Leia uma matriz M (10,10) e imprima: a) o menor elemento de cada linha da matriz. b) o maior elemento de cada coluna da matriz. #include<iostream> using namespace std; int main (){ system("color fc"); int m[3][3],menor[3],maior[3],i,j; for(i=0;i<3;i++){ for(j=0;j<3;j++){ cout<<"m["<<i+1<<"]["<<j+1<<"]="; cin>>m[i][j];}} cout<<"\n\n"; for(i=0;i<3;i++){ menor[i]=m[i][1]; for(j=0;j<3;j++){ if(m[i][j]<menor[i]){ menor[i]=m[i][j]; } } } for(i=0;i<3;i++){ for(j=0;j<3;j++){ maior[i]=m[1][j]; for(j=0;j<3;j++){ if(m[j][i]>maior[i]){ maior[i]=m[j][i]; } } } } for(i=0;i<3;i++) cout<<"menor["<<i+1<<"]= "<<menor[i]<<"\n"; cout<<"\n\n"; for(i=0;i<3;i++) cout<<"maior["<<i+1<<"]= "<<maior[i]<<"\n"; system("pause");return 0; } 4. Escreva e teste a seguinte função, que verifica se um número é primo: int primo(int n); A função verifica se n é um número primo e retorna verdadeiro se positivo, falso se negativo. #include<iostream> using namespace std; int primo(int n); int main (){ system("color fc"); int p,pr; cout<<"Programa que verifica se o numero informado eh primo!! \n\n"; p=primo(pr); if(p==1) cout<<"\n Verdadeiro \n"; if(p==0) cout<<"\n Falso \n"; cout<<"\n"; system("pause");return 0; } int primo(int n){ int i,x,div=0,pr; cout<<"Digite o numero= "; cin>>n; for(i=1;i<=n;i++){ if(n%i==0) div++; } if((div==2)||(n==1)){ pr=1; return pr;} else{ pr=0; return pr;} } 5. Escreva e teste a seguinte função, que retorna o valor mínimo de um array dado: float min(float a[10]); #include<iostream> using namespace std; float min(float a[10]); int main(){ system("color fc"); float v[10],m; m=min(v); cout<<"O menor = "<<m<<"\n\n"; system("pause"); return 0; } float min(float a[10]){ int i,mn=100000; for(i=0;i<10;i++){ cout<<"a["<<i<<"]= "; cin>>a[i]; if(a[i]<mn) mn=a[i];} return mn; } 6. Escreva e teste a seguinte função: int frequency(int a[10], int x); Essa função conta o número de vezes que o item x aparece no array a e retorna essa contagem como a frequência de x em a. #include<iostream> using namespace std; int frequency(int a[10], int x); int main (){ system("color fc"); int a,v[10],x; cout<<"informe o numero a ser verificado= "; cin>>x; a=frequency(v,x); cout<<"o numero "<<x<<" aparece "<<a<<" vez(es) no vetor n!! \n\n"; system("pause"); return 0; } int frequency(int a[10], int x){ int i,k=0; for(i=0;i<10;i++){ cout<<"a["<<i<<"]= "; cin>>a[i]; if(a[i]==x) k++;} return k; } 7. Escreva um programa que leia uma string e a escreva em ordem inversa. #include<iostream> using namespace std; void invertchar(char *S); int main (){ system("color fc"); char nome[30]; cout<<"digite uma string= "; gets(nome); invertchar(nome); puts(nome); system("pause");return 0; } void invertchar(char *S){ strrev(S); } 8. Escreva um programa que leia uma string e a escreva em maiúsculo #include<iostream> using namespace std; void mai(char *S); int main (){ system("color fc"); char nome[30]; cout<<"digite a string em minusculo = "; gets(nome); mai(nome); puts(nome); system("pause");return 0; } void mai(char *S){ int i; for(i=0;i<strlen(S);i++) S[i]=toupper(S[i]); } 9. Leia 10 nomes quaisquer de pessoas pra uma matriz de strings. Ordene esta matriz por ordem alfabética utilizando o algoritmo de ordenação de sua escolha. #include<iostream> using namespace std; int main(){ system("color fc"); char nome[10][30],aux[30]; int i,j; for(i=0;i<10;i++){ cout<<"Entre com o nome["<<i + 1<<"]= "; gets(nome[i]);} for(j=0; j<10; j++){ for(i=0;i<9;i++){ if(strcmp(nome[i], nome[i + 1]) > 0){ strcpy(aux, nome[i]); strcpy(nome[i], nome[j]); strcpy(nome[j], aux); } } } cout<<"\n\nNomes em ordem alfabetica: \n"; for(i=0; i<10; i++){ puts(nome[i]);} system("pause"); return 0; } 10. Descreva o que será produzido, depois de executados os comandos abaixo, se: 𝑨 = 𝟏 𝟐 𝟏 𝟑 𝟏 𝟒 𝑪 = 𝟏 𝟑 𝟐 𝟏 𝟏 𝟒 for (i=0;i<2;i++){ for (j=0;j<2;j++){ for (k=0;k<3;k++){ cout<<A[i][k]+C[k][j]; }}} O código fonte do programa acima: #include<iostream> using namespace std; int main(){ system("color fc"); int a[2][3]={1,2,1,3,1,4}; int c[3][2]={1,3,2,1,1,4}; int i,j,k; for (i=0; i<2; i++){ for (j=0; j<2; j++){ for (k=0; k<3; k++){ cout<<"a["<<i+1<<"]["<<k+1<<"] + c["<<k+1<<"]["<<j+1<<"] = "<<a[i][k]+c[k][j]<<"\n"; }}} system("pause");return 0; } O programa multiplica cada linha de A por uma coluna de B, tendo como resultado a matriz abaixo: 11. Preencha uma matriz 5x5 com números inteiros de 1 a 25 usando ponteiros. #include<iostream> using namespace std; int main (){ system("color fc"); int mat[5][5],i,j; int *p; p=&mat[0][0]; for(i=0;i<5;i++){ for(j=0;j<5;j++){ *p=1; p++;}} p=&mat[0][0]; for(i=0;i<5;i++){ for(j=0;j<5;j++){ cout<<"mat["<<i+1<<"]["<<j+1<<"]= "<<(*p)++<<"\t"; } } system("pause");return 0; } 12. Calcule o tamanho de uma string lida usando ponteiros. #include<iostream> #include<string.h>using namespace std; int strlen(char *s); int main (){ system("color fc"); char v[30]; int p; cout<<"digite a string= "; gets(v);cout<<"\n"; p=strlen(v); cout<<"a string possue "<<p<<" caracteres !!!!\n"; system("pause");return 0; } int strlen(char *s){ int i=0; while(*s){ i++;s++;} return i; } 13. Leia duas strings. Construa uma terceira string fornecida para concatenação das duas primeiras. Use ponteiros. #include<iostream> #include<string.h> using namespace std; char Concat(char *p1, char *p2); int main (){ system("color fc"); char a[30],b[30]; cout<<"str1= "; gets(a); cout<<"str2= "; gets(b); cout<<"\n"; Concat(a,b); puts(a); cout<<"\n"; system("pause");return 0; } char Concat(char *p1, char *p2){ while(*p1){ p1++;} while(*p2){ *p1=*p2; p1++; p2++; } *p1=0; }
Compartilhar