Algoritmo

Preview:

DESCRIPTION

Conceitos básicos de algoritmos e lógica de programação

Citation preview

ALGORITMOALGORITMO

DefiniçãoDefinição

Representa a lógica de solução de Representa a lógica de solução de um problema passo-a-passo.um problema passo-a-passo.

Um algoritmo pode serUm algoritmo pode ser

Na forma textual:Na forma textual:• Uma descrição tal como uma receita de Uma descrição tal como uma receita de

bolo;bolo;• Um manual de montagem;Um manual de montagem;• Um relato de como fazer uma tarefa;Um relato de como fazer uma tarefa;• O pseudo código de um programa;O pseudo código de um programa;

Na forma de gráficosNa forma de gráficos• Um fluxogramaUm fluxograma• Um mapa indicando o caminhoUm mapa indicando o caminho

CaracterísticasCaracterísticas

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

As regras de codificação do algoritmo As regras de codificação do algoritmo são previamente conhecidas e são previamente conhecidas e dependem da “máquina” que irá dependem da “máquina” que irá resolver o problemaresolver o problema

Qualidades de um algoritmoQualidades de um algoritmo IntegridadeIntegridade:: refere-se à precisão das informações refere-se à precisão das informações

manipuladas pelo programa; manipuladas pelo programa; ClarezaClareza:: refere-se à facilidade de leitura do refere-se à facilidade de leitura do

programa;programa; SimplicidadeSimplicidade:: a clareza e precisão de um programa a clareza e precisão de um programa

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

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

ModularidadeModularidade:: consiste no particionamento do consiste no particionamento do programa em módulos menores bem identificáveis e programa em módulos menores bem identificáveis e com funções específicas; ecom funções específicas; e

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

Pseudo códigoPseudo código

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

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

Programação EstruturadaProgramação Estruturada

Possui 3 figuras básicasPossui 3 figuras básicas• Seqüência simples;Seqüência simples;• Decisão;Decisão;• RepetiçãoRepetição

ComandosComandos

Inicio Inicio representa o inicio do representa o inicio do algoritmo;algoritmo;

Fim Fim representa o fim do algoritmo; representa o fim do algoritmo; Leia A Leia A significa ler um valor de significa ler um valor de

uma unidade de entrada e uma unidade de entrada e armazenar em A. Caso exista um armazenar em A. Caso exista um valor em A este é destruído e valor em A este é destruído e substituído pelo novo valor lido.substituído pelo novo valor lido.

ComandosComandos

Escreva A Escreva A significa exibir o conteúdo de significa exibir o conteúdo de A. Não destrói o valor exibido. Pode-se A. Não destrói o valor exibido. Pode-se exibir uma mensagem colocando entre exibir uma mensagem colocando entre aspas. Escrever “resposta”aspas. Escrever “resposta”

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

Atenção o símbolo Atenção o símbolo tem significado tem significado diferente da matemática pois primeiro diferente da matemática pois primeiro realiza a operação depois atribui o realiza a operação depois atribui o resultado para a variável Aresultado para a variável A

Observe queObserve que

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

Diga qual o valor que será exibidoDiga qual o valor que será exibido InicioInicio

• XX 2 2• YY 3 3• X X x+y x+y• Escreva xEscreva x

FimFim

ExemploExemplo

Elabore um Algoritmo para ler dois Elabore um Algoritmo para ler dois valores e exibir sua somavalores e exibir sua soma

InicioInicioLer A,BLer A,B

CC A+B A+B

Escrever CEscrever C

FimFim

Operadores matemáticosOperadores matemáticos

+ soma+ soma - subtração- subtração * multiplicação* multiplicação / divisão/ divisão Mod resto inteiro da divisãoMod resto inteiro da divisão Div divisão inteiraDiv divisão inteira ( )( )

ExemploExemplo

A A 10 mod 3 10 mod 3 B B 10 div 3 10 div 3 Auto avaliação:Auto avaliação: Proponha um método para saber se Proponha um método para saber se

um número é par ou impar com o um número é par ou impar com o que foi mostrado até agora.que foi mostrado até agora.

ExercícioExercício

Elabore um algoritmo para ler 3 Elabore um algoritmo para ler 3 valores e determinar sua médiavalores e determinar sua média

SoluçãoSolução

InicioInicio• Ler A,B,CLer A,B,C• D D ( A+B+C) / 3( A+B+C) / 3• Escrever DEscrever D

