63
ALGORITMO ALGORITMO

Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

ALGORITMOALGORITMO

Page 2: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

DefiniDefiniççãoão

�� Representa a lRepresenta a lóógica de solugica de soluçção de um problema ão de um problema passopasso--aa--passopasso..

Page 3: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Um algoritmo pode serUm algoritmo pode ser

�� Na forma textual:Na forma textual:�� Uma descriUma descriçção tal como uma receita de bolo;ão tal como uma receita de bolo;�� Um manual de montagem;Um manual de montagem;�� Um relato de como fazer uma tarefa;Um relato de como fazer uma tarefa;�� O O pseudopseudo ccóódigo de um programa;digo de um programa;

�� Na forma de grNa forma de grááficosficos�� Um fluxogramaUm fluxograma�� Um mapa indicando o caminhoUm mapa indicando o caminho

Page 4: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

CaracterCaracteríísticassticas

�� Possui um nPossui um núúmero limitado de passos;mero limitado de passos;

�� As regras de codificaAs regras de codificaçção do algoritmo são ão do algoritmo são previamente conhecidas e dependem da previamente conhecidas e dependem da ““mmááquinaquina”” que irque iráá resolver o problemaresolver o problema

Page 5: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Qualidades de um algoritmoQualidades de um algoritmo�� IntegridadeIntegridade:: refererefere--se se àà precisão das informaprecisão das informaçções manipuladas ões manipuladas

pelo programa; pelo programa; �� ClarezaClareza:: refererefere--se se àà facilidade de leitura do programa;facilidade de leitura do programa;�� SimplicidadeSimplicidade:: a clareza e precisão de um programa são a clareza e precisão de um programa são

normalmente melhoradas tornando seu entendimento o mais normalmente melhoradas tornando seu entendimento o mais simples posssimples possíível, consistente com os objetivos do programa;vel, consistente com os objetivos do programa;

�� EficiênciaEficiência:: refererefere--se se àà velocidade de processamento e a correta velocidade de processamento e a correta utilizautilizaçção da memão da memóória; ria;

�� ModularidadeModularidade:: consiste no consiste no particionamentoparticionamento do programa em do programa em mmóódulos menores bem identificdulos menores bem identificááveis e com funveis e com funçções especões especííficas; ficas; ee

�� GeneralidadeGeneralidade:: éé interessante que um programa seja tão interessante que um programa seja tão gengenéérico quanto possrico quanto possíível de forma a permitir a reutilizavel de forma a permitir a reutilizaçção de ão de seus componentes em outros projetos.seus componentes em outros projetos.

Page 6: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

PseudoPseudo ccóódigodigo

�� ÉÉ uma forma de algoritmo que simula a soluuma forma de algoritmo que simula a soluçção ão do problema por uma linguagem computacional;do problema por uma linguagem computacional;

�� Não existem regras rNão existem regras ríígidas para a codificagidas para a codificaçção ão dos algoritmos, porem, de uma forma geral dos algoritmos, porem, de uma forma geral seguem a um padrão.seguem a um padrão.

Page 7: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

ProgramaProgramaçção Estruturadaão Estruturada

�� Possui 3 figuras bPossui 3 figuras báásicassicas�� SeqSeqüüência simples;ência simples;

�� Decisão;Decisão;

�� RepetiRepetiççãoão

Page 8: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

ComandosComandos

�� Inicio Inicio ��representa o inicio do algoritmo;representa o inicio do algoritmo;�� Fim Fim �� representa o fim do algoritmo;representa o fim do algoritmo;�� Leia A Leia A �� significa ler um valor de uma unidade significa ler um valor de uma unidade

de entrada e armazenar em A. Caso exista um de entrada e armazenar em A. Caso exista um valor em A este valor em A este éé destrudestruíído e substitudo e substituíído pelo do pelo novo valor lido.novo valor lido.

Page 9: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

ComandosComandos

