Algoritmos (parte 1)_Alunos.ppt

185
Algoritmos Prof. Ricardo Luiz de Freitas [email protected]

Transcript of Algoritmos (parte 1)_Alunos.ppt

Page 1: Algoritmos (parte 1)_Alunos.ppt

Algoritmos

Prof. Ricardo Luiz de [email protected]

Page 2: Algoritmos (parte 1)_Alunos.ppt

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

Page 3: Algoritmos (parte 1)_Alunos.ppt

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

Page 4: Algoritmos (parte 1)_Alunos.ppt

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;

Page 5: Algoritmos (parte 1)_Alunos.ppt

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

Page 6: Algoritmos (parte 1)_Alunos.ppt

Prof. Ricardo Luiz de Freitas – [email protected]

Um robô conseguiria executar o algoritmo e fazer um sanduíche?

Page 7: Algoritmos (parte 1)_Alunos.ppt

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”

Page 8: Algoritmos (parte 1)_Alunos.ppt

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

Page 9: Algoritmos (parte 1)_Alunos.ppt

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

Page 10: Algoritmos (parte 1)_Alunos.ppt

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

Page 11: Algoritmos (parte 1)_Alunos.ppt

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

Page 12: Algoritmos (parte 1)_Alunos.ppt

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

Page 13: Algoritmos (parte 1)_Alunos.ppt

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”

Page 14: Algoritmos (parte 1)_Alunos.ppt

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?

Page 15: Algoritmos (parte 1)_Alunos.ppt

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

Page 16: Algoritmos (parte 1)_Alunos.ppt

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.

Page 17: Algoritmos (parte 1)_Alunos.ppt

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.

Page 18: Algoritmos (parte 1)_Alunos.ppt

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...

Page 19: Algoritmos (parte 1)_Alunos.ppt

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.

Page 20: Algoritmos (parte 1)_Alunos.ppt

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

Page 21: Algoritmos (parte 1)_Alunos.ppt

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

Page 22: Algoritmos (parte 1)_Alunos.ppt

Prof. Ricardo Luiz de Freitas – [email protected]

Compilador VisuAlg

Page 23: Algoritmos (parte 1)_Alunos.ppt

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.

Page 24: Algoritmos (parte 1)_Alunos.ppt

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.

Page 25: Algoritmos (parte 1)_Alunos.ppt

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

Page 26: Algoritmos (parte 1)_Alunos.ppt

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

Page 27: Algoritmos (parte 1)_Alunos.ppt

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.

Page 28: Algoritmos (parte 1)_Alunos.ppt

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

Page 29: Algoritmos (parte 1)_Alunos.ppt

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

Page 30: Algoritmos (parte 1)_Alunos.ppt

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

Page 31: Algoritmos (parte 1)_Alunos.ppt

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”

Page 32: Algoritmos (parte 1)_Alunos.ppt

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

Page 33: Algoritmos (parte 1)_Alunos.ppt

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

Page 34: Algoritmos (parte 1)_Alunos.ppt

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

Page 35: Algoritmos (parte 1)_Alunos.ppt

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

Page 36: Algoritmos (parte 1)_Alunos.ppt

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

Page 37: Algoritmos (parte 1)_Alunos.ppt

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

Page 38: Algoritmos (parte 1)_Alunos.ppt

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”).

Page 39: Algoritmos (parte 1)_Alunos.ppt

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

Page 40: Algoritmos (parte 1)_Alunos.ppt

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

Page 41: Algoritmos (parte 1)_Alunos.ppt

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)

Page 42: Algoritmos (parte 1)_Alunos.ppt

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.

Page 43: Algoritmos (parte 1)_Alunos.ppt

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.

Page 44: Algoritmos (parte 1)_Alunos.ppt

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

Page 45: Algoritmos (parte 1)_Alunos.ppt

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

Page 46: Algoritmos (parte 1)_Alunos.ppt

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

Page 47: Algoritmos (parte 1)_Alunos.ppt

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

Page 48: Algoritmos (parte 1)_Alunos.ppt

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.

Page 49: Algoritmos (parte 1)_Alunos.ppt

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

Page 50: Algoritmos (parte 1)_Alunos.ppt

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

Page 51: Algoritmos (parte 1)_Alunos.ppt

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

Page 52: Algoritmos (parte 1)_Alunos.ppt

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...)

Page 53: Algoritmos (parte 1)_Alunos.ppt

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...)

Page 54: Algoritmos (parte 1)_Alunos.ppt

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

Page 55: Algoritmos (parte 1)_Alunos.ppt

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

Page 56: Algoritmos (parte 1)_Alunos.ppt

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

Page 57: Algoritmos (parte 1)_Alunos.ppt

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...)

Page 58: Algoritmos (parte 1)_Alunos.ppt

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

Page 59: Algoritmos (parte 1)_Alunos.ppt

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

