Baixe o app para aproveitar ainda mais
Prévia do material em texto
ALGORITIMOS E ESTRUTURA DE DADOS I Exercício de Variáveis Compostas - Matriz e Vetor. 1º Desenvolva os algoritmos utilizando a estrutura mais apropriada: 1. Escreva um algoritmo que leia um vetor de 80 elementos inteiros. Encontre e mostre o menor elemento e sua posição no vetor. #include <stdio.h> int main() { int tam = 5; int vet[tam]; for (int i = 1; i <= tam; i++) { printf("%d elemento:",i); scanf("%d", &vet[i]); } int mn=vet[1], pos=0; for (int i = 1; i <= tam; i++) { if(vet[i]<mn){ mn=vet[i]; pos=i; } } printf("menor elemento %d na posicao %d \n", mn,pos); return 0; } 2. Escreva um algoritmo que leia um vetor inteiro de 30 posições e crie um segundo vetor, substituindo os valores 0 por 1. Mostre os 2 vetores. #include <stdio.h> int main() { int tam = 5; int vet[tam], vet2[tam]; for (int i = 1; i <= tam; i++) { printf("Vet1 %d elemento:", i); scanf("%d", &vet[i]); vet2[i] = vet[i]; } for (int i = 1; i <= tam; i++) { if (vet2[i] == 0) { vet2[i] = 1; } } for (int i = 1; i <= tam; i++) { printf("1: %d - 2: %d \n", vet[i],vet2[i]); } return 0; } 3. Faça um algoritmo que leia um código numérico inteiro e um vetor de 50 posições de números reais. Se o código for zero, termine o algoritmo. Se o código for 1, mostre o vetor na ordem direta. Se o código for 2, mostre o vetor na ordem inversa. #include <stdio.h> #include <stdlib.h> int main() { int tam = 3, cd; int vet[tam]; printf("Digite o codigo: "); scanf("%d", &cd); for (int i = 1; i <= tam; i++) { printf("Vet elemento %d:", i); scanf("%d", &vet[i]); } if (cd == 0) { exit(0); } else if (cd == 1) { for (int i = 1; i <= tam; i++) { printf("%d \n", vet[i]); } } else if (cd == 2) { for (int i = tam; i >= 1; i--) { printf("%d \n", vet[i]); } } return 0; } 4. Faça um algoritmo que leia um vetor de 500 posições de números inteiros e divida todos os seus elementos pelo maior valor do vetor. Mostre o vetor após os cálculos. #include <stdio.h> int main() { int tam = 3, mn=0; int vet[tam]; for (int i = 1; i <= tam; i++) { printf("Vet elemento %d:", i); scanf("%d", &vet[i]); if(vet[i]>mn){ mn=vet[i]; } } for (int i = 1; i <= tam; i++) { vet[i]=vet[i]/mn; } for (int i = 1; i <= tam; i++) { printf("%d ", vet[i]); } return 0; } 5. Elaborar um algoritmo que le uma matriz M (6,6) e um valor para A (uma variável). Multiplicar a matriz M pelo valor A e coloca os valores da matriz multiplicados por A em um vetor de V(36) e escreva no final o vetor V. #include <stdio.h> int main() { int tam = 3, a; int m[tam][tam],vt[tam*tam]; printf("Valor de A:"); scanf("%d", &a); for (int i = 1; i <= tam; i++) { for (int j = 1; j <= tam; j++) { printf("Coluna %d, linha %d:", i, j); scanf("%d", &m[i][j]); m[i][j] = m[i][j] * a; } } int ct=1; for (int i = 1; i <= tam; i++) { for (int j = 1; j <= tam; j++) { vt[ct]= m[i][j]; ct++; } } for (int j = 1; j <= tam*tam; j++) { printf("%d ", vt[j]); } return 0; } 6. Faça um programa que leia uma matriz 10x10 de inteiros. A seguir transforme-a em um vetor. #include <stdio.h> int main() { int tam = 3; int m[tam][tam],vt[tam*tam]; for (int i = 1; i <= tam; i++) { for (int j = 1; j <= tam; j++) { printf("Coluna %d, linha %d:", i, j); scanf("%d", &m[i][j]); } } int ct=1; for (int i = 1; i <= tam; i++) { for (int j = 1; j <= tam; j++) { vt[ct]= m[i][j]; ct++; } } for (int j = 1; j <= tam*tam; j++) { printf("%d ", vt[j]); } return 0; } 7. Desenvolver um programa que efetue a leitura de dez elementos de uma matriz A tipo vetor. Construir uma matriz B de mesmo tipo, acompanhando a seguinte lei de informação. Se o valor do índice for ímpar, o valor deverá ser multiplicado por 6; sendo par, deverá ser somado com 6. Ao final, mostrar os conteúdos das duas matrizes. #include <stdio.h> int main() { int A[10], B[10]; int i; printf("Digite os 10 elementos da matriz A:\n"); for (i = 0; i < 10; i++) { scanf("%d", &A[i]); } for (i = 0; i < 10; i++) { if (i % 2 == 0) { B[i] = A[i] + 6; } else { B[i] = A[i] * 6; } } printf("Matriz A:\n"); for (i = 0; i < 10; i++) { printf("%d ", A[i]); } printf("\nMatriz B:\n"); for (i = 0; i < 10; i++) { printf("%d ", B[i]); } return 0; } 8. Desenvolva um programa que leia um vetor Vet de 10 posições e divida-o em dois de 5 posições. Ao final escreva todos os vetores. #include <stdio.h> int main() { int Vet[10]; int Vet1[5], Vet2[5]; int i; printf("Digite os 10 elementos do vetor Vet:\n"); for (i = 0; i < 10; i++) { scanf("%d", &Vet[i]); } for (i = 0; i < 5; i++) { Vet1[i] = Vet[i]; Vet2[i] = Vet[i + 5]; } printf("Vetor Vet1:\n"); for (i = 0; i < 5; i++) { printf("%d ", Vet1[i]); } printf("\nVetor Vet2:\n"); for (i = 0; i < 5; i++) { printf("%d ", Vet2[i]); } printf("\nVetor Vet (original):\n"); for (i = 0; i < 10; i++) { printf("%d ", Vet[i]); } return 0; } 9. Faça um programa que lê um vetor de 3 elementos e uma matriz de 3 x 3 elementos. Em seguida o programa deve fazer a multiplicação do vetor pelas colunas da matriz. #include <stdio.h> int main() { int vetor[3]; int matriz[3][3]; int resultado[3] = {0}; printf("Digite os 3 elementos do vetor:\n"); for (int i = 0; i < 3; i++) { scanf("%d", &vetor[i]); } printf("Digite os elementos da matriz 3x3:\n"); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { scanf("%d", &matriz[i][j]); } } for (int j = 0; j < 3; j++) { for (int i = 0; i < 3; i++) { resultado[j] += vetor[i] * matriz[i][j]; } } printf("Resultado da multiplicação:\n"); for (int i = 0; i < 3; i++) { printf("%d ", resultado[i]); } return 0; } 10. Fazer um algoritmo que leia os valores de duas matrizes 3×3 e imprima a multiplicação das duas matrizes. #include <stdio.h> int main() { int matriz1[3][3]; int matriz2[3][3]; int resultado[3][3] = {0}; printf("Digite os elementos da primeira matriz 3x3:\n"); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { scanf("%d", &matriz1[i][j]); } } printf("Digite os elementos da segunda matriz 3x3:\n"); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { scanf("%d", &matriz2[i][j]); } } for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { for (int k = 0; k < 3; k++) { resultado[i][j] += matriz1[i][k] * matriz2[k][j]; } } } printf("Resultado da multiplicação das duas matrizes 3x3:\n"); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { printf("%d ", resultado[i][j]); } printf("\n"); } return 0; } Obs: ✓ Procure desenvolver o máximo; ✓ Evite copiar do colega;
Compartilhar