�� Escreva A Escreva A �� significa exibir o contesignifica exibir o conteúúdo de A. Não do de A. Não destrdestróói o valor exibido. Podei o valor exibido. Pode--se exibir uma mensagem se exibir uma mensagem colocando entre aspas. Escrever colocando entre aspas. Escrever ““respostaresposta””

�� AA C+B significa A recebe a soma do conteC+B significa A recebe a soma do conteúúdo de C do de C com B;com B;

�� AtenAtençção o são o síímbolo mbolo tem significado diferente da tem significado diferente da matemmatemáática pois primeiro realiza a operatica pois primeiro realiza a operaçção depois ão depois atribui o resultado para a variatribui o resultado para a variáável Avel A

Page 10: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Observe queObserve que

�� A A A+B significa some o conteA+B significa some o conteúúdo de A com do de A com B e atribua a A.B e atribua a A.

�� Diga qual o valor que serDiga qual o valor que seráá exibidoexibido�� InicioInicio

�� XX 22�� YY 33�� X X x+yx+y�� Escreva xEscreva x

�� FimFim

Page 11: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

ExemploExemplo

�� Elabore um Algoritmo para ler dois valores e Elabore um Algoritmo para ler dois valores e exibir sua somaexibir sua soma

InicioInicioLer A,BLer A,B

CC A+BA+B

Escrever CEscrever C

FimFim

Page 12: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Operadores matemOperadores matemááticosticos

�� + soma+ soma

�� -- subtrasubtraççãoão

�� * multiplica* multiplicaççãoão

�� / divisão/ divisão

�� ModMod resto inteiro da divisãoresto inteiro da divisão

�� Div divisão inteiraDiv divisão inteira

�� ( )( )

Page 13: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

ExemploExemplo

�� A A 10 10 modmod 33

�� B B 10 div 310 div 3

�� Auto avaliaAuto avaliaçção:ão:

�� Proponha um mProponha um méétodo para saber se um ntodo para saber se um núúmero mero éé par ou impar com o que foi mostrado atpar ou impar com o que foi mostrado atééagora.agora.

Page 14: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

ExercExercííciocio

�� Elabore um algoritmo para ler 3 valores e Elabore um algoritmo para ler 3 valores e determinar sua mdeterminar sua méédiadia

Page 15: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

SoluSoluççãoão

�� InicioInicio�� Ler A,B,CLer A,B,C

�� D D ( A+B+C) / 3( A+B+C) / 3

�� Escrever DEscrever D

�� FimFim

Page 16: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Alem dos operadores existem as Alem dos operadores existem as

funfunççõesões

�� InInúúmeras funmeras funçções são disponões são disponííveis. Por exemplo:veis. Por exemplo:�� SqrtSqrt raiz quadradaraiz quadrada

�� SqrSqr quadradoquadrado

�� SinSin senoseno

�� CosCos cossenocosseno

�� RndRnd nnúúmero aleatmero aleatóóriorio

�� Etc.Etc.

Page 17: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Estrutura de decisãoEstrutura de decisão

�� Pode ser:Pode ser:�� Alternativa simples Alternativa simples �� quando existe apenas uma quando existe apenas uma

aaçção a ser executada se a condião a ser executada se a condiçção for verdadeira;ão for verdadeira;

�� Alternativa dupla Alternativa dupla �� quando existem duas aquando existem duas açções a ões a serem executadas se a condiserem executadas se a condiçção for verdadeira e se ão for verdadeira e se for falsa;for falsa;

�� Alternativas mAlternativas múúltiplasltiplas�� quando existem mais de quando existem mais de duas alternativas.duas alternativas.

Page 18: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Estrutura de decisãoEstrutura de decisão

�� Se (condiSe (condiçção) ão) �� EntãoEntão

�� Conjunto de comandos se a condiConjunto de comandos se a condiçção for verdadeiraão for verdadeira

�� Se nãoSe não�� Conjunto de comandos se a condiConjunto de comandos se a condiçção for falsaão for falsa

�� Fim seFim se

Page 19: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Operadores relacionaisOperadores relacionais

�� > maior que> maior que�� < menor que< menor que�� = igual= igual�� >= maior ou igual>= maior ou igual�� <= menor ou igual<= menor ou igual�� <> diferente<> diferente�� EE�� OuOu

