Buscar

Gabarito Aula 16 Algoritmos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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 }

Continue navegando