FimFim

Alem dos operadores existem as Alem dos operadores existem as funçõesfunções

Inúmeras funções são disponíveis. Inúmeras funções são disponíveis. Por exemplo:Por exemplo:• Sqrt raiz quadradaSqrt raiz quadrada• Sqr quadradoSqr quadrado• Sin senoSin seno• Cos cossenoCos cosseno• Rnd número aleatórioRnd número aleatório• Etc.Etc.

Estrutura de decisãoEstrutura de decisão

Pode ser:Pode ser:• Alternativa simples Alternativa simples quando existe quando existe

apenas uma ação a ser executada se a apenas uma ação a ser executada se a condição for verdadeira;condição for verdadeira;

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

• Alternativas múltiplasAlternativas múltiplas quando existem quando existem mais de duas alternativas.mais de duas alternativas.

Estrutura de decisãoEstrutura de decisão

Se (condição) Se (condição) • EntãoEntão

Conjunto de comandos se a condição for Conjunto de comandos se a condição for verdadeiraverdadeira

• Se nãoSe não Conjunto de comandos se a condição for Conjunto de comandos se a condição for

falsafalsa

Fim seFim se

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

ExemploExemplo Elabore um algoritmo para ler dois Elabore um algoritmo para ler dois

valores e exibir o maior deles. Os valores e exibir o maior deles. Os valores são, por definição, diferentes valores são, por definição, diferentes entre si.entre si.

InicioInicio Ler A,BLer A,B

Se A>B entãoSe A>B entãoEscreva AEscreva A

Se nãoSe nãoEscreva BEscreva B

Fim seFim seFim Fim

ExercícioExercício

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

Auto avaliaçãoAuto avaliação Se vc inverter a pergunta o resultado Se vc inverter a pergunta o resultado

será o mesmo? será o mesmo?

SoluçãoSolução

InicioInicio• Ler idadeLer idade• Se idade < 18 entãoSe idade < 18 então

Escrever “menor de idade”Escrever “menor de idade”

• Se nãoSe não Escrever “maior de idade”Escrever “maior de idade”

• Fim seFim se FimFim

Auto avaliaçãoAuto avaliação

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

SoluçãoSoluçã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

Elabore um algoritmo queElabore um algoritmo que

• leia código da mercadoria e preço. Se leia código da mercadoria e preço. Se for código 00 aplicar um desconto de for código 00 aplicar um desconto de 10%. Exibir o preço final.10%. Exibir o preço final.

SoluçãoSolução

InicioInicio• Ler código, preçoLer código, preço• Se código = 00 entãoSe código = 00 então

Preço Preço Preço * 0,9 Preço * 0,9

• Fim seFim se• Escreva código, preçoEscreva código, preço

FimFim

Elabore um algoritmo queElabore um algoritmo que

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

INICIOINICIO• CMCM 0 { não é obrigatório pois todas as 0 { não é obrigatório pois todas as

variáveis iniciam com 0}variáveis iniciam com 0}• LER SEXOLER SEXO• SE SEXO = ‘M’ ENTÃOSE SEXO = ‘M’ ENTÃO

CM CM CM +1 CM +1

• FIM SEFIM SE• ESCREVA CMESCREVA CM

FIMFIM

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

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

Por exemplo:Por exemplo: Simule o funcionamento do algoritmo Simule o funcionamento do algoritmo

anterior para sexo ‘M’anterior para sexo ‘M’

DicasDicas

Relacione as Relacione as variáveis na variáveis na mesma ordem do mesma ordem do algoritmo. Elabore algoritmo. Elabore uma tabela e vá uma tabela e vá acompanhando o acompanhando o valor de cada valor de cada variávelvariável

variávelvariável valorvalor

CMCM 00

SexoSexo MM

CMCM 11

Elabore um algoritmo queElabore um algoritmo que

Leia a nota do aluno se for maior que 5 Leia a nota do aluno se for maior que 5 escrever “aprovado” caso contrário escrever “aprovado” caso contrário escrever “reprovado”escrever “reprovado”

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

Escreva “aprovado”Escreva “aprovado”

• Se nãoSe não Escreva “reprovado”Escreva “reprovado”

• Fim seFim se Fim Fim

Elabore um algoritmo queElabore um algoritmo que

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

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

Altere o algoritmo anteriorAltere o algoritmo anterior

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

Quando existem mais de duas Quando existem mais de duas alternativasalternativas