Page 20: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

ExemploExemplo

�� Elabore um algoritmo para ler dois valores e Elabore um algoritmo para ler dois valores e exibir o maior deles. Os valores são, por exibir o maior deles. Os valores são, por definidefiniçção, diferentes entre si.ão, diferentes entre si.

InicioInicioLer A,BLer A,BSe A>B entãoSe A>B então

Escreva AEscreva A

Se nãoSe nãoEscreva BEscreva B

Fim seFim seFim Fim

Page 21: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

ExercExercííciocio

�� Elabore um algoritmo para ler a idade de uma Elabore um algoritmo para ler a idade de uma pessoa. Se a idade for menor que 18 anos exibir: pessoa. Se a idade for menor que 18 anos exibir: ““menor de idademenor de idade”” se for maior ou igual exibir se for maior ou igual exibir ““maior de idademaior de idade””..

�� Auto avaliaAuto avaliaççãoão

�� Se Se vcvc inverter a pergunta o resultado serinverter a pergunta o resultado seráá o o mesmo? mesmo?

Page 22: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

SoluSoluççãoão

�� InicioInicio�� Ler idadeLer idade

�� Se idade < 18 entãoSe idade < 18 então�� Escrever Escrever ““menor de idademenor de idade””

�� Se nãoSe não�� Escrever Escrever ““maior de idademaior de idade””

�� Fim seFim se

�� FimFim

Page 23: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Auto avaliaAuto avaliaççãoão

�� Elabore um algoritmo para ler 3 valores Elabore um algoritmo para ler 3 valores (diferentes entre si) e escrever o maior deles.(diferentes entre si) e escrever o maior deles.

Page 24: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

SoluSoluççãoão

�� InicioInicio�� Ler A,B,CLer A,B,C�� Se A>B e A>C entãoSe A>B e A>C então

�� Escrever AEscrever A

�� Se nãoSe não�� Se B > C entãoSe B > C então

�� Escrever BEscrever B

�� Se nãoSe não�� Escrever cEscrever c

�� Fim seFim se

�� Fim seFim se

�� fimfim

Page 25: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Elabore um algoritmo queElabore um algoritmo que

�� leia cleia cóódigo da mercadoria e predigo da mercadoria e preçço. Se for co. Se for cóódigo 00 digo 00 aplicar um desconto de 10%. Exibir o preaplicar um desconto de 10%. Exibir o preçço final.o final.

Page 26: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

SoluSoluççãoão

�� InicioInicio�� Ler cLer cóódigo, predigo, preççoo

�� Se cSe cóódigo = 00 entãodigo = 00 então�� PrePreçço o PrePreççoo * 0,9* 0,9

�� Fim seFim se

�� Escreva cEscreva cóódigo, predigo, preççoo

�� FimFim

Page 27: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Elabore um algoritmo queElabore um algoritmo que

�� Leia o sexo M ou F e se for M acrescente 1 a Leia o sexo M ou F e se for M acrescente 1 a varivariáável que contvel que contéém a quantidade de homens m a quantidade de homens (CM)(CM)

Page 28: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

�� INICIOINICIO�� CMCM 0 0

�� LERLER SEXOSEXO

�� SE SEXO = SE SEXO = ‘‘MM’’ ENTÃOENTÃO�� CM CM CMCM +1+1

�� FIM SEFIM SE

�� ESCREVA CMESCREVA CM

�� FIMFIM

Page 29: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

SimulaSimulaçção (chinês)ão (chinês)

�� Para verificar se um algoritmo atende aos Para verificar se um algoritmo atende aos requisitos do enunciado deverequisitos do enunciado deve--se simular seu se simular seu funcionamento com dados cujos resultados são funcionamento com dados cujos resultados são previamente conhecidos;previamente conhecidos;

�� Por exemplo:Por exemplo:

�� Simule o funcionamento do algoritmo anterior Simule o funcionamento do algoritmo anterior para sexo para sexo ‘‘MM’’

