Baixe o app para aproveitar ainda mais
Prévia do material em texto
� Atividade Avaliativa 02 – Algoritmos e Estruturas de Dados Curso : Engenharias Disciplina: Algoritmos e Programação Gabarito – Algorítmo em Portugol Faça um algoritmo em pseudocódigo (portugol) e um programa que receba três notas de um aluno, calcule e mostre a média aritmética e a mensagem constante na tabela a seguir. Aos alunos que ficaram para exame, calcule e mostre a nota que deverão tirar para serem aprovados, considerando que a média exigida é 6,0. Média Aritmética Mensagem 0,0 3,0 Reprovado 3,0 7,0 Exame 7,0 10,0 Aprovado início real: nota1, nota2, nota3, media; escreva: (“Digite a primeira nota”); leia: (nota1); escreva: (“Digite a segunda nota”); leia: (nota2); escreva: (“Digite a terceira nota”); leia: (nota3); media (nota1+nota2+nota3)/3; se (media <3) então escreva: (“Aluno Reprovado”); fimse; se (media >=3) E (media < 7) então escreva: (“Aluno em Exame Especial”); fimse se (7<= media) E (media <=10) então escreva: (“Aluno Aprovado”) fimse fim Faça um algoritmo e um programa que receba dois números e mostre o maior. início real: num1, num2; escreva: (“Digite o primeiro número”); leia: (num1); escreva: (“Digite o segundo número”); leia: (num2); se (num1 > num2) E (num1 != num2) então escreva: (“O maior número é:”, num1); senão se (num1 < num2) E (num1 != num2) então escreva: (“O maior número é:”, num2); fimse; fimse; fim Faça um algoritmo e um programa que receba três números diferentes e mostre-os em ordem crescente. Suponha que o usuário digitará três números diferentes. início real: num1, num2, num3; escreva: (“Digite o primeiro número”); leia: (num1); escreva: (“Digite o segundo número”); leia: (num2); escreva: (“Digite o terceiro número”); leia: (num3); se (num1 > num2) E (num2 > num3) então escreva: (“A ordem crescente dos números é:”, num3, num2, num 1); fimse; se (num1 > num3) E (num3 < num2) então escreva: (“A ordem crescente dos números é:”, num2, num3, num 1); fimse; se (num2 > num1) E (num1 > num3) então escreva: (“A ordem crescente dos números é:”, num3, num1, num 2); fimse; se (num2 > num3) E (num3 > num1) então escreva: (“A ordem crescente dos números é:”, num1, num3, num 2); fimse; se (num3 > num1) E (num1 > num2) então escreva: (“A ordem crescente dos números é:”, num2, num1, num 3); fimse; se (num3 > num2) E (num2 > num1) então escreva: (“A ordem crescente dos números é:”, num1, num2, num 3); fimse; fim Faça um algoritmo e um programa que receba três números obrigatoriamente em ordem crescente e um quarto número que não siga esta regra. Mostre, em seguida, os quatro números em ordem decrescente. Suponha que o usuário digitará quatro números diferentes. início real: num1, num2, num3, num4; escreva: (“Você deverá digitar três números em ordem crescente”); escreva: (“Digite o primeiro número”); leia: (num1); escreva: (“Digite o segundo número”); leia: (num2); escreva: (“Digite o terceiro número”); leia: (num3); escreva: (“Digire um quarto número diferente dos três primeiros”); leia: (num4); se (num4 > num3) então escreva: (“A ordem decrescente dos números é:”, num1, num2, num 3, num4); fimse; se (num4 > num2) E (num3> num4) então escreva: (“A ordem decrescente dos números é:”, num3, num4, num 2, num1); fimse; se (num4 > num1) E (num2 > num4) então escreva: (“A ordem decrescente dos números é:”, num3, num2, num 3, num1); fimse; se (num4 < num1) então escreva: (“A ordem decrescente dos números é:”, num3, num2, num 1, num4); fimse; fim Faça um algoritmo e um programa que verifique a validade de uma senha fornecida pelo usuário. A senha é 4531. O programa deve mostrar uma mensagem de permissão de acesso ou não. início inteiro: senha; escreva: (“Digite a senha”); leia: (senha); se (senha == 4531) então escreva: (“Acesso Liberado”); senão escreva: (“Senha Inválida - Acesso Negado”); fimse; fim Faça um algoritmo e um programa que receba a idade de um nadador e mostre sua categoria, usando as regras a seguir. Para idade inferior a 5 anos não deverá mostrar mensagem. Categoria Idade Infantil 5 a7 Juvenil 8 a 10 Adolescente 11 a 15 Adulto 16 a 30 Sênior acima de 30 Utilizando estrutura de seleção encadeada início inteiro: idade; escreva: (“Digite a idade do nadador”); leia: (idade); se ((idade>=5) E (idade <=7)) então escreva: (“Nadador da categoria INFANTIL”); fimse; se ((idade>=8) E (idade <=10)) então escreva: (“Nadador da categoria JUVENIL”); fimse; se ((idade>=11) E (idade <=15)) então escreva: (“Nadador da categoria ADOLESCENTE”); fimse; se ((idade>=16) E (idade <=30)) então escreva: (“Nadador da categoria ADULTO”); fimse; se (idade>30) então escreva: (“Nadador da categoria SÊNIOR”); fimse; fim Utilizando estrutura de múltipla escolha início inteiro: idade; escreva: (“Digite a idade do nadador”); leia: (idade); escolha (idade) caso 5-7: escreva: (“Nadador da categoria INFANTIL”); caso 8-10: escreva: (“Nadador da categoria JUVENIL”); caso 11-15: escreva: (“Nadador da categoria ADOLESCENTE”); caso 16-30: escreva: (“Nadador da categoria ADULTO”); caso 31-200: escreva: (“Nadador da categoria SÊNIOR”); fimescolha fim Faça um algoritmo e um programa que receba: O código do produto comprado; e A quantidade comprada do produto. Calcule e mostre: O preço unitário do produto, seguindo a tabela I; O preço total da nota; O valor do desconto, seguindo a tabela II e aplicado sobre o preço total da nota; e O preço final da nota depois do desconto. Tabela I Tabela II Código Preço Preço Total da Nota % de Desconto 1 a 10 R$ 10,00 Até R$ 250,00 5% 11 a 20 R$ 15,00 Entre R$ 250,00 e R$ 500,00 10% 21 a 30 R$ 20,00 Acima de R$ 500,00 15% 31 a 40 R$ 30,00 início inteiro: codigo, quant; real: preco_tot, valor_desc, preco_final; escreva: (“Digite o código do produto comprado”); leia: (codigo); escreva: (“Digite a quantidade do produto comprado”); leia: (quant); escolha (código) caso 1-10: preco_tot ( quant*10; se (preco_tot <= 250) então início valor_desc ( preco_tot * 0.05; preco_final ( preco_tot - valor_desc ; escreva: (“O preço unitário do Produto é R$ 10,00”); escreva: (“O preço total da nota é:” , preco_tot); escreva: (“O valor do desconto é:”, valor_desc); escreva: (“O preço final da nota é:”, preco_final); fim fimse; se ((preco_tot > 250) E (preco_tot <= 500) então início valor_desc ( preco_tot * 0,10; preco_final ( preco_tot - valor_desc ; escreva: (“O preço unitário do Produto é R$ 10,00”); escreva: (“O preço total da nota é:” , preco_tot); escreva: (“O valor do desconto é:”, valor_desc); escreva: (“O preço final da nota é:”, preco_final); fim fimse; se (preco_tot > 500) então início valor_desc ( preco_tot * 0,15; preco_final ( preco_tot - valor_desc ; escreva: (“O preço unitário do Produto é R$ 10,00”); escreva: (“O preço total da nota é:” , preco_tot); escreva: (“O valor do desconto é:”, valor_desc); escreva: (“O preço final da nota é:”, preco_final);fim fimse; caso 11-20: preco_tot ( quant*15; se (preco_tot <= 250) então início valor_desc ( preco_tot * 0.05; preco_final ( preco_tot - valor_desc ; escreva: (“O preço unitário do Produto é R$ 15,00”); escreva: (“O preço total da nota é:” , preco_tot); escreva: (“O valor do desconto é:”, valor_desc); escreva: (“O preço final da nota é:”, preco_final); fim fimse; se ((preco_tot > 250) E (preco_tot <= 500) então início valor_desc ( preco_tot * 0,10; preco_final ( preco_tot - valor_desc ; escreva: (“O preço unitário do Produto é R$ 15,00”); escreva: (“O preço total da nota é:” , preco_tot); escreva: (“O valor do desconto é:”, valor_desc); escreva: (“O preço final da nota é:”, preco_final); fim fimse; se (preco_tot > 500) então início valor_desc ( preco_tot * 0,15; preco_final ( preco_tot - valor_desc ; escreva: (“O preço unitário do Produto é R$ 15,00”); escreva: (“O preço total da nota é:” , preco_tot); escreva: (“O valor do desconto é:”, valor_desc); escreva: (“O preço final da nota é:”, preco_final); fim fimse; caso 21-30: escreva: preco_tot ( quant*20; se (preco_tot <= 250) então início valor_desc ( preco_tot * 0.05; preco_final ( preco_tot - valor_desc ; escreva: (“O preço unitário do Produto é R$ 20,00”); escreva: (“O preço total da nota é:” , preco_tot); escreva: (“O valor do desconto é:”, valor_desc); escreva: (“O preço final da nota é:”, preco_final); fim fimse; se ((preco_tot > 250) E (preco_tot <= 500) então início valor_desc ( preco_tot * 0,10; preco_final ( preco_tot - valor_desc ; escreva: (“O preço unitário do Produto é R$ 20,00”); escreva: (“O preço total da nota é:” , preco_tot); escreva: (“O valor do desconto é:”, valor_desc); escreva: (“O preço final da nota é:”, preco_final); fim fimse; se (preco_tot > 500) então início valor_desc ( preco_tot * 0,15; preco_final ( preco_tot - valor_desc ; escreva: (“O preço unitário do Produto é R$ 20,00”); escreva: (“O preço total da nota é:” , preco_tot); escreva: (“O valor do desconto é:”, valor_desc); escreva: (“O preço final da nota é:”, preco_final); fim fimse; caso 31- 40: preco_tot ( quant*30; se (preco_tot <= 250) então início valor_desc ( preco_tot * 0.05; preco_final ( preco_tot - valor_desc ; escreva: (“O preço unitário do Produto é R$ 30,00”); escreva: (“O preço total da nota é:” , preco_tot); escreva: (“O valor do desconto é:”, valor_desc); escreva: (“O preço final da nota é:”, preco_final); fim fimse; se ((preco_tot > 250) E (preco_tot <= 500) então início valor_desc ( preco_tot * 0,10; preco_final ( preco_tot - valor_desc ; escreva: (“O preço unitário do Produto é R$ 30,00”); escreva: (“O preço total da nota é:” , preco_tot); escreva: (“O valor do desconto é:”, valor_desc); escreva: (“O preço final da nota é:”, preco_final); fim fimse; se (preco_tot > 500) então início valor_desc ( preco_tot * 0,15; preco_final ( preco_tot - valor_desc ; escreva: (“O preço unitário do Produto é R$ 30,00”); escreva: (“O preço total da nota é:” , preco_tot); escreva: (“O valor do desconto é:”, valor_desc); escreva: (“O preço final da nota é:”, preco_final); fim fimse; fimescolha fim Faça um algoritmo e um programa em C/C++ que a partir de um mês fornecido ( número inteiro de 1 a 12 ), apresente o nome dele por extenso ou uma mensagem de Mês Inválido. Início inteiro: Mes; leia (Mes); escolha (Mes) caso 1: escreva (“Janeiro”); caso 2: escreva (“Fevereiro”); caso 3: escreva (“Março”); caso 4: escreva (“Abril”); caso 5: escreva (“Maio”); caso 6: escreva (“Junho”); caso 7: escreva (“Julho”); caso 8: escreva (“Agosto”); caso 9: escreva (“Setembro”); caso 10: escreva (“Outubro”); caso 11: escreva (“Novembro”); caso 12: escreva (“Dezembro”); caso contrário: escreva (“Mês inválido”); fimescolha; fim. Em uma eleição presidencial existem quatro candidatos. Os votos são informados por códigos. Os dados utilizados para a escrutinagem obedecem à seguinte codificação: 1, 2, 3, 4 = voto para os respectivos candidatos 5 = voto nulo 6 = voto em branco Faça um algoritmo e um programa em C/C++ que calcule e escreva: O total de votos para cada candidato e seu percentual sobre o total O total de votos nulos percentual sobre o total O total de votos brancos e seu percentual sobre o total Como finalizador do conjunto de votos tem-se o valor “ 0 “. início inteiro: V, // voto VC1, VC2, VC3, VC4, VN, VB, // votos para os respectivos códigos TotVotos; // total de votos real: P1, P2, P3, P4, P5, P6; // porcentagem VC1 ( 0; VC2 ( 0; VC3 ( 0; VC4 ( 0; VN ( 0; VB ( 0; TotVotos ( 0; repita leia (V); escolha (V) caso 1: VC1 ( VC1 + 1; caso 2: VC2 ( VC2 + 1; caso 3: VC3 ( VC3 + 1; caso 4: VC4 ( VC4 + 1; caso 5: VN ( VC5 + 1; caso 6: VB ( VB + 1; fimescolha; até (V = 0); TotVotos ( (VC1+VC2+VC3+VC4+VN+VB); se (TotVotos > 0) então início P1 ( (VC1*100)/TotVotos; P2 ( (VC2*100)/TotVotos; P3 ( (VC3*100)/TotVotos; P4 ( (VC4*100)/TotVotos; P5 ( (VC5*100)/TotVotos; P6 ( (VB*100)/TotVotos; escreva (“Total de votos do candidato 1”, VC1, “Percentual de votos do candidato 1,P1); escreva (“Total de votos do candidato 2”, VC2, “Percentual de votos do candidato 2,P2); escreva (“Total de votos do candidato 3”, VC3, “Percentual de votos do candidato 3,P3); escreva (“Total de votos do candidato 4”, VC4, “Percentual de votos do candidato 4,P4); escreva (“Votos nulos”, VN, P5); escreva (“Votos em branco”, V6, P6); fim; fimse; fim. Faça um algoritmo e um programa em C/C++ que leia um conjunto de dados contendo altura e sexo (“M” para masculino e “F” para feminino) de 50 pessoas e, depois, calcule e escreva: A maior e a menor altura do grupo A média de altura das mulheres O Número de homens e a diferença porcentual entre eles e as mulheres. início inteiro: V, // variável de controle QH, QM, // qdte de homens e de mulheres SomaFem; // soma das alturas das mulheres real: Alt, // altura MaiorAlt, MenorAlt, // maior e menor altura do grupo PH, PM, // porcentagem de homens e de mulheres MédiaFem; // média de altura das mulheres caracter: Sexo; QH ( 0; QM ( 0; SomaFem ( 0; leia (Alt, Sexo); MaiorAlt ( Alt; MenorAlt ( Alt; V ( 1; enquanto (V < 50) faça escolha (Sexo) caso “M”, “m”: QH ( QH + 1; caso “F”, “f”: início QM ( QM + 1; SomaFem ( SomaFem + Alt; fim; fimescolha; se (Alt > MaiorAlt) então MaiorAlt ( Alt; fimse; se (Alt < MenorAlt) então MenorAlt ( Alt; fimse; leia (Alt, Sexo); V ( V + 1; fimenquanto; PH ( (QH*100)/50; PM ( (QM*100)/50; MédiaFem ( SomaFem/QM; escreva (“Maior altura”, MaiorAlt, ”Menor altura”, MenorAlt); escreva (“Média de altura das mulheres”, MédiaFem); escreva (“Total de homens”, QH); escreva(“Diferença percentual homens e mulheres”, PH - PM); fim. Faça um algoritmo e um programa em C/C++ que seja capaz de dar a classificação olímpica de 3 países informados. Para cada país é informado o nome, a quantidade de medalhas de ouro prata e bronze. Considere que cada medalha de ouro tem peso 3, cada prata tem peso 2 e cada bronze tem peso 1. Início Inteiro: P1ouro, P1prata, P1bronze, P2ouro, P2prata, P2bronze, P3ouro, P3prata, P3bronze, P1total, P2total, P3total; Caracter: Nomepais1, Nomepais2, Nomepais3; escreva (“digite o nome do pais 1”); leia (nomepais1); escreva (“digite a quantidade de medalhas de ouro do “ nomepais1); leia (P1ouro); escreva (“digite a quantidade de medalhas de prata do “, nomepais1); leia (P1prata); escreva (“digite a quantidade de medalhas de bronze do ”, nomepais1); leia (P1bronze); escreva (“digite o nome do pais 2”); leia (nomepais2); escreva (“digite a quantidade de medalhas de ouro do “, nomepais2); leia (P2ouro); escreva (“digite a quantidade de medalhas de prata do “, nomepais2); leia (P2prata); escreva (“digite a quantidade de medalhas de bronze do “, nomepais2); leia (P2bronze); escreva (“digite o nome do pais 3”); leia (nomepais3); escreva (“digite a quantidade de medalhas de ouro do “, nomepais3); leia (P3ouro); escreva (“digite a quantidade de medalhas de prata do “, nomepais3); leia (P3prata); escreva (“digite a quantidade de medalhas de bronze do “, nomepais3); leia (P3bronze); P1total <- (3*P1ouro + 2*P1prata + P1bronze); P2total <- (3*P2ouro + 2*P2prata + P2bronze); P3total <- (3*P3ouro + 2*P3prata + P3bronze); se (P1total > P2total) e (P1total > P3total) então se (P2total > P3total) então inicio escreva (Nomepais1,”é o primeiro colocado”); escreva (Nomepais2,”é o segundo colocado”); escreva (Nomepais3,”é o terceiro colocado”); fim senao inicio escreva (Nomepais1,”é o primeiro colocado”); escreva (Nomepais3,”é o segundo colocado”); escreva (Nomepais2,”é o terceiro colocado”); fim fimse; fimse; se (P2total > P1total) e (P2total > P3total) então se (P1total > P3total) então inicio escreva (Nomepais2,”é o primeiro colocado”); escreva (Nomepais1,”é o segundo colocado”); escreva (Nomepais3,”é o terceiro colocado”); fim senao inicio escreva (Nomepais2,”é o primeiro colocado”); escreva (Nomepais3,”é o segundo colocado”); escreva (Nomepais1,”é o terceiro colocado”); fim fimse; fimse; se (P3total > P1total) e (P3total > P2total) então se (P1total > P2total) então inicio escreva (Nomepais3,”é o primeiro colocado”); escreva (Nomepais1,”é o segundo colocado”); escreva (Nomepais2,”é o terceiro colocado”); fim senao inicio escreva (Nomepais3,”é o primeiro colocado”); escreva (Nomepais2,”é o segundo colocado”); escreva (Nomepais1,”é o terceiro colocado”); fim fimse; fimse; fim Faça um algoritmo e um programa em C/C++ que calcule a média aritmética de um conjunto de números pares que forem fornecidos pelo usuário. O valor de finalização será a entrada do número “0”. Observe que nada impede que o usuário forneça quantos números impares quiser, com a ressalva de que eles não poderão ser acumulados. Início Inteiro: N, //Numero fornecido pelo usuário CON, //Contador ACM; //Acumulador real: MNP; //Media dos números pares CON <- 0; //inicialização do contador ACM<- 0; //inicialização do acumulador N<- 1; //inicialização da variável de leitura Enquanto (N<=>0) faça //teste de condição de parada leia (N); se (N>0) e ((N mod 2)=0) //resto da divisão é igual a zero ? então //o numero é par (divisível por 2 ) e maior que zero início ACM <- ACM + N; // acumula em ACM os números pares CON <- CON + 1; //contagem de números pares fim; fimse; fimenquanto; se (CON > 0 ) //houve pelo menos um numero par valido então início MNP <- ACM/CON; escreva (“media = “, MNP); fim; senão escreva (“Nenhum numero par foi fornecido”); fimse; fim Imagine uma brincadeira entre dois colegas, na qual um pensa um número e o outro deve fazer chutes até acertar o número imaginado. Como dica, a cada tentativa é dito se o chute foi alto ou foi baixo. Faça um algoritmo e um programa em C/C++ dentro deste conceito que leia o número imaginado e os chutes, ao final mostre quantas tentativas foram necessárias para descobrir o número. Inteiro: NUM, //numero inicial CHUTE, //tentativa de acerto do numero TENT; //tentativas de acerto do numero TENT <- 0 leia (NUM); repita leia (chute); TENT <- TENT + 1; se (chute > NUM) então escreva (“Chutou alto”); senão se (CHUTE < NUM); então escreva (“Chutou baixo “); fimse; fimse; até (NUM = CHUTE); fimrepita escreva (“Voce acertou o numero em “,TENT, “tentativas”); fim Faça um algoritmo e um programa em C/C++ que permita fazer um levantamento do estoque de vinhos de uma adega, tendo como dados de entrada tipos de vinho, sendo: “T” para tinto, “B” para branco e “R” para rosê. Especifique a porcentagem de cada tipo sobre o total geral de vinhos; a quantidade de vinhos é desconhecida, utilize como finalizador “F” de fim. Algoritmo DECLARE TV CARACTERE // TV tipo de vinho DECLARE CONV, CONB, CONR, CONT NUMERICO (inteiro) // CONV contador de vinho, CONB contador de vinho branco, CONR contador de vinho rosé, CONT contador de vinho tinto DECLARE PVB, PVR, PVT NUMERICO (real) //porcentagem de branco, rosé e tinto // inicialização dos diversos contadores CONV <- 0; CONB <- 0; CONR <- 0; CONT <- 0; Repita Escreva (“Digite B para vinhos branco, R para vinhos Rosé, T para vinhos Tintos e para finalizar digite F”) Leia (TV); escolha TV caso “B”: CONB <- CONB + 1; caso “R”: CONR <- CONR + 1; caso “T”: CONT <- CONT + 1; fimescolha; até TV = “F”; CONV <- CONB + CONR + CONT; se (CONV > 0) então início PVB <- (CONB * 100)/CONV; PVR <- (CONR * 100)/CONV; PVT <- (CONT * 100)/CONV; escreva (“ Porcentagem de Branco = “, PVB); escreva (“ Porcentagem de Rosé = “, PR); escreva (“ Porcentagem de Tinto = “, PVT); fim; senão escreva (“Nenhum tipo de vinho foi encontrado”); fimse; fim Faça um algoritmo e um programa em C/C++ que efetue a soma de todos os números ímpares que são múltiplos de 3 e que se encontram no conjunto dos números de 1 até 500. Início Inteiro: SI, //Soma dos números impares múltiplos de três i; //variável de controle SI <- 0; Para i de 1 até 500 passo 1 faça se (i mod 2 = 1) //o número é impar então início se (i mod 3 = 0) //múltiplo de três então SI <- SI + i; fimse; fim; fimse; fimpara; escreva ( “ A soma dos números impares múltiplos de 3 eh “, SI); fim Faça um algoritmo programa em C/C++ que receba quatro notas de um aluno, calcule e mostre a média aritmética das notas e a mensagem de aprovado ou reprovado, considerando para aprovação a nota 6,5. início real: nota1, nota2, nota3, nota4, media; escreva: (“Digite a primeira nota”); leia: (nota1); escreva: (“Digite a segunda nota”); leia:(nota2); escreva: (“Digite a terceira nota”); leia: (nota3); escreva: (“Digite a quarta nota”); leia: (nota4); media (nota1+nota2+nota3+nota4)/4; se (media >= 6,5) então escreva: (“Aluno Aprovado”); senão escreva: (“Aluno Reprovado”); fimse; fim
Compartilhar