Você está na página 1de 18

Algorítmo e Lógica de Programação

Profª: Carmen L. B. Costa

Comandos em teste:
 Case,
 comandos de repetição,
 procedures,
 programação estruturada,
 If encadeado
Exercícios:
1)Doação de sangue
Escrever um algoritmo que ajude a cadastrar doadores de sangue. Peça para o
usuário informar a idade e tipo sanguíneo do doador. Fazer a validação dos tipos
sanguíneos (A, B, O e AB são permitidos), e só permitir doadores entre 18 e 67
anos. A cada doador cadastrado, perguntar também se deseja cadastrar um novo
doador. Quando o usuário desejar encerrar os cadastros, pergunte o tipo
sanguíneo de um paciente que necessita de sangue, então mostre quantos
doadores disponíveis existem para este paciente.
Algoritmo "Doadores-sangue"

Var
idade:inteiro
sangue:inteiro
conf:inteiro
Inicio
repita
repita
escreval("informe a sua idade:")
escreval("Permitido apenas doadores entre 18 e 67 anos:")
leia(idade)
ate ((idade>=18) e (idade<=67)) entao
repita
escreval("Informe seu tipo sanguineo")
escreval("Tipos sanguineos Aceitos:")
escreval("1-A")
escreval("2-B")
escreval("3-O")
escreval("4-AB")
leia (sangue)
ate ((sangue>=1) e (sangue<=4))
se (sangue = 1) entao
sangue <- sangue+1
senao
se (sangue = 2) entao
sangue <- sangue+1
senao
se (sangue = 3) entao
sangue <- sangue+1
senao
se (sangue = 4) entao
sangue <- sangue+1 entao
escreval("Parabéns, cadastro realizado com sucesso!")
fimse
fimse
fimse
fimse
escreval("Deseja cadastrar um novo doador?")
escreval("1-Sim")
escreval("2-Não")
leia(conf)
limpatela
ate(conf=2)
escreval("Iforme o tipo de sangue de um paciente que necessita de
sangue?")
escreval("Tipos sanguineos Aceitos:")
escreval("1-A")
escreval("2-B")
escreval("3-O")
escreval("4-AB")
leia (tip)
se (sangue = 1) entao
escreval("Para esse paciente, temos" ,sangue, "doador(es)")
senao
se (sangue = 2) entao
escreval("Para esse paciente, temos" ,sangue, "doador(es)")
senao
se (sangue = 3) entao
escreval("Para esse paciente, temos" ,sangue, "doador(es)")
senao
se (sangue = 4) entao
escreval("Para esse paciente, temos" ,sangue, "doador(es)")
senao
fimse
fimse
fimse
fimse

fimalgoritmo
2)Casa de Chá
Uma loja de chá está implantando um novo software para que os clientes possam
realizar os pedidos. Assim eles necessitam de um programa que, para cada
código, informa qual é o chá pedido pelo cliente com base na tabela abaixo. Além
disso, após informar o código do chá, o usuário deverá informar a quantidade de
unidades desejada. Construa o programa que solicita o código informado pelo
usuário e a quantidade desejada. O seu programa informa qual foi o
chá selecionado, quantas unidades, o valor unitário do chá e o valor total do
pedido. O programa só encerra quando um código e uma quantidade válida for
informada, caso contrário solicita as informações (código e quantidade)
novamente.
Código Chá Valor
CB Chá de Boldo R$ 1,50
CV Chá Verde R$ 1,65
CP Chá Preto R$ 1,99
CE Chá de Ervas R$ 1,00
CM Chá Mate R$ 1,99
Algoritmo "casa-de-cha"

Var
CB, CV, CP, CE, CM:real
cc:caractere]
qt:inteiro
vu:real
conf:inteiro

Inicio
repita
escreval("Codigo Tipo Valor.Unitário")
escreval("=================================================")
escreval(" CB Chá de boldo R$1,50 ")
escreval(" CV Chá Verde R$1,65 ")
escreval(" CP Chá Preto R$1,99 ")
escreval(" CE Chá de Ervas R$1,00 ")
escreval(" CM Chá Mate R$1,99 ")
escreval("=================================================")
escreval("INFORME O CODIGO DO CHÁ DESEJADO")