Page 30: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

DicasDicas

�� Relacione as variRelacione as variááveis na veis na mesma ordem do mesma ordem do algoritmo. Elabore uma algoritmo. Elabore uma tabela e vtabela e vááacompanhando o valor acompanhando o valor de cada varide cada variáávelvel

11CMCM

MMSexoSexo

00CMCM

valorvalorvarivariáávelvel

Page 31: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Elabore um algoritmo queElabore um algoritmo que

�� Leia a nota do aluno se for maior que 5 escrever Leia a nota do aluno se for maior que 5 escrever ““aprovadoaprovado”” caso contrcaso contráário escrever rio escrever ““reprovadoreprovado””

�� InicioInicio�� Ler notaLer nota�� Se nota >= 5 entãoSe nota >= 5 então

�� Escreva Escreva ““aprovadoaprovado””

�� Se nãoSe não�� Escreva Escreva ““reprovadoreprovado””

�� Fim seFim se

�� Fim Fim

Page 32: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Elabore um algoritmo queElabore um algoritmo que

�� Leia dois valores e exiba em ordem crescente (os Leia dois valores e exiba em ordem crescente (os valores são diferentes entre si)valores são diferentes entre si)

Page 33: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

�� InicioInicio�� Ler A,BLer A,B

�� Se A> B entãoSe A> B então�� Escreva A, BEscreva A, B

�� Se nãoSe não�� Escreva B, AEscreva B, A

�� Fim seFim se

�� FimFim

Page 34: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Altere o algoritmo anteriorAltere o algoritmo anterior

�� Inclua a condiInclua a condiçção dos valores serem iguais, neste ão dos valores serem iguais, neste caso escrever caso escrever ““valores iguaisvalores iguais””

Page 35: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Quando existem mais de duas Quando existem mais de duas

alternativasalternativas

�� Neste caso serNeste caso seráá necessnecessáário colocar vrio colocar váários rios ““sese’’ss””..

�� PodePode--se usar o operador E, ou então, o OUse usar o operador E, ou então, o OU

�� Por exemplo:Por exemplo:

Page 36: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Imposto de renda na fonteImposto de renda na fonte

�� O critO critéério para a rio para a retenretençção de ão de imposto de renda imposto de renda na fonte na fonte éé o o seguinte:seguinte:

�� Elabore um Elabore um algoritmoalgoritmo

465,3527,5%Acima de

2326,00

174,6015%De 1164,01

a 2326

Isento1164

Parcela a

deduzir

AlíquotaRenda

Page 37: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

�� InicioInicio�� Ler rendaLer renda

�� Se renda <= 1164 entãoSe renda <= 1164 então�� IR IR 00

�� Se nãoSe não�� Se renda <= 2326 entãoSe renda <= 2326 então

�� IR IR renda* 0,15 renda* 0,15 –– 174,60174,60

�� Se nãoSe não

�� IR IR renda * 0,275 renda * 0,275 –– 465,35465,35

�� Fim seFim se

�� Fim seFim se

�� Escreva renda IREscreva renda IR

�� Fim Fim

Page 38: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

SimulaSimulaççãoão

�� Simule o funcionamento do algoritmo anterior Simule o funcionamento do algoritmo anterior para os valorespara os valores�� 260,00260,00

�� 2000,002000,00

�� 5000,005000,00

Page 39: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Elabore um algoritmo que leia a nota Elabore um algoritmo que leia a nota

do aluno e escreva sua situado aluno e escreva sua situaççãoão

�� O critO critéério de aprovario de aprovaçção da UERJ ão da UERJ éé o seguinte:o seguinte:�� Nota < 4 aluno reprovadoNota < 4 aluno reprovado

�� Nota >= 4 e < 7 aluno em prova finalNota >= 4 e < 7 aluno em prova final

�� Nota >= 7 aluno aprovadoNota >= 7 aluno aprovado

Page 40: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

�� InicioInicio�� Ler notaLer nota

�� Se nota < 4 entãoSe nota < 4 então�� Escreva Escreva ““reprovadoreprovado””

