Buscar

Lista Vetores, Matrizes, funções e Procedimentos resolvidas

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

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

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ê viu 3, do total de 15 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

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

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ê viu 6, do total de 15 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

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

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ê viu 9, do total de 15 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

Prévia do material em texto

SISTEMA DE INFORMAÇÃO -UFGD 
LISTAS ALGORITMOS E ESTRUTURA DE DADOS I 
ALUNA: MARLENE SEDANO 
LISTA – VETORES 
 
EX 2- Dado um conjunto A de valores numéricos (n < 200), escrever um algoritmo que 
imprima seus valores em ordem crescente. 
programa 
{ 
funcao inicio() 
 { 
 const inteiro TAM = 4 
 inteiro vet[TAM], i, j, k, aux = 0 
para(i = 0; i < TAM; i++){ 
 leia(vet[i]) 
 } 
 para( i = 0; i < TAM; i++){ 
 para( j = 0 ; j < TAM ; j++){ 
 se(vet[i] < vet[j]){ 
 aux = vet[i] 
 vet[i] = vet[j] 
 vet[j] = aux 
 } 
 } 
 } 
 para(i = 0; i < TAM; i++){ 
 escreva(" ",vet[i]) 
 } 
 } 
} 
 EXER 4 
Faça um algoritmo que leia dois vetores A e B de n inteiros cada, construa e imprima 
um terceiro vetor C, onde cada elemento de C é formado pela soma dos elementos 
correspondentes de A e B. 
 
programa 
{ 
 funcao inicio() 
 { 
 const inteiro TAM = 3 
 inteiro a[TAM], b[TAM], c [TAM] 
 inteiro i, j 
 
 escreva("\nInforme o primeiro vetor a de tamanho n.\n") 
 para(i=0; i < TAM; i++){ 
 leia(a[i]) 
 } 
 
escreva("\nInforme o segundo vetor a de tamanho n.\n") 
 para(j=0; j<TAM; j++){ 
 leia(b[j]) 
 } 
 para(i=0; i< TAM; i++){ 
 c[i] = a[i] + b[i] 
 } 
 para(i=0; i < TAM; i++){ 
 escreva("\n", c[i]) 
 } 
 } 
} 
EXER 5- 
Faça um algoritmo que leia um vetor A de 10 números reais, construa e imprima um 
outro vetor B formado da seguinte maneira: 
 Os elementos de índice par são os correspondentes de A dividido por 2. 
 Os elementos de índice ímpar são os correspondentes de A multiplicados por 3. 
 
programa 
{ 
 funcao inicio() 
 { 
 const inteiro TAM = 5 // para adicionar um tamanho a um vetor tem que 
ser inteiro 
 real a[TAM], b[TAM] 
 inteiro i 
 escreva("Informe 10 numeros reais:\n") 
 para(i = 0; i < TAM; i++){ 
 leia(a[i]) 
 } 
 para(i=0; i < TAM; i++){ 
 se( i % 2 ==0) 
 b[i] = a[i] / 2 
 senao 
 b[i] = a[i] * 3 
 } 
 para(i=0; i < TAM; i++){ 
 escreva("\n",b[i]) 
 } 
 } 
} 
 
EXER 6 
Uma loja trabalha com 10 produtos diferentes identificados pelos números inteiros de 0 
a 9. O dono da loja anota a quantidade de cada produto vendida durante o mês. Ele tem 
uma tabela que indica para cada produto o preço de venda. Faça um algoritmo para 
calcular o faturamento mensal da loja, isto é: 
Faturamento = Σ(quantidade * preço) 
A tabela de preços e a quantidade vendida de cada produto são fornecidas pelo 
usuário. 
 
programa 
{ 
 funcao inicio() 
 { 
 
 
 const inteiro TAM = 3 
 real p[TAM], fatu = 0 
 inteiro q[TAM] 
 inteiro i, j 
 
 escreva("Insira os preços dos produtos:\n") 
 para(i = 0; i < TAM; i++){ 
 leia(p[i]) 
 } 
 escreva("\nInsira a quantidade dos produtos:\n") 
 para(j = 0 ; j < TAM; j++){ 
 leia(q[j]) 
 } 
 para(i=0; i < TAM; i++){ 
 fatu += (q[i] * p[i]) 
 
 } 
 escreva("\nO faturamento eh: ", fatu) 
 
 } 
} 
 
 
 
 
 
 
 
