Baixe o app para aproveitar ainda mais
Prévia do material em texto
Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 32 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define MAX 100 4 5 int main() 6 { 7 int n, vet[MAX], j; 8 9 printf("Digite um inteiro: "); 10 scanf("%d", &n); 11 12 printf("Digite %d inteiros: ", n); 13 for(j = 0; j < n; j++) 14 scanf("%d", &vet[j]); 15 16 printf("Sequencia inversa: \n"); 17 for(j = n-1; j >= 0; j--) 18 printf("%4d", vet[j]); 19 20 printf("\n"); 21 22 system("PAUSE"); 23 return 0; 24 } Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 33 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define MAX 100 4 5 int main() 6 { 7 int n, i; 8 double seq[MAX], soma = 0; 9 10 printf("Qtde de num. da seq.: "); 11 scanf("%d", &n); 12 13 printf("Seq. com %d reais: \n", n); 14 for(i = 0; i < n; i++) 15 { 16 scanf("%lf",&seq[i]); 17 soma = soma + seq[i]; 18 } 19 printf("Media aritmetica: %lf \n", soma/n); 20 21 system("PAUSE"); 22 return 0; 23 } Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 34 a11 . . . a1k . . . a1p ... . . . ... ... ... ai1 . . . aik . . . aip ... ... ... . . . ... am1 . . . amk . . . amp A : m linhas p colunas b11 . . . b1j . . . b1n ... . . . ... ... ... bk1 . . . bkj . . . bkn ... ... ... . . . ... bp1 . . . bpj . . . bpn B : p linhas n colunas c11 . . . c1j . . . c1n ... . . . ... ... ... ci1 . . . cij . . . cin ... ... ... . . . ... cm1 . . . cmk . . . cmn C : m linhas n colunas a i1 × b 1j a ik × b kj a ip × b pj + . . .+ + . . .+ cij = n∑ k=1 aik × bkj Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 34 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 #define MAX 100 5 6 int main() 7 { 8 int i, j, k, lin_A , col_A , lin_B , col_B; 9 double A[MAX][MAX],B[MAX][MAX],C[MAX][MAX]; 10 11 printf("# linhas e colunas da matriz A: "); 12 scanf("%d %d", &lin_A , &col_A); 13 14 lin_B = col_A; 15 16 printf("# colunas da matriz B: "); 17 scanf("%d", &col_B); 18 19 printf("Matriz A: \n"); 20 for(i = 0; i < lin_A; i++) 21 for(j = 0; j < col_A; j++) 22 scanf("%lf", &A[i][j]); 23 24 /* Continua no slide seguinte */ Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 34 - continuac¸a˜o 1 printf("Matriz B: \n"); 2 for(i = 0; i < lin_B; i++) 3 for(j = 0; j < col_B; j++) 4 scanf("%lf", &B[i][j]); 5 6 for(i = 0; i < lin_A; i++) 7 { 8 for(j = 0; j < col_B; j++) 9 { 10 C[i][j] = 0.0; 11 for(k = 0; k < col_A; k++) 12 C[i][j] = C[i][j] + A[i][k]*B[k][j]; 13 } 14 } 15 16 printf("Produto A e B: \n"); 17 for(i = 0; i < lin_A; i++) 18 { 19 for(j = 0; j < col_B; j++) 20 printf("%lf \t", C[i][j]); 21 22 printf("\n"); 23 } 24 25 system("PAUSE"); 26 return 0; 27 } Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 35 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define MAX 100 4 5 int main() 6 { 7 int i, j, lin , col , linT , colT; 8 double A[MAX][MAX], T[MAX][MAX]; 9 printf("# linhas e colunas da matriz A:"); 10 scanf("%d %d", &lin , &col); 11 12 printf("matriz A \n"); 13 for(i = 0; i < lin; i++) 14 { 15 for(j = 0; j < col; j++) 16 { 17 scanf("%lf", &A[i][j]); 18 T[j][i] = A[i][j]; 19 } 20 } 21 printf("Matriz Transposta: \n"); 22 for(i = 0; i < col; i++) 23 { 24 for(j = 0; j < lin; j++) 25 printf("%lf \t", T[i][j]); 26 printf("\n"); 27 } 28 system("PAUSE"); 29 return 0; 30 } Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 36 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int const MAX = 100; 5 6 int main() 7 { 8 int n, x, i = 0, j = 0; 9 int seq[MAX], pos[MAX]; 10 int flag = 0; /*x n~ao aparece na seque^ncia */ 11 12 printf("Numero de elementos da sequencia:"); 13 scanf("%d", &n); 14 15 printf("Numero a ser verificado: "); 16 scanf("%d", &x); 17 18 /* continua no slide seguinte */ Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 36 - continuac¸a˜o 1 printf("seq. com %d elementos: \n", n); 2 while(i < n) 3 { 4 scanf("%d", &seq[i]); 5 if(seq[i] == x) 6 { 7 pos[j] = i + 1; 8 j++; 9 flag = 1; 10 } 11 i++; 12 } 13 if(flag == 0) 14 printf("%d nao pertence a seq. \n", x); 15 else 16 { 17 printf("%d aparece nas posicoes:",x); 18 for(i = 0; i < j; i++) 19 printf("%4d", pos[i]); 20 } 21 22 printf("\n"); 23 24 system("PAUSE"); 25 return 0; 26 } Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 37 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 #define MAX 100 5 6 int main() 7 { 8 int n, seq[MAX], max , min , k; 9 10 printf("Qtde de elementos da sequencia: "); 11 scanf("%d", &n); 12 13 printf("Digite a sequencia: "); 14 for(k = 0; k < n; k++) 15 scanf("%d", &seq[k]); 16 17 /* continua no slide seguinte */ Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 37-continuac¸a˜o 1 if(seq[0] > seq [1]) 2 { 3 max = seq [0]; 4 min = seq [1]; 5 } 6 else 7 { 8 max = seq [1]; 9 min = seq [0]; 10 } 11 for(k = 2; k < n; k++) 12 { 13 if(seq[k] > max) 14 max = seq[k]; 15 if(seq[k] < min) 16 min = seq[k]; 17 } 18 printf("Maior valor da seq.: %d \n", max); 19 printf("Menor valor da seq.: %d \n", min); 20 21 system("PAUSE"); 22 return 0; 23 } Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 38 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 #define MAX 100 5 6 int main() 7 { 8 int n, cont[MAX], k, i, comp = 0; 9 float seq[MAX]; 10 11 printf("Numero de elementos da seq.: "); 12 scanf("%d", &n); 13 14 printf("Sequencia: "); 15 for(k = 0; k < n; k++) 16 { 17 scanf("%f", &seq[comp]); 18 /*Lac¸o for vazio*/ 19 for(i = 0; seq[i] != seq[comp]; i++); 20 21 if(i == comp) 22 { 23 cont[comp] = 1; 24 comp ++; 25 } 26 else 27 cont[i]++; 28 } 29 /* continua no slide seguinte */ Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 38 - Continuac¸a˜o 1 for(k = 0; k < comp; k++) 2 printf("%f aparece %d vezes \n",seq[k], cont[k]); 3 4 system("PAUSE"); 5 return 0; 6 } Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 39 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 #define MAX 10000 5 #define VERDADE 1 6 #define FALSO 0 7 8 int primo(int); 9 int multiplo(int ,int); 10 11 int main() 12 { 13 int n, vet[MAX], k, i; 14 15 printf("Digite n: "); 16 scanf("%d", &n); 17 18 for(k = 1; k <= n; k++) 19 vet[k] = 1; 20 21 for(k = 2; k <= n; k++) 22 { 23 if(primo(k) == VERDADE && vet[k] != 0) 24 { 25 for(i = k+1; i <= n; i++) 26 if(multiplo(i,k) == VERDADE) 27 vet[i] = 0; 28 } 29 } 30 /* continua no slide seguinte */ Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 39 - continuac¸a˜o 1 /* imprime os primos entre 2 e n*/ 2 for(k = 2; k <= n; k++) 3 if(vet[k] == 1) 4 printf("%d \t", k); 5 6 printf("\n"); 7 8 system("PAUSE"); 9 return 0; 10 } 11 12 int primo(int k) 13 { 14 int i; 15 16 for(i = 2; i<=k/2; i++) 17 if(k%i == 0) 18 return FALSO; 19 20 return VERDADE; 21 } 22 23 int multiplo(int i, int k) 24 { 25 if(i%k == 0) 26 return VERDADE; 27 28 return FALSO; 29 } Algoritmose Programac¸a˜o Computacional Gabarito Exerc´ıcio 40 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 #define MAX 1000 5 6 int main() 7 { 8 int i = 0, j, n, seq[MAX], aux; 9 10 printf("Digite um inteiro: "); 11 scanf("%d", &n); 12 13 printf("Sequencia: "); 14 while(i < n) 15 { 16 scanf("%d", &seq[i]); 17 i++; 18 } Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 40 - continuac¸a˜o 1 for(i = 0; i <= n-2; i++) 2 { 3 for(j = i + 1; j <= n-1; j++) 4 { 5 if(seq[i] > seq[j]) 6 { 7 aux = seq[i]; 8 seq[i] = seq[j]; 9 seq[j] = aux; 10 } 11 } 12 } 13 printf("Seq. ordem crescente: \n"); 14 for(j = 0; j < n; j++) 15 printf("%d \t", seq[j]); 16 printf("\n"); 17 18 system("PAUSE"); 19 return 0; 20 } Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 41 - item (a) 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 #define MAX 100 5 6 void inverte_ordem(int vetor1[], int vetor2[], int dim) 7 { 8 int i; 9 10 for(i = 0; i < dim; i++) 11 vetor1[dim -i-1] = vetor2[i]; 12 } Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 41 - item (b) 1 int soma_sequencia(int soma[], int seq1[], int seq2[], int n) 2 { 3 int indice = 0, 4 i, aux , 5 soma_aux[MAX]; 6 7 aux = seq1[n-1] + seq2[n-1]; 8 9 /*se aux >= 10, o vetor soma_aux recebe apenas o algarismo 10 das unidades soma_aux [0] = aux %10 */ 11 12 soma_aux [0] = aux %10; 13 indice ++; 14 15 /* Continua no pro´ximo slide */ Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 41 - item (b): continuac¸a˜o 1 for(i = 1; i < n; i++) 2 { 3 /*Se aux do passo anterior >= 10, e´ necessa´rio somar o algarismo das dezenas */ 4 5 aux = seq1[n-i-1] + seq2[n-i-1] + aux /10; 6 if(i != n-1) 7 soma_aux[indice] = aux %10; 8 else 9 { 10 soma_aux[indice] = aux %10; 11 soma_aux[indice +1] = aux /10; 12 } 13 14 if(i == n-1 && aux >= 10) 15 { 16 soma_aux[indice] = aux %10; 17 soma_aux[indice +1] = aux /10; 18 indice = indice +2; 19 } 20 else 21 { 22 soma_aux[indice] = aux %10; 23 indice ++; 24 } 25 } 26 inverte_ordem(soma , soma_aux , indice); 27 return indice; 28 } Algoritmos e Programac¸a˜o Computacional Gabarito Exerc´ıcio 41 - item (c) 1 int main() 2 { 3 int seq1[MAX], seq2[MAX], i, n, 4 soma[MAX], /* vetor soma armazena os elementos da soma das duas sequencias */ 5 tam; /* dimens~ao do vetor soma*/ 6 7 printf("Num. de elem. das sequencias: "); 8 scanf("%d", &n); 9 10 printf("Digite uma sequencia com %d elementos: ", n); 11 for(i = 0; i < n; i++) 12 scanf("%d", &seq1[i]); 13 14 printf("Digite uma outra sequencia com %d elementos: ",n); 15 for(i = 0; i < n; i++) 16 scanf("%d", &seq2[i]); 17 18 tam = soma_sequencia(soma , seq1 , seq2 , n); 19 printf("soma das duas sequencias: \n"); 20 for(i = 0; i < tam; i++) 21 printf("%2d", soma[i]); 22 printf("\n"); 23 24 system("PAUSE"); 25 return 0; 26 }
Compartilhar