�� Se nãoSe não�� Se nota <= 7 entãoSe nota <= 7 então

�� Escreva Escreva ““finalfinal””

�� Se nãoSe não

�� Escreva Escreva ““aprovadoaprovado””

�� Fim seFim se

�� Fim seFim se

�� FimFim

Page 41: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

ExercExercííciocio

�� Complemente o exercComplemente o exercíício anterior incluindo a cio anterior incluindo a condicondiçção: se o aluno tiver menos de 75% de ão: se o aluno tiver menos de 75% de freqfreqüüência estarência estaráá reprovado independente da reprovado independente da notanota

Page 42: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

�� InicioInicio�� Ler nota,Ler nota,freqfreq�� Se Se freqfreq < 0,75 então < 0,75 então

�� Escreva Escreva ““reprovadoreprovado””

�� Se nãoSe não�� Se nota < 4 entãoSe nota < 4 então

�� Escreva Escreva ““reprovadoreprovado””

�� Se nãoSe não�� Se nota <= 7 entãoSe nota <= 7 então

�� Escreva Escreva ““finalfinal””�� Se nãoSe não

�� Escreva Escreva ““aprovadoaprovado””�� Fim seFim se

�� Fim seFim se

�� Fim seFim se

�� FimFim

Page 43: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Elabore o algoritmo para determinar o Elabore o algoritmo para determinar o

recolhimento do INSS:recolhimento do INSS:

�� O INSS para o trabalhador assalariado O INSS para o trabalhador assalariado éé calculado de calculado de acordo com a seguinte tabela:acordo com a seguinte tabela:

11,0011,00De 1254,37 a 2508,72De 1254,37 a 2508,72

9,009,00De 780,01 a 1254,36De 780,01 a 1254,36

8,658,65De 752,63 a 780,00De 752,63 a 780,00

7,657,65AtAtéé 752,62752,62

AlAlííquotaquota

(%)(%)

SalSaláário de contribuirio de contribuiççãoão

Page 44: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

DicasDicas

1.1. Qual informaQual informaçção deve ser lida?ão deve ser lida?

2.2. A soluA soluçção ão éé um conjunto de decisões?um conjunto de decisões?

3.3. Comece pelo menor valor e vComece pelo menor valor e váá estabelecendo estabelecendo os intervalosos intervalos

4.4. Quais são as variQuais são as variááveis que serão utilizadas?veis que serão utilizadas?

Page 45: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

�� InicioInicio�� Ler salLer sal�� Se sal <= 752,62 entãoSe sal <= 752,62 então

�� INSS INSS sal * 0,0765sal * 0,0765

�� Se nãoSe não�� Se sal <= 780,00 entãoSe sal <= 780,00 então

�� INSS INSS sal * 0,0865sal * 0,0865

�� Se nãoSe não�� Se sal <=1254,36 entãoSe sal <=1254,36 então

�� INSS INSS sal * 0,09sal * 0,09�� Se nãoSe não

�� Se sal <= 2508,72 entãoSe sal <= 2508,72 então�� INSS INSS sal * 0,11sal * 0,11�� Se nãoSe não�� INSS INSS 2508,72 * 0,112508,72 * 0,11�� Fim seFim se

�� Fim seFim se

�� Fim seFim se

�� Fim seFim se�� Escreva INSSEscreva INSS

�� Fim Fim

Page 46: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

�� {uma solu{uma soluçção pior, mas certa}ão pior, mas certa}�� InicioInicio

�� Ler salLer sal�� Se sal <= 752,62 entãoSe sal <= 752,62 então

�� INSS INSS sal * 0,0765sal * 0,0765�� Fim seFim se�� Se sal >= 752,63 e sal <= 780,00 e entãoSe sal >= 752,63 e sal <= 780,00 e então

�� INSS INSS sal * 0,0865sal * 0,0865�� Fim seFim se�� Se sal >= 780,01 e sal <=1254,36 entãoSe sal >= 780,01 e sal <=1254,36 então