EXER7 
Faça um algoritmo que leia dois vetores, A e B, contendo cada um n elementos inteiros, 
intercale os elementos desses dois vetores formando um novo vetor C; imprima o vetor 
obtido. Exemplo: 
Entrada: 
A = {5, 7, 10, 1} 
B = {9, 8, 5, 3} 
Saída: 
C = {5, 9, 7, 8, 10, 5, 1, 3} 
 
programa 
{ 
 funcao inicio() 
 { 
 const inteiro TAM = 2 
 const inteiro TAM2 = 4 
 inteiro a[TAM], b[TAM], c[TAM2] 
 inteiro i, j 
 
 para(i =0; i < TAM; i++){ 
 leia(a[i]) 
 } 
 
para(j= 0; j < TAM; j++){ 
 leia(b[j]) 
 } 
 j=0 
 para(i =0; i < TAM2; i++){ 
 se(i % 2 ==0){ 
 c[i] = a[j] 
 } 
 senao{ 
 c[i] = b[j] 
 j++ //variavel que indica o indice, que só é incrementado 
depois que pega o valor de b. 
 } 
 } 
 para(i =0; i < TAM2; i++){ 
 escreva("{",c[i],"}",",") 
 } 
 } 
} 
 
 
 
LISTA DE EXERCICIO MATRIZES 
EXER 1 
Faça um algoritmo que leia uma matriz bidimensional A 4x4 de reais, divida cada 
elemento de uma linha da matriz pelo elemento da diagonal principal desta linha. 
Imprima a matriz modificada.*/ 
 
programa 
{ 
 funcao inicio() 
 { 
 inteiro l, c, div 
 inteiro mat[2][2], matA[2][2] 
 
 para (l = 0; l < 2; l++){ 
 para(c = 0; c < 2; c++){ 
 leia(mat[l][c]) 
 
 //vai apenas ler 
 } 
 } 
 para (l = 0; l < 2; l++){ 
 para(c = 0; c < 2; c++){ 
 matA[l][c] = mat[l][c] / mat[l][l] 
 } 
 
 } 
 para (l = 0; l < 2; l++){ 
 para(c = 0; c < 2; c++){ 
 escreva(matA[l][c]," ") 
 } 
 } 
 
 } 
} 
EXER2 
Faça um algoritmo que leia uma matriz bidimensional M 4x4 de inteiros, calcule e 
imprima a soma dos elementos situados abaixo da diagonal principal da matriz, 
incluindo os elementos da própria diagonal principal 
programa 
{ 
 funcao inicio() 
 { 
 const inteiro TAM = 4 
 
 inteiro l, c, soma = 0 
 inteiro mat[TAM][TAM] 
 
 para(l = 0; l < TAM; l++){ 
 para( c = 0 ; c < TAM; c++){ 
 leia(mat[l][c]) 
 } 
 
 } 
 para(l = 0; l < TAM; l++){ 
 para( c = 0 ; c <=l; c++){ 
 soma = soma + mat[l][c] 
 } 
 
 } 
 
 escreva("\nA soma total eh: ",soma) 
 
 } 
} 
 
EXER 3 
Se A e B são duas matrizes de dimensões m x n, sua soma é definida como segue: Se 
A ij e B ij são os elementos da i-ésima linha e j-ésima coluna de A e B, 
respectivamente, então A ij + B ij é o elemento da i-ésima linha e j-ésima coluna da sua 
soma, que também é m x n. Faça um algoritmo para ler duas matrizes de dimensões m x 
n, imprimi-las, calcular e imprimir a matriz resultante de sua soma. 
programa 
{ 
 funcao inicio() 
 { 
 const inteiro TAM = 3 
 const inteiro TAM2 = 2 
 inteiro l, c 
 inteiro a[TAM][TAM2], b[TAM][TAM2], result[TAM][TAM2] 
 
 escreva(" Informe a primeira matrix:\n") 
 para(l=0; l < TAM; l++){ 
 para(c=0; c < TAM2; c++){ 
 leia(a[l][c]) 
 } 
 } 
 
escreva(" Informe a segunda matrix:\n") 
 para(l=0; l < TAM; l++){ 
 para(c=0; c < TAM2; c++){ 
 leia(b[l][c]) 
 } 
 } 
 
 escreva("\nMatriz A:\n") 
 para(l=0; l < TAM; l++){ // Imprimir a matrix a 
 para(c=0; c < TAM2; c++){ 
 escreva(a[l][c]," ") 
 } 
 escreva("\n") 
 } 
 
 escreva("\nMatriz B:\n") 
 para(l=0; l < TAM; l++){ //imprimir a mtriz b 
 para(c=0; c < TAM2; c++){ 
 escreva(b[l][c]," ") 
 } 
 escreva("\n") 
 } 
 
 
 para(l=0; l < TAM; l++){ //somar a matriz e atribuir a uma soma 
 para(c=0; c < TAM2; c++){ 
 result[l][c] = a[l][c] + b[l][c] 
 } 
 } 
 
 
 escreva("O resultado da matrix eh:\n") 
 para(l=0; l < TAM; l++){ //imprimir o resultado da matrix result 
 para(c=0; c < TAM2; c++){ 
 escreva(result[l][c]," ") 
 
 } 
 escreva("\n") 
 } 
 
 
 
 } 
} 
 
