Vous êtes sur la page 1sur 7

Leia duas matrizes 20 x 20 e escreva os valores da primeira que ocorrem em qualquer posio da segunda matriz.

algoritmo "Compara matrizes" var A, B: vetor[1..20, 1..20] de inteiro i, j, k, l: inteiro inicio para i de 1 ate 20 faca para j de 1 ate 20 faca leia(A[i,j]) leia(B[i,j]) fimpara fimpara para i de 1 ate 20 faca para j de 1 ate 20 faca para k de 1 ate 20 faca para l de 1 ate 20 faca se (A[i,j]=B[k,l]) entao escreval(A[i,j]) escreval("Linha: ", k, " e coluna: ", l) interrompa fimse fimpara fimpara fimpara fimpara fimalgoritmo

Suponha um vetor de caracteres e um vetor de inteiros, ambos de 200 posies. No vetor de caracteres, s possvelhaver 3 caracteres diferentes os quais representam trs operaes, que so mdia (m), somatrio(s) e fatorial (f). Faa trs funes, uma para cada operao: Mdia: L um numero inteiro e retorna a mdia aritimtica dos divisores desse numero; Soma: L um numero inteiro e retorna somatrio dos divisores desse numero; Fatorial: L um numero inteiro e retorna fatorial desse numero; Faa um programa que leia o elemento n do vetor de caracteres e conforme o seu tipo (m,s ou f), deve chamar uma dentre as trs funes acima (utilize seleo multipla - switch), passando como parmetro o elemento n do vetor de inteiros. O resultado deve ser adicionado em um terceiro vetor de reais.
#include <stdio.h> #include <math.h> int tamanho=200; float media (int a) {

int i, soma=0, quantidade=0; for (i=1;i<=a;i++) { if (a%i==0) { quantidade++; soma=soma+i; } } return ((float)soma/(float)quantidade); } int soma (int a) { int i, somatorio=0; for (i=1;i<=a;i++) { if (a%i==0) somatorio=somatorio+i; } return (somatorio); } int fatorial (int a) { int i, fat=1; for (i=1;i<=a;i++) fat=fat*i; return fat; } char geraFuncao () { int valor = rand()%10; if (valor<=3) return 'm'; else if (valor<=6) return 's'; else return 'f'; } int geraValores () { return (rand()%10+1); } int main() { char funcoes[tamanho]; int valores[tamanho]; float resultado[tamanho]; int i; for (i=0;i<tamanho;i++) { funcoes[i]=geraFuncao(); valores[i]=geraValores(); } for (i=0;i<tamanho;i++){ switch (funcoes[i]) { case 'm': resultado[i]=media(valores[i]); break; case 's': resultado[i]=soma(valores[i]); break; case 'f': resultado[i]=fatorial(valores[i]); break; }

} /* A parte final s para verificar o resultado */ for (i=0;i<tamanho;i++) { printf("%d ", valores[i]); printf("%c ", funcoes[i]); printf("%f\n", resultado[i]); } return 0; }

