Вы находитесь на странице: 1из 9

Teste II

Disciplina: Programação Imperativa, 2020


Nome: Zelito Atumane Saide

PARTE I e II

1. #include <stdio.h>
2.
3. // Menu de opcoes
4. void menu()
5. {
6. printf("\n-------- MENU ---------\n");
7. printf("\n1 - Exercicio 1a)");
8. printf("\n2 - Exercicio 1b)");
9. printf("\n3 - Exercicio 1c)");
10. printf("\n4 - Exercicio 2a)");
11. printf("\n5 - Exercicio 2b)");
12. printf("\n6 - Exercicio 2c)");
13. }

1. // Elemento que nao terminam com zero


2. void naoTerminaComZero(int x[])
3. {
4. int i, cont = 0;
5.
6. visualizarVector(x, 9);
7. printf("Elementos: ");
8.
9. for(i = 0; i < 10; i++)
10. {
11. if(x[i] % 10 != 0)
12. {
13. printf("%d ", x[i]);
14. cont++;
15. }
16. }
17. printf("\nTotal: %d\n", cont);
18. }

1. // Imprima quantas vezes cada número existe no vetor.


2. void repeticaoDeNumero(int x[])
3. {
4. int i, uns = 0, dois = 0, tres = 0;
5.
6. visualizarVector(x, 9);
7.
8. for(i = 0; i < 10; i++)
9. {
10. if(x[i] == 1)
11. {
12. uns++;
13.
14. } else if(x[i] == 2) {
15.
16. dois++;
17.
18. } else if(x[i] == 3) {
19.
20. tres++;
21.
22. }
23. }
24.
25. if(uns > 1) {
26. printf("1 - %d vezes\n", uns);
27. } else {
28. printf("1 - %d vez\n", uns);
29. }
30. if(dois > 1) {
31. printf("2 - %d vezes\n", dois);
32. } else {
33. printf("2 - %d vez\n", dois);
34. }
35. if(tres > 1) {
36. printf("3 - %d vezes\n", tres);
37. } else {
38. printf("3 - %d vez\n", tres);
39. }
40. }

1. // Imprima o vetor sem repetição.


2. void semRepeticao(int x[])
3. {
4. int y[10], i, j, cont = 0;
5.
6. visualizarVector(x, 9);
7.
8. for(i = 0; i < 10; i++)
9. {
10. for(j = i; j < 10; j++)
11. {
12. if(x[i] != -1 && x[i] == x[j+1])
13. {
14. x[j+1] = -1;
15. cont++;
16. }
17. }
18. }
19.
20. int k = 0;
21. for(i = 0; i < 10; i++)
22. {
23. if(x[i] != -1)
24. {
25. y[k] = x[i];
26. k++;
27. }
28. }
29.
30. visualizarVector(y, 9 - cont);
31. }

1. // Parte II: Matrizes e funções


2.
3. // Preencha com 0 (zero) nas posições que existem elementos
4. // que são divisíveis por todos os seguintes números 2,4,6.
5. void divisivelPor2e4e6(int x[3][3])
6. {
7. int i, j;
8.
9. for(i = 0; i < 3; i++)
10. {
11. for(j = 0; j < 3; j++)
12. {
13. if(x[i][j] % 2 == 0 && x[i][j] % 4 == 0 && x[i][j] % 6 == 0)
14. {
15. x[i][j] = 0;
16. }
17. }
18. }
19. visualizar(x);
20. }

1. // Modifique a alínea anterior e preencha com 1 (um),