EXER4 
Dada uma matriz Mat 4x5 , faça um algoritmo para somar os elementos de cada linha 
gerando um vetor SomaLinha. Em seguida, somar os elementos do vetor SomaLinha e 
armazenar na variável Total, que deve ser impressa junto com o vetor. 
programa 
{ 
 funcao inicio() 
 { 
 const inteiro TAM = 3 
 const inteiro TAM1 = 2 
 inteiro l, c, SomaLinha[TAM], total 
 inteiro mat[TAM][TAM1] 
 
 escreva("Informe uma matrix MxN:\n") 
 para (l=0; l < TAM; l++){ 
 para(c=0; c< TAM1; c++){leia(mat[l][c]) 
 } 
 } 
 para (l=0; l < TAM; l++){ 
 SomaLinha[l] = 0 // é necessario inicializar para não pegar valor 
aleatorio 
 para(c=0; c< TAM1; c++){ 
 SomaLinha[l] += mat[l][c] 
 
 } 
 } 
 total = 0 
 para (l=0; l < TAM; l++){ 
 total += SomaLinha[l] 
 
 } 
 escreva("\n") 
 escreva("o total eh: ",total) 
 escreva("\n") 
 para(l=0; l <TAM; l++){ 
 escreva("\nO valor do vetor soma linha eh:", SomaLinha[l]) 
 } 
 
 } 
 
} 
 
 
EXER 5 
Faça um algoritmo que leia os elementos de uma matriz A nxn e imprima os elementos 
da diagonal secundária e a soma desses elementos. 
programa 
{ 
 funcao inicio() 
 { 
 const inteiro TAM =2 
 inteiro l, c, mat[TAM][TAM], soma = 0 
 
 
 escreva("Informe os elementos da matriz:\n") 
 para(l=0; l < TAM; l++){ 
 para(c=0; c < TAM; c++){ 
 leia(mat[l][c]) 
 } 
 } 
 escreva("\nDiagonal secundaria: ") 
 para(l =0 ; l < TAM; l++){ // linha 
 para(c= 0; c < TAM; c++){ //coluna 
 se(l == (TAM-1)-c){ // se l == tam -1 ( o tamanho total da 
matrix - 1) (- menos) a quantidade da coluna no indice 
 soma += mat[l][c] // soma vai receber soma mais o 
valor dos elementos 
 escreva(mat[l][c]," ") 
 } 
 } 
 
 } 
 escreva("\n\nSoma: ",soma) 
 } 
} 
 
EXER7 
Faça um algoritmo que leia uma matriz A mxn e determine a matriz transposta de A. O 
algoritmo deve imprimir a matriz A e a sua transposta. 
 
programa 
{ 
 funcao inicio() 
 { 
 const inteiro TAM = 3 
 const inteiro TAM1 = 2 
 inteiro matA[TAM][TAM1], matt[TAM1][TAM] 
 inteiro l, c 
 
 escreva("Informe a matriz A: \n") 
 para (l = 0; l< TAM; l++){ //leu matriz a 
 para(c=0; c < TAM1; c++){ 
 leia(matA[l][c]) 
 } 
 } 
 
 escreva("\n\n") 
 para (l = 0; l< TAM1; l++){ // conversão para transposta 
 para(c=0; c < TAM; c++){ 
 matt[l][c]= matA[c][l] 
 
 } 
 } 
 escreva("\n\n") 
 escreva("\n--A matriz A--\n") 
 para (l = 0; l< TAM; l++){ //leu matriz A 
 para(c=0; c < TAM1; c++){ 
 escreva(matA[l][c]," ") 
 } 
 escreva("\n") 
 } 
 escreva("\n") 
 escreva("\n--A matriz transposta de A--\n") 
 para (l = 0; l< TAM1; l++){ //fez a conversão alterando as linhas e 
colunas 
 para(c=0; c < TAM; c++){ 
 
 escreva(matt[l][c]," ") 
 } 
 escreva("\n") 
 } 
 
 } 
} 
 
 
 
 
 
 
 
LISTA DE FUNÇÕES E PROCEDIMENTOS 
 