(Prova monitoria UEA/2011) Escreva um algoritmo que leia 5 caracteres digitados pelo usurio e os armazene em um vetor. Considere que o usurio no ir digitar valores repetidos. Depois disso, o usurio ir preencher uma matriz de tamanho 3x2 de caracteres. Considere, novamente, que o usurio no ir digitar caracteres repetidos na matriz. Em seguida, o algoritmo deve verificar e escrever na tela se os 5 caracteres digitados inicialmente esto na matriz. Se todos os caracteres estiverem na matriz, o algoritmo deve exibir a posio de cada caractere na matriz.
algoritmo "ProcuraCaracteres" var letras: vetor[1..5] de caracter conjunto: vetor[1..3, 1..2] de caracter posicoes: vetor[1..10] de inteiro total, i, j, k: inteiro inicio total<-1 para i de 1 ate 5 faca leia(letras[i]) fimpara para i de 1 ate 3 faca para j de 1 ate 2 faca leia(conjunto[i,j]) fimpara fimpara para i de 1 ate 5 faca para j de 1 ate 3 faca para k de 1 ate 2 faca se (letras[i]=conjunto[j,k]) entao total<-total+1 posicoes[i]<-j posicoes[i+1]<-k fimse fimpara fimpara fimpara se (total=5) entao escreva("Os caracteres esto na matriz.") j<-1 para i de 1 ate 5 faca escreva(letras[i],"=",posicoes[j],",",posicoes[j+1] j<-j+2 fimpara senao escreva("Os caracteres no esto na matriz.") fimse fimalgoritmo

Dada uma matriz de dimenso 3x6, calcule a soma de cada coluna dessa matriz e armazene esses valores num vetor. Imprima a matriz e o vetor.
algoritmo "Soma colunas de uma matriz" var M: vetor[1..3,1..6] de inteiro V: vetor[1..6] de inteiro i, j: inteiro inicio para i de 1 ate 3 faca para j de 1 ate 6 faca leia(M[i,j]) fimpara fimpara para i de 1 ate 6 faca V[i]<-0 fimpara para j de 1 ate 6 faca para i de 1 ate 3 faca V[j] <- V[j] + M[i,j] fimpara fimpara para i de 1 ate 3 faca para j de 1 ate 6 faca escreva(M[i,j]) fimpara escreval("") fimpara escreval("") para i de 1 ate 6 faca escreva(V[i], " ") fimpara fimalgoritmo

Dada a matriz A de dimenso 4x4 de elementos inteiros, calcule e imprima a soma dos elementos situados abaixo da diagonal principal de A, incluindo os elementos da prpria diagonal principal.
algoritmo "Soma alguns elementos da matriz" var A: vetor[1..4,1..4] de inteiro i, j, soma: inteiro inicio soma<-0 para i de 1 ate 4 faca para j de 1 ate 4 faca leia(A[i,j]) se (i>=j) entao soma<-soma+A[i,j] fimse fimpara fimpara para i de 1 ate 4 faca para j de 1 ate 4 faca escreva(A[i,j]) fimpara escreval("") fimpara

escreval("A soma igual a ", soma) fimalgoritmo

Faa um algoritmo que leia 2 vetores A[10] e B[10]. A seguir, crie um vetor C que seja a interseco de A com B e mostre este vetor C. Obs.: interseco quando um mesmo valor estiver nos dois vetores. Considere que no h elementos duplicados em cada um dos vetores.
algoritmo "Interseco de vetores" var A, B, C: vetor [1..10] de inteiro i, j, posicao: inteiro inicio posicao<-1 para i de 1 ate 10 faca leia (A[i]) leia (B[i]) fimpara para i de 1 ate 10 faca para j de 1 ate 10 faca se (A[i]=B[j]) entao C[posicao]<-A[i] posicao<-posicao+1 fimse fimpara fimpara para i de 1 ate posicao-1 faca escreval(C[i]) fimpara fimalgoritmo

Leia uma matriz 8 x 8 e a transforme numa matriz triangular inferior. Ao final, escreva a matriz transformada.
algoritmo "Matriz triangular inferior" var A: vetor[1..8,1..8] de inteiro i, j: inteiro inicio para i de 1 ate 8 faca para j de 1 ate 8 faca leia (A[i,j]) fimpara fimpara para i de 1 ate 8 faca para j de 1 ate 8 faca se (i<j) entao A[i,j]<-0 fimse fimpara fimpara para i de 1 ate 8 faca para j de 1 ate 8 faca escreva(A[i,j]) fimpara escreval("")

fimpara fimalgoritmo

Escrever um algoritmo que l uma matriz M(5,5) e cria 2 vetores SL(5) e SC(5) que contenham, respectivamente, as somas das linhas e das colunas de M. Escrever a matriz e os vetores criados.

algoritmo "Soma linhas e colunas" var A: vetor[1..5, 1..5] de inteiro SL, SC: vetor[1..5] de inteiro i, j, soma: inteiro inicio para i de 1 ate 5 faca para j de 1 ate 5 faca leia(A[i,j]) fimpara fimpara para i de 1 ate 5 faca soma<-0 para j de 1 ate 5 faca soma <- soma + A[i,j] fimpara SL[i]<-soma fimpara para j de 1 ate 5 faca soma<-0 para i de 1 ate 5 faca soma <- soma + A[i,j] fimpara SC[j]<-soma fimpara para i de 1 ate 5 faca para j de 1 ate 5 faca escreva(A[i,j]) fimpara escreval("") fimpara para i de 1 ate 5 faca escreva(SC[i]) fimpara escreval("") para i de 1 ate 5 faca escreva(SL[i]) fimpara fimalgoritmo

Declare uma matriz 5 x 5. Preencha com 1 a diagonal principal e com 0 os demais elementos. Escreva, ao final, a matriz obtida.
algoritmo "Preenche Diagonal Principal" var A: vetor[1..5,1..5] de inteiro i, j: inteiro inicio

para i de 1 ate 5 faca para j de 1 ate 5 faca se (i=j) entao A[i,j]<-1 senao A[i,j]<-0 fimse fimpara fimpara para i de 1 ate 5 faca para j de 1 ate 5 faca escreva(A[i,j], " ") fimpara escreval("") fimpara fimalgoritmo

Leia uma matriz 10 x 10 e escreva a localizao (linha e a coluna) do maior valor. Considere que a matriz no ter elementos repetidos.
algoritmo "BuscaMaiorValorMatriz" var MAT: vetor[1..10,1..10] de inteiro i, j, maior, linha, coluna: inteiro inicio para i de 1 ate 10 faca para j de 1 ate 10 faca leia(MAT[i,j]) fimpara fimpara maior<-MAT[1,1] para i de 1 ate 10 faca para j de 1 ate 10 faca se (MAT[i,j]>maior) entao maior<-MAT[i,j] linha<-i coluna<-j fimse fimpara fimpara escreval("O maior valor est localizado em ", linha, "(linha) e ", coluna, "(coluna).") fimalgoritmo