Prévia do material em texto
UNIVERSIDADE VEIGA DE ALMEIDA GRADUAÇÃO POLLYANNA FORTES BAPTISTA ATIVIDADE INDIVIDUAL AVALIATIVA (A2) Lista de exercícios CABO FRIO 2020 1. Crie um programa que tenha um procedimento Gerador( ) que, quando chamado, mostre a mensagem "Olá, Mundo!" com algum componente visual (linhas) Algoritmo "ola_mundo" Procedimento Gerador() Inicio Escreval ("-------------------") Escreval ("--- Olá, mundo! ---") Escreval ("-------------------") Fimprocedimento Inicio Gerador() Fimalgoritmo 2. Crie um programa que melhore o procedimento Gerador( ) da questão anterior para que mostre uma mensagem personalizada, passada como parâmetro. Algoritmo "suplica-de-aluna" Procedimento Gerador() Inicio Escreval ("-+-+-+-+-+-+-+-+-+-+-+-+-+-") Escreval ("Ricardo, me dá nota máxima") Escreval ("-+-+-+-+-+-+-+-+-+-+-+-+-+-") Escreval ("+-+- ps: tô merecendo +-+-+") Fimprocedimento Inicio Gerador() Fimalgoritmo 3. Desenvolva um algoritmo que leia dois valores pelo teclado e passe esses valores para um procedimento Somador( ) que vai calcular e mostrar a soma entre eles. Algoritmo "soma" Var X, Y, S: real Procedimento somador (A, B: REAL) Inicio Limpatela Escreval ("O primeiro valor recebido é: ", A) Escreval ("O segundo valor recebido é: ", B) S <- A + B Escreval ("A soma dos números é: ", S) Fimprocedimento Inicio Escreva ("digite um valor: ") Leia (X) Escreva ("digite outro valor: ") Leia (Y) Somador (X, Y) Fimalgoritmo 4. Desenvolva um algoritmo que leia dois valores pelo teclado e passe esses valores para um procedimento Maior( ) que vai verificar qual deles é o maior e mostrá-lo na tela. Caso os dois valores sejam iguais, mostrar uma mensagem informando essa característica. Algoritmo "Maior" Var X, Y, MaiorValor: inteiro Procedimento Maior() inicio Se (X > Y) então MaiorValor <- X Senão Se (Y > X ) então MaiorValor <- Y Senão Se (Y = X) então MaiorValor <- X Escreval ("Ambos valores são iguais, portanto, o Maior Valor é o próprio valor") Fimse Fimse Fimse Fimprocedimento Inicio Escreva ("Digite um valor: ") Leia (X) Escreva ("Digite outro valor: ") Leia (Y) Limpatela Maior() Escreval ("Detector de Maior Valor") Escreval ("Maior valor é: ", MaiorValor) Fimalgoritmo 5. Crie uma lógica que leia um número inteiro e passe para um procedimento ParOuImpar( ) que vai verificar e mostrar na tela se o valor passado como parâmetro é PAR ou ÍMPAR. Algoritmo "Impar_par" Var X: Inteiro R: Real Procedimento ImparOuPar() inicio Escreval ("Detector de números ÍMPAR ou PAR") Fimprocedimento Procedimento ParOuImpar() Inicio Limpatela Escreval ("Detector de números ÍMPAR ou PAR") Escreval ("O valor escolhido é: ", R) Se (R % 2 = 0) então Escreval ("O número", X, " é PAR") Senão Escreval ("O número", X," é ÍMPAR") Fimse Fimprocedimento Inicio ImparOuPar() Escreva ("Digite um valor: ") Leia ( X ) R <- ( X ) ParOuImpar() Fimalgoritmo 6. Faça um programa que tenha um procedimento chamado Contador() que recebe três valores como parâmetro: o início, o fim e o incremento de uma contagem. O programa principal deve solicitar a digitação desses valores e passá-los ao procedimento, que vai mostrar a contagem na tela. Algoritmo "Contagem" Var X, Y, Z : inteiro Procedimento Contador() Var I: inteiro Inicio Para I <- X até Y passo Z faça Escreva (I) Fimpara Fimprocedimento Inicio Escreva ("Diga qual o primeiro número da contagem: ") Leia (X) escreva ("Diga qual será o último número da contagem: ") leia (Y) escreva ("Diga o incremento da contagem: ") leia (Z) Contador() Fimalgoritmo 7. Refaça o Exercício 3, só que agora em forma de função Somador( ), que vai receber dois parâmetros e vai retornar o resultado da soma entre eles para o programa principal. Algoritmo "soma" Var X, Y, Res: real Função somador (A, B: real): real var S: real Inicio S <- A + B Retorne S Fimfunção Inicio Escreva ("digite um valor: ") Leia (X) Escreva ("digite outro valor: ") Leia (Y) Res <- Somador (X,Y) Escreval ("A soma é: ", Res) Fimalgoritmo 8. Crie um programa que tenha uma função Media( ), que vai receber as 2 notas de um aluno e retornar a sua média para o programa principal. Algoritmo "media" Var X, Y, Res: real A: caractere Função Media (A, B: real): real var M: real Inicio M <- (A + B)/ 2 Retorne M Fimfunção Inicio Escreva ("Digite o nome do Aluno: ") Leia (A) Escreva ("Digite a nota da A1: ") Leia (X) Escreva ("Digite a nota da A2: ") Leia (Y) Res <- Media (X,Y) Escreval ("A média do(a) aluno(a) ", A, " é: ", Res) Fimalgoritmo 9. Refaça o Exercício 4, só que agora em forma de função Maior( ), mas faça uma adaptação que vai receber TRÊS números como parâmetro e vai retornar qual foi o maior entre eles. Algoritmo "função_maior" var x, y, z, maior, r: inteiro Função maior(a, b, c: inteiro): inteiro inicio se (a > b) e (a > c) então retorne a senão se (b > a) e (b > c) então retorne b senão se (c > a) e (c > b) então retorne c senão escreval ("Todos os valores são iguais portanto") retorne a fimse fimse fimse FimFunção Inicio escreval ("Digite um valor: ") leia (x) escreval ("Digite outro valor: ") leia (y) escreval ("Digite outro valor: ") leia (z) Limpatela r <- maior (x, y, z) escreval (" O maior valor é ", r) Fimalgoritmo 10. Crie um programa que tenha uma função SuperSomador( ), que vai receber dois números como parâmetro e depois vai retornar a soma de todos os valores no intervalo entre os valores recebidos. Algoritmo "super_somador" Var X, Y, soma: inteiro Função SuperSomador (A, B: inteiro): inteiro Var s, i: inteiro inicio Limpatela S <- 0 Para i <- A ate B faça S <- s+i Fimpara retorne s Fimfunção inicio Escreva ("Digite o primeiro número do intervalo: ") Leia (x) Escreva ("Digite o último número do intervalo: ") Leia (y) soma <- Supersomador (x, y) Escreval ("A soma dos dois valores no intervalo recebido é: ", soma) Fimalgoritmo -> 11. Faça um programa que possua uma função chamada Potencia(), que vai receber dois parâmetros numéricos (base e expoente) e vai calcular o resultado da exponenciação. Algoritmo "potencia" Var b, expo, result: inteiro Função Potencia (x,y:inteiro):inteiro var cont: inteiro res: inteiro inicio res<-1 enquanto (cont<y) faca res<-res*x cont<-cont+1 fimenquanto Retorne res fimfunção Inicio Escreva ("Digite a Base da exponencial: ") leia (b) Escreva ("Digite o Expoente da exponencial: ") leia (expo) result<-Potencia(b,expo) Escreva ("Portanto, ", b,", elevado a ", expo, "a potência é igual a: ", result) Fimalgoritmo -> 12. Melhore o exercício 96, criando além da função Media( ) uma outra função chamada Situacao(), que vai retornar para o programa principal se o aluno está APROVADO, em RECUPERAÇÃO ou REPROVADO. Essa nova função, vai receber como parâmetro o resultado retornado pela função Media( ). Algoritmo "media" Var nome: caractere n1,n2: real me: realSF: caractere Função Media (x, y: real):real var Med: real inicio med<-(n1+n2)/2 retorne med fimfunção Função Situação(M:real):caractere var Sit: caractere inicio se (M>=6) então Sit<-"Aprovado!" Retorne Sit senão Site<-"Reprovado!" Retorne Sit fimse fimfunção Inicio Escreva ("Digite o nome do Aluno: ") Leia (nome) Escreva ("Digite a primeira nota: ") Leia (n1) Escreva ("Digite a segunda nota: ") Leia (n2) me<-Media(n1, n2) Escreval ("A média do aluno é: ", me) SF<- situação(me) Escreva ("O aluno ", nome, " está: ", SF) Fimalgoritmo 13. Faça um programa que preencha automaticamente um vetor numérico com 8 posições Algoritmo "vetor_automatico" Var v: vetor [1..8] de inteiro i: inteiro Inicio Para i <- 1 até 8 passo 1 faça Escreva ("o vetor", i," tem valor de: 999") Leia (v[i]) Fimpara Fimalgoritmo 14. Crie um programa que preencha automaticamente (usando lógica, não apenas atribuindo diretamente) um vetor numérico com 10 posições Algoritmo "vetorautomatico" Var v: vetor [1..10] de inteiro i, X: inteiro Inicio Para i <- 1 até 10 passo 1 faça x <- (i*5) Escreva (x, " é o valor do vetor ", i) Leia (V[I]) Fimpara Fimalgoritmo 15. Crie um programa que preencha automaticamente (usando lógica, não apenas atribuindo diretamente) um vetor numérico com 10 posições Algoritmo "vetorautomatico" Var v: vetor [1..10] de inteiro i, X: inteiro Inicio Para i <- 1 até 10 passo 1 faça x <- ( 10 - i) Escreva (x, " é o valor do vetor ", i) Leia (V[I]) Fimpara Fimalgoritmo 16. Crie um programa que leia a idade de 8 pessoas e guarde-as em um vetor. No final, mostre: a) Qual é a média de idade das pessoas cadastradas b) Em quais posições temos pessoas com mais de 25 anos c) Qual foi a maior idade digitada (podem haver repetições) d) Em que posições digitamos a maior idade Algoritmo "Esse_foi_dificil" Var nome: vetor[1..8] de caractere idade: vetor[1..8] de real SM,MI: real i,idademaior,idadeacima: inteiro maior:real idadepos: caractere Inicio SM<-0 idadeacima<-0 para i<-1 ate 8 passo 1 faca Escreval ("Indivíduo ",i) Escreva ("Digite o nome do indivíduo: ") Leia (nome[i]) Escreva ("Digite a idade deste indivíduo: ") leia (idade[i]) // Para saber qual a média total das pessoas SM<-SM+idade[i] // Fechamos a media global //Para armazenar e localizar a maior idade se (idade[i]>maior) entao maior<-idade[i] idademaior<-i fimse //Localizamos e armazenamos //Para armazenar e localizar individuos com mais de 25 anos se (idade[i]> 25) entao idadepos<- nome[i] fimse //Localizamos e armazenamos fimpara // Calculando a média das idades MI<-SM/8 // Calculada escreval ("") Limpatela Escreval (" LISTAGEM DAS IDADES ") Escreval ("----------------------------") para i<-1 ate 8 passo 1 faca Escreval (nome[i]:8, idade[i]:8) se (idade[i]>MI) entao idadeacima<- idadeacima+1 fimse fimpara Escreval ("") Escreval ("A média de idade das pessoas cadastradas é: ", MI) Escreval ("No total existem ", idadeacima, " indivíduos acima de 25 anos, e são eles: ", idadepos) Escreval ("A maior idade é ", maior, " e aparece na posição ", idademaior) Fimalgoritmo -> 17. Faça um algoritmo que leia a nota de 10 alunos de uma turma e guarde- as em um vetor. No final, mostre: a) Qual é a média da turma b) Quantos alunos estão acima da média da turma c) Qual foi a maior nota digitada d) Em que posições a maior nota aparece Algoritmo "leia_nota" Var nome: vetor[1..10] de caractere nota: vetor[1..10] de real SM,MT: real i,posmaior,alunosacima: inteiro maior:real Inicio SM<-0 alunosacima<-0 para i<-1 ate 10 passo 1 faca Escreval ("ALUNO ",i) Escreva ("Digite o nome do aluno: ") Leia (nome[i]) Escreva ("Digite a nota deste aluno: ") leia (nota[i]) // Para saber qual a média total da turma SM<-SM+nota[i] // Fechamos a media global //Para armazenar e localizar o maior valor se (nota[i]>maior) entao maior<-nota[i] posmaior<-i fimse //Localizamos e armazenamos fimpara // Calculando a média global MT<-SM/10 // Calculada escreval ("") Limpatela Escreval (" LISTAGEM DE ALUNOS ") Escreval ("----------------------------") para i<-1 ate 10 passo 1 faca Escreval (nome[i]:10,nota[i]:10) se (nota[i]>MT) entao alunosacima<-alunosacima+1 fimse fimpara Escreval ("") Escreval ("A média da turma é: ", MT) Escreval ("No total existem ", alunosacima, " acima da média da turma") Escreval ("O maior valor é ", maior, " e aparece na posição ", posmaior) Fimalgoritmo 18. Neste exercício, serão levantados 3 (três) desafios de Programas a serem desenvolvidos no VisuAlg. Escolha apenas UM destes para fazer a sua programação: i. Torneio de Futebol: Crie um programa que receba o nome de três times do usuário. Após isso, o programa deverá expor na tela uma tabela de jogos com as combinações que podem existir entre esses três times sem repetições. Algoritmo "Torneio.de.Futebol" Var X, Y, Z: caractere A, B, C, D, F, G, H, W: inteiro Procedimento Futebol() Inicio Escreval (" TORNEIO DE FUTEBOL") Escreval (" Tabela de Babalhas: ") Escreval (" ") Escreval ("PRIMEIRO JOGO:") Escreval (" Time ", X, " VS Time ", Y) Escreval ("SEGUNDO JOGO:") Escreval (" Time ", Z, " VS Time ", X) Escreval ("TERCEIRO JOGO:") Escreval (" Time ", Y, " VS Time ", Z) Escreval ("QUARTO JOGO:") Escreval (" Time ", X, " VS Time ", Z) Fimprocedimento Procedimento Gol() Inicio Escreval (" TORNEIO DE FUTEBOL") Escreval (" Tabela de Gols: ") Escreval (" ") Escreval ("PRIMEIRO JOGO: ") Escreval (" Time ", X, " com ", A, " gols VS Time ", Y, " com ", B, " gols") Escreval ("SEGUNDO JOGO:") Escreval (" Time ", Z, " com ",C, " gols VS Time ", X, " com ", D, " gols") Escreval ("TERCEIRO JOGO:") Escreval (" Time ", Y, " com ", W, " gols VS Time ", Z, " com ", F, " gols") Escreval ("QUARTO JOGO:") Escreval (" Time ", X, " com ", G, " gols VS Time ", Z, " com ", H, " gols") Fimprocedimento Inicio Escreva ("Cadastre o nome do primeiro time: ") Leia (X) Escreva ("Cadastre o nome do segundo time: ") leia (Y) Escreva ("Cadastre o nome do terceiro time: ") Leia (Z) Limpatela Futebol() Limpatela Escreva ("PRIMEIRO JOGO: Escreva a quantidade de Gols para o Time ", X, ":") Leia (A) Escreva ("PRIMEIRO JOGO: Escreva a quantidade de Gols para o Time ", Y, ":") Leia (B) Limpatela Escreva ("SEGUNDO JOGO: Escreva a quantidade de Gols para o Time ", Z, ":") Leia (C) Escreva ("SEGUNDO JOGO: Escreva a quantidade de Gols para o Time ", X, ":") leia (D) Limpatela Escreva ("TERCEIRO JOGO: Escreva a quantidade de Gols para o Time ", Y, ":") Leia (W) Escreva ("TERCEIRO JOGO: Escreva a quantidade de Gols para o Time ", Z, ":") Leia (F) Limpatela Escreva ("QUARTO JOGO: Escvreva a quantidade de Gols para o Time ", X, ":") Leia (G) Escreva ("QUARTO JOGO: Escreva a quantidade de Gols para o Time ", Z,":") Leia (H) Limpatela Futebol() Escreval (" ") Gol() escreval (" ") Escreval (" Vemos você na próxima rodada do Torneio De Futebol") Fimalgoritmo