Neste caso será necessário colocar Neste caso será necessário colocar vários “se’s”.vários “se’s”.

Pode-se usar o operador E, ou então, Pode-se usar o operador E, ou então, o OUo OU

Por exemplo:Por exemplo:

Imposto de renda na fonteImposto de renda na fonte

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

Elabore um Elabore um algoritmoalgoritmo

RendaRenda AlíquotaAlíquota Parcela Parcela a a deduzirdeduzir

11641164 IsentoIsento

De De 1164,01 1164,01 a 2326a 2326

15%15% 174,60174,60

Acima Acima de de 2326,002326,00

27,5%27,5% 465,35465,35

InicioInicio• Ler rendaLer renda

Se renda <= 1164 entãoSe renda <= 1164 então• IR IR 0 0

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

IR IR renda* 0,15 – 174,60 renda* 0,15 – 174,60• Se nãoSe não

IR IR renda * 0,275 – 465,35 renda * 0,275 – 465,35• Fim seFim se

Fim seFim se Escreva renda IREscreva renda IR

• Fim Fim

SimulaçãoSimulação

Simule o funcionamento do algoritmo Simule o funcionamento do algoritmo anterior para os valoresanterior para os valores• 260,00260,00• 2000,002000,00• 5000,005000,00

Elabore um algoritmo que leia a Elabore um algoritmo que leia a nota do aluno e escreva sua nota do aluno e escreva sua

situaçãosituação

O critério de aprovação da UERJ é o O critério de aprovação da UERJ é o seguinte: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

InicioInicio• Ler notaLer nota

Se nota < 4 entãoSe nota < 4 então• Escreva “reprovado”Escreva “reprovado”

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

Escreva “final” Escreva “final” • Se nãoSe não

Escreva “aprovado”Escreva “aprovado”• Fim seFim se

Fim seFim se

FimFim

ExercícioExercício

Complemente o exercício anterior Complemente o exercício anterior incluindo a condição: se o aluno tiver incluindo a condição: se o aluno tiver menos de 75% de freqüência estará menos de 75% de freqüência estará reprovado independente da notareprovado independente da nota

InicioInicio• Ler nota,freqLer nota,freq• Se freq < 0,75 então Se freq < 0,75 então

Escreva “reprovado”Escreva “reprovado”

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

• Escreva “reprovado”Escreva “reprovado” Se nãoSe não

• Se nota <= 7 entãoSe nota <= 7 então Escreva “final” Escreva “final”

• Se nãoSe não Escreva “aprovado”Escreva “aprovado”

• Fim seFim se Fim seFim se

• Fim seFim se FimFim

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 acordo com a seguinte calculado de acordo com a seguinte tabela:tabela:

Salário de contribuiçãoSalário de contribuição AlíquotaAlíquota

(%)(%)

Até 752,62Até 752,62 7,657,65

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

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

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

DicasDicas

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

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

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

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

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

INSS INSS sal * 0,0765 sal * 0,0765• Se nãoSe não

Se sal <= 780,00 entãoSe sal <= 780,00 então• INSS INSS sal * 0,0865 sal * 0,0865

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

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

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

• Fim seFim se Fim seFim se

• Fim seFim se• Escreva INSSEscreva INSS

Fim Fim

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

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

INSS INSS sal * 0,0765 sal * 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,0865 sal * 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,09 sal * 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,11 sal * 0,11• Fim seFim se• Se sal > 2508,72 entãoSe sal > 2508,72 então

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

Fim Fim

Seleção múltiplaSeleção múltipla

É quando temos várias alternativas, É quando temos várias alternativas, como por exemplo no “menu” de um como por exemplo no “menu” de um terminal bancárioterminal bancário

Decisão múltiplaDecisão múltipla

Caso opção façaCaso opção faça• Resposta 1: alternativa 1Resposta 1: alternativa 1• Resposta 2: alternativa 2Resposta 2: alternativa 2• Outro casoOutro caso

Alternativa 3Alternativa 3

Fim casoFim caso

Ler uma opção e escrever qual Ler uma opção e escrever qual letra foi selecionada letra foi selecionada

InicioInicio• Ler letraLer letra

Caso letra façaCaso letra faça• ““a”: escreva “vc escolheu a “a”: escreva “vc escolheu a “• ““b” : escreva “vc escolheu b “b” : escreva “vc escolheu b “

Outro casoOutro caso• Escreva “vc escolheu outra letra”Escreva “vc escolheu outra letra”