Page 60: Algoritmos (parte 1)_Alunos.ppt

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

Page 61: Algoritmos (parte 1)_Alunos.ppt

Prof. Ricardo Luiz de Freitas – [email protected]

Aula 3

Comando de ATRIBUIÇÃO Expressões Aritméticas Exercícios

Page 62: Algoritmos (parte 1)_Alunos.ppt

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 (< -)

Page 63: Algoritmos (parte 1)_Alunos.ppt

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)

Page 64: Algoritmos (parte 1)_Alunos.ppt

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

Page 65: Algoritmos (parte 1)_Alunos.ppt

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

Page 66: Algoritmos (parte 1)_Alunos.ppt

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

Page 67: Algoritmos (parte 1)_Alunos.ppt

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

Page 68: Algoritmos (parte 1)_Alunos.ppt

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

Page 69: Algoritmos (parte 1)_Alunos.ppt

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

Page 70: Algoritmos (parte 1)_Alunos.ppt

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

Page 71: Algoritmos (parte 1)_Alunos.ppt

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

Page 72: Algoritmos (parte 1)_Alunos.ppt

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

Page 73: Algoritmos (parte 1)_Alunos.ppt

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

Page 74: Algoritmos (parte 1)_Alunos.ppt

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

Page 75: Algoritmos (parte 1)_Alunos.ppt

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

Page 76: Algoritmos (parte 1)_Alunos.ppt

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

Page 77: Algoritmos (parte 1)_Alunos.ppt

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

Page 78: Algoritmos (parte 1)_Alunos.ppt

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

Page 79: Algoritmos (parte 1)_Alunos.ppt

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

Page 80: Algoritmos (parte 1)_Alunos.ppt

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

Page 81: Algoritmos (parte 1)_Alunos.ppt

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

Page 82: Algoritmos (parte 1)_Alunos.ppt

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

Page 83: Algoritmos (parte 1)_Alunos.ppt

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

Page 84: Algoritmos (parte 1)_Alunos.ppt

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..

Page 85: Algoritmos (parte 1)_Alunos.ppt

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

Page 86: Algoritmos (parte 1)_Alunos.ppt

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

Page 87: Algoritmos (parte 1)_Alunos.ppt

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

Page 88: Algoritmos (parte 1)_Alunos.ppt

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

Page 89: Algoritmos (parte 1)_Alunos.ppt

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

Page 90: Algoritmos (parte 1)_Alunos.ppt

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

Page 91: Algoritmos (parte 1)_Alunos.ppt

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

Page 92: Algoritmos (parte 1)_Alunos.ppt

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 >

Page 93: Algoritmos (parte 1)_Alunos.ppt

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

Page 94: Algoritmos (parte 1)_Alunos.ppt

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

Page 95: Algoritmos (parte 1)_Alunos.ppt

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

Page 96: Algoritmos (parte 1)_Alunos.ppt

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

Page 97: Algoritmos (parte 1)_Alunos.ppt

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.

Page 98: Algoritmos (parte 1)_Alunos.ppt

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

Page 99: Algoritmos (parte 1)_Alunos.ppt

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.

Page 100: Algoritmos (parte 1)_Alunos.ppt

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

Page 101: Algoritmos (parte 1)_Alunos.ppt

Prof. Ricardo Luiz de Freitas – [email protected]

Aula 4

Comando CONDICIONAL – SE Exercícios

Page 102: Algoritmos (parte 1)_Alunos.ppt

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.

Page 103: Algoritmos (parte 1)_Alunos.ppt

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

Page 104: Algoritmos (parte 1)_Alunos.ppt

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

Page 105: Algoritmos (parte 1)_Alunos.ppt

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

Page 106: Algoritmos (parte 1)_Alunos.ppt

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

Page 107: Algoritmos (parte 1)_Alunos.ppt

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

Page 108: Algoritmos (parte 1)_Alunos.ppt

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

Page 109: Algoritmos (parte 1)_Alunos.ppt

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)

Page 110: Algoritmos (parte 1)_Alunos.ppt

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)

Page 111: Algoritmos (parte 1)_Alunos.ppt

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

Page 112: Algoritmos (parte 1)_Alunos.ppt

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)

Page 113: Algoritmos (parte 1)_Alunos.ppt

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)

Page 114: Algoritmos (parte 1)_Alunos.ppt

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)

Page 115: Algoritmos (parte 1)_Alunos.ppt

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)

Page 116: Algoritmos (parte 1)_Alunos.ppt

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)

Page 117: Algoritmos (parte 1)_Alunos.ppt

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)

Page 118: Algoritmos (parte 1)_Alunos.ppt

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

Page 119: Algoritmos (parte 1)_Alunos.ppt

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%

Page 120: Algoritmos (parte 1)_Alunos.ppt

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)

Page 121: Algoritmos (parte 1)_Alunos.ppt

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)