CB <- 1.50
CV <- 1.65
CP <- 1.99
CE <- 1.00
CM <- 1.99
leia (cc)
escolha(cc)
caso "CB"
escreval("INFORME A QUANTIDADE DESEJADA")
leia(qt)
escreval("valor total R$" ,qt * CB)
caso "CV"
escreval("INFORME A QUANTIDADE DESEJADA")
leia(qt)
escreval("valor total R$" ,qt * CV)
caso "CP"
escreval("INFORME A QUANTIDADE DESEJADA")
leia(qt)
escreval("valor total R$" ,qt * CP)
caso "CE"
escreval("INFORME A QUANTIDADE DESEJADA")
leia(qt)
escreval("valor total R$" ,qt * CE)
caso "CM"
escreval("INFORME A QUANTIDADE DESEJADA")
leia(qt)
escreval("valor total R$" ,qt * CM)
outrocaso
escreval("INFORME UM TIPO DE CHÁ VÁLIDO!")
fimescolha

Escreval("deseja fazer um novo pedido?")


Escreval("1 - SIM")
Escreval("2 - NÃO")
leia (conf)
ate(conf =2)
escreval("Obrigado pela preferência!!")

Fimalgoritmo
3) Entre via display (na tela do computador) com um número inicial. Agora entre
com o número final. Quantos números foram encontrados entre este intervalo de
números?
Algoritmo "quantidade-numeros-de-um-intervalo"
//3) Entre via display (na tela do computador) com um número inicial. Agora entre
com o número
//final. Quantos números foram encontrados entre este intervalo de números?

Var
quantos, intervalo, inicial, final: inteiro
Inicio

escreval ("----------------------------------------------------")
escreval ("| Quantos números tem no intervalo informado? |")
escreval ("----------------------------------------------------")
escreval (" ")
escreval (" ")

escreva("Digite um numero inicial: ")


leia(inicial)
escreva("Digite um numero final: ")
leia(final)
escreval(" ")
// testando se o número final é maior que o inicial
se final <= inicial entao
repita
escreval("O numero final deve ser MAIOR que o número inicial.")
escreval("Por favor, digite um número maior que o informado anteriomente.")
leia(final)
ate final > inicial
fimse

quantos <- 1 + final - inicial


escreval ("O intervalo entre ", inicial, " e ", final, " é de " ,quantos, " números.")
escreval(" ")
escreval ("O intervalo é: ")
enquanto inicial <= final faca
escreval(inicial)
inicial <- inicial + 1
fimenquanto

Fimalgoritmo
4) Através de um número digitado pelo operador via teclado, avalie se este número é par ou
ímpar.

Algoritmo "par-ou-impar"
//4) Através de um número digitado pelo operador via teclado, avalie se este
//número é par ou ímpar.

Var
numero: inteiro

Inicio
escreval ("---------------------")
escreval ("| Par ou Ímpar |")
escreval ("---------------------")
escreval (" ")
escreval (" ")
escreval("Digite um número: ")
leia(numero)
se numero%2=0 entao
escreval("O número ", numero, " é par.")
senao
escreval("O número ", numero, " é ímpar.")
fimse

Fimalgoritmo
5)Faça um algoritmo que escreva na tela os números de um número inicial a um número final.
Os números inicial e final devem ser informados pelo usuário. Escrever um algoritmo que gere
e escreva todos os números ímpares neste intervalo selecionado entre os números. Entre os
números digitados quantos deles são entre os números 100 e 200, contabilize.

Algoritmo "intervalo-impares"
//5)Faça um algoritmo que escreva na tela os números de um número inicial a um número
final.
//Os números inicial e final devem ser informados pelo usuário. Escrever um algoritmo que
gere e
//escreva todos os números ímpares neste intervalo selecionado entre os números.
//Entre os números digitados quantos deles são entre os números 100 e 200, contabilize.
Var
// Seção de Declarações das variáveis
inicial, final, impar, intervalo: inteiro

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
escreval ("Digite o número inicial: ")
leia (inicial)
escreval ("Digite o número final: ")
leia (final)
escreval (" ")
se final <= inicial entao
repita
escreval ("O número final deve ser MAIOR que o número inicial!")
escreval ("Digite um número maior que o inicial.")
leia (final)
ate final > inicial
fimse