2. // caso o elemento não seja divisível por todos os números.
3. void naoDivisivelPor2e4e6(int x[3][3])
4. {
5. int i, j;
6.
7. for(i = 0; i < 3; i++)
8. {
9. for(j = 0; j < 3; j++)
10. {
11. if(x[i][j] % 2 != 0 || x[i][j] % 4 != 0 || x[i][j] % 6 != 0)
12. {
13. x[i][j] = 1;
14. }
15. }
16. }
17. visualizar(x);
18. }
1. // Modifique a alínea b) e organiza a matriz de modo
2. // que o 0 (zero) pareça nas primeiras linhas e por fim o 1 (um).
3. void organizar(int x[3][3])
4. {
5. int i, j, aux, k = 0, m = 0, vect[9];
6.
7. // Passa os elementos da matriz para um vector auxiliar
8. for(i = 0; i < 3; i++)
9. {
10. for(j = 0; j < 3; j++)
11. {
12. vect[k] = x[i][j];
13. k++;
14. }
15. }
16.
17. // Ordena o vector auxiliar
18. for(i = 0; i < 9; i++)
19. {
20. for(j = 0; j < 8; j++)
21. {
22. if(vect[j] > vect[j+1])
23. {
24. aux = vect[j];
25. vect[j] = vect[j+1];
26. vect[j+1] = aux;
27. }
28. }
29. }
30.
31. // Retorna os elementos para a matriz.
32. for(i = 0; i < 3; i++)
33. {
34. for(j = 0; j < 3; j++)
35. {
36. x[i][j] = vect[m];
37. m++;
38. }
39. }
40.
41. visualizar(x);
42. }

1. // Metodo que imprimi todos elementos da matriz sem excepcao


2. void visualizar(int x[3][3])
3. {
4. int i, j;
5. printf("\n");
6. for(i = 0; i < 3; i++)
7. {
8. for(j = 0; j < 3; j++)
9. {
10. printf("%d ", x[i][j]);
11. }
12. printf("\n");
13. }
14. }

1. // Metodo que visualiza um vector


2. void visualizarVector(int x[], int t)
3. {
4. int i;
5. printf("\nA[] = {");
6. for(i = 0; i < t; i++)
7. {
8. printf("%d, ", x[i]);
9. }
10. printf("%d}\n", x[t]);
11. }
12.

1. int main()
2. {
3. int op1, op2, A[10] = {10, 20, 12, 10, 12, 14, 10, 29, 50, 40};
4. int B[10] = {1, 2, 1, 2, 0, 2, 3, 4, 7, 8};
5. int M[3][3] = {
6. {1, 2, 3},
7. {4, 12, 24},
8. {5, 36, 48},
9. };
10.
11. do{
12. menu();
13. printf("\n\nEscolha uma operacao: ");
14. scanf("%d", &op1);
15.
16. switch(op1)
17. {
18. case 1: naoTerminaComZero(A); break;
19. case 2: repeticaoDeNumero(B); break;
20. case 3: semRepeticao(B); break;
21. case 4: divisivelPor2e4e6(M); break;
22. case 5: naoDivisivelPor2e4e6(M); break;
23. case 6: organizar(M); break;
24. default: printf("Opcao invalida!");
25. }
26. printf("\nDeseja continuar (S/N)?");
27. getchar();
28. scanf("%c", &op2);
29. } while(op2 == 's' || op2 == 'S');
30.
31. return 0;
32. }
Outputs
Parte III
i. O que é uma função e quais são os seus benefícios?
Resposta: uma função é uma sub-rotina usada em um programa é referenciada pelo programa
principal através do nome atribuído a ela. O uso das funções tem como benefícios modularizar um
programa e reutilizar código.
ii. O que é um protótipo de uma função e para que serve?
Resposta: um protótipo de função é uma declaração de uma função que omite o corpo, mas
especifica o seu nome, aridade, tipos de argumentos e tipo de retorno. Em algumas linguagens
como o java, este conceito é atribuído o nome de interface.
iii. Qual é a diferencia que existe entre um vetor e ponteiro?
Resposta: A diferença entre vector e ponteiro é que um ponteiro aponta para o endereço de uma
variável ao passo que um vector é uma estrutura que apontas para mais de um endereço.
by: Cossa, Carlos João

Вам также может понравиться