Page 122: Algoritmos (parte 1)_Alunos.ppt

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.

Page 123: Algoritmos (parte 1)_Alunos.ppt

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%

Page 124: Algoritmos (parte 1)_Alunos.ppt

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

Page 125: Algoritmos (parte 1)_Alunos.ppt

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

Page 126: Algoritmos (parte 1)_Alunos.ppt

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

Page 127: Algoritmos (parte 1)_Alunos.ppt

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

Page 128: Algoritmos (parte 1)_Alunos.ppt

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

Page 129: Algoritmos (parte 1)_Alunos.ppt

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

Page 130: Algoritmos (parte 1)_Alunos.ppt

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

Page 131: Algoritmos (parte 1)_Alunos.ppt

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

Page 132: Algoritmos (parte 1)_Alunos.ppt

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

Page 133: Algoritmos (parte 1)_Alunos.ppt

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

Page 134: Algoritmos (parte 1)_Alunos.ppt

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

Page 135: Algoritmos (parte 1)_Alunos.ppt

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

Page 136: Algoritmos (parte 1)_Alunos.ppt

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

Page 137: Algoritmos (parte 1)_Alunos.ppt

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

Page 138: Algoritmos (parte 1)_Alunos.ppt

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

Page 139: Algoritmos (parte 1)_Alunos.ppt

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

Page 140: Algoritmos (parte 1)_Alunos.ppt

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

Page 141: Algoritmos (parte 1)_Alunos.ppt

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

Page 142: Algoritmos (parte 1)_Alunos.ppt

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

Page 143: Algoritmos (parte 1)_Alunos.ppt

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%

Page 144: Algoritmos (parte 1)_Alunos.ppt

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

Page 145: Algoritmos (parte 1)_Alunos.ppt

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

Page 146: Algoritmos (parte 1)_Alunos.ppt

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

Page 147: Algoritmos (parte 1)_Alunos.ppt

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

Page 148: Algoritmos (parte 1)_Alunos.ppt

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)

Page 149: Algoritmos (parte 1)_Alunos.ppt

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)

Page 150: Algoritmos (parte 1)_Alunos.ppt

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

Page 151: Algoritmos (parte 1)_Alunos.ppt

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...)

Page 152: Algoritmos (parte 1)_Alunos.ppt

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...)

Page 153: Algoritmos (parte 1)_Alunos.ppt

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...)

Page 154: Algoritmos (parte 1)_Alunos.ppt

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

Page 155: Algoritmos (parte 1)_Alunos.ppt

Prof. Ricardo Luiz de Freitas – [email protected]

Aula 5

Comando CONDICIONAL – CASO Exercícios

Page 156: Algoritmos (parte 1)_Alunos.ppt

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.

Page 157: Algoritmos (parte 1)_Alunos.ppt

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.

Page 158: Algoritmos (parte 1)_Alunos.ppt

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

Page 159: Algoritmos (parte 1)_Alunos.ppt

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.

Page 160: Algoritmos (parte 1)_Alunos.ppt

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.

Page 161: Algoritmos (parte 1)_Alunos.ppt

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

Page 162: Algoritmos (parte 1)_Alunos.ppt

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

Page 163: Algoritmos (parte 1)_Alunos.ppt

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

Page 164: Algoritmos (parte 1)_Alunos.ppt

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

Page 165: Algoritmos (parte 1)_Alunos.ppt

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

Page 166: Algoritmos (parte 1)_Alunos.ppt

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

Page 167: Algoritmos (parte 1)_Alunos.ppt

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")

Page 168: Algoritmos (parte 1)_Alunos.ppt

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

Page 169: Algoritmos (parte 1)_Alunos.ppt

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

Page 170: Algoritmos (parte 1)_Alunos.ppt

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

Page 171: Algoritmos (parte 1)_Alunos.ppt

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

Page 172: Algoritmos (parte 1)_Alunos.ppt

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

Page 173: Algoritmos (parte 1)_Alunos.ppt

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

Page 174: Algoritmos (parte 1)_Alunos.ppt

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

Page 175: Algoritmos (parte 1)_Alunos.ppt

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

Page 176: Algoritmos (parte 1)_Alunos.ppt

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

Page 177: Algoritmos (parte 1)_Alunos.ppt

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;

Page 178: Algoritmos (parte 1)_Alunos.ppt

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

Page 179: Algoritmos (parte 1)_Alunos.ppt

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

Page 180: Algoritmos (parte 1)_Alunos.ppt

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

Page 181: Algoritmos (parte 1)_Alunos.ppt

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

Page 182: Algoritmos (parte 1)_Alunos.ppt

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

Page 183: Algoritmos (parte 1)_Alunos.ppt

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

Page 184: Algoritmos (parte 1)_Alunos.ppt

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

Page 185: Algoritmos (parte 1)_Alunos.ppt

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