Baixe o app para aproveitar ainda mais
Prévia do material em texto
Lógica de Programação e Algoritmos Exercícios Resolvidos Prof. André Y Kusumoto 1) Escreva um algoritmo que, a partir de um mes fornecido (numero inteiro de 1 a 12), apresente o nome dele por extenso. declare mes: numerico; inicio Ler(mes); Escolha (mes) caso 1: Escrever ("Janeiro"); caso 2: Escrever ("Fevereiro"); caso 3: Escrever ("Março"); caso 4: Escrever ("Abril"); caso 5: Escrever ("Maio"); caso 6: Escrever ("Junho"); caso 7: Escrever ("Julho"); caso 8: Escrever ("Agosto"); caso 9: Escrever ("Setembro"); caso 10: Escrever ("Outubro"); caso 11: Escrever ("NOvembro"); caso 12: Escrever ("Dezembro"); senao: Escrever("Mes invalido"); fim-escolha; Fim 2) Escreva um algoritmo que leia traz valores inteiros diferentes e mostre-os em ordem decrescente. declare a,b,c: numerico; inicio ler(a,b,c); se (a>b) e (a>c) então se (b>c) então escrever(a,b,c); senão escrever(a,c,b); fim-se; senão se (b>c) então se (a>c) então escrever(b,a,c); senão escrever(b,c,a); fim-se; senão se (a>b) então escrever(c,a,b); senão escrever(c,b,a); fim-se; fim-se; fim-se; fim 3) Construa um algoritmo que leia 500 valores inteiros e positivos e: a) Encontre o maior valor b) Encontre o menor valor c) Calcule a média dos números lidos Solução 1 declare n, aux, maior, menor, soma: numerico; inicio maior <- 0; soma <- 0; para aux <- 1 até 500 faça ler(n); se (n > maior) então maior <- n; fim-se; se (aux > 1) então se (n < menor) então menor <- n; fim-se; senão menor <- n; fim-se; soma <- soma + n; fim-para; escrever(maior, menor, soma/500); fim Solução 2 declare n, aux, maior, menor, soma: numerico; inicio ler(n); maior <- n; menor <- n; soma <- n; para aux <- 2 até 500 faça ler(n); se (n > maior) então maior <- n; fim-se; se (n < menor) então menor <- n; fim-se; soma <- soma + n; fim-para; escrever(maior, menor, soma/500); Fim 4) faça um algoritmo e o seu diagrama de blocos que calcule a média de salários de uma empresa, pedindo ao usuário o registro dos funcionários e os salários e devolvendo a média, o salário mais alto e o salário mais baixo. Use registro = 0 (zero) para encerrar a leitura. Declare id, salario, cont, soma_sal, maior_sal, menor_sal: numerico; Inicio soma_sal <- 0; maior_sal <- 0; cont <- 0; ler(id); enquanto (id <> 0) faça ler(salario); soma_sal <- soma_sal + salario; se (salario > maior_sal) então maior_sal <- salario; fim-se; se (cont <> 0) então se (salario < menor_salario) então menor_salario <- salario; fim-se; senão menor_salario <- salario; fim-se; cont <- cont + 1; ler(id); fim-enquanto; escrever(maior_sal, menor_sal, soma_sal/cont); Fim 5) Foi realizada uma pesquisa de algumas características físicas da população de uma certa região, a qual coletaram os seguintes dados referentes a cada habitante para serem analisados: - sexo (M e F) - cor dos olhos (azuis, verdes ou castanhos) - cor dos cabelos (louros, castanhos, pretos) - idade Faça um algoritmo que determine e escreva: a) a maior idade dos habitantes; b) a quantidade de indivíduos do sexo feminino cuja idade estão entre 18 e 35 anos, inclusive; c) a quantidade de indivíduos que tenham olhos verdes e cabelos louros; O final do conjunto de habitantes é reconhecido pelo valor "N" informado como resposta a uma pergunta "Deseja Continuar (s/n)?" Declare sexo, olhos, cabelos, resp: caracter; idade, maior, qtdFIdade, qtdOvCl: numerico; Inicio maior <- 0; qtdFIdade <- 0; qtdOvCl <- 0; repita ler(sexo, olhos, cabelos); ler(idade); se (idade > maior) então maior <- maior + idade; fim-se; se ((sexo = "F") e (idade >= 18 e idade <= 35)) então qtdFIdade <- qtdFIdade + 1; fim-se; se (olhos = "V" e cabelos = "L") então qtdOvCl <- qtdOvCl + 1; fim-se; escrever("Deseja Continuar (S/N)?"); ler(resp); até que (resp = "N"); escrever(maior, qtdFIdade, qtdOvCl); Fim 6) faça um algoritmo para ler 10 valores que devem ser armazenados em um vetor, calcular e mostrar a soma e a média desses valores. declare val : vetor[10] de numerico; soma, aux: numerico; inicio para aux <- 1 até 10 faça ler(val[aux]); fim-para; soma <- 0; para aux <- 1 até 10 faça soma <- soma + val[aux]; fim-para; escrever (soma, soma/10); fim 7) Monte um algoritmo que leia as vendas de cada vendedor durante uma semana, armazenando-as em uma matriz 3x5. Ao final informe: a) Faturamento diário da empresa; b) faturamento semanal da empresa; c) faturamento semanal por vendedor d) Informar qual o vendedor de maior faturamento semanal. declare vendas : matriz [3,5] de numerico; lin, col, fatDia, FatSemEmp, FatSemVend, MaiorFat: numerico; vendedoras : vetor [3] de caracter; diasemana : vetor [5] de caracter; inicio vendedoras[1] <- "Sandra"; vendedoras[2] <- "Vera"; vendedoras[3] <- "Maria"; diasemana[1] <- "Segunda-feira"; diasemana[2] <- "Terça-feira"; diasemana[3] <- "Quarta-feira"; diasemana[4] <- "Quinta-feira"; diasemana[5] <- "Sexta-feira"; para lin <- 1 até 3 faça para col <- 1 até 5 faça ler(vendas[lin,col]); fim-para; fim-para; { Letra a - Faturamento diario da empresa } para col <- 1 até 5 faça fatDia <- 0; para lin <- 1 até 3 faça fatDia <- FatDia + vendas[lin,col]; fim-para; escrever("O faturamento da ",diasemana[col]," foi ", fatDia); fim-para; { Letra b - Faturamento semanal da empresa } fatSemEmp <- 0; para lin <- 1 até 3 faça para col <- 1 até 5 faça fatSemEmp <- fatSemEmp + vendas[lin,col]; fim-para; fim-para; escrever("O faturamento semanal da empresa foi ", fatSemEmp); { Letra c e d - vendedor com maior faturamento semanal } MaiorFat <- 0; para lin <- 1 até 3 faça fatSemVend <- 0; para col <- 1 até 5 faça fatSemVend <- fatSemVend + vendas[lin,col]; fim-para; se (fatSemVend > MaiorFat) então MaiorFat <- fatSemVend; indice <- lin; fim-se; escrever("O faturamento da ", vendedoras[lin]," na semana foi ", fatSemVend); fim-para; escrever("A vendedora de maior faturamento semanal foi: ", vendedoras[indice]); fim 8) Escreva um algoritmo que lê uma matriz 5x5, calcule e mostre as somas: a) da linha 4; b) da coluna 2; c) da diagonal principal; d) da diagonal secundária; e) de todos os elementos da matriz; declare mat : matriz [5,5] de numerico; lin, col, som_l4, som_c2, som_dp, som_ds, soma, x, aux: numerico; inicio para lin <- 1 até 5 faça para col <- 1 até 5 faça ler(mat[lin,col]); fim-para; fim-para; { letra a - soma da linha 4 } som_l4 <- 0;para col <- 1 até 5 faça som_l4 <- som_l4 + mat[4,col]; fim-para; escrever (som_l4); { letra b - soma da coluna 2 } som_c2 <- 0; para lin <- 1 até 5 faça som_c2 <- som_c2 + mat[lin,2]; fim-para; escrever (som_c2); { letra c - diagonal principal solução C1 } som_dp <- 0; para lin <- 1 até 5 faça para col <- 1 até 5 faça se (lin=col) então som_dp <- som_dp + mat[lin,col]; fim-se; fim-para; fim-para; escrever (som_dp); { solução C2 } som_dp <- 0; para x <- 1 até 5 faça som_dp <- som_dp + mat[x,x]; fim-para; escrever (som_dp); { letra d - diagonal secundária } som_ds <- 0; aux <- 5; para lin <- 1 até 5 faça som_ds <- som_ds + mat[lin,aux]; aux <- aux - 1; fim-para; escrever (som_ds); { letra e - todos os elementos } soma <- 0; para lin <- 1 até 5 faça para col <- 1 até 5 faça soma <- soma + mat[lin,col]; fim-para; fim-para; escrever (soma); fim
Compartilhar