�� INSS INSS sal * 0,09sal * 0,09�� Fim seFim se�� Se sal >= 1254,37 e sal <= 2508,72 entãoSe sal >= 1254,37 e sal <= 2508,72 então

�� INSS INSS sal * 0,11sal * 0,11�� Fim seFim se�� Se sal > 2508,72 entãoSe sal > 2508,72 então

�� INSS INSS 2508,72 * 0,112508,72 * 0,11�� Fim seFim se�� Escreva INSSEscreva INSS

�� Fim Fim

Page 47: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

SeleSeleçção mão múúltiplaltipla

�� ÉÉ quando temos vquando temos váárias alternativas, como por rias alternativas, como por exemplo no exemplo no ““menumenu”” de um terminal bancde um terminal bancááriorio

Page 48: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Decisão mDecisão múúltiplaltipla

�� Caso opCaso opçção faão faççaa�� Resposta 1: alternativa 1Resposta 1: alternativa 1

�� Resposta 2: alternativa 2Resposta 2: alternativa 2

�� Outro casoOutro caso�� Alternativa 3Alternativa 3

�� Fim casoFim caso

Page 49: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Ler uma opLer uma opçção e escrever qual letra ão e escrever qual letra

foi selecionada foi selecionada

�� InicioInicio�� Ler letraLer letra

�� Caso letra faCaso letra faççaa�� ““aa””: escreva : escreva ““vcvc escolheu a escolheu a ““

�� ““bb”” : escreva : escreva ““vcvc escolheu b escolheu b ““

�� Outro casoOutro caso�� Escreva Escreva ““vcvc escolheu outra letraescolheu outra letra””

�� Fim Fim

Page 50: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Estrutura de repetiEstrutura de repetiççãoão

�� Repete, de forma controlada, um conjunto Repete, de forma controlada, um conjunto selecionado de instruselecionado de instruçções.ões.

�� Podem ser de 3(três) tipos:Podem ser de 3(três) tipos:�� ParaPara--fafaççaa

�� EnquantoEnquanto--fafaççaa

�� RepitaRepita--atatéé

Page 51: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

ParaPara--fafaççaa

�� UsaUsa--se da seguinte forma:se da seguinte forma:�� Para Para varivariáávelvel inicio atinicio atéé fimfim

�� Grupo de instruGrupo de instruçções que serões que seráá repetidorepetido

�� Fim paraFim para

�� Funciona da seguinte formaFunciona da seguinte forma�� A A varivariáávelvel éé inicializadainicializada com o valor do inicio;com o valor do inicio;�� O grupo de instruO grupo de instruçções ões éé executado;executado;�� Ao chegar ao comando Ao chegar ao comando ““fim parafim para”” a a varivariáávelvel tem seu valor tem seu valor

acrescido de 1(um) e verifica se o seu valor acrescido de 1(um) e verifica se o seu valor éé maior que fimmaior que fim�� Se for menor ou igual, repete o conjunto de instruSe for menor ou igual, repete o conjunto de instruççõesões

Page 52: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Elabore um algoritmo para escrever os Elabore um algoritmo para escrever os

nnúúmeros inteiros de 1 atmeros inteiros de 1 atéé 1010

�� InicioInicio�� Para j Para j 1 ate 10 fa1 ate 10 faççaa

�� Escreva jEscreva j

�� Fim para Fim para

�� Fim Fim

Page 53: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Elabore um algoritmo para determinar a soma Elabore um algoritmo para determinar a soma

dos 10 primeiros ndos 10 primeiros núúmeros inteirosmeros inteiros

�� InicioInicio�� Soma Soma 0;0;

�� Para jPara j 1 at1 atéé 10 fa10 faççaa�� Soma Soma somasoma+j+j

�� Fim paraFim para

�� Escreva somaEscreva soma

�� Fim Fim

Page 54: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Elabore um algoritmo que leia 5 Elabore um algoritmo que leia 5

valores e determine a sua somavalores e determine a sua soma

�� InicioInicio�� Soma Soma 00

�� Para j Para j 1 ate 5 fa1 ate 5 faççaa�� Ler xLer x