se inicial % 2 <> 0 entao


impar <- 1
escreval (inicial)
//se (inicial >= 100) e (inicial <= 200) entao
intervalo <- 1
//fimse
senao impar <- 0
fimse
enquanto inicial < final faca
inicial <- inicial + 1
intervalo <- intervalo + 1
se inicial % 2 <>0 entao
impar <- impar + 1
escreval (inicial)
fimse
fimenquanto
escreval (" ")
escreval ("O intervalo tem", impar, " números ímpares.")
escreval ("O intervalo tem ", intervalo, " números")

//TENTATIVA DE VERIFICAR O INTERVALO ENTRE 100 E 200


//se (inicial >= 100) e (inicial <= 200) entao
//intervalo <- 1
//enquanto inicial < final faca
//intervalo <- intervalo + 1
//fimenquanto
//fimse
//escreval (intervalo)

Fimalgoritmo
6). Em uma turma há 10 alunos. Cada aluno tem 2 notas. Um professor precisa calcular a
média das notas de cada aluno. Crie um programa que resolva este problema.

Algoritmo "media-de-10-alunos"
//6) Em uma turma há 10 alunos. Cada aluno tem 2 notas. Um professor precisa
//calcular a média das notas de cada aluno. Crie um programa que resolva este
//problema.

Var
// Seção de Declarações das variáveis

media:vetor[1..10] de real
nome:vetor[1..10] de caracter
n1:real
n2:real
i:inteiro

inicio
escreval ("------------------------------")
escreval ("| Calculadora de médias |")
escreval ("------------------------------")
escreval (" ")
escreval (" ")

para i de 1 ate 10 faca


escreval("Digite o nome do aluno ", i)
leia(nome[i])
escreva("Nota 1 = ")
leia(n1)
escreva("Nota 2 = ")
leia(n2)
media[i] <- (n1+n2)/2
escreval()
fimpara

escreval("Médias dos Alunos")


escreval(" ")

para i de 1 ate 10 faca


escreval("Aluno ", i, " ", nome[i], " = ", media[i])
fimpara

Fimalgoritmo
7) Escrever um programa de computador que leia 10 números inteiros e, ao final, apresente a
soma de todos os números lidos;

Algoritmo "soma-10-numeros"
//7) Escrever um programa de computador que leia 10 números inteiros e, ao final, apresente
a soma
//de todos os números lidos

var
i, soma, numero: inteiro
inicio

escreval ("------------------------------------")
escreval ("| Soma de 10 números inteiros |")
escreval ("------------------------------------")
escreval (" ")
escreval (" ")
soma <- 0
para i de 1 ate 10 faca
escreval("Digite um numero")
leia(numero)
soma <- soma + numero
fimpara
escreva("O valor da soma é: ", soma)
fimalgoritmo
8). Faça os mesmos procedimentos que o exercício anterior, porém, ao invés de ler 10
números, o programa deverá ler e somar os números até que o valor digitado seja zero ( 0 ).

Algoritmo "soma-numeros-enquanto-for-diferente-de-zero"
//8). Faça os mesmos procedimentos que o exercício anterior , porém, ao invés de ler 10
números,
//o programa deverá ler e somar os números até que o valor digitado seja zero ( 0 ).

var
i, soma, numero: inteiro
inicio

escreval ("-----------------------------------------------------------------")
escreval ("|Soma de números enquanto número informado for diferente de zero|")
escreval ("-----------------------------------------------------------------")
escreval (" ")
escreval (" ")

numero <- 1
soma <- 0
enquanto numero <> 0 faca
escreval("Digite um numero:")
leia(numero)
soma <- soma + numero
fimenquanto
escreval("O resultado da soma dos numeros digitados é: ", soma)
fimalgoritmo
9) Escreva um programa que lido um número, calcule e informe o seu fatorial.

Ex.: 5! = 5 * 4 * 3 * 2 * 1 = 120. 2.

Algoritmo "fatorial"
//9) Escreva um programa que lido um número, calcule e informe o seu fatorial.
//Ex.: 5! = 5 * 4 * 3 * 2 * 1 = 120. 2.