• Fim Fim

Estrutura de repetiçãoEstrutura de repetição

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

Podem ser de 3(três) tipos:Podem ser de 3(três) tipos:• Para-façaPara-faça• Enquanto-façaEnquanto-faça• Repita-atéRepita-até

Para-façaPara-faça Usa-se da seguinte forma:Usa-se da seguinte forma:

• Para Para variávelvariável inicio até fim inicio até fim Grupo de instruções que será repetidoGrupo de instruções que será repetido

• Fim paraFim para Funciona da seguinte formaFunciona da seguinte forma

• A A variávelvariável é inicializada com o valor do inicio; é inicializada com o valor do inicio;• O grupo de instruções é executado;O grupo de instruções é executado;• Ao chegar ao comando “fim para” a Ao chegar ao comando “fim para” a variávelvariável

tem seu valor acrescido de 1(um) e verifica se tem seu valor acrescido de 1(um) e verifica se o seu valor é maior que fimo seu valor é maior que fim

• Se for menor ou igual, repete o conjunto de Se for menor ou igual, repete o conjunto de instruçõesinstruções

Elabore um algoritmo para escrever os Elabore um algoritmo para escrever os números inteiros de 1 até 10números inteiros de 1 até 10

InicioInicio• Para j Para j 1 ate 10 faça 1 ate 10 faça

Escreva jEscreva j

• Fim para Fim para Fim Fim

Elabore um algoritmo para determinar a Elabore um algoritmo para determinar a soma dos 10 primeiros números inteirossoma dos 10 primeiros números inteiros

InicioInicio• Soma Soma 0;0;• Para jPara j 1 até 10 faça 1 até 10 faça

Soma Soma soma+j soma+j

• Fim paraFim para• Escreva somaEscreva soma

Fim Fim

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 faça 1 ate 5 faça

Ler xLer x Soma Soma soma+xsoma+x

• Fim paraFim para• Escreva somaEscreva soma

Fim Fim

Altere o algoritmo anterior para ler Altere o algoritmo anterior para ler “n” valores“n” valores

InicioInicio• Ler nLer n• Soma Soma 00• Para j Para j 1 ate n faça 1 ate n faça

Ler xLer x Soma Soma soma +x soma +x

• Fim paraFim para• Escreva somaEscreva soma

Fim Fim

Enquanto-façaEnquanto-faça

Usa-se da seguinte forma:Usa-se da seguinte forma:• Enquanto condição façaEnquanto condição faça

Grupo de instruções que será repetidoGrupo de instruções que será repetido

• Fim enquantoFim enquanto Funciona da seguinte forma:Funciona da seguinte forma:

• Enquanto a condição for VERDADEIRA o Enquanto a condição for VERDADEIRA o grupo de instruções é repetidogrupo de instruções é repetido

Por exemplo:Por exemplo: soma de 5 valores lidos soma de 5 valores lidos

InicioInicio SomaSoma00 ContCont0 0 Enquanto cont < 5 façaEnquanto cont < 5 faça

• Ler xLer x• SomaSoma soma+x soma+x• ContContcont+1cont+1

Fim enquantoFim enquanto Escreva somaEscreva soma Fim Fim

As condições são construídasAs condições são construídas

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

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

Pode-se interromper a repetição Pode-se interromper a repetição

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

Usando um “flag” condição que Usando um “flag” condição que indica que a repetição deve ser indica que a repetição deve ser interrompida.interrompida.

Elabore um algoritmo queElabore um algoritmo que

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

SoluçãoSolução

InicioInicio SomaSoma00 Ler xLer x Enquanto x > 0 façaEnquanto x > 0 faça

• Soma Soma soma +x soma +x• Ler xLer x

Fim enquantoFim enquanto Escreva somaEscreva soma FimFim

Repita-atéRepita-até

Usa-se da seguinte forma:Usa-se da seguinte forma:• RepitaRepita

Grupo de instruções que será repetidoGrupo de instruções que será repetido

• Até que condiçãoAté que condição Funciona da seguinte forma:Funciona da seguinte forma:

• Repete o grupo de instruções ATÉ que a Repete o grupo de instruções ATÉ que a condição seja verdadeiracondição seja verdadeira

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• SomaSomasoma+xsoma+x• Cont Cont cont+1cont+1

Ate que cont = 5Ate que cont = 5 Escreva somaEscreva soma Fim Fim