EXER1 
Escreva um algoritmo que leia dois números e exiba o menor entre eles. A verificação 
de qual deles é o menor deve ser realizada por uma função.*/ 
 
programa 
{ 
 
 funcao valormenor(){ 
 
 inteiro n1, n2 
 
 escreva("Informe um numero: ") 
 leia(n1) 
 escreva("Informe o segundo numero: ") 
 leia(n2) 
 se(n1 < n2){ 
 escreva("O numero menor inserido eh o primeiro:",n1) 
 } senao{ 
 escreva("O numero menor inserido eh o Segundo: ",n2) 
 } 
 
 } 
 
 
 funcao inicio() 
 { 
 escreva("Algoritmo para verificar o menor numero!!\n") 
 valormenor() 
 
 } 
} 
 
EXER2 
Crie uma função que realize a conversão para radianos a partir de graus, onde o valor 
em graus é passado como parâmetro e o valor em radianos deve ser retornado. Sabe-se 
que 180º (graus) está para ? radianos. Crie também um algoritmo para testar tal função. 
programa 
{ 
 funcao real converter( inteiro grau){ //sempre lembrar de colocar na funcao o 
tipo do retorno 
 
 const real PI = 3.14 
 real rad 
 
 rad = (grau * PI) /180 
 
 retorne rad 
 
 } 
 
 
 funcao inicio() 
 { 
 
 inteiro grau 
 real verifica 
 escreva("Informe a quantidade de graus:\n") 
 leia(grau) 
 verifica = converter(grau) 
 escreva("\nA quantidade em Radianos eh: ", verifica) 
 
 } 
} 
 
EXER3 
Escreva um módulo chamado Troca que troca os valores de duas variáveis do tipo 
inteiro. 
 
programa 
{ 
 
 funcao troca(){ 
 inteiro n1,n2, aux 
 
 escreva("Informe um numero: ") 
 leia(n1) 
 escreva("Informe o segundo numero: ") 
 leia(n2) 
 
 aux = n1 
 n1 = n2 
 n2 = aux 
 escreva("apos a troca o valor de n1 e:",n1) 
 escreva("\n") 
 escreva("apos a troca o valor de n2 e:",n2) 
 
 } 
 
 funcao inicio() 
 { 
 troca() 
 } 
} 
 
EXER4 
Escreva uma função que retorne 1 se um número for abundante e 0 caso contrário. Um 
número é abundante se a soma de seus divisores, exceto ele mesmo, for maior que o 
próprio número. Construa um algoritmo para testar a sua função. 
programa 
{ 
 funcao inteiro abundante (inteiro num){ 
 inteiro soma =0, i, dobro 
 para( i = 1; i <= num; i++){ 
 se(num % i == 0){ 
 soma += i 
 } 
 
 } 
 
 dobro = num * 2 
 se(soma > dobro){ 
 retorne 1 
 }senao 
 retorne 0 
 } 
 funcao inicio() 
 { 
 inteiro num, ret 
 escreva("Informe um numero: ") 
 leia(num) 
 ret = abundante(num) 
 escreva("\n") 
 se(ret == 1){ 
 escreva("Numero Abundante") 
 }senao 
 escreva("Numero nao abundante") 
 } 
} 
 
 
EXER5 
Faça uma função que calcule quantas vezes um número x é divisível por um número y. 
Construa um algoritmo para testar a sua função. 
programa 
{ 
 funcao inteiro calcular(inteiro n1, inteiro n2){ 
 inteiro div, result 
 
 result = n1 / n2 
 retorne result 
 } 
 
 
 funcao inicio() 
 { 
 inteiro n1, n2 
 inteiro verifica = 0 
 
 escreva("Informe um numero: ") 
 leia(n1) 
 escreva("Informe o segundo numero: ") 
 leia(n2) 
 
 verifica = calcular(n1,n2) 
 escreva("\nO N1 é divisivel por N2 ",verifica," vezes") 
 
 } 
} 
 
EXER6 
Escreva uma função que calcule o fatorial de um número. Seu cabeçalho deve ser: 
inteiro fat(inteiro num) 
 
programa 
{ 
 funcao inteiro fat(inteiro num){ 
 inteiro result= 1 
 para(; num >= 1; num--){ 
 result = result * num 
 } 
 retorne result 
 } 
 funcao inicio() 
 { 
 inteiro num, fatorial = 0 
 escreva("Informe um numero: ") 
 leia(num) 
 fatorial = fat(num) 
 escreva("\n") 
 escreva("O numero fatorial eh: ",fatorial) 
 } 
}

Outros materiais