Introdução Dicas Visualg Atalhos Aula 2 - VisuAlg Exercício 1 Exercício 2 Exercício 3 Exercício 4 Aula 3 - VisuAlg Exercício 1 Exercício 2 Exercício 3 Exercício 4 Exercício 5 Aula 4 - VisuAlg Exercício 1 Exercício 2 Exercício 3 Exercício 4 Aula 5 - VisuAlg Exercício 1 Exercício 2 Exercício 3 Aula 6 - VisuAlg Exercício 1 Exercício 2 Exercício 3 Exercício 4 Exercício 5 Exercício 6 Exercício 7 Aula 7 - Python Exercício 1 Exercício 2 Exercício 3 Exercício 4 Aula 8 - Python Exercício 1 Exercício 2 Exercício 3 Exercício 4 Esta é a lista de exercícios da matéria de Programação Estruturada , do curso de Gestão de TI , feito na FAPAM - Faculdade de Pará de Minas .
De início estamos usando o Portugol Visualg, você pode baixar a versão 3.06 aqui , apenas para Windows.
Já existe a versão mais nova, a 3.07, porém ela é um pouco bugada e não permite a troca de temas da IDE (cores e visual)
Todos os códigos também vão estar em um repositório espelho no Github: https://github.com/mateusfg7/atividades-programacao-estruturada-fapam
Pra quem usa VSCode, pode instalar a extensão Design Líquido - Linguagens em Português para ter syntax hightlight em linguagens em português e outros dialetos de Portugol (Portugol Studio, Postugol VisuAlg, BRIL, êtc.).
Descrição Atalho Formatar automaticamente CTRL + G Rodar programa F9
Data : 15/02/2024
Escreva um algoritmo que leia as três notas do aluno, calcule e imprima no console a média que ele obteve na disciplina.
algoritmo "MediaNotas"
// Disciplina : Programação Estruturada
// Professor : Adjenor Cristiano Queiroz
// Descrição : Algoritmo que lê as três notas do aluno,
// calcula e imprima no console a média que
// ele obteve na disciplina.
// Autor(a) : Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual : 16/02/2024
var
primeira_nota : inteiro
segunda_nota : inteiro
terceira_nota : inteiro
media : real
loop : caractere
inicio
loop <- "sim"
enquanto ( loop = "sim" ) faca
limpatela ()
escreval ( "-----| NOTAS |-----" )
escreval ( "" )
escreva ( "Primeira Nota --- " )
leia ( primeira_nota )
escreva ( "Segunda Nota ---- " )
leia ( segunda_nota )
escreva ( "Terceira Nota --- " )
leia ( terceira_nota )
escreval ( "" )
media <- ( primeira_nota + segunda_nota + terceira_nota )/ 3
escreval ( "MÉDIA:" , media )
escreval ( "" )
escreval ( "-------------------" )
escreval ( "" )
escreval ( "Nova consulta? [sim|nao]" )
escreva ( "-> " )
leia ( loop )
fimenquanto
fimalgoritmo
Sabe-se que o m² de construção custa R$850. Escreva um algoritmo que leia as medidas de um terreno retangular e calcule e imprima quanto custa para construir uma casa que ocupe todo esse terreno.
Algoritmo "ValorM²"
// Disciplina : Programação Estruturada
// Professor : Adjenor Cristiano Queiroz
// Descrição : Algoritmo que lê as medidas de um
// terreno retangular e calcule e imprime quanto
// custa para construir uma casa que ocupe todo
// esse terreno.
// Autor(a) : Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual : 16/02/2024
Var
VALOR_METRO_QUADRADO : real
escolher_valor : caractere
altura_terreno : real
largura_terreno : real
Inicio
VALOR_METRO_QUADRADO <- 850
escreval ( "-| FORMULARIO |-------------------------" )
escreval ( "" )
escreval ( "Largura do terreno (m)" )
escreva ( "-> " )
leia ( largura_terreno )
escreval ( "" )
escreval ( "Altura do terreno (m)" )
escreva ( "-> " )
leia ( altura_terreno )
escreval ( "" )
escreval ( "Escolher valor do m²? (Padrão: R$850.00)" )
escreva ( "[sim|nao] -> " )
leia ( escolher_valor )
escreval ( "" )
se escolher_valor = "sim" entao
escreval ( "Valor do m² (Ex.: 900.00)" )
escreva ( "-> " )
leia ( VALOR_METRO_QUADRADO )
escreval ( "" )
fimse
escreval ( "-| RESULTADOS |-------------------------" )
escreval ( "" )
escreval ( "Tamanho do terreno =" , altura_terreno * largura_terreno , "m²" )
escreval ( "Custo de construção = R$" , ( altura_terreno * largura_terreno )* VALOR_METRO_QUADRADO )
escreval ( "" )
escreval ( "----------------------------------------" )
Fimalgoritmo
Escreva um algoritmo que leia o salário total de uma pessoa e quantas horas ela trabalha por dia, em seguida, calcule e imprima quanto essa pessoa recebe por hora. Considere o mês com 30 dias.
Algoritmo "CalcularSalario"
// Disciplina : Programação Estruturada
// Professor : Adjenor Cristiano Queiroz
// Descrição : Algoritmo que lê o salário total de
// uma pessoa e quantas horas ela trabalha por dia,
// e calcula e imprime quanto essa pessoa
// recebe por hora.
// Autor(a) : Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual : 16/02/2024
Var
DIAS_NO_MES : inteiro
dias_uteis : inteiro
salario : real
horas_por_dia : inteiro
horas_por_mes : inteiro
salario_por_hora : real
Inicio
DIAS_NO_MES <- 30
escreval ( "-| CALCULAR SALÁRIO |------" )
escreval ( "" )
escreval ( "Seu salário (Ex.: 1400.00)" )
escreva ( "-> " )
leia ( salario )
escreval ( "" )
escreval ( "Horas de trabalho (Ex.: 8)" )
escreva ( "-> " )
leia ( horas_por_dia )
escreval ( "" )
// 4 semanas no mês, sábado e domingo não conta, ou seja:
// 4*2 = 8 dias não úteis
dias_uteis <- DIAS_NO_MES - 8
horas_por_mes <- dias_uteis * horas_por_dia
salario_por_hora <- salario / horas_por_mes
escreva ( "Seu valor /hora = R$" , salario_por_hora )
escreval ( "" )
Fimalgoritmo
O exercício pede pra considerar 30 dias, e o cálculo de salário de uma pessoa considera fim de semanas e feriados, portando o código que calcula dias úteis é errado e desnecessário!
Escreva um algoritmo que peça ao usuário para informar o peso e a altura com o comando leia, depois calcule e imprima na tela o IMC dessa pessoa sabendo que a fórmula do IMC é (peso/altura²).
Algoritmo "CalculaIMC"
// Disciplina : Programação Estruturada
// Professor : Adjenor Cristiano Queiroz
// Descrição : Calcula IMC de uma pessoa
// Autor(a) : Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual : 16/02/2024
Var
preso_em_km : real
altura_em_cm : inteiro
IMC : inteiro
Inicio
escreval ( "# CALCULADORA IMC ########" )
escreval ( "" )
escreval ( "Seu peso /Kg (Ex.: 59.9)" )
escreva ( "-> " )
leia ( preso_em_km )
escreval ( "" )
escreval ( "Altura /cm (Ex.: 170)" )
escreva ( "-> " )
leia ( altura_em_cm )
escreval ( "" )
escreval ( "# RESULTADOS #############" )
escreval ( "" )
escreval ( "Seu IMC =" , preso_em_km /(( altura_em_cm / 100 )^ 2 ))
escreval ( "" )
escreval ( "##########################" )
Fimalgoritmo
Data : 22/02/2024
Desenvolva um software que receba uma idade do usuário e imprima na tela se ele é maior de idade ou menor de idade.
Algoritmo "Idade"
// Disciplina : Programação Estruturada
// Professor : Adjenor Cristiano
// Descrição : Determina se o usuário é maior de idade ou não
// Autor(a) : Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual : 23/02/2024
Var
idade : inteiro
Inicio
escreval ( "Sua idade" )
escreva ( "-> " )
leia ( idade )
escreval ( "" )
se ( idade >= 18 ) entao
escreva ( "Maior de idade" )
senao
escreva ( "Menor de idade" )
fimse
escreval ( "" )
Fimalgoritmo
Desenvolva um software que receba um nome e o sexo do usuário, após imprima na tela uma saudação conforme o sexo do usuário, EX: “Bem Vindo José” ou “Bem Vinda Maria”.
Algoritmo "Saudação"
// Disciplina: Programação Estruturada
// Professor: Adjenor Cristiano
// Descrição: Saudações
// Autor(a): Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual: 23/02/2024
Var
nome : caractere
sexo : caractere
Inicio
escreval ( "Seu nome" )
escreva ( "-> " )
leia ( nome )
escreval ( "" )
escreval ( "Seu sexo (apenas letra) | Ex.: M" )
escreval ( "[M] Masculino" )
escreval ( "[F] Feminino" )
escreva ( "-> " )
leia ( sexo )
escreval ( "" )
se ( sexo = "M" ) entao
escreva ( "Bem Vindo " , nome , "!" )
senao
escreva ( "Bem Vinda " , nome , "!" )
fimse
escreval ( "" )
Fimalgoritmo
Doar sangue é uma atitude muito importante, entretanto é preciso atender alguns requisitos para poder doar sangue.
Ter entre 19 e 69 anos de idade
Pesar ao menos 50 kg
Não ter feito nenhuma tatuagem no último ano
Não ter ingerido álcool nas últimas 12 horas.
Desenvolva um software que pergunte ao usuário se ele atende os requisitos necessários para doar sangue. Faça as perguntas uma por vez, caso a resposta dele o impeça de doar, avise-o e encerre o sistema. Se ele atender todos os requisitos, aviseo que ele pode ser doador.
Algoritmo "Doacao"
// Disciplina: Programação Estruturada
// Professor: Adjenor Cristiano
// Descrição: Verifica disponibilidade de doação
// Autor(a): Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual: 23/02/2024
Var
idade : inteiro
peso : real
fez_tatuagem : caractere
ingeriu_alcool : caractere
Inicio
escreval ( "Sua idade" )
escreva ( "-> " )
leia ( idade )
escreval ( "" )
se (( idade < 19 ) OU ( idade > 69 )) entao
escreval ( "Você deve ter entre 19 e 69 anos para doar sangue!" )
Fimalgoritmo
fimse
escreval ( "Seu peso (Kg)" )
escreva ( "-> " )
leia ( peso )
escreval ( "" )
se ( peso < 50 . 0 ) entao
escreval ( "Você deve ter pelomenos 50Kg para doar sangue!" )
Fimalgoritmo
fimse
escreval ( "Fez tatuagem no último ano" )
escreva ( "[sim|nao]-> " )
leia ( fez_tatuagem )
escreval ( "" )
se ( NAO ( fez_tatuagem = "nao" )) entao
escreval ( "Você não pode doar sangue se tiver feito tatuagem no último ano!" )
Fimalgoritmo
fimse
escreval ( "Ingeriu alcool nas últimas 12 horas" )
escreva ( "[sim|nao]-> " )
leia ( ingeriu_alcool )
escreval ( "" )
se ( NAO ( ingeriu_alcool = "nao" )) entao
escreval ( "Você não pode doar sangue se tiver bebido nas últimas 12 horas!" )
Fimalgoritmo
fimse
escreval ( "" )
escreval ( "Você pode ser um doador!" )
escreval ( "" )
Fimalgoritmo
Crie um software que ajude a polícia rodoviária federal calcular o valor das multas dos motoristas. O software deve perguntar ao usuário qual a velocidade permitida e qual a velocidade do motorista.
Se o motorista estiver acima da velocidade permitida, o software deve informar qual o tipo de infração e qual o valor da multa. Se o motorista estiver dentro do limite permitido, o programa encerra dizendo que ele não precisa pagar multa. Veja abaixo os valores de multas reajustados de infração por excesso de velocidade:
Exceder velocidade em até 20% (infração média) = R$85,00 + 4 pontos
Exceder velocidade de 20 até 50% (infração grave) = R$127,00 + 5 pontos;
Exceder velocidade acima de 50% (infração gravíssima) = R$574,00 + 7 pontos + apreensão da carteira + suspensão do direito de dirigir.
Algoritmo "CalcularMulta"
// Disciplina: Programação Estruturada
// Professor: Adjenor Cristiano
// Descrição: Calcular Multa
// Autor(a): Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual: 23/02/2024
Var
velocidade_permitida : inteiro
velocidade_motorista : inteiro
excedente : real
Inicio
escreval ( "Velocidade máxima permitida (Km/h)" )
escreva ( "-> " )
leia ( velocidade_permitida )
escreval ( "" )
escreval ( "Velocidade do motorista (Km/h)" )
escreva ( "-> " )
leia ( velocidade_motorista )
escreval ( "" )
escreval ( "---------------------------------" )
escreval ( "" )
se ( velocidade_motorista <= velocidade_permitida ) entao
escreva ( "Você não precisará pagar multa! ;)" )
senao
excedente <- (( velocidade_motorista - velocidade_permitida )/ velocidade_permitida )* 100
escreval ( "Você excedeu a velocidade máxima permitida em " , excedente : 2 : 0 , "%" )
escreval ( "" )
se ( excedente <= 20 . 0 ) entao
escreval ( "INFRAÇAO MÉDIA" )
escreval ( "" )
escreval ( "Sua multa é de R$85,00" )
escreval ( "+ 4 pontos" )
senao
se ( excedente <= 50 . 0 ) entao
escreval ( "INFRAÇAO GRAVE" )
escreval ( "" )
escreval ( "Sua multa é de R$127,00" )
escreval ( "+ 5 pontos" )
senao
escreval ( "INFRAÇAO GRAVÍSSIMA" )
escreval ( "" )
escreval ( "Sua multa é de R$574,00" )
escreval ( "+ 7 pontos" )
escreval ( "Suspensão do direito de dirigir" )
fimse
fimse
fimse
Fimalgoritmo
Uma loja de salgadinhos precisa de ajuda para calcular o valor da conta dos clientes. Crie um programa que leia o código do produto que o cliente comprou e a quantidade e informe a ele quanto ele deverá pagar. Faça uso da estrutura ESCOLHA-CASO. A Tabela abaixo apresenta o código, a descrição e o preço de cada salgadinho.
Código Descrição Preço unitário 1 Coxinha 0,50 2 Pastel 0,75 3 Pão de queijo 0,40 4 Enroladinho 0,80
Algoritmo "CalcularConta"
// Disciplina: Programação Estruturada
// Professor: Adjenor Cristiano
// Descrição: Calcula Conta do Cliente
// Autor(a): Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual: 23/02/2024
Var
id_do_produto : inteiro
quantidade : real
total : real
loop : caractere
Inicio
loop <- "sim"
enquanto ( loop = "sim" ) faca
loop <- "nao"
limpatela ()
escreval ( "+---------------------------------------+" )
escreval ( "| SALGADOS |" )
escreval ( "|---------------------------------------|" )
escreval ( "| Cód. | Salgado | Valor unitário |" )
escreval ( "|---------------------------------------|" )
escreval ( "| [1] | Coxinha | R$0,50 |" )
escreval ( "| [2] | Pastel | R$0,75 |" )
escreval ( "| [3] | Pão de Queijo | R$0,40 |" )
escreval ( "| [4] | Enroladinho | R$0,80 |" )
escreval ( "+---------------------------------------+" )
escreval ( "" )
escreva ( "Cód. -> " )
leia ( id_do_produto )
escreva ( "Qtd. -> " )
leia ( quantidade )
escolha id_do_produto
caso 1
total <- quantidade * 0 . 50
caso 2
total <- quantidade * 0 . 75
caso 3
total <- quantidade * 0 . 40
caso 4
total <- quantidade * 0 . 80
fimescolha
escreval ( "" )
escreval ( "TOTAL: R$" , total : 4 : 2 )
escreval ( "" )
escreval ( "Nova compra?" )
escreva ( "[sim|nao]-> " )
leia ( loop )
fimenquanto
Fimalgoritmo
Data : 29/02/2024
Crie um software que receba do usuário um valor inteiro e imprima na tela o mês do ano correspondente ao valor recebido (ex. recebendo o valor 1, o programa imprime “Janeiro”; recebendo o valor 2, o programa imprime “Fevereiro”...).
Algoritmo "Meses"
// Disciplina : Programação Estruturada
// Professor : Adjenor Cristiano
// Descrição : Imprime o mês referente à um ID
// Autor(a) : Mateus Felipe Gonçalves
// Data atual : 03/03/2024
Var
// Seção de declaração de variáveis
id : inteiro
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
escreval ( "Digite o número do mês" )
escreva ( "-> " )
leia ( id )
escreval ( "" )
escolha ( id )
caso 1
escreval ( "Janeiro" )
caso 2
escreval ( "Fevereiro" )
caso 3
escreval ( "Março" )
caso 4
escreval ( "Abril" )
caso 5
escreval ( "Maio" )
caso 6
escreval ( "Junho" )
caso 7
escreval ( "Julho" )
caso 8
escreval ( "Agosto" )
caso 9
escreval ( "Setembro" )
caso 10
escreval ( "Outubro" )
caso 11
escreval ( "Novembro" )
caso 12
escreval ( "Dezembro" )
outrocaso
escreval ( "ID Inválido!" )
fimescolha
Fimalgoritmo
Crie um software que receba do usuário um valor inteiro de 1 a 10 e imprima na tela o número por extenso. Se o usuário digitar um número maior que 10 ele deve imprimir “Valor Inválido”.
Algoritmo "Numero"
// Disciplina : Programação Estruturada
// Professor : Adjenor Cristiano Queiroz
// Descrição : Número por extenso
// Autor(a) : Mateus Felipe Gonçalves
// Data atual : 03/03/2024
Var
// Seção de declaração de variáveis
id : inteiro
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
escreval ( "Digite o número" )
escreva ( "-> " )
leia ( id )
escreval ( "" )
escolha ( id )
caso 1
escreval ( "Um" )
caso 2
escreval ( "Dois" )
caso 3
escreval ( "Três" )
caso 4
escreval ( "Quatro" )
caso 5
escreval ( "Cinco" )
caso 6
escreval ( "Seis" )
caso 7
escreval ( "Sete" )
caso 8
escreval ( "Oito" )
caso 9
escreval ( "Nove" )
caso 10
escreval ( "Dez" )
outrocaso
escreval ( "Valor inválido!" )
fimescolha
Fimalgoritmo
Desenvolva um software que receba o nome do usuário, o sexo, a cidade e o ano que ele nasceu e depois imprima na tela sua ficha cadastral utilizando “Sr” para homens e “Srª” para mulheres.
Considere apenas o ano para cálculo da idade (quem nasceu em 2002 considere que ele tem 22 anos, quem nasceu em 2001 considere 23...)
Ex: Ficha Cadastral
Sr: Adjenor Cristiano Queiroz
Idade: 22 anos
Cidade: Pará de Minas
Algoritmo "Ficha"
// Disciplina : Programação Estruturada
// Professor : Adjenor Cristiano
// Descrição : Imprime o mês referente à um ID
// Autor(a) : Mateus Felipe Gonçalves
// Data atual : 03/03/2024
Var
// Seção de declaração de variáveis
nome : caractere
sexo : caractere
cidade : caractere
ano_nasc : inteiro
comprimento : caractere
Inicio
escreval ( "Nome" )
escreva ( "-> " )
leia ( nome )
escreval ( "" )
escreval ( "Sexo [M|F]" )
escreva ( "-> " )
leia ( sexo )
escreval ( "" )
escreval ( "Cidade" )
escreva ( "-> " )
leia ( cidade )
escreval ( "" )
escreval ( "Ano de nascimento" )
escreva ( "-> " )
leia ( ano_nasc )
escreval ( "" )
se ano_nasc > 2024 entao
escreval ( "ERRO | O ano de nascimento não pode ser no futuro" )
interrompa ()
fimse
se maiusc ( sexo ) = "M" entao
comprimento <- "Sr."
senao
comprimento <- "Srª."
fimse
escreval ( "FICHA CADASTRAL" )
escreval ( comprimento , " -- " , nome )
escreval ( "Idade --" , 2024 - ano_nasc )
escreval ( "Cidade - " , cidade )
Fimalgoritmo
(DESAFIO) Desenvolva um Software para um restaurante que irá mostrar para o usuário um cardápio de refeições (com no mínimo 4 opções) para escolha:
Ex:
1 – Risotto ----- R$ 25,00
2 – Espaguete --- R$ 22,00
Depois pergunte a ele se ele deseja alguma bebida. Se ele desejar, mostre a ele um menu com as opções de bebida (ao menos 4).
Ex:
1 – Coca Cola -------- R$ 5,00
2 – Água Mineral ----- R$ 3,00
Ao final mostre a ele qual o seu pedido e o valor da conta.
Ex: PEDIDO:
Espaguete R$ 22,00
Coca Cola R$ 5,00
TOTAL: R$ 27,00.
Dica: Use uma variável do tipo caractere para armazenar os itens do pedido e uma variável real para armazenar os valores
Algoritmo "Cardápio"
// Disciplina : Programação Estruturada
// Professor : Adjenor Cristiano
// Descrição : Imprime o mês referente à um ID
// Autor(a) : Mateus Felipe Gonçalves
// Data atual : 03/03/2024
Var
prato : inteiro
bebida : inteiro
quer_bebida : caractere
total : real
Inicio
escreval ( "------------ PRATOS ------------" )
escreval ( "[1] Risoto ------------- R$25,00" )
escreval ( "[2] Espaguete ---------- R$22,00" )
escreval ( "[3] Strogonoff --------- R$30,00" )
escreval ( "[4] Macarrão na Chapa -- R$20,00" )
escreval ( "" )
escreva ( "-> " )
leia ( prato )
escreval ( "" )
escreval ( "Aceita uma bebida? [S|N]" )
escreva ( "-> " )
leia ( quer_bebida )
escreval ( "" )
se maiusc ( quer_bebida ) = "S" entao
escreval ( "--------- BEBIDAS ---------" )
escreval ( "[1] Água Mineral -- R$ 3,00" )
escreval ( "[2] Coca Cola ----- R$ 5,00" )
escreval ( "[3] Limonada ------ R$ 5,00" )
escreval ( "[4] Jack&Coffee --- R$25,00" )
escreval ( "" )
escreva ( "-> " )
leia ( bebida )
escreval ( "" )
fimse
escreval ( "---------- PEDIDO ----------" )
escolha ( prato )
caso 1
total <- 25 . 00
escreval ( "Risoto ------------- R$25,00" )
caso 2
total <- 22 . 00
escreval ( "Espaguete ---------- R$22,00" )
caso 3
total <- 30 . 00
escreval ( "Strogonoff --------- R$30,00" )
caso 4
total <- 20 . 00
escreval ( "Macarrão na Chapa -- R$20,00" )
fimescolha
se maiusc ( quer_bebida ) = "S" entao
escolha ( bebida )
caso 1
total <- total + 3 . 00
escreval ( "Água Mineral ------- R$ 3,00" )
caso 2
total <- total + 5 . 00
escreval ( "Coca Cola ---------- R$ 5,00" )
caso 3
total <- total + 5 . 00
escreval ( "Limonada ----------- R$ 5,00" )
caso 4
total <- total + 25 . 00
escreval ( "Jack&Coffee -------- R$25,00" )
fimescolha
fimse
escreval ( "" )
escreval ( "TOTAL: R$" , total : 2 : 2 )
Fimalgoritmo
Data : 05/03/2024
Desenvolva um software em que receberá alguns números fornecidos pelo usuário, enquanto ele quiser continuar digitando números (a cada interação pergunte ao usuário se ele deseja continuar a soma), e ao final, exiba o resultado da soma dos números digitados na tela.
Algoritmo "SomaNumeros"
// Disciplina : Programação Estruturada
// Professor : Adjenor Cristino
// Descrição : Soma vários números fornecidos pelo usuário
// Autor(a) : Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual : 08/03/2024
Var
soma : inteiro
numero : inteiro
continuar : caractere
primeira_interacao : logico
Inicio
continuar <- "SIM"
primeira_interacao <- verdadeiro
numero <- 0
soma <- 0
enquanto ( maiusc ( continuar ) = "SIM" ) faca
limpatela ()
se ( primeira_interacao ) entao
primeira_interacao <- falso
escreval ( "Digite um número" )
escreva ( "-> " )
leia ( numero )
senao
escreval ( "Digite mais um número" )
escreva ( "-> " )
leia ( numero )
fimse
soma <- soma + numero
escreval ()
escreval ( "Deseja somar mais um número?" )
escreva ( "-> " )
leia ( continuar )
fimenquanto
limpatela ()
escreval ( "Resultado da soma:" )
escreval ()
escreval ( " [" , soma , " ] " )
Fimalgoritmo
Desenvolva um software em que receba uma quantidade do usuário e imprima na tela essa quantidade de vezes “Programação é nossa melhor matéria!”.
Algoritmo "ProgramacaoMelhorMateria"
// Disciplina : Programação Estruturada
// Professor : Adjenor Cristino
// Descrição : Imprime uma mensagem N vezes
// Autor(a) : Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual : 08/03/2024
Var
quantidade : inteiro
contador : inteiro
certeza : caractere
Inicio
certeza <- "NÃO"
quantidade <- 0
contador <- 0
enquanto (( maiusc ( certeza ) = "NÃO" ) OU ( maiusc ( certeza ) = "NAO" )) faca
limpatela ()
escreval ( "Digite o número de vezes" )
escreva ( "-> " )
leia ( quantidade )
se ( quantidade > 100 ) entao
escreval ()
escreval ( "A mensagem será repedita" , quantidade , " vezes!" )
escreval ( "Você tem certeza que quer continuar?" )
escreva ( "-> " )
leia ( certeza )
senao
certeza <- "SIM"
fimse
fimenquanto
limpatela ()
enquanto ( contador <= quantidade ) faca
contador <- contador + 1
escreval ( "Programação é a melhor matéria!" )
fimenquanto
Fimalgoritmo
Atualize o software do exercício da Lanchonete de modo que o usuário possa fazer um pedido de vários itens no mesmo pedido. Quando ele desejar finalizar o pedido o sistema irá imprimir na tela a lista de produtos comprados e o valor da conta.
Dicas:
Trabalhe dentro de um laço de repetição enquanto.
Utilize uma variável do tipo caractere para armazenar os dados do pedido e a cada novo item adicionado, concatene a variável com ela mesma.
Ex: produtos <- produtos + " 1 - COXINHA: R$ 6,00 | "
Algoritmo "Cardápio"
// Disciplina : Programação Estruturada
// Professor : Adjenor Cristiano
// Descrição : Cardápio de lanchonete
// Autor(a) : Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual : 08/03/2024
Var
prato : inteiro
pedido : caractere
total : real
encerrar : logico
primeira_iteracao : logico
Inicio
encerrar <- falso
primeira_iteracao <- verdadeiro
enquanto ( nao ( encerrar )) faca
limpatela ()
se ( primeira_iteracao ) entao
primeira_iteracao <- falso
senao
escreval ( "Quer pedir mais alguma coisa?" )
escreval ( "Valor total: R$ " , total : 2 : 2 )
escreval ()
fimse
escreval ( "------------ PRATOS ------------" )
escreval ( "[1] Risoto ------------- R$25,00" )
escreval ( "[2] Espaguete ---------- R$22,00" )
escreval ( "[3] Strogonoff --------- R$30,00" )
escreval ( "[4] Macarrão na Chapa -- R$20,00" )
escreval ( "--------------------------------" )
escreval ( "[5] ENCERRAR PEDIDO" )
escreval ( "--------------------------------" )
escreval ()
escreva ( "-> " )
leia ( prato )
escolha ( prato )
caso 1
total <- total + 25 . 00
pedido <- pedido + "Risoto - R$25,00 | "
caso 2
total <- total + 22 . 00
pedido <- pedido + "Espaguete - R$22,00 | "
caso 3
total <- total + 30 . 00
pedido <- pedido + "Strogonoff - R$30,00 | "
caso 4
total <- total + 20 . 00
pedido <- pedido + "Macarrão na Chapa - R$20,00 | "
caso 5
encerrar <- verdadeiro
fimescolha
fimenquanto
limpatela ()
escreval ( "-- PEDIDO ------------" )
escreval ()
escreval ( "| " , pedido )
escreval ()
escreval ( "TOTAL: [ R$" , total : 2 : 2 , " ]" )
escreval ()
Fimalgoritmo
Data : 12/03/2024
Escreva um algoritmo para imprimir os 10 primeiros números inteiros maiores que 100.
Algoritmo "DezNumerosMaioresQue100"
// Disciplina : Programação Estruturada
// Professor : Adjenor
// Descrição : Imprime os 10 primeiros números inteiros maiores que 100.
// Autor(a) : Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual : 19/03/2024
Var
numero : Inteiro
Inicio
para numero de 100 ate 110 faca
escreval ( numero )
fimpara
Fimalgoritmo
Escreva um algoritmo que imprima os números pares de 1 a 100. Utilize o sinal de % para verificar o resto da divisão.
Algoritmo "NumerosParesAte100"
// Disciplina : Programação Estruturada
// Professor : Adjenor
// Descrição : Imprime os números pares de 1 a 100.
// Autor(a) : Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual : 19/03/2024
Var
numero : Inteiro
Inicio
para numero de 1 ate 100 faca
se numero % 2 = 0 entao
escreval ( numero )
fimse
fimpara
Fimalgoritmo
Escreva um algoritmo que pergunte ao usuário quantos números ele quer imprimir na tela. Se o usuário digitar um número maior que 30, interrompa o laço de repetição e imprima na tela uma mensagem para o usuário.
Algoritmo "NumerosPersonalizados"
// Disciplina : Programação Estruturada
// Professor : Adjenor
// Descrição : Pergunta ao usuário quantos números ele
// quer imprimir e interrompe se for mais que 30.
// Autor(a) : Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual : 19/03/2024
Var
contador , quantidade : Inteiro
Inicio
escreval ( "Quantos números você deseja imprimir?" )
escreva ( "-> " )
leia ( quantidade )
para contador de 1 ate quantidade faca
se quantidade > 30 entao
escreval ( "Número muito grande! O máximo permitido é 30." )
interrompa
senao
escreval ( contador )
fimse
fimpara
Fimalgoritmo
Escreva um algoritmo receba um número do usuário e imprima na tela os próximos 10 números múltiplos de 5. Utilize o comando INTERROMPA para sair do loop.
Algoritmo "ProximosMultiplosDe5"
// Disciplina : Programação Estruturada
// Professor : Adjenor
// Descrição : Imprime os próximos 10 números múltiplos de 5 a partir de um Número fornecido pelo usuário.
// Autor(a) : Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual : 19/03/2024
Var
numero , contador : Inteiro
Inicio
escreva ( "Digite um Número: " )
leia ( numero )
para contador de 1 ate 10 faca
se numero % 5 = 0 entao
escreval ( numero )
numero <- numero + 5
senao
numero <- numero + 1
fimse
fimpara
Fimalgoritmo
Escreva um algoritmo receba do usuário um número, depois receba do usuário uma opção (P para Par ou I para Ímpar) e imprima na tela todos os números de 0 até o número escolhido respeitando a opção escolhida (par ou ímpar). Ex: se o usuário digitar 6 e escolher ímpar, o sistema deve imprimir: 1 - 3 - 5
Algoritmo "ProximosMultiplosDe5"
// Disciplina : Programação Estruturada
// Professor : Adjenor
// Descrição : Imprime os próximos 10 números múltiplos de 5 a partir de um Número fornecido pelo usuário.
// Autor(a) : Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual : 19/03/2024
Var
numero , contador : Inteiro
Inicio
escreva ( "Digite um Número: " )
leia ( numero )
para contador de 1 ate 10 faca
se numero % 5 = 0 entao
escreval ( numero )
numero <- numero + 5
senao
numero <- numero + 1
fimse
fimpara
Fimalgoritmo
Reescreva o código do exercício anterior de modo que a impressão dos números seja escrita em ordem decrescente. Ex: se o usuário digitar 6 e escolher ímpar, o sistema deve imprimir: 5 - 3 - 1
.
Algoritmo "NumerosParImparDecrescente"
// Disciplina : Programação Estruturada
// Professor : Adjenor
// Descrição : Imprime números pares ou ímpares em ordem decrescente até o Número escolhido pelo usuário.
// Autor(a) : Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual : 19/03/2024
Var
numero , contador : inteiro
opcao : caractere
Inicio
escreva ( "Digite um Número: " )
leia ( numero )
escreva ( "Escolha uma opção (P para Par ou I para ímpar): " )
leia ( opcao )
para contador de numero ate 0 passo - 1 faca
se ( maiusc ( opcao ) = "P" ) entao
se ( contador % 2 = 0 ) entao
escreval ( contador )
fimse
senao se ( maiusc ( opcao ) = "I" ) entao
se ( contador % 2 <> 0 ) entao
escreval ( contador )
fimse
fimse
fimpara
Fimalgoritmo
Escreva um algoritmo para pedidos de uma loja de calçados. O algoritmo deve mostrar um menu com ao menos 4 produtos predefinidos e oferecer ao usuário a opção de selecionar mais de um produto ou encerrar o pedido (similar ao exercício do restaurante). Ao final o algoritmo deve mostrar o resumo da compra e o valor total (formatado em reais).
Algoritmo "PedidoLojaCalcados"
// Disciplina : Programação Estruturada
// Professor : Adjenor
// Descrição : Sistema de pedidos de uma loja de calçados.
// Autor(a) : Mateus Felipe Gonçalves <contato@mateusf.com>
// Data atual : 19/03/2024
Var
opcao : caractere
valor_total : real
Inicio
valor_total <- 0
repita
limpatela ()
escreval ( "MENU DE PRODUTOS:" )
escreval ( "1 - Tênis Adidas: R$ 199.99" )
escreval ( "2 - Chinelo Nike: R$ 49.99" )
escreval ( "3 - Bota Timberland: R$ 299.99" )
escreval ( "4 - Sandália Havaianas: R$ 29.99" )
escreval ( "0 - Encerrar pedido" )
escreva ( "Escolha um produto ou 0 para encerrar: " )
leia ( opcao )
escolha opcao
caso "1"
valor_total <- valor_total + 199 . 99
caso "2"
valor_total <- valor_total + 49 . 99
caso "3"
valor_total <- valor_total + 299 . 99
caso "4"
valor_total <- valor_total + 29 . 99
fimEscolha
ate opcao = "0"
limpatela ()
se valor_total > 0 entao
escreval ( "RESUMO DA COMPRA:" )
escreval ( "Valor total: R$" , valor_total : 0 : 2 )
senao
escreval ( "Nenhum produto foi selecionado. Pedido cancelado." )
fimse
Fimalgoritmo
Data : 26/03/2024
Escreva um programa que leia as três notas do aluno e calcule e imprima no console a média que ele obteve na disciplina.
"""
Lê três notas do aluno, calcula e imprime a média no console.
Aluno: Mateus Felipe Gonçalves <contato@mateusf.com>
Professor: Adjenor Cristiano
Curso: Gestão da Tecnologia da Informação
Matéria: Programação Estruturada
Turma: 1º Período - B
Data: 27/03/2024
"""
# Lê as notas do aluno
nota1 = float ( input ( "Digite a primeira nota: " ))
nota2 = float ( input ( "Digite a segunda nota: " ))
nota3 = float ( input ( "Digite a terceira nota: " ))
# Calcula a média
media = (nota1 + nota2 + nota3) / 3
# Imprime a média
print ( f "A média do aluno é { media :.2f } " )
Sabe-se que o m² de construção custa R$850. Escreva um programa que leia as medidas de um terreno retangular e calcula e imprime quanto custa para construir uma casa que ocupe esse terreno.
"""
Programa que lê as medidas de um terreno retangular e calcula e imprime quanto custa
para construir uma casa que ocupe esse terreno. O m² de construção custa R$ 850,00.
Aluno: Mateus Felipe Gonçalves <contato@mateusf.com>
Professor: Adjenor Cristiano
Curso: Gestão da Tecnologia da Informação
Matéria: Programação Estruturada
Turma: 1º Período - B
Data: 27/03/2024
"""
# Lê as medidas do terreno
largura = float ( input ( "Digite a largura do terreno: " ))
comprimento = float ( input ( "Digite o comprimento do terreno: " ))
# Calcula a área do terreno
area = largura * comprimento
# Calcula o custo da construção
custo = area * 850
# Imprime o custo da construção
print ( f "O custo para construir uma casa nesse terreno é R$ { custo :.2f } " )
Escreva um programa que leia o salário total de uma pessoa e quantas horas ela trabalha por dia. Em seguida, calcule e imprima quanto essa pessoa recebe por hora. Considere o mês com 30 dias.
"""
Programa que lê o salário total de uma pessoa e quantas horas ela trabalha por dia.
Em seguida, calcula e imprime quanto essa pessoa recebe por hora.
Aluno: Mateus Felipe Gonçalves <contato@mateusf.com>
Professor: Adjenor Cristiano
Curso: Gestão da Tecnologia da Informação
Matéria: Programação Estruturada
Turma: 1º Período - B
Data: 27/03/2024
"""
# Lê o salário total
salario = float ( input ( "Digite o salário total \n -> " ))
# Lê a quantidade de horas trabalhadas por dia
horas_por_dia = float ( input ( "Digite a quantidade de horas trabalhadas por dia \n -> " ))
# Calcula horas trabalhadas no mês
horas_por_mes = horas_por_dia * 30
# Calcula o valor da hora
valor_hora = salario / horas_por_mes
# Imprime o valor da hora
print ( f " \n O valor da hora é R$ { valor_hora :.2f } " )
Escreva um programa que peça ao usuário para informar o peso e a altura com o comando leia, depois calcule e imprima na tela o IMC dessa pessoa sabendo que a fórmula do IMC é (peso/altura²).
"""
Programa que pede ao usuário para informar o peso e a altura com o comando leia, depois
calcula e imprime na tela o IMC dessa pessoa sabendo que a fórmula do IMC é (peso/altura²).
Aluno: Mateus Felipe Gonçalves <contato@mateusf.com>
Professor: Adjenor Cristiano
Curso: Gestão da Tecnologia da Informação
Matéria: Programação Estruturada
Turma: 1º Período - B
Data: 27/03/2024
"""
# Lê o peso
peso = float ( input ( "Digite o peso (kg) \n -> " ))
# Lê a altura
altura_cm = float ( input ( "Digite a altura (cm) \n -> " ))
# Calcula o IMC
imc = peso / (altura_cm / 100 ) ** 2
# Imprime o IMC
print ( f " \n O IMC é { imc :.2f } " )
Data : 02/04/2024
Desenvolva um software que receba uma string do usuário e depois solicite a ele quantas letras da string ele quer que sejam separadas, depois imprima na tela as duas partes da string.
EX: se o usuário digitar “Faculdade” e o número 5, o software deve retornar:
Primeira Parte: “Facul”
Segunda Parta: “dade”
class bcolors :
HEADER = ' \033 [95m'
OKBLUE = ' \033 [94m'
OKCYAN = ' \033 [96m'
OKGREEN = ' \033 [92m'
WARNING = ' \033 [93m'
FAIL = ' \033 [91m'
ENDC = ' \033 [0m'
BOLD = ' \033 [1m'
UNDERLINE = ' \033 [4m'
text = input ( "Texto a ser dividido: " )
position = input ( "Posição de divisão da string: " )
if not text or not position:
print ( f " \n{ bcolors. FAIL} Quantidade de parâmetros insuficientes ou inválidos! { bcolors. ENDC} " )
quit ()
position = int (position)
if position > len (text):
print ( f " \n{ bcolors. FAIL} Posição de divisão maior que o tamanho do texto! { bcolors. ENDC} " )
print ( f "Tamanho do texto: { bcolors. BOLD}{len (text) }{ bcolors. ENDC} " )
print ( f "Posição de divisão: { bcolors. BOLD}{ position }{ bcolors. ENDC} " )
quit ()
first_part, second_part = text[:position], text[position:]
print ( f " \n{ bcolors. OKGREEN} Primeira parte: { bcolors. ENDC} { bcolors. BOLD}{ first_part }{ bcolors. ENDC} " )
print ( f " { bcolors. OKGREEN} Segunda parte: { bcolors. ENDC} { bcolors. BOLD}{ second_part }{ bcolors. ENDC} " )
Desenvolva um software que receba do usuário seu nome, seu sobrenome e uma quantidade. Depois solicite a ele quantas vezes ele deseja imprimir o conjunto (nome e sobrenome) e imprima na tela essa quantidade de vezes. Utilize \n
para quebra de linha.
from os import system, name
nome = input ( "Digite seu nome: " )
sobrenome = input ( "Digite seu sobrenome: " )
n = int ( input ( "Número de repetições: " ))
# limpa terminal
if name == 'nt' :
# windows
system( 'cls' )
else :
# outros unix (linux, mac...)
system( 'clear' )
for i in range (n):
print ( f " { nome } { sobrenome } " )
Desenvolva um software que receba do usuário um valor e imprima na tela este valor formatado para reais (R$) utilizando composição.
valor = float ( input ( 'Digite o valor: ' ))
print ( "R$ %.2f " % valor)
Desenvolva um software que receba do usuário um valor de compra, depois receba um valor em dinheiro e calcule o troco e imprima na tela este valor formatado para reais (R$) utilizando composição.
valor_compra = float ( input ( 'Digite o valor da compra: ' ))
valor_pago = float ( input ( 'Digite o valor pago: ' ))
troco = valor_pago - valor_compra
if troco < 0 :
print ( ' \n Valor pago insuficiente, falta R$ %.2f .' % abs (troco))
else :
print ( ' \n Troco: R$ %.2f ' % troco)