Upload
tara-anderson
View
435
Download
3
Embed Size (px)
Citation preview
Algoritmos
Prof. Ricardo Luiz de [email protected]
Prof. Ricardo Luiz de Freitas – [email protected]
Aulas1 - Conceitos de Algoritmo2 - Compiladores, Dados, Variáveis, Comandos leia e escreva3 - Comando de atribuição, Expressões Aritméticas4 - Comando Condicional – SE5 - Comando Condicional – CASO6 - Comando de Repetição – PARA7 - Séries Matemáticas8 - Comando de Repetição – REPITA9 - Comando de Repetição – ENQUANTO10 – Vetor11 – Matriz12 – Mapeamento ALGORITMO x PASCAL
Prof. Ricardo Luiz de Freitas – [email protected]
Aula 1
Conceito de ALGORITMOS Estruturas básicas de um Algoritmo
Seqüencial Condicional Repetição
Exercício
Prof. Ricardo Luiz de Freitas – [email protected]
Conceitos de Algoritmos
Algoritmo é a descrição de uma seqüência de passos que deve ser seguida para a realização de uma tarefa;
Algoritmo é uma seqüência finita de instruções ou operações cuja execução, em tempo finito, resolve um problema computacional;
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplos de Algoritmos
Como fazer um sanduíche?Passo 1 – Pegar um pão
Passo 2 – Cortar o pão ao meio
Passo 3 – Pegar a maionese
Passo 4 – Passar a maionese no pão
Passo 5 – Pegar o alface e o tomate
Passo 6 – Cortar o tomate
Passo 7 – Colocar alface e o tomate no pão
Passo 8 – Pegar o hambúrguer
Passo 9 – Fritar o hambúrguer
Passo 10 – Colocar o hambúrguer no pão
Prof. Ricardo Luiz de Freitas – [email protected]
Um robô conseguiria executar o algoritmo e fazer um sanduíche?
Prof. Ricardo Luiz de Freitas – [email protected]
Como fazer um sanduíche (versão 2)Passo 1 – Pegar um pão
Passo 2 – Cortar o pão ao meio em sentido longitudinal
Passo 3.1 – Abrir a geladeira
Passo 3.2 – Pegar o vidro de maionese na geladeira
Passo 3.3 – Fechar a porta da geladeira
Passo 3.4 – Girar a tampa do vidro de maionese em sentido horário
Passo 3.5 – Tirar a tampa
Passo 3.6 – Pegar uma espátula no armário
Passo 3.7 – Colocar a espátula dentro do vidro de maionese
Passo 3.8 – Pegar um pouco de maionese
Passo 3.9 – Tirar a espátula do vidro
Passo 4 – Passar a maionese no pão
...
Refinamento do passo 3 “Pegar a
maionese”
Prof. Ricardo Luiz de Freitas – [email protected]
Estruturas básicas de um Algoritmo Estrutura Seqüencial
Estrutura Condicional (ou seletiva)
Estrutura de Repetição Repetições definidas Repetições indefinidas
Prof. Ricardo Luiz de Freitas – [email protected]
Estrutura Seqüencial
As ações são executadas uma após a outra, na mesma ordem em que aparecem:
Trazer a cesta com batatas Pegar uma panela do armário Descascar as batatas Jogar as cascas no lixo Lavar a cesta e a panela Guardar a cesta e a panela no armário
Prof. Ricardo Luiz de Freitas – [email protected]
Estrutura Condicional - SE
A execução ou não de uma ação depende se o resultado de uma condição é verdadeiro ou falso
Trazer a cesta com batatas Pegar uma panela do armário Se sua roupa é clara então
Colocar o avental Descascar as batatas Jogar as cascas no lixo Lavar a cesta e a panela Guardar a cesta e a panela no armário
Condição
Ação
Prof. Ricardo Luiz de Freitas – [email protected]
Estrutura Condicional - SE
O se..então.. é uma estrutura condicional ou seletiva, onde a ação (ou mais de uma) é executada somente se o resultado da condição for verdadeiro:
Se sua roupa é clara então Colocar o avental Lavar as mãos Pentear o cabelo
Prof. Ricardo Luiz de Freitas – [email protected]
Estrutura Condicional - SE
Podemos utilizar também se..então..senão... para tornar a seleção de ações mais completa:
Se sua roupa é clara então Colocar o avental Lavar as mãos
Senão Colocar a toca
Prof. Ricardo Luiz de Freitas – [email protected]
Estrutura de Repetição Trazer a cesta com batatas Pegar uma panela do armário Se sua roupa é clara então
Colocar o avental Lavar as mãos
Pegar uma batata na cesta Lavar a batata Descascar a batata ... ... Jogar as cascas no lixo Lavar a cesta e a panela Guardar a cesta e a panela no armário
50 vezes
Refinamento do passo “Descascar
as batatas”
Prof. Ricardo Luiz de Freitas – [email protected]
Estrutura de Repetição - DEFINIDA Trazer a cesta com batatas
Pegar uma panela do armário Se sua roupa é clara então
Colocar o avental Lavar as mãos
Repetir 50 vezes Pegar uma batata na cesta Lavar a batata Descascar a batata
Jogar as cascas no lixo Lavar a cesta e a panela Guardar a cesta e a panela no armário
E se não soubermos quantas batatas tem no cesto?
Prof. Ricardo Luiz de Freitas – [email protected]
Estrutura de Repetição - INDEFINIDA Trazer a cesta com batatas
Pegar uma panela no armário Se sua roupa é clara então
Colocar o avental Lavar as mãos
Enquanto ainda tivermos batatas no cesto Pegar uma batata na cesta Lavar a batata Descascar a batata
Jogar as cascas no lixo Lavar a cesta e a panela Guardar a cesta e a panela no armário
Prof. Ricardo Luiz de Freitas – [email protected]
A linguagem é um elemento chave na construção de Algoritmos
Schlieben sie Ihre augen. Fermez vos yeux. Cierre sus ojos. Close your eyes. Feche seus olhos.
Prof. Ricardo Luiz de Freitas – [email protected]
Conclusão
Para a construção e execução de algoritmos é necessário que tanto a pessoa que dará as ordens quanto a pessoa (ou máquina) que executará o algoritmo entendam a mesma linguagem e, dessa forma, consigam comunicar-se.
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício (para entregar)
Suponha que você não possa vir a escola em um dia de entrega do trabalho final de curso. Faça um ALGORITMO que sirva para programar um robô que será acionado na calçada em frente a entrada da FUMEC. O robô deverá ir até o laboratório onde a aula está acontecendo, imprimir o trabalho, que está armazenado na rede, e entregar o mesmo ao professor, quando se auto desligará.
Instruções no próximo slide...
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício (para entregar) Fazer no Word; Valores mínimos para o algoritmo: 50 ações (1 verbo por
ação), 2 estruturas condicionais e 2 estruturas de repetição; Valor: 1 ponto extra (se estiver dentro das regras); Forma de entrega: “Área do Aluno” ou “SINEF” na página da
escola na internet (Apoio Didático / Entrega de Trabalhos); Data máxima de entrega: FINAL DO DIA; Poderá ser feito em dupla (somente um elemento da dupla
entregará o exercício); Colocar seu nome, e de seu colega (se for o caso), no início
do algoritmo; Exercícios sem nome, iguais e mal feitos serão zerados.
Prof. Ricardo Luiz de Freitas – [email protected]
Aula 2 Compiladores Compilador VisuAlg Dados Identificadores Variáveis Comando de entrada de dados – LEIA Comando de saída de dados – ESCREVA Exercícios
Prof. Ricardo Luiz de Freitas – [email protected]
Compiladores São programas utilizados para se criar outros programas; Etapas:
Edição: digitação e alteração do programa; Compilação: verificação de erros de sintaxe do programa; Execução: rodar o programa, entrando com os dados e obtendo
os resultados. Erros que podem aparecer:
Sintaxe: identificado pelo compilador na etapa de compilação; Lógica: identificado pelo usuário na etapa de execução.
Exemplos: Visualg = Portugol PascalZIM = Pascal Delphi = Pascal Dreamworks = HTML
Prof. Ricardo Luiz de Freitas – [email protected]
Compilador VisuAlg
Prof. Ricardo Luiz de Freitas – [email protected]
Compilador VisuAlg
Abrir (Ctrl-A): Abre um arquivo anteriormente gravado, substituindo o texto presente no editor. Se este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto.Novo (Ctrl-N): Cria um novo "esqueleto" de algoritmo, substituindo o texto presente no editor. Se este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto.Salvar (Ctrl-S): Grava imediatamente o texto presente no editor. Na primeira vez que um novo texto é gravado, o VisuAlg pede seu nome e localização.Imprimir: Imprime imediatamente na impressora padrão o texto presente no editor. Copiar (Ctrl-C): Copia o texto selecionado para a área de transferência.Colar (Ctrl-V): Copia texto da área de transferência para o local em que está o cursor.
Prof. Ricardo Luiz de Freitas – [email protected]
Compilador VisuAlg
Executar (F9): Inicia (ou continua) a execução automática do algoritmo.Executar com timer (Shift-F9):: Insere um atraso (que pode ser especificado no intervalo ao lado) antes da execução de cada linha. Também realça em fundo azul o comando que está sendo executado, da mesma forma que na execução passo a passo.Passo (F8): Inicia (ou continua) a execução linha por linha do algoritmo, dando ao usuário a oportunidade de acompanhar o fluxo de execução e os valores das variáveis.Parar (Ctrl-F2): Termina imediatamente a execução do algoritmo. Evidentemente, este botão fica desabilitado quando o algoritmo não está sendo executado.Gerar valores aleatórios: Ativa a geração de valores aleatórios que substituem a digitação de dados.
Prof. Ricardo Luiz de Freitas – [email protected]
Estrutura básica de um Algoritmo no VisuAlg
algoritmo "semnome"// Função :// Autor :// Data : 1/8/2011// Seção de declaraçõesvar
inicio// Seção de Comandos
fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exemploalgoritmo "CalcSomaMedia"var n1, n2, n3, soma : inteiro media : realInicio escreva("Informe um número = ") leia(n1) escreva("Informe outro número = ") leia(n2) escreva("Informe mais um número = ") leia(n3) soma <- n1 + n2 + n3 media <- soma / 3 escreval("Média = ",media)fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Dados
O dado é a própria essência de um algoritmo ou programa de computador.
Ele pode ser informado pelo usuário, gerado pelo programa, processado pelo computador, e impresso para o usuário como uma informação.
Prof. Ricardo Luiz de Freitas – [email protected]
Tipos de dados
Tipos de dados são maneiras pelas quais os dados são tratados
Constantes: são aqueles dados cujos valores não se alteram durante a execução do algoritmo
Variáveis: são aqueles dados cujos valores podem ser alterados durante a execução do algoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Tipos de dados Classificação
Simples Numéricos
Inteiro Real
Não Numéricos Lógico Caractere
Estruturados Arquivos Vetores Matrizes
Prof. Ricardo Luiz de Freitas – [email protected]
Tipos de dados
Numéricos INTEIRO
São os valores numéricos inteiros (sem casas decimais) Podem ser valores positivos ou negativos Variando entre -999999999 e 999999999 Ex: 0, -2, 47, 58, 123220, -34235
REAL São os valores numéricos que possuem casas decimais Podem ser valores positivos ou negativos Ex: 0.12, -45.17, 3.14159, 0.000001, 2
Prof. Ricardo Luiz de Freitas – [email protected]
Tipos de dados Não Numéricos
LÓGICO Representadas por apenas 2 valores:
Verdadeiro Falso
CARACTERE Representadas por uma seqüência de caracteres
(letras, números ou caracteres especiais) Textos em geral Geralmente são delimitadas por aspas (“ ”) Ex: “Rua”, “Computação”, “20/10/1998”, “1234”
Prof. Ricardo Luiz de Freitas – [email protected]
Identificadores
Todas as variáveis ou constantes são identificadas por um nome que chamamos de IDENTIFICADOR
Exemplos: Salario Idade J Xpto NomeDaVariavel
Prof. Ricardo Luiz de Freitas – [email protected]
Identificadores Regras para formação de identificadores
Só podem conter LETRAS e NÚMEROS Devem começar OBRIGATORIAMENTE com uma LETRA Não podem conter ESPAÇOS ou caracteres especiais
(@, ?, !, -, caracteres acentuados, etc.) Composto por no máximo 30 caracteres
Nomes válidos: i, j, FRUTA, salario, a12, i23ER21, umnomequalquer
Nomes inválidos: 1, 25, nome-fruta, 5JOSE, A$1, um nome qualquer, média
Prof. Ricardo Luiz de Freitas – [email protected]
Identificadores O identificador deve passar ao programador (ou quem está
lendo o programa/algoritmo) o tipo de dados que a variável ou constante vai armazenar, ou seja, não devemos criar nomes que não tem nada a ver com o conteúdo da variável ou constante:
Nomes inapropriados: i, j, a12, i23ER21, xyz, xibobo, ricardo
Nomes apropriados: idade, salario, nomefruta, contador, enderecocorrespondencia
Prof. Ricardo Luiz de Freitas – [email protected]
Algoritmo Exemplo (identificadores apropriados e inapropriados)
algoritmo "X"var a, b, c : inteiroinicio
leia(a) b <- 1 para c de 2 ate a faca
b <- b * c fimpara escreval(b)fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Algoritmo Exemplo (identificadores apropriados e inapropriados)
algoritmo "CalculaFatorial"var Numero, Fatorial, Contador : inteiroinicio escreva("Informe um número: ") leia(Numero) Fatorial <- 1 para Contador de 2 ate Numero faca
Fatorial <- Fatorial * Contador
fimpara escreval("Fatorial = ",Fatorial)fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Variáveis(abreviação de dados variáveis)
O que é uma Variável?
Variável é uma posição na memória do computador reservada pelo algoritmo durante a sua execução para armazenar dados a serem utilizados pelo próprio algoritmo
Estes dados podem ter sido gerados pelo próprio algoritmo (comandos de repetição, comando de atribuição, etc.) ou inseridos pelo usuário quando da execução de um comando de entrada/leitura de dados
Prof. Ricardo Luiz de Freitas – [email protected]
Cláusula VAR (declaração de variáveis)
var (declaração das variáveis do algoritmo)
As variáveis (ou dados) podem ser de vários tipos: inteiro: define variáveis numéricas do tipo inteiro, ou seja,
sem casas decimais. (Ex: 12, 1000, 5, 345) real: define variáveis numéricas do tipo real, ou seja, com
casas decimais. (Ex: 1.45, 0.05, 500.4, 3.4) caractere: define variáveis do tipo caractere, ou seja, cadeia
de caracteres. (Ex: “ABC”, “Ricardo”, “Agosto/2006”).
Prof. Ricardo Luiz de Freitas – [email protected]
Cláusula VAR (declaração de variáveis)
Exemplo
algoritmo "PrimeiroAlgoritmo"
var IDADE, NUMERO : inteiro
ALTURA, PESO, SALARIO : real
NOMEPAI, RUA, BAIRRO, DTNASC : caractere
inicio
...
fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Etapas de um algoritmo
1ª etapa : entrada de dados (informados pelo usuário)
2ª etapa : processamento (cálculos)
3ª etapa : saída de dados (exibição dos resultados)
Processamento(cálculos)
Entradade dados
Saídade dados
Prof. Ricardo Luiz de Freitas – [email protected]
Comando LEIA(comando de I/O – entrada de dados)
Comando utilizado para receber os valores digitados pelos usuário, atribuindo-os às variáveis cujos nomes estão em <lista-de-variáveis> (é respeitada a ordem especificada nesta lista).
leia(<lista-de-variáveis>)
Exemplos leia(nome) leia(idade, peso, altura)
Prof. Ricardo Luiz de Freitas – [email protected]
Comando LEIA(comando de I/O – entrada de dados)
O tipo de dado a ser digitado pelo usuário depende do tipo da variável utilizada no comando, se a variável for do tipo INTEIRO não podemos digitar um texto ou um valor numérico real, pois abortará a execução do algoritmo.
O usuário digita o dado via teclado e aperta ENTER. O dado é gravado na VARIAVEL e o cursor da tela pula para a primeira coluna da próxima linha.
Prof. Ricardo Luiz de Freitas – [email protected]
Comando ESCREVA(comando de I/O – saída de dados)
Comando utilizado para se escrever (imprimir) informações na tela ou em qualquer dispositivo de saída de dados (impressora, fax, modem, etc) pelo algoritmo.
escreva(...) A informação entre parênteses é impressa e o cursor
permanece na mesma linha. escreval(...)
Idem, porém o cursor pula para a primeira coluna da próxima linha.
Prof. Ricardo Luiz de Freitas – [email protected]
Comando ESCREVA(comando de I/O – saída de dados)
Temos as seguintes variações para o comando:
escreva("Mensagem a ser impressa") O texto entre aspas é impresso.
escreva(variavel) O conteúdo na memória de VARIAVEL é impresso.
escreva("Mensagem 1 ",var1," Mensagem 2 ",var2) Os textos são impressos junto com os conteúdos das variáveis var1 e
var2, na mesma linha e um depois do outro totalmente colados uns aos outros.
ATENÇÃO: É importante o uso de espaços dentro das aspas a fim de que os dados (textos e conteúdos de variáveis) sejam impressos separados uns dos outros
Prof. Ricardo Luiz de Freitas – [email protected]
Comando ESCREVA(comando de I/O – saída de dados)
Exemplos de uso do escreva/escreval:
var NOME : caractere IDADE : inteiro SALARIO, INSS : real
escreva("Nome: ",nome) impressão: Nome: Joselito Sem Noçãoescreval("Sua idade é de ",idade) impressão: Sua idade é de 39escreval("Salário de ",salario," INSS de ",inss) impressão: Salário de 850.65 INSS de 87.40
escreval salto de uma linha em branco
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 1
algoritmo "CalcSomaMedia"
var n1, n2, soma : inteiro media : realinicio leia(n1) leia(n2) soma <- n1 + n2 media <- soma / 2 escreval(soma) escreval(media)fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 1
algoritmo "CalcSomaMedia"var n1, n2, soma : inteiro media : realInicio escreva("Digite um número : ")
leia(n1) escreva("Digite outro número : ") leia(n2) soma <- n1 + n2 media <- soma / 2 escreval("Soma = ",soma) escreval("Média = ",media)fimalgoritmo
Entrada de Dados
Cálculos
Saída de Dados
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 2
Faça um algoritmo que solicite ao usuário o seu nome completo e o número de filhos que ele tem, e depois imprima estas informações.
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 2 (algoritmo resolvido)
algoritmo "TerceiroAlgoritmo"
var nome : caractere
numfilhos : inteiro
inicio
escreva("Qual o seu nome? ")
leia(nome)
escreva("Quantos filhos você tem? ")
leia(numfilhos)
escreval("Nome: ",nome)
escreval("Número de filhos: ",numfilhos)
fimalgoritmo
Entrada de Dados
Saída de Dados
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 3
Faça um algoritmo que solicite ao usuário o seu nome, seu endereço completo (logradouro, número, bairro, cidade, estado e CEP), seu peso (em Kg) e o número do sapato. Depois imprima uma etiqueta com estas informações de acordo com o layout abaixo:
x---------------------nome------------------------xx---------logradouro----------x, x---numero---xBairro x-----------------bairro-------------------xx-----------cidade---------------x – x--estado—xCEP x---cep---x
Peso (kg): x---peso---xNúmero do sapato: x--numero do sapato--x
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 3
Exemplo de saída de dados:
RICARDO LUIZ DE FREITASRUA COBRE, 200Bairro CRUZEIROBELO HORIZONTE – MGCEP 30150-101
Peso (kg): 86.5Número do sapato: 40
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 3 (algoritmo resolvido)
algoritmo "Etiqueta"var nome, logradouro, bairro, cidade, uf, cep, numero: caractere sapato : inteiro peso : realinicio escreva("Informe o seu nome: ") leia(nome) escreva("Informe o logradouro: ") leia(logradouro) escreva("Informe o número: ") leia(numero) escreva("Informe o bairro: ") leia(bairro)
(continua...)
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 3(algoritmo resolvido)
(continuação...)
escreva("Informe a cidade: ") leia(cidade) escreva("Informe a UF: ") leia(uf) escreva("Informe o CEP: ") leia(cep) escreva("Informe o número do seu sapato: ") leia(sapato) escreva("Informe o seu peso em Kg: ") leia(peso)
(continua...)
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 3(algoritmo resolvido)
(continuação...)
limpatela
escreval(nome)
escreval(logradouro,", ",numero)
escreval("Bairro ",bairro)
escreval(cidade," - ",uf)
escreval("CEP ",cep)
escreval
escreval("Peso (Kg): ",peso)
escreval("Número do sapato: ",sapato)
fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 1Faça um algoritmo que solicite ao usuário o seu nome, seus documentos (CPF, identidade, título de eleitor, carteira de motorista), seu salário e o nome da empresa em que trabalha, e depois imprima a sua FICHA FUNCIONAL de acordo com o layout abaixo:
FICHA FUNCIONAL DE: x---------------------nome------------------------x
Documentos:CPF ............................................. x-----cpf-----x C.I. ............................................... x---identidade---xTitulo de eleitor ........................... x---título de eleitor---xCarteira de motorista ................... x---carteira de motorista ---x
Empresa: x-----nome da empresa------xSalário: R$ x-----salário-----x
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 1
Exemplo de saída de dados:
FICHA FUNCIONAL DE: RICARDO LUIZ DE FREITAS
Documentos:CPF ............................................. 415467889-03 C.I. ............................................... M5677823Titulo de eleitor ........................... 458690688444Carteira de motorista ................... 22349377
Empresa: FEA-FUMECSalario: R$ 10500.45
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 1 (algoritmo resolvido)
algoritmo "FichaFuncional"var nome, empresa, cpf, ci, titulo, motorista : caractere salario : realinicio escreva("Entre com seu nome: ") leia(nome) escreva("Entre com o nome da empresa que trabalha: ") leia(empresa) escreva("Entre com o seu salário: ") leia(salario) escreva("Entre com o número do seu CPF: ") leia(cpf) escreva(" Entre com o número da sua identidade: ") leia(ci) escreva("Entre com o número do seu título de eleitor: ") leia(titulo)
(continua...)
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 1 (algoritmo resolvido)
(continuação...)
escreva("Entre com o número da sua carteira de motorista: ") leia(motorista) limpatela escreval("FICHA FUNCIONAL DE: ",nome) escreval escreval("Documentos: ") escreval("CPF .............................. ",cpf) escreval("C.I. .............................. ",ci) escreval("Título de eleitor ............ ",titulo) escreval("Carteira de motorista ..... ",motorista) escreval escreval("Empresa: ",empresa) escreval("Salário: R$ ",salario)fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 2A Secretaria do Meio Ambiente mediu a quantidade de poluentes atmosféricos emitidos por uma empresa. Dependendo do valor obtido, a empresa foi multada conforme a tabela abaixo. Faça um algoritmo que monte esta tabela, solicitando as informações variáveis (xxx) para o usuário:
Quantidade de Poluente Emitido x Valor da Multa
Até xxx (1) multa de R$ xxx (3)
Entre xxx (1) e xxx (2) multa de R$ xxx (4)
Acima de xxx (2) multa de R$ xxx (5) por poluente emitido
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 2
Exemplo de saída de dados:
Quantidade de Poluente Emitido x Valor da Multa
Até 1500 multa de R$ 1000.55
Entre 1500 e 3000 multa de R$ 3550.34
Acima de 3000 multa de R$ 1200.21 por poluente emitido
Prof. Ricardo Luiz de Freitas – [email protected]
Aula 3
Comando de ATRIBUIÇÃO Expressões Aritméticas Exercícios
Prof. Ricardo Luiz de Freitas – [email protected]
Comando de ATRIBUIÇÃO
O comando de atribuição é utilizado para se atribuir valores ou resultado de operações (expressões aritméticas, etc.) a variáveis
Representado pelos símbolos: <- NUNCA coloque espaços no meio do comando
de atribuição (< -)
Prof. Ricardo Luiz de Freitas – [email protected]
Comando de ATRIBUIÇÃO ATENÇÃO: quando um valor é atribuído a uma variável o valor anterior
armazenado na mesma é perdido.
Podemos atribuir um valor fixo (1), o conteúdo de uma outra variável (2) ou o resultado de uma expressão aritmética ou booleana (3).
var SOMA, NUMERO1, NUMERO2 : real
NOME : caractere
SOMA <- 10.5 (1)
NUMERO1 <- 3.74 NOME <- "Ricardo" NUMERO2 <- NUMERO1 (2)
SOMA <- (NUMERO1 + NUMERO2) * 2 (3)
Prof. Ricardo Luiz de Freitas – [email protected]
Expressão Aritmética É a tradução de uma equação matemática (fórmula) para a
linguagem algorítmica.
Podemos utilizar os seguintes operadores aritméticos:
Operador Operação Exemplo
+ Soma SOMA <- NUMERO + 4
- Subtração RESULTADO <- 100 – SOMA
* MultiplicaçãoINSS <- SALARIO * 0.08
/ Divisão MEDIA <- SOMA / 7
^ Potenciação QUADRADO <- VALOR ^ 2
\ Resultado de uma divisão inteira
METADE <- NUMERO \ 2
% Resto de uma divisão inteira
SOBRA <- NUMERO % 3
Prof. Ricardo Luiz de Freitas – [email protected]
Expressão Aritmética
Operador ^ (potenciação):
5 4
3
2
9
9
9
9 9 ^ 2
9 ^ (4/5)
9 ^ (1/2)
9 ^ (1/3)
9 ^ 0.5
Prof. Ricardo Luiz de Freitas – [email protected]
Expressão Aritmética
Operadores \ e %:
9 4
1 2 \
%
9 \ 4 = 2
9 % 4 = 1
9 + 4 = 13
9 – 4 = 5
9 * 4 = 36
9 / 4 = 2.25
9 ^ 4 = 6561
Prof. Ricardo Luiz de Freitas – [email protected]
Expressão Aritmética
Operação percentual:
10 % VALOR
VALOR * 10 / 100
10 % de VALOR
VALOR * 0.1
Prof. Ricardo Luiz de Freitas – [email protected]
Expressão Aritmética Ordem de execução dos operadores aritméticos:
Primeiro: operador ^ (potenciação)
Segundo: operadores * (multiplicação), / (divisão), \ (resultado de uma divisão inteira) e % (resto de uma divisão inteira)
Terceiro: operadores + (adição) e – (subtração)
ATENÇÃO: Para mudarmos esta ordem de execução dos operadores utilizamos os parênteses, em quantos níveis precisarmos.
Exemplos:
VALOR <- 3 + 4 * 5 \ 6 * 7 - 8 = 16
VALOR <- (3 + 4) * 5 \ 6 * ( 7 - 8 ) = - 5
Prof. Ricardo Luiz de Freitas – [email protected]
Expressão Aritmética
VALOR <- 3 + 4 * 5 \ 6 * 7 - 8
VALOR <- 3 + 20 \ 6 * 7 - 8
VALOR <- 3 + 3 * 7 - 8
VALOR <- 3 + 21 - 8
VALOR <- 24 - 8
VALOR <- 16
Prof. Ricardo Luiz de Freitas – [email protected]
Expressão Aritmética
VALOR <- (3 + 4) * 5 \ 6 * (7 - 8)
VALOR <- 7 * 5 \ 6 * (7 - 8)
VALOR <- 7 * 5 \ 6 * -1
VALOR <- 35 \ 6 * -1
VALOR <- 5 * -1
VALOR <- -5
Prof. Ricardo Luiz de Freitas – [email protected]
Expressão Aritmética Exemplos:
2RA
274)( 2 xxxf
53
321
NNNVALOR VALOR <- (N1+N2+N3) / 3 –
5
F <- 4 * X^2 + 7 * X – 2
A <- 3.1416 * R^2
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 1
Faça um algoritmo que leia 5 números inteiros diferentes informados pelo usuário e calcule e imprima a soma e a média aritmética destes números.
Fórmulas:SOMA = N1 + N2 + N3 + N4 + N5MEDIA = SOMA / 5
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 1 (algoritmo resolvido)
algoritmo "CalculaSomaMedia"var n1, n2, n3, n4, n5, soma : inteiro media : realinício escreva("Digite o primeiro número: ")
leia(n1) escreva("Digite o segundo número: ")
leia(n2) escreva("Digite o terceiro número: ")
leia(n3) escreva("Digite o quarto número: ")
leia(n4) escreva("Digite o quinto número: ")
leia(n5) soma <- n1 + n2 + n3 + n4 + n5 media <- soma / 5 escreval("Soma = ",soma) escreval("Média = ",media)fimalgoritmo
Entrada de Dados
Cálculos
Saída de Dados
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 2
Faça um algoritmo que calcule e imprima o valor da hipotenusa de um triângulo retângulo. Os valores dos catetos serão informados pelo usuário.
Fórmula:
22
21 CatetoCatetoHipotenusa
Dados de Entrada
Dado de Saída
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 2 (algoritmo resolvido)
algoritmo "CalculaHipotenusa"
var hipotenusa, cateto1, cateto2 : real
inicio
escreva("Informe o valor do cateto 1: ")
leia(cateto1)
escreva("Informe o valor do cateto 2: ")
leia(cateto2)
hipotenusa <- (cateto1^2 + cateto2^2) ^ (1/2)
escreval("Hipotenusa = ",hipotenusa)
fimalgoritmo
Entrada de Dados
Cálculos
Saída de Dados
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 3
Faça um algoritmo que solicite ao usuário o valor do seu salário bruto e calcule e imprima quanto ele irá pagar de INSS.
Fórmula:INSS = 8% do salário
Dado de Entrada
Dados de Saída
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 3 (algoritmo resolvido)
algoritmo "CalculaINSS"
var salario, inss : real
inicio
escreva("Informe o valor do seu salário: ")
leia(salario)
inss <- salario * 0.08
escreval("O valor do INSS = ",inss)
fimalgoritmo
#115. Exemplo 1 (algoritmo resolvido – Solução 1)
Entrada de Dados
Cálculos
Saída de Dados
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 1Fazer um algoritmo que calcule e imprima o
valor da função abaixo, sendo o valor de x informado pelo usuário.
Para testar: x = 15 f(x) = 3445
104)( 3 xxxf
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 1(algoritmo resolvido)
algoritmo "Funcao"
var fx, x : real
inicio
escreva("Informe o valor de X: ")
leia(x)
fx <- x^3 + 4 * x + 10
escreval("F(x) = ",fx)
fimalgoritmo
Entrada de Dados
Cálculos
Saída de Dados
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 2A área da superfície esférica e o volume de uma esfera são calculados a partir das fórmulas abaixo. Faça um algoritmo que leia o raio R de uma esfera e calcule e imprima a sua área e volume. Utilizar o valor PI = 3.1416.
Para testar: Raio = 10 Área = 1256.64 e Volume = 4188.8
3
2
3
4
4
RVolume
RÁrea
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 2(algoritmo resolvido)
algoritmo "EsferaAreaVolume"
var Raio, Area, Volume : real
inicio
escreva("Informe o valor do Raio: ")
leia(Raio)
Area <- 4 * 3.1416 * Raio^2
escreval("Área da esfera = ",Area)
Volume <- 4 / 3 * 3.1416 * Raio^3
escreval("Volume da esfera = ",Volume)
fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 3Faça um algoritmo que calcule e imprima o valor a ser retido de Imposto de Renda de uma pessoa de acordo com as fórmulas abaixo. O salário e o número de dependentes serão informados pelo usuário.
Fórmulas: Líquido = Salário – (N° de Dependentes x R$60,00)
IR = 15% do Líquido
Para testar: Salário = 1000 e Dependentes = 3 IR = 123
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 3 (algoritmo resolvido)
algoritmo "CalculaImpostoRenda"var salario, liquido, ir : real dependentes : inteiroinicio escreva("Informe o seu salário: ") leia(salario) escreva("Informe o número de dependentes: ") leia(dependentes) liquido <- salario - dependentes * 60 ir <- liquido * 0.15 escreval("O valor do IR é R$",ir)fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 4
Faça um algoritmo que leia as coordenadas X e Y de 2 pontos do plano cartesiano e calcule e imprima a distância entre eles.
Ponto 1 (X1,Y1) e Ponto 2 (X2,Y2)
Fórmula:
221
221 yyxxDistância
Para testar: Ponto 1 (X1=3, Y1=4) e Ponto 2 (X2=6, Y2=7) Distância = 4.24..
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 4 (algoritmo resolvido)
algoritmo "CalculaDistancia"var X1, Y1, X2, Y2, DISTANCIA : realinicio escreva("Informe coordenada X do ponto 1: ")
leia(X1) escreva("Informe coordenada Y do ponto 1: ")
leia(Y1) escreva("Informe coordenada X do ponto 2: ")
leia(X2) escreva("Informe coordenada Y do ponto 2: ")
leia(Y2) DISTANCIA <- ((X1 - X2)^2 + (Y1 - Y2)^2) ^ (1/2) escreval("Distância = ",DISTANCIA)fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 5Fazer um algoritmo que calcule a conversão de temperaturas. O usuário informará o valor de uma temperatura em Celsius e o algoritmo irá calcular e imprimir esta mesma temperatura em Kelvin e Fahrenheit.
Para testar: Celsius = 30 Kelvin = 303 e Fahrenheit = 86
9
1605
273
txFahrenhei
Celsius
KelvinCelsius
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 5(algoritmo resolvido)
algoritmo "ConversorTemperatura"
var C, K, F : real
inicio
escreva("Informe a temperatura em Celsius: ")
leia(C)
K <- C + 273
F <- (C * 9 + 160) / 5
escreval("Temperatura em Kelvin = ",K)
escreval("Temperatura em Fahrenheit = ",F)
fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 6A distância entre um ponto P e uma reta R é dado pela função abaixo. Faça um algoritmo que solicite ao usuário os valores de A, B e C da reta R e as coordenadas Xo e Yo do ponto P e calcule e imprima o valor da distância.
Para testar: A=1, B=2, C=3, Xo=4 e Yo=5 D = 7.60...
22
00
),(
BA
CByAxDistância
YXP
CByAxR
oo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 6 (algoritmo resolvido)
algoritmo "CalculaDistancia" var X, Y, A, B, C, DISTANCIA : realinicio escreva("Entre com o valor de A: ")
leia(A) escreva("Entre com o valor de B: ")
leia(B) escreva("Entre com o valor de C: ")
leia(C) escreva("Coordenada X do ponto: ")
leia(X) escreva("Coordenada Y do ponto: ")
leia(Y) DISTANCIA <- (A * X + B * Y + C) / (A^2 + B^2) ^ (1/2) escreval("Distancia = ",DISTANCIA)fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 7
Faça um algoritmo que solicite ao usuário o valor de x e calcule e imprima o valor da função f(x).
Para testar: x = 5 F(x) = 2.46...
xx
xf5
1)1
4()( 2
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 7(algoritmo resolvido)
algoritmo "Funcao"
var fx, x : real
inicio
escreva("Informe o valor de X: ")
leia(x)
fx <- ((x / 4 + 1)^2 + 1 / 5 * x) ^ (1/2)
escreval("F(x) = ",fx)
fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 8
Faça um algoritmo que solicite ao usuário dois valores numéricos inteiros e calcule e imprima:
a) A soma dos números;b) A subtração dos números;c) A multiplicação dos números;d) O resto da divisão inteira do primeiro pelo segundo;e) O quadrado da soma dos dois números;f) A raiz quadrada da multiplicação dos dois números;g) A raiz cúbica da soma dos dois números.
Para testar: N1 = 5 e N2 = 2 a=7 b=3 c=10 d=1 e=49 f=3.16... g=1.91...
Ver próximo slide >
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 8
Observação: Quando criamos uma expressão aritmética com os operadores % e \ (divisão inteira) TODAS as variáveis da expressão tem ser do tipo INTEIRO.
Exemplo:
var RESTO, NUMERO1, NUMERO2 : inteiro
....
RESTO <- NUMERO1 % NUMERO2
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 8(algoritmo resolvido)algoritmo "Calculos"var raiz, quadrado, cubo : real A, B, resto, soma, subtracao, multiplicacao : inteiroinicio escreva("Informe um número: ") leia(A) escreva("Informe outro número: ") leia(B) soma <- A + B subtracao <- A - B multiplicacao <- A * B resto <- A % B quadrado <- soma ^ 2 raiz <- multiplicacao ^ (1/2) cubo <- soma ^ (1/3) escreval("A soma dos dois números é: ",soma) escreval("A subtração do primeiro número pelo segundo é: ",subtracao) escreval("A multiplicação dos dois números é: ",multiplicacao) escreval("O resto da divisão inteira do primeiro número pelo segundo é: ",resto) escreval("O quadrado da soma dos dois números é: ",quadrado) escreval("A raiz quadrada da multiplicação dos dois números é: ",raiz)
escreval("A raiz cúbica da soma dos dois números é: ",cubo) fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 9
Faça um algoritmo que solicite ao usuário o valor de S (área de um setor circular) e α (ângulo) e calcule e imprima o valor de R (raio). Utilizar o valor PI = 3.1416.
Para testar: S = 20 e α= 3 R = 27.63...
360
2RS
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 9(algoritmo resolvido)
algoritmo "AreaCircular"var Raio, Angulo, Area : realinicio escreva("Informe o valor da Area: ") leia(Area) escreva("Informe o valor do Angulo: ") leia(Angulo) Raio <- ((Area * 360) / (Angulo * 3.1416)) ^ (1/2) escreval("Raio = ",Raio)fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício Extra 1
Faça um algoritmo que leia as 3 notas de um aluno e calcule imprima a média final deste aluno. Considerar que a média é ponderada e que o peso das notas é: 2, 3 e 5, respectivamente.
Para testar: Nota 1 = 10, Nota 2 = 15 e Nota 3 = 12 Média = 12.5
Média ponderada é a soma das multiplicações dos valores dados pelos respectivos pesos, dividido pela soma dos pesos.
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício Extra 1(algoritmo resolvido)
algoritmo "MediaPonderada"
var media, nota1, nota2, nota2 : real
inicio
escreva("Informe a nota 1: ")
leia(nota1)
escreva("Informe a nota 2: ")
leia(nota2)
escreva("Informe a nota 3: ")
leia(nota3)
media <- (nota1*2 + nota2*3 + nota3*5) / 10
escreval("Média Final = ",media)
fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício Extra 2
Faça um algoritmo que leia o tempo de duração de um evento expresso em segundos e mostre-o expresso em horas, minutos e segundos.
Para testar: Segundos = 10000 Hor = 2, Min = 46, Seg = 40
Dicas: 1)1 hora = 60 minutos = 3600 segundos;2)Utilizar os operadores \ e % (resultado e resto de uma divisão inteira.
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício Extra 2(algoritmo resolvido)
algoritmo "TempoDuracao"
var totseg, hor, min, seg : inteiro
inicio
escreva("Informe o total de segundos do evento: ")
leia(totseg)
hor <- totseg \ 3600
min <- totseg % 3600 \ 60
seg <- totseg % 3600 % 60
escreval("Hora = ",hor)
escreval("Minutos = ",min)
escreval("Segundos = ",seg)
fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Comando SE(Estrutura condicional)
Comando que nos permite selecionar outros comandos a serem executados, dependendo se uma determinada condição for VERDADEIRA ou FALSA.
Permite que o computador tome decisões a respeito de qual caminho a seguir quando da execução de um programa/algoritmo.
Prof. Ricardo Luiz de Freitas – [email protected]
Comando SE(Estrutura condicional)
Estrutura condicional - SIMPLES
se condição entao {condição pode ser verdadeira ou falsa}
comando1
comando2
... comandon
fimse
Prof. Ricardo Luiz de Freitas – [email protected]
Comando SE(Estrutura condicional)
se condição entao comando1
comando2
... comandon
fimsecomandocomandocomando
comandocomando
Condição VERDADEIRA: os comandos depois do entao SERÃO executados
Prof. Ricardo Luiz de Freitas – [email protected]
Comando SE(Estrutura condicional)
se condição entao comando1
comando2
... comandon
fimsecomandocomandocomando
comandocomando
Condição FALSA: os comandos depois do entao NÃO SERÃO executados
Prof. Ricardo Luiz de Freitas – [email protected]
Comando SE(Estrutura condicional)
Estrutura condicional - COMPLETA
se condição entao {condição pode ser verdadeira ou falsa}
comando1
... comandon
senao comandon+1
... comandom
fimse
Prof. Ricardo Luiz de Freitas – [email protected]
Comando SE(Estrutura condicional)
se condição entao comando1
comandon
senao comandon+1
comandom
fimsecomandocomandocomando
comandocomando
Condição VERDADEIRA: apenas os comandos depois do então SERÃO executados
Prof. Ricardo Luiz de Freitas – [email protected]
Comando SE(Estrutura condicional)
se condição entao comando1
comandon
senao comandon+1
comandom
fimsecomandocomandocomando
comandocomando
Condição FALSA: apenas os comandos depois do senão SERÃO executados
Prof. Ricardo Luiz de Freitas – [email protected]
Na condição do comando SE utilizamos expressões booleanas (lógicas) que retornam VERDADEIRO ou FALSO
Podemos utilizar os seguintes operadores booleanos:
VOTO <> 99Diferente<>
IDADE >= MAIORIDADEMaior ou igual>=
SOMA <= 0Menor ou igual<=
NUMERO1 > NUMERO2Maior>
VALOR < 100Menor<
N1 = N2Igual=
ExemploOperaçãoOperador
Comando SE(Estrutura condicional)
Prof. Ricardo Luiz de Freitas – [email protected]
Na condição do comando SE podemos utilizar uma condição composta, ou seja, mais de uma proposição, unidas por conectores booleanos (lógicos):
ATENÇÃO: No caso de uma condição composta, ou seja, com mais de uma proposição, separadas pelos conectores booleanos (E e OU), utilizamos os parêntesis para delimitar cada proposição.
nao (CIDADE = "BH") Nega a condiçãonao
(IDADE >= 65) ou (SALARIO < 650)Um V = Vou
(NOTA >= 60) e (FALTAS <= 18)Todos V = Ve
ExemploOperaçãoConector
Comando SE(Estrutura condicional)
Prof. Ricardo Luiz de Freitas – [email protected]
Comando SE(Estrutura condicional)
Operação Resultado
V e V V
V e F F
F e V F
F e F F
Conector E
Operação Resultado
V ou V V
V ou F V
F ou V V
F ou F F
Conector OU
MAPA DA VERDADE
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplos:
se NUMERO > 10 entao escreval("Número é MAIOR que 10")fimse
se NUMERO > 10 entao escreval("Número é MAIOR que 10")senao escreval("Número é MENOR ou IGUAL a 10")fimse
se (NUMERO >= 10) e (NUMERO <= 100) entao escreval("Número está entre 10 e 100")senao escreval("Número está fora do limite")fimse
Comando SE(Estrutura condicional)
Prof. Ricardo Luiz de Freitas – [email protected]
algoritmo "Exemplo"var NUMERO : inteiroinicio escreva("Digite um número inteiro: ") leia(NUMERO) se NUMERO > 10 entao escreval("Número é MAIOR que 10") fimse escreval("Fim do algoritmo")fimalgoritmo
Exemplo (algoritmo resolvido)
Prof. Ricardo Luiz de Freitas – [email protected]
algoritmo "Exemplo"var NUMERO : inteiroinicio escreva("Digite um número inteiro: ") leia(NUMERO) se (NUMERO > 10) e (NUMERO < 100) entao escreval("Número está entre 10 e 100") fimse escreval("Fim do algoritmo")fimalgoritmo
Exemplo (algoritmo resolvido)
Prof. Ricardo Luiz de Freitas – [email protected]
algoritmo "Exemplo"var NUMERO : inteiroinicio escreva("Digite um número inteiro: ") leia(NUMERO) se (NUMERO > 10) e (NUMERO < 100) entao escreval("Número está entre 10 e 100") senao escreval("Número está FORA DO LIMITE") fimse escreval("Fim do algoritmo")fimalgoritmo
Exemplo (algoritmo resolvido)
Prof. Ricardo Luiz de Freitas – [email protected]
Contra-exemplo:
se N1 > 10 e < 100 entao ...
ERRADO
se (N1 > 10) e (N1 < 100) entao ... CERTO
Comando SE(Estrutura condicional)
Prof. Ricardo Luiz de Freitas – [email protected]
Contra-exemplo:
se N1 > N2 > N3 entao ...
ERRADO
se (N1 > N2) e (N2 > N3) entao ...
CERTO
Comando SE(Estrutura condicional)
Prof. Ricardo Luiz de Freitas – [email protected]
Faça um algoritmo para calcular e imprimir o valor a ser descontado de INSS no salário de um empregado utilizando a tabela abaixo. O usuário fornecerá o salário.
#76. Exemplo (algoritmo resolvido)
Faixa Salarial AlíquotaAté R$300,00 8%Acima de R$300,00 10%
Exemplo 1
Prof. Ricardo Luiz de Freitas – [email protected]
algoritmo "CalculaINSS"var SALARIO, INSS : realinicio escreva("Digite o valor do seu salário: ") leia(SALARIO) se SALARIO <= 300 entao INSS <- SALARIO * 0.08 fimse se SALARIO > 300 entao INSS <- SALARIO * 0.10 fimse escreval("Valor do INSS = ",INSS)fimalgoritmo
Exemplo 1 (algoritmo resolvido – Solução 1)
Alíquota de 8%
Alíquota de 10%
Prof. Ricardo Luiz de Freitas – [email protected]
algoritmo "CalculaINSS" var SALARIO, INSS : realinicio escreva("Digite o valor do seu salário: ") leia(SALARIO) se SALARIO <= 300 entao INSS <- SALARIO * 0.08 senao INSS <- SALARIO * 0.10 fimse escreval("Valor do INSS = ",INSS)fimalgoritmo
Exemplo 1(algoritmo resolvido – Solução 2)
Prof. Ricardo Luiz de Freitas – [email protected]
algoritmo "CalculaINSS" var SALARIO, INSS : realinicio escreva("Digite o valor do seu salário: ") leia(SALARIO) se SALARIO <= 300 entao INSS <- SALARIO * 0.08 escreval("Você caiu na alíquota de 8%") senao INSS <- SALARIO * 0.10 escreval("Você caiu na alíquota de 10%") fimse escreval("Valor do INSS = ",INSS)fimalgoritmo
Exemplo 1 (algoritmo resolvido)
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 2
Faixa Salarial AlíquotaAté R$300,00 8%Acima de R$300,00 até R$1.000,00 9%Acima de R$1.000,00 10%
Faça um algoritmo para calcular e imprimir o valor a ser descontado de INSS no salário de um empregado utilizando a tabela abaixo. O usuário fornecerá o salário.
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 2 (algoritmo resolvido – Solução 1)
algoritmo "CalculaINSS"var SALARIO, INSS : realinicio escreva("Digite o valor do seu salário: ") leia(SALARIO) se SALARIO <= 300 entao INSS <- SALARIO * 0.08 fimse se (SALARIO > 300) e (SALARIO <= 1000) entao INSS <- SALARIO * 0.09 fimse se SALARIO > 1000 entao INSS <- SALARIO * 0.10 fimse escreval("Valor do INSS = ",INSS)fimalgoritmo
Alíquota de 8%
Alíquota de 9%
Alíquota de 10%
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 2(algoritmo resolvido – Solução 2)
algoritmo "CalculaINSS"var SALARIO, INSS : realinicio escreva("Digite o valor do seu salário: ") leia(SALARIO) se SALARIO <= 300 entao INSS <- SALARIO * 0.08 senao se SALARIO <= 1000 entao INSS <- SALARIO * 0.09 senao INSS <- SALARIO * 0.10 fimse fimse escreval("Valor do INSS = ",INSS)fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 1A Secretaria do Meio Ambiente mediu a quantidade de poluentes atmosféricos emitidos por uma empresa. Dependendo do valor obtido, a empresa foi multada conforme a tabela abaixo. Faça um algoritmo que leia a quantidade de poluentes emitidos por uma empresa e calcule e imprima a multa aplicada, se for o caso.
Poluentes = 750 Multa = 0Para testar: Poluentes = 2820.24 Multa = R$3000
Poluentes = 3521.2 Multa = R$17606000
Quantidade de Poluente emitido [mg/(t*m2)]
Valor da Multa [R$]
Até 1500 Isento
Acima de 1500 até 3000 3000,00
Acima de 3000 5000,00 x quantidade de poluentes
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 1(algoritmo resolvido – Solução 1)
algoritmo "CalculaPoluente1"var poluente, multa : realinicio escreva("Informe o total de poluentes: ") leia(poluente) se poluente <= 1500 entao multa <- 0 fimse se (poluente > 1500) e (poluente <= 3000) entao multa <- 3000 fimse se poluente > 3000 entao multa <- poluente * 5000 fimse escreval("Multa de R$ ",multa)fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 1(algoritmo resolvido – Solução 2)
algoritmo "CalculaPoluente2"var poluente, multa : realinicio escreva("Informe o total de poluentes: ") leia(poluente) se poluente <= 1500 entao multa <- 0 senao se poluente <= 3000 entao multa <- 3000 senao multa <- poluente * 5000 fimse fimse escreval("Multa de R$ ",multa)fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 1(algoritmo resolvido – Solução 3)
algoritmo "CalculaPoluente3"var poluente, multa : realinicio escreva("Informe o total de poluentes: ") leia(poluente) se poluente <= 1500 entao escreval("Isento de multa. ") fimse se (poluente > 1500) e (poluente <= 3000) entao escreval("Multa de R$3000.00") fimse se poluente > 3000 entao multa <- poluente * 5000 escreval("Multa de R$ ",multa) fimsefimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 2Faça um algoritmo para ler o nome, a altura (em metros) e o peso (em kg) de uma pessoa e informar a ela a sua situação corporal de acordo com o seu IMC (Índice de Massa Corporal) que será calculado pelo algoritmo.
IMC = Peso / Altura2
IMC menor que 18 pessoa está desnutridaIMC menor que 20 pessoa está abaixo do pesoIMC entre 20 e 25 pessoa está no peso idealIMC maior que 25 pessoa está acima do pesoIMC maior que 27 pessoa está obesa
Para testar: Altura = 1.75 e Peso = 87.5 > Pessoa está acima do peso
Pessoa está obesa
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 2(algoritmo resolvido)
algoritmo "CalculaIMC"var NOME : caractere PESO, ALTURA, IMC : realinicio escreva("Informe seu nome: ") leia(NOME) escreva("Informe seu peso em Kg: ") leia(PESO) escreva("Informe sua altura em metros: ") leia(ALTURA) IMC <- PESO / ALTURA^2 se IMC < 18 entao escreval(NOME," está desnutrido. ") fimse se IMC < 20 entao escreval(NOME," está abaixo do peso. ") fimse se (IMC >= 20) e (IMC <= 25) entao escreval(NOME," está no peso ideal. ") fimse se IMC > 25 entao escreval(NOME," está acima do peso. ") fimse se IMC > 27 entao escreval(NOME," está obesa. ") fimsefimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 3Faça um algoritmo que solicite ao usuário um número inteiro e calcule e imprima se ele é divisível ao mesmo tempo por 5 e 7.
Observação: Para testarmos se um número é divisível por outro utilizamos o operador % (RESTO DE UMA DIVISÃO INTEIRA).
Exemplo Se X % 2 = 0 estamos constatando que X é divisível por 2.
Para testar: 35 é divisível simultaneamente por 5 e 7
40 não é divisível simultaneamente por 5 e 7
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 3(algoritmo resolvido – Solução 1)
algoritmo "DivisivelPor5e7a"var numero : inteiroinicio escreva("Informe um número: ") leia(numero) se (numero % 5 = 0) e (numero % 7 = 0) entao escreval(numero," é divisível por 5 e 7") senao escreval(numero," não é divisível por 5 e 7") fimsefimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 3(algoritmo resolvido – Solução 2)
algoritmo "DivisivelPor5e7b"var numero, resto1, resto2 : inteiroinicio escreva("Informe um número: ") leia(numero) resto1 <- numero % 5 resto2 <- numero % 7 se (resto1 = 0) e (resto2 = 0) entao escreval(numero," é divisível por 5 e 7") senao escreval(numero," não é divisível por 5 e 7") fimsefimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 4Pela fórmula de Báskara abaixo calculamos as raízes reais de uma equação do segundo grau. Faça um algoritmo para solicitar ao usuário os valores de A, B e C e calcular e imprimir as raízes da função f(x).
ACB
A
BRaízes
CBxAxxf
4
2
)(
2
2
raízestemnão
raíz
reaisraízes
__0
_10
__20
A=2, B=4 e C=2 teremos 1 raiz = -1Para testar: A=4, B=3 e C=5 não teremos raízes
A=3, B=3 e C=0 teremos 2 raízes = 0 e -1
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 4(algoritmo resolvido)
algoritmo "Baskara"var a, b, c, delta, raiz : realinicio escreva("Informe o valor de A: ") leia(a) escreva("Informe o valor de B: ") leia(b) escreva("Informe o valor de C: ") leia(c) delta <- b^2 – 4 * a * c se delta > 0 entao raiz <- (- b + delta^(1/2)) / (2 * a) escreval("Raiz 1 = ",raiz) raiz <- (- b - delta^(1/2)) / (2 * a) escreval("Raiz 2 = ",raiz) fimse se delta = 0 entao raiz <- - b / (2 * a) escreval("Raiz = ",raiz) fimse se delta < 0 entao escreval("Não tem Raiz") fimsefimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 5Fazer um algoritmo que leia 3 valores numéricos inteiros e verifique se eles podem ser as medidas dos seguintes triângulos:
a) Equilátero = as medidas dos 3 lados são iguaisb) Escaleno = as medidas dos 3 lados são diferentesc) Retângulo = o quadrado de um dos lados é igual a soma dos quadrados dos outros 2 lados
Valores: 3, 4 e 5 = Triângulo retângulo
= Triângulo escaleno
Para testar: Valores: 7, 7 e 7 = Triângulo eqüiláteroValores: 4, 8 e 9 = Triângulo
escaleno
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 5(algoritmo resolvido)
algoritmo "Triangulos"var lado1, lado2, lado3 : inteiroinicio escreva("Informe o valor do lado 1 = ") leia(lado1) escreva("Informe o valor do lado 2 = ") leia(lado2) escreva("Informe o valor do lado 3 = ") leia(lado3) se (lado1 = lado2) e (lado1 = lado3) entao escreval("Lados de um triângulo eqüilátero") fimse se (lado1 <> lado2) e (lado1 <> lado3) e (lado2 <> lado3) entao escreval("Lados de um triângulo escaleno") fimse se (lado1^2=lado2^2+lado3^2)ou(lado2^2=lado1^2+lado3^2)ou(lado3^2=lado1^2+lado2^2)entao escreval("Lados de um triângulo retângulo") fimsefimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 6Fazer um algoritmo que leia 2 valores numéricos inteiros e a opção referente a operação que o usuário deseja que seja feita. Imprima o resultado da operação.
Números 10 e 12 Operação 1 Resultado = 11Para testar: Números 5 e 7 Operação 2 Resultado = 35 Números 24 e 11 Operação 3 Resultado = 2
Opção Operação
1 Média aritmética entre os números
2 Produto dos números
3 Resultado da divisão inteira do primeiro pelo segundo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 6(algoritmo resolvido)
algoritmo "CalculaOperacao"var NUM1, NUM2, OPERACAO, PRODUTO, QUOCIENTE : inteiro MEDIA : realinicio escreva("Informe primeiro número: ") leia(NUM1) escreva("Informe segundo número: ") leia(NUM2) escreva("Informe operação (1, 2 ou 3): ") leia(OPERACAO) se OPERACAO = 1 entao MEDIA <- (NUM1 + NUM2) / 2 escreval("Média: ",MEDIA) fimse se OPERACAO = 2 entao PRODUTO <- NUM1 * NUM2 escreval("Produto: ",PRODUTO) fimse se OPERACAO = 3 entao QUOCIENTE <- NUM1 \ NUM2 escreval("Quociente: ",QUOCIENTE) fimsefimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 7Faça um algoritmo que receba o valor de x, e calcule e imprima o valor de f(x) conforme a função abaixo.
x = 4 f(x) = 0Para testar: x = 15 f(x) = 5.3953... x = 2 f(x) =
3.7527...
4,16
35
4,0
4,16
35
)(
2
2
xsex
x
xse
xsex
x
xf
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 7(algoritmo resolvido – Solução 1)
algoritmo "FunçaoMultipla"var x, f : realinicio escreva("Escreva o valor de X: ") leia(x) se x < 4 entao f <- (5*x + 3)/(16 - x^2)^(1/2) fimse se x = 4 entao f <- 0 fimse se x > 4 entao f <- (5*x + 3)/(x^2 - 16)^(1/2) fimse escreval("Valor da função = ",f)fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 7(algoritmo resolvido – Solução 2)
algoritmo "FunçaoMultipla"var x, f : realinicio escreva("Escreva o valor de X: ") leia(x) se x < 4 entao f <- (5*x + 3)/(16 - x^2)^(1/2) senao se x = 4 entao f <- 0 senao f <- (5*x + 3)/(x^2 - 16)^(1/2) fimse fimse escreval("Valor da função = ",f)fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 8A legislação brasileira prevê a distribuição dos lucros de uma empresa semestralmente. Cada empresa faz esta distribuição proporcional ao salário de cada empregado e com cálculos específicos. Faça um algoritmo que solicite ao usuário o salário de um empregado e calcule e imprima o valor de sua participação nos lucros (PL Líquido) de acordo com a tabela e fórmulas abaixo:
PL Bruto = Valor Fixo + Percentual sobre o Salário Imposto de Renda = 25% sobre PL Bruto PL Líquido = PL Bruto - Imposto de Renda
Salário Valor fixo % sobre Salário
Até R$ 300,00 R$ 500,00 70%
De R$ 300,01 até R$ 1000,00 R$ 200,00 50%
Acima de R$ 1000,00 Zero 30%
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 8(algoritmo resolvido)
algoritmo "ParticipacaoLucros"var Salario, PLBruto, PLLiquido, IR : realinicio escreva("Informe seu salário: ") leia(Salario) se Salario <= 300 entao PLBruto <- 500 + Salario * 0.7 fimse se (Salario > 300) e (Salario <= 1000) entao PLBruto <- 200 + Salario * 0.5 fimse se Salario > 1000 entao PLBruto <- Salario * 0.3 fimse IR <- PLBruto * 0.25 PLLiquido <- PLBruto - IR escreval("PL = ",PLLiquido) fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício Extra 1Faça um algoritmo que leia o nome e a altura (em metros) de uma pessoa e calcule e imprima os pesos mínimo e máximo para que ela esteja dentro da faixa de peso ideal de acordo com a tabela de IMC (Índice de Massa Corporal) abaixo.
IMC = Peso / Altura2
IMC menor que 20 pessoa está abaixo do peso
IMC entre 20 e 25 pessoa está no peso ideal
IMC maior que 25 pessoa está acima do peso
Para testar: Altura = 1.75 > Peso Mínimo = 61.25 e Peso Máximo = 76.56
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício Extra 1(algoritmo resolvido)
algoritmo "PesoMinimoMaximo"var altura, pesominimo, pesomaximo : real nome : caractereinicio escreva("Informe seu nome: ") leia(nome) escreva("Informe sua altura em metros: ") leia(altura) pesominimo <- 20 * altura ^ 2 pesomaximo <- 25 * altura ^ 2 escreval(nome," seu peso mínimo deve ser: ",pesominimo) escreval(nome," seu peso máximo deve ser: ",pesomaximo)fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício Extra 2Uma operadora de TV a cabo nacional oferece uma série de serviços aos seus assinantes. A conta a ser paga por um assinante, no fim do mês, é constituída por um valor fixo mensal somado ao consumo dos canais pay-per-view, que são cobrados por uso diário, ambos de acordo com o pacote que ele contratou (ver tabela 1), mais os serviços extras, além da cobrança dos impostos sobre os serviços prestados que varia conforme a cidade do assinante (ver tabela 2).
Faça um algoritmo que solicite ao usuário o código do seu pacote, a quantidade de dias de consumo de canais pay-per-view, o valor dos serviços extras, e a cidade do assinante, e calcule e imprima o valor da conta que o assinante deverá pagar.
Conta = Valor Fixo + Diárias Canais PPP + Serviços Extras + Imposto (sobre Fixo/PPP/Extras)
Pacote Código Valor Fixo (mês)
Canais PPP (diária)
Basic 1 R$65,00 R$1,20 limitado a R$65,00
Advanced
2 R$104,00 R$2,10
Premium 3 R$137,00 Isento
Cidade Imposto
Belo Horizonte Isento
São Paulo 1%
Rio de Janeiro 1,5%
Demais cidades
2%
Pacote = 1 Dias = 70 Extras = 57.50 Cidade = Belo Horizonte Conta = 187.50 Testar: Pacote = 2 Dias = 10 Extras = 0.00 Cidade = Rio de Janeiro Conta
= 126.88Pacote = 3 Dias = 2 Extras = 980.00 Cidade = Aracaju Conta = 1139.34
Prof. Ricardo Luiz de Freitas – [email protected]
algoritmo "TVaCabo"var dias, codigo : inteiro conta, contafinal, imposto, extras : real cidade: caractereinicio escreva("Informe código do pacote: ") leia(codigo) escreva("Informe a quantidade de dias utilizado: ") leia(dias) escreva("Informe valor dos serviços extras: ") leia(extras) escreva("Informe nome da cidade do assinante: ") leia (cidade) se codigo = 1 entao se 1.20*dias > 65 entao conta <- 65 + 65 + extras senao conta <- 65 + 1.20*dias + extras fimse fimse(continua...)
Exercício Extra 2(algoritmo resolvido)
Prof. Ricardo Luiz de Freitas – [email protected]
(continuação...) se codigo = 2 entao conta <- 104 + 2.10*dias + extras fimse se codigo = 3 entao conta <- 137 + extras fimse se cidade = "Belo Horizonte" entao imposto <- 0 senao se cidade = "São Paulo" entao imposto <- 0.01 senao se cidade = "Rio de Janeiro" entao imposto <- 0.015 senao imposto <- 0.02 fimse fimse fimse contafinal <- conta + imposto*conta escreval("Valor da conta = ", contafinal)fimalgoritmo
Exercício Extra 2(algoritmo resolvido)
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício Extra 3Uma escola de línguas tem uma fórmula bem peculiar para calcular o RESULTADO FINAL de seus alunos. Ela leva em conta o número de faltas, as três notas de provas, a nota do trabalho final e a idade do aluno. Faça um algoritmo para ler as faltas, as notas das provas, a nota do trabalho final e a idade do aluno, e que calcule e imprima o seu resultado final.
Nota Final = Média aritmética das duas maiores Notas das Provas X Peso1 + Nota do Trabalho Final X Peso2
Nota Final Resultado Final
Até 50 Reprovado
De 50 até 70 Regular
De 70 até 80 Bom
De 80 até 90 Muito Bom
Acima de 90 Excelente
Faltas Peso 1
Até 5 3
De 5 até 10 2
Acima de 10 1
Idade Peso 2
Até 17 1
De 18 até 50 2
Acima de 50 3
Faltas = 0 Provas = 5, 9, 7.2 Trabalho = 10.5 Idade = 15 Resultado = Reprovado
Testar: Faltas = 6 Provas = 12, 20, 3 Trabalho = 30 Idade = 22 Resultado = Excelente
Faltas = 20 Provas = 8, 2.5, 4 Trabalho = 17 Idade = 60 Resultado = Regular
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício Extra 3(algoritmo resolvido)
algoritmo "EscolaLinguas"var faltas, idade, peso1, peso2 : inteiro prova1, prova2, prova3, somaprova, trabalho, notafinal : real resultado : caractereinicio escreva("Informe idade do aluno: ") leia(idade) escreva("Informe quantidade de faltas: ") leia(faltas) escreva("Informe nota da prova 1: ") leia(prova1) escreva("Informe nota da prova 2: ") leia(prova2) escreva("Informe nota da prova 3: ") leia(prova3) escreva("Informe nota do trabalho final: ") leia(trabalho)
(Continua...)
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício Extra 3(algoritmo resolvido)
(Continuação...)
se faltas < 5 entao peso1 <- 3 senao se faltas < 10 entao peso1 <- 2 senao peso1 <- 1 fimse fimse se idade < 18 entao peso2 <- 1 senao se idade < 50 entao peso2 <- 2 senao peso2 <- 3 fimse fimse
(Continua...)
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício Extra 3(algoritmo resolvido)
(Continuação...)
se (prova1 < prova2) e (prova1 < prova3) entao somaprova <- prova2 + prova3 senao se (prova2 < prova1) e (prova2 < prova3) entao somaprova <- prova1 + prova3 senao somaprova <- prova1 + prova2 fimse fimse
notafinal <- somaprova / 2 * peso1 + trabalho * peso2
(Continua...)
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício Extra 3(algoritmo resolvido)
(Continuação...)
se notafinal < 50 entao resultado <- "Reprovado" senao se notafinal < 70 entao resultado <- "Regular" senao se notafinal < 80 entao resultado <- "Bom" senao se notafinal < 90 entao resultado <- "Muito Bom" senao resultado <- "Excelente" fimse fimse fimse fimse escreval("Resultado Final = ",resultado)fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Comando CASO(Estrutura condicional de seleção múltipla)
Comando utilizado para seleções múltiplas de outros comandos.
Pode-se utilizar várias opções de escolha e vários valores de seleção.
Se nenhuma opção for encontrada pode-se criar uma opção default.
Prof. Ricardo Luiz de Freitas – [email protected]
Comando CASO(Estrutura condicional de seleção múltipla)
escolha <variável ou expressão aritmética>caso <valor1>, <valor2>, ... , <valorn> comando1
... comandon
caso <valorn+1>, <valorn+2>, ... , <valorm> comandon+1
... comandom
caso <valorm+1> ate <valorm+2>, ... , <valoro> comandoo+1
... comandop
...fimescolha
ate: utilizado para se definir um intervalo.
Variável ou Expressão: Tem que retornar valores INTEIROS ou CARACTERES.
Prof. Ricardo Luiz de Freitas – [email protected]
Comando CASO(Estrutura condicional de seleção múltipla)
var IDADE : inteiro
...
leia(IDADE)
escolha IDADE
caso 0,1,2,3,4,5,6,7,8,9,10
escreval("Criança")
caso 11,12,13,14,15,16,17
escreval("Adolescente")
caso 18 ate 45
escreval("Adulto")
fimescolha
Prof. Ricardo Luiz de Freitas – [email protected]
Comando CASO(Estrutura condicional de seleção múltipla)
escolha <variável ou expressão aritmética>caso <valor1>, <valor2>, ... , <valorn> comando1
... comandon
caso <valorn+1>, <valorn+2>, ... , <valorm> comandon+1
... comandom
...outrocaso comandom+1
... comandoo
fimescolha
Opção default: pode ou não ser declarada no comando caso.
Prof. Ricardo Luiz de Freitas – [email protected]
Comando CASO(Estrutura condicional de seleção múltipla)
var IDADE : inteiro
...
leia(IDADE)
escolha IDADE
caso 0 ate 10
escreval("Criança")
caso 11 ate 17
escreval("Adolescente")
caso 18 ate 45
escreval("Adulto")
outrocaso
escreval("Idoso")
fimescolha
Opção default: pode ou não ser declarada no comando caso.
Prof. Ricardo Luiz de Freitas – [email protected]
Comando CASO(Estrutura condicional de seleção múltipla)
escolha IDADE
caso IDADE <= 10
escreval("Criança")
caso de 11 ate 17
escreval("Adolescente")
caso > 45
escreval("Adulto")
outrocaso (NÃO COLOCAR NADA AQUI)
escreval("Idoso")
fimescolha
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 1
O resultado final de um aluno em uma determinada escola depende da nota final obtida por ele, de acordo com a tabela abaixo. Faça um algoritmo que leia a nota final (que é inteira) de um aluno, e calcule e imprima o seu resultado final.
Nota Final Resultado
Até 3 Reprovado
De 4 até 7 Em recuperação
De 8 até 10 Aprovado
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 1 (utilizando SE)(algoritmo resolvido)
algoritmo "ResultadoFinal"var nota : inteiroinicio escreva("Entre com a nota final do aluno: ") leia(nota) se nota <= 3 entao escreval("Reprovado") fimse se (nota >= 4) e (nota <= 7) entao escreval("Em recuperação") fimse se nota >= 8 entao escreval("Aprovado") fimse fimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 1 (utilizando CASO)(algoritmo resolvido)
algoritmo "ResultadoFinal"var nota : inteiroinicio escreva("Entre com a nota final do aluno: ") leia(nota) escolha nota caso 0,1,2,3 escreval("Reprovado") caso 4,5,6,7 escreval("Em recuperação") caso 8,9,10 escreval("Aprovado") fimescolhafimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 1 (utilizando CASO)(algoritmo resolvido)
algoritmo "ResultadoFinal"var nota : inteiroinicio escreva("Entre com a nota final do aluno: ") leia(nota) escolha nota caso 0 ate 3 escreval("Reprovado") caso 4 ate 7 escreval("Em recuperação") caso 8 ate 10 escreval("Aprovado") fimescolhafimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 1 (utilizando SE)(algoritmo resolvido)
algoritmo "ResultadoFinal"var nota : inteiroinicio escreva("Entre com a nota final do aluno: ") leia(nota) se (nota >= 0) e (nota <= 10) entao se nota <= 3 entao escreval("Reprovado") fimse se (nota >= 4) e (nota <= 7) entao escreval("Em recuperação") fimse se nota >= 8 entao escreval("Aprovado") fimse senao escreval("Nota inválida!") fimsefimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 1 (utilizando CASO)(algoritmo resolvido)
algoritmo "ResultadoFinal"var nota : inteiroinicio escreva("Entre com a nota final do aluno: ") leia(nota) escolha nota caso 0 ate 3 escreval("Reprovado") caso 4 ate 7 escreval("Em recuperação") caso 8 ate 10 escreval("Aprovado") fimescolhafimalgoritmo
outrocaso escreval("Nota inválida")
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 2
Faça um algoritmo que leia o nome de um time de futebol do Brasil e informe se ele é do Rio de Janeiro, de São Paulo ou de Minas Gerais.
Atlético Mineiro => Time de Minas GeraisPara testar:Botafogo => Time do Rio de Janeiro
Corinthians => Time de São Paulo
Prof. Ricardo Luiz de Freitas – [email protected]
Exemplo 2(algoritmo resolvido)
algoritmo "Times"var time : caractereinicio escreva("Entre com o nome de um time de futebol: ") leia(time) escolha time caso "Flamengo","Fluminense","Vasco","Botafogo" escreval("É um time carioca.") caso "São Paulo","Palmeiras","Santos","Corinthians" escreval("É um time paulista.") caso "Atlético Mineiro","Cruzeiro","América Mineiro","Villa Nova" escreval("É um time mineiro.") outrocaso escreval("É um time de outro estado.") fimescolhafimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 1Uma loteria esportiva paga prêmios proporcionais a quantidade de acertos de cada apostador. Ela tem 13 jogos. Se o apostador acertar até 5 jogos ele não ganha nada, se acertar de 6 a 10 jogos ele ganha um outro cartão para apostar, se acertar 11 jogos ganha R$100, 12 jogos R$1000 e 13 jogos R$50000. Faça um algoritmo que leia o nome do apostador e a quantidade de jogos que ele acertou, e calcule e imprima o prêmio que ele ganhou.
Para testar: 4 acertos = Nenhum prêmio 7 acertos = Ganha outro cartão
13 acertos = Prêmio de R$50.000,00
Acertos Prêmio
Até 5 Nenhum
De 6 até 10 Outro cartão
11 R$100,00
12 R$1.000,00
13 R$50.000,00
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 1(algoritmo resolvido)
algoritmo "Loteria"var nome : caractere acertos : inteiroinicio escreva("Entre com nome do apostador: ") leia(nome) escreva("Entre com quantidade de acertos: ") leia(acertos) escolha acertos caso 0 ate 5 escreval(nome," -> Nenhum prêmio") caso 6 ate 10 escreval(nome," -> Ganha outro cartão") caso 11 escreval(nome," -> Prêmio de R$100,00") caso 12 escreval(nome," -> Prêmio de R$1.000,00") caso 13 escreval(nome," -> Prêmio de R$50.000,00") outrocaso escreval("Quantidade de acertos inválidos") fimescolhafimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 2
Faça um algoritmo que solicite ao usuário o nome de um mês do ano (por extenso) e imprima a qual bimestre ele pertence.
Para testar: Mês: Janeiro = Bimestre 1 Mês: Julho = Bimestre 4
Mês: Dezembro = Bimestre 6
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 2(algoritmo resolvido)
algoritmo "Bimestre"var mes : caractereinicio escreva ("Entre com o nome de um mês do ano: ") leia(mes) escolha mes caso "Janeiro","Fevereiro" escreval ("Este mês pertence ao Bimestre 1") caso "Março","Abril" escreval ("Este mês pertence ao Bimestre 2") caso "Maio","Junho" escreval ("Este mês pertence ao Bimestre 3") caso "Julho","Agosto" escreval ("Este mês pertence ao Bimestre 4") caso "Setembro","Outubro" escreval ("Este mês pertence ao Bimestre 5") caso "Novembro","Dezembro" escreval ("Este mês pertence ao Bimestre 6") outrocaso escreval ("Mês inválido!") fimescolhafimalgoritmo
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 3
Faça um algoritmo que leia as 3 notas parciais de um aluno (valores inteiros), calcule a NOTA FINAL (soma das notas parciais) e imprima o CONCEITO do aluno conforme a tabela abaixo:
Para testar: Notas 20, 40 e 10 = Conceito C Notas 5, 10 e 40 = Conceito E
Notas 20, 30 e 40 = Conceito A
Nota Final Conceito
Entre 90 e 100 A
Entre 80 e 89 B
Entre 70 e 79 C
Entre 60 e 69 D
Abaixo de 60 E
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 3(algoritmo resolvido)
algoritmo "Conceito"var nota1, nota2, nota3, notafinal: inteiroinicio escreva("Informe a nota 1: ") leia(nota1) escreva("Informe a nota 2: ") leia(nota2) escreva("Informe a nota 3: ") leia(nota3) notafinal <- nota1 + nota2 + nota3 escolha notafinal caso 0 ate 59 escreval("Conceito E") caso 60 ate 69 escreval("Conceito D") caso 70 ate 79 escreval("Conceito C") caso 80 ate 89 escreval("Conceito B") caso 90 ate 100 escreval("Conceito A") outrocaso escreval("Nota final inválida!") fimescolhafimalgoritmo
Uso de uma variável do tipo
INTEIROresultado de uma
expressão aritmética
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 3(algoritmo resolvido)
algoritmo "Conceito"var nota1, nota2, nota3 : inteiroinicio escreva("Informe a nota 1: ") leia(nota1) escreva("Informe a nota 2: ") leia(nota2) escreva("Informe a nota 3: ") leia(nota3) escolha nota1 + nota2 + nota3 caso 0 ate 59 escreval("Conceito E") caso 60 ate 69 escreval("Conceito D") caso 70 ate 79 escreval("Conceito C") caso 80 ate 89 escreval("Conceito B") caso 90 ate 100 escreval("Conceito A") outrocaso escreval("Nota final inválida!") fimescolhafimalgoritmo
Uso de uma expressão
aritmética cujo resultado será
INTEIRO
Prof. Ricardo Luiz de Freitas – [email protected]
Exercícios (para entregar) Valor: 8 pontos (cada exercício vale 1 ponto); Forma de entrega: área do aluno na página da
escola na internet (exercício por exercício); Data máxima de entrega: 31/03/2013 (domingo até
meia-noite); Um ou mais exercícios poderão ser feitos em dupla
(somente um elemento da dupla entregará o exercício);
Colocar seu nome, e de seu colega (se for o caso), em cada algoritmo, em “Autor”;
Exercícios sem nome, iguais e mal feitos serão zerados;
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 1
Faça um algoritmo que leia um número real qualquer. Se o valor for maior que zero, calcule e imprima a área e o perímetro de um quadrado. Caso o valor seja menor ou igual a zero, mostre uma mensagem dizendo que o valor é INVÁLIDO.
xLADOPERÍMETRO
LADOÁREA
4
2
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 2Tendo como dados de entrada a altura (em metros) e o sexo de uma pessoa (“F” para feminino e “M” para masculino), faça um algoritmo que calcule o peso ideal da mesma, utilizando as seguintes fórmulas:
Para homens: Para mulheres:
7.441.62 xALTURAPesoIdeal
587.72 xALTURAPesoIdeal
Altura = 1.75 Sexo = F Peso = 63.975Para testar: Altura = 1.75 Sexo = M Peso = 69.225
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 3Ao se fazer uma determinada aplicação financeira, quando resgatamos o dinheiro, a financeira calcula o valor a ser resgatado levando-se em conta o número de dias que o dinheiro ficou aplicado, a taxa de juros diária, uma taxa de administração de R$10,00 e o valor a ser retido na fonte de imposto de renda (percentual de 15%). Faça um algoritmo que calcule o valor resgatado, solicitando ao usuário o capital aplicado, o número de dias que ficou aplicado e a taxa diária e calcule e imprime o rendimento, o imposto de renda e o valor a ser resgatado.
Rendimento = Capital Aplicado x Taxa Diária x Número de DiasImposto de Renda = 15% sobre o Rendimento Valor Resgatado = Capital Aplicado + Rendimento – IR – Taxa de Administração
Observação: A Taxa Diária é informada percentualmente pelo usuário mas deve ser convertida para ser utilizada na fórmula do cálculo do rendimento.
Para testar: Capital Aplicado = R$10000 - Dias = 60 - Taxa Diária = 0.1% Rendimento = R$600 - IR = R$90 - Valor Resgatado = R$10500
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 4A multa sobre o pagamento de um determinado imposto é calculada de acordo com o número de dias de atraso (vide tabela abaixo). Faça um algoritmo que leia o valor do imposto e o número de dias de atraso e calcule e imprima a multa a ser paga.
Dias de atraso Percentual de multa s/ Imposto
Até 10 Isenta
De 11 a 30 2%
De 31 a 60 10% + 0,5% por dia de atraso
De 61 a 100 100%
Acima de 100 150% + R$1,00 por dia de atraso
Imposto = R$100 Dias = 5 Multa = R$0Para testar: Imposto = R$100 Dias = 50 Multa = R$35
Imposto = R$100 Dias = 120 Multa = R$270
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 5Faça um algoritmo que calcule o salário mensal a receber de um vendedor comissionado. O salário é constituído de um valor fixo de R$240,00 mais o valor referente a comissão, calculada de acordo com a tabela abaixo, que varia com as vendas mensais realizadas pelo vendedor. O algoritmo deverá solicitar ao usuário o valor mensal das vendas do vendedor e calcular e imprimir o seu salário no mês.
SALÁRIO = VALOR FIXO + COMISSÃO
Total Mensal Vendido Cálculo da Comissão
Até R$1000,00 Zero
De R$1000,01 a 10000,00 10% sobre o valor vendido
Acima de R$10000,00 R$1000,00 fixos
Vendas = R$560,00 Salário = R$240,00Para testar: Vendas = R$7500,00 Salário = R$990,00
Vendas = R$23000,00 Salário = R$1240,00
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 6Pelas novas regras da CBV, a pontuação que as equipes de vôlei ganham ao fim de uma partida da Super Liga são: placares de 3 a 0 ou 3 a 1, dão 3 pontos a equipe vencedora e nenhum ponto a equipe perdedora; placar de 3 a 2, dão 2 pontos a equipe vencedora e 1 ponto a equipe perdedora. Faça um algoritmo que leia os nomes das equipes (equipe 1 e equipe 2) e o placar de um jogo (sets ganhos da equipe 1 e sets ganhos da equipe 2), e calcule e imprima os pontuação que cada equipe ganhou na partida.
Equipe 1 = Cruzeiro Equipe 2 = MinasPara testar: Sets equipe 1 = 2 Sets equipe 2 = 3
Pontos Cruzeiro = 1 Pontos Minas = 2
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 7Uma indústria produtora de bolas de futebol fabricou uma grande quantidade para vender na época da Copa do Mundo em 2014. Para isto ela deverá estocar toda a produção em galpões a serem alugados até a Copa. As bolas serão armazenadas em caixas de papelão, que comportam até 10 bolas. Cada galpão a ser alugado comporta até 850 caixas de papelão. Faça um algoritmo que leia a quantidade de bolas produzidas pela fábrica, a quantidade de bolas com defeito e que serão descartadas, o preço unitário das caixas de papelão, a quantidade de meses até a Copa, além do valor mensal do aluguel, e calcule e imprima o custo total de embalagem mais estocagem de toda a produção.
Observação: A última caixa de papelão deverá ser estocada mesmo que incompleta. O último galpão deverá ser alugado mesmo que não esteja totalmente cheio.
Para testar: Produção de bolas = 85000 Bolas com defeito = 103
Caixa Papelão = R$0,50 Aluguel Mensal = R$100,00 Meses para a Copa = 44 Custo Total = R$ 48245,00
Prof. Ricardo Luiz de Freitas – [email protected]
Exercício 8Faça um algoritmo que leia a hora inicial, minuto inicial, hora final e minuto final de um jogo. A seguir, calcule e imprima a duração do jogo, mostrando o resultado no seguinte formato:
“O jogo durou xxx horas e yyy minutos”.
Observação: O jogo terminou no mesmo dia em que ele começou.
Hora Inicio = 10:15 Hora Fim = 16:25 Duração = 6 hs 10 minPara testar: Hora Inicio = 10:15 Hora Fim = 10:45 Duração = 0 hs 30 min
Hora Inicio = 10:15 Hora Fim = 18:05 Duração = 7 hs 50 min