�� Soma Soma somasoma+x+x

�� Fim paraFim para

�� Escreva somaEscreva soma

�� Fim Fim

Page 55: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Altere o algoritmo anterior para ler Altere o algoritmo anterior para ler

““nn”” valoresvalores

�� InicioInicio�� Ler nLer n�� Soma Soma 00�� Para j Para j 1 ate n fa1 ate n faççaa

�� Ler xLer x�� Soma Soma somasoma +x+x

�� Fim paraFim para�� Escreva somaEscreva soma

�� Fim Fim

Page 56: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

EnquantoEnquanto--fafaççaa

�� UsaUsa--se da seguinte forma:se da seguinte forma:�� Enquanto condiEnquanto condiçção faão faççaa

�� Grupo de instruGrupo de instruçções que serões que seráá repetidorepetido

�� Fim enquantoFim enquanto

�� Funciona da seguinte forma:Funciona da seguinte forma:�� Enquanto a condiEnquanto a condiçção for VERDADEIRA o grupo ão for VERDADEIRA o grupo

de instrude instruçções ões éé repetidorepetido

Page 57: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Por exemplo:Por exemplo:

soma de 5 valores lidossoma de 5 valores lidos

�� InicioInicio

�� SomaSoma00

�� ContCont0 0

�� Enquanto Enquanto contcont < 5 fa< 5 faççaa�� Ler xLer x

�� SomaSoma somasoma+x+x

�� ContContcontcont+1+1

�� Fim enquantoFim enquanto

�� Escreva somaEscreva soma

�� Fim Fim

Page 58: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

As condiAs condiçções são construões são construíídasdas

�� De forma anDe forma anááloga as condiloga as condiçções da estrutura de ões da estrutura de decisão;decisão;

�� PodePode--se usar os operadores >, >=, <,<=,=,<> se usar os operadores >, >=, <,<=,=,<> e ou não e ou não

Page 59: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

PodePode--se interromper a repetise interromper a repetiçção ão

�� Usando um contador, conforme o exemplo Usando um contador, conforme o exemplo anterior ou;anterior ou;

�� Usando um Usando um ““flagflag”” condicondiçção que indica que a ão que indica que a repetirepetiçção deve ser interrompida.ão deve ser interrompida.

Page 60: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Elabore um algoritmo queElabore um algoritmo que

�� Leia uma quantidade indeterminada de valores Leia uma quantidade indeterminada de valores positivos. O positivos. O ““flagflag”” éé um valor negativo.um valor negativo.

Page 61: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

SoluSoluççãoão

�� InicioInicio

�� SomaSoma00

�� Ler xLer x

�� Enquanto x > 0 faEnquanto x > 0 faççaa�� Soma Soma somasoma +x+x

�� Ler xLer x

�� Fim enquantoFim enquanto

�� Escreva somaEscreva soma

�� FimFim

Page 62: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

RepitaRepita--atatéé

�� UsaUsa--se da seguinte forma:se da seguinte forma:�� RepitaRepita

�� Grupo de instruGrupo de instruçções que serões que seráá repetidorepetido

�� AtAtéé que condique condiççãoão

�� Funciona da seguinte forma:Funciona da seguinte forma:�� Repete o grupo de instruRepete o grupo de instruçções ATões ATÉÉ que a condique a condiçção ão

seja verdadeiraseja verdadeira

Page 63: Programando em Pascal - Instituto Nacional de Matemática Pura e …w3.impa.br/~zang/uerj/ipd/material/algoritmo.pdf · 2012. 8. 3. · Elabore um algoritmo que leia a nota do aluno

Elabore um algoritmo que leia 5 Elabore um algoritmo que leia 5

valores e determine a sua somavalores e determine a sua soma

�� InicioInicio�� SomaSomaoo�� ContCont00�� RepitaRepita

�� Ler xLer x�� SomaSomasomasoma+x+x�� ContCont contcont+1+1

�� Ate que Ate que contcont = 5= 5�� Escreva somaEscreva soma�� Fim Fim