Var
// Seção de Declarações das variáveis
numero, contador, fatorial : inteiro

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
escreval ("--------------------------------")
escreval ("| Calculadora de fatorial |")
escreval ("--------------------------------")
escreval (" ")
escreval (" ")
escreval ("Digite um número: ")
leia (numero)
contador <- 1
fatorial <- 1

enquanto contador <= numero faca

fatorial <- fatorial * contador


contador <- contador +1

fimenquanto
escreval (" ")
escreval (" ")
escreval ("O fatorial de ", numero," é igual a: ", fatorial)
10) Escreva um programa que leia um valor correspondente ao número de jogadores de um
time de vôlei. O programa deverá ler uma altura para cada um dos jogadores e, ao final,
informar a altura média do time.

Algoritmo "media-altura-time-volei"
//10) Escreva um programa que leia um valor correspondente ao número de jogadores de um
time de
//vôlei. O programa deverá ler uma altura para cada um dos jogadores e, ao final, informar a
altura
//média do time.

Var
// Seção de Declarações das variáveis
jogadores, i : inteiro
altura, soma, media: real
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
escreval ("---------------------------------------")
escreval ("| Calculadora de media de altura |")
escreval ("---------------------------------------")
escreval (" ")
escreval (" ")
soma <- 0
escreva("Digite o número de jogadores: ")
leia(jogadores)
Para i de 1 ate jogadores faca
escreva("Digite a altura do ",i," º jogador:")
leia(altura)
soma <- soma+altura
Fimpara

media <- soma/jogadores


escreval
escreval("A altura média do time é: ",media:3:2)
Fimalgoritmo
11) Informe se um número digitado é primo. Caso não seja, informe por quais números ele é
divisível;

Algoritmo "numero-primo-ou-divisivel-por outros-numeros"


//11) Informe se um número digitado é primo. Caso não seja, informe por quais números ele é
//divisível;

var

numero, contador, x: inteiro

inicio

escreval ("------------------------------------------")
escreval ("| Por quais números será divisível? |")
escreval ("------------------------------------------")
escreval (" ")
escreval (" ")
escreva ("Informe um número: ")
leia (numero)

x<-0

para contador de 1 ate numero faca


se (numero%contador=0) entao
x<-x+1
fimse

fimpara
se (x>2) entao
escreval (numero, " é divisível por: ")
para contador de 1 ate numero faca
se (numero%contador=0) entao
escreval (contador)
fimse
fimpara
senao
escreval ("O número ", numero, " é primo.")
fimse

fimalgoritmo
12). Digitados dois números (base e expoente – b e), calcule o resultado utilizando apenas
multiplicações;

Algoritmo "calculo-exponenciacao-com-multiplicacao"

Var
base:inteiro
expoente:inteiro
resultado:inteiro

Inicio

Escreval("Digite o numero base :")


leia(base)

Escreval("Digite o numero expoente :")


leia(expoente)

resultado:= 1

para expoente de 1 ate expoente faca

resultado := base * resultado

fimpara

Escreval(resultado)

Fimalgoritmo
13)Calcule a soma de todos os números primos existentes entre 1 e 100;

algoritmo "soma-primos-ate-100"

var
n, total, qtd, soma, i: inteiro
inicio

n:= 1
qtd:= 0
soma:= 0
repita
total := 0
para i de 1 ate n faca
se (n%i=0) entao
total:= total+1
fimse
fimpara
se (total=2) entao
qtd := qtd + 1
soma := soma + n
fimse
n := n + 1
ate (qtd=100)
escreval ("A soma dos 100 primeiros números primos é ", soma)
fimalgoritmo1
4). Faça o mesmo que em 12, mas usando apenas somas
Algoritmo "calculo-exponenciacao-com-multiplicacao"

Var
base:inteiro
expoente:inteiro
resultado:inteiro

Inicio

Escreval("Digite o numero base :")


leia(base)

Escreval("Digite o numero expoente :")


leia(expoente)

resultado:= 1

para expoente de 1 ate expoente faca

resultado := base * resultado

fimpara

Escreval(resultado)

Fimalgoritmo

Você também pode gostar