Sei sulla pagina 1di 42

Teoria da Computao e Algoritmos

Introduo Lgica de Programao

Prof. Giuliano Prado de Morais Giglio, M.Sc.

O que lgica de programao?


n

A lgica de programao necessria para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, pois ela permite definir a seqncia lgica para o desenvolvimento. Ento o que lgica?
n

Lgica de programao a tcnica de encadear pensamentos para atingir determinado objetivo.

Seqncia Lgica
n

Estes pensamentos, podem ser descritos como uma seqncia de instrues, que devem ser seguidas para se cumprir uma determinada tarefa. Seqncia Lgica so passos executados at atingir um objetivo ou soluo de um problema.

Instrues
n

Na linguagem comum, entende-se por instrues um conjunto de regras ou normas definidas para a realizao ou emprego de algo.
n

Em informtica, porm, instruo a informao que indica a um computador uma ao elementar a executar.

Uma ordem isolada no permite realizar o processo completo, para isso necessrio um conjunto de instrues colocadas em ordem seqencial lgica.
n

Por exemplo, se quisermos fazer uma omelete de batatas, precisaremos colocar em prtica uma srie de instrues: descascar as batatas, bater os ovos, fritar as batatas, etc...

Instrues
n

evidente que essas instrues tem que ser executadas em uma ordem adequada no se pode descascar as batatas depois de frit-las. Dessa maneira, uma instruo tomada em separado no tem muito sentido; para obtermos o resultado, precisamos colocar em prtica o conjunto de todas as instrues, na ordem correta. Instrues so um conjunto de regras ou normas definidas para a realizao ou emprego de algo. Em informtica, o que indica a um computador uma ao elementar a executar.

Exemplos de Seqncias Lgicas


n

Chupar uma bala.


n n n n

Pegar a bala Retirar o papel Chupar a bala Jogar o papel no lixo Escreva o primeiro nmero no retngulo A Escreva o segundo nmero no retngulo B Some o nmero do retngulo A com nmero do retngulo B e coloque o resultado no retngulo C

Somar dois nmeros quaisquer.


n n n

n n

FAZER: Seqncia de tomar banho; Seqncia de trocar 4 pneus de um automvel;

Teoria da Computao e Algoritmos

Introduo aos Algoritmos

Prof. Giuliano Prado de Morais Giglio, M.Sc.

Introduo
n

O uso de algoritmos surgiu como uma forma de indicar o caminho para a soluo dos mais variados problemas. Dado um problema, as principais funes de um programador so:
n n n n

Entender perfeitamente o problema Escolher mtodos para sua soluo Desenvolver um algoritmo baseado nos mtodos Codificar o algoritmo na linguagem de programao disponvel

Definio
n

Fazemos uso constantemente de algoritmos em nosso cotidiano: a maneira como uma pessoa toma banho um algoritmo. Outros algoritmos freqentemente encontrados so: n instrues para se utilizar um aparelho eletrodomstico; n uma receita para preparo de algum prato; n guia de preenchimento para declarao do imposto de renda; n a regra para determinao de mximos e mnimos de funes por derivadas sucessivas; n a maneira como as contas de gua, luz e telefone so calculadas mensalmente; etc.

Uma Definio Formal


n

Um Algoritmo uma seqncia de instrues ordenadas de forma lgica para a resoluo de uma determinada tarefa ou problema. Um algoritmo um conjunto finito de instrues que, se seguidas, realizam uma determinada tarefa. Alm disso, todo algoritmo deve satisfazer:
n n n n

Entrada - zero ou mais valores de entrada Sada - pelo menos um valor deve ser produzido Clareza - toda instruo deve ser clara e no ambgua Trmino - o algoritmo deve terminar aps um n finito de passos

Exemplo de Algoritmo No-Computacional


n

Problema: Usar um telefone pblico.

Incio 1. Tirar o fone do gancho; 2. Ouvir o sinal de linha; 3. Introduzir o carto; 4. Teclar o nmero desejado; Seqencial 5. Se der o sinal de chamar 5.1 Conversar; 5.2 Desligar; 5.3 Retirar o carto; 6. Seno 6.1 Repetir; Fim.

Desvio

Importncia
A importncia do algoritmo est no fato de termos que especificar uma seqncia de passos lgicos para que o computador possa executar uma tarefa qualquer, pois o mesmo por si s no tem vontade prpria, faz apenas o que mandamos. Com uma ferramenta algortmica, podemos conceber uma soluo para um dado problema, independendo de uma linguagem especfica e at mesmo do prprio computador.

Caractersticas
n

Todo algoritmo deve caractersticas bsicas:

apresentar

algumas

ter fim; no dar margem dupla interpretao (no ambguo); capacidade de receber dado(s) de entrada do mundo exterior; poder gerar informaes de sada para o mundo externo ao do ambiente do algoritmo; ser efetivo (todas as etapas especificadas no algoritmo devem ser alcanveis em um tempo finito).

Formas de Representao
Descrio Narrativa
n

Faz-se uso do portugus para descrever algoritmos.

EXEMPLO: Receita de Bolo:


n
n n n n n n n n

Providencie manteiga, ovos, 2 Kg de massa, etc. Misture os ingredientes Despeje a mistura na frma de bolo Leve a frma ao forno Espere 20 minutos Retire a frma do forno Deixe esfriar Prove

Formas de Representao
Descrio Narrativa
n

VANTAGENS:
n

o portugus bastante conhecido por ns;

DESVANTAGENS:
n n

impreciso; pouca confiabilidade (a impreciso acarreta a desconfiana); extenso (normalmente, escreve-se muito para dizer pouca coisa).

Formas de Representao
Linguagem Algortmica ou Pseudo-Linguagem
n

Esta forma de representao de algoritmos, tambm conhecida como pseudocdigo, portugus estruturado ou portugol, bastante rica em detalhes e, por assemelhar-se bastante forma em que os programas so escritos, encontra muita aceitao, sendo portanto a forma de representao de algoritmos que ser adotada nesta disciplina. Esta representao suficientemente geral para permitir que a traduo de um algoritmo nela representado para uma linguagem de programao especfica seja praticamente direta.

Formas de Representao
Linguagem Algortmica
n

Consiste na definio de uma pseudolinguagem de programao, cujos comandos so em portugus, para representar algoritmos. Os algoritmos so descritos em uma linguagem chamada pseudocdigo.
n

Este nome uma aluso posterior implementao em uma linguagem de programao, ou seja, quando formos programar em uma linguagem, por exemplo PASCAL, estaremos gerando cdigo em PASCAL.

Por isso os algoritmos so independentes das linguagens de programao. Ao contrrio de uma linguagem de programao no existe um formalismo rgido de como deve ser escrito o algoritmo.

Formas de Representao
Linguagem Algortmica
n

O algoritmo deve ser fcil de se interpretar e fcil de codificar. Ou seja, ele deve ser o intermedirio entre a linguagem falada e a linguagem de programao.

EXEMPLO:
Algoritmo CALCULA_DOBRO incio Leia NUM DOBRO 2 * NUM Escreva DOBRO fim

Formas de Representao
Linguagem Algortmica
n

VANTAGENS: n Independncia fsica da soluo (soluo lgica apenas); n Usa o portugus como base; n Pode-se definir quais e como os dados vo estar estruturados; n Passagem quase imediata do algoritmo para uma linguagem de programao qualquer. DESVANTAGENS: n Exige a definio de uma linguagem no real para trabalho; n No padronizado.

Comandos
n

Um algoritmo possui carter imperativo, razo pela qual uma ao em um algoritmo chamada de comando. Ex.: algoritmo para descascar batatas para o jantar:
n n n n

traga a cesta com batatas do poro ; traga a panela do armrio ; descasque as batatas ; devolva a cesta ao poro ;

Estados de um algoritmo
n

Um algoritmo (ou programa) apresenta dois aspectos complementares:


n

Aspecto esttico: a representao concreta do algoritmo atravs de um texto contendo comandos que devem ser executados numa ordem prescrita (atemporal). Aspecto dinmico: que a execuo do algoritmo no tempo.

O problema central da computao consiste em relacionar esses dois aspectos, isto , consiste no entendimento (visualizao) das estruturas dinmicas das possveis execues do algoritmo a partir da estrutura esttica do seu texto.

Escrita de algoritmos
n

A generalizao do algoritmo para descascar batatas para o jantar pode ser:


n n n n

traga a cesta com batatas do poro ; traga a panela do armrio ; se saia clara ento coloque avental ; enquanto nmero de batatas insuficiente faa
n

descasque uma batata ;

devolva a cesta ao poro ;

Um algoritmo deve ser determinstico, isto , dadas as mesmas condies iniciais, deve produzir em sua execuo, os mesmos resultados. S interessam os algoritmos executveis em tempo finito.

O que um programa?
Os programas de computadores nada mais so do que algoritmos escritos numa linguagem de computador e que so interpretados e executados por uma mquina, no caso um computador. Dada esta interpretao rigorosa, um programa por natureza muito especfico e rgido em relao aos algoritmos da vida real.

O que uma linguagem de programao?


n

So Softwares que permitem o desenvolvimento de programas. Possuem um poder de criao ilimitado, desde jogos, editores de texto, sistemas empresariais at sistemas operacionais. Existem vrias linguagens de programao, cada uma com suas caractersticas prprias. Exemplos: Pascal, Clipper, C, C++, Visual Basic, Delphi, Java e etc.

Fases de um Algoritmo
n

Ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em trs fases fundamentais.
Entrada Sada

Processamento

Onde temos:
n n

ENTRADA: So os dados de entrada do algoritmo PROCESSAMENTO: So os procedimentos utilizados para chegar ao resultado final SADA: So os dados j processados

Fases de um Algoritmo
n

Quando temos um problema e vamos utilizar um computador para resolve-lo inevitavelmente temos que passar pelas seguintes etapas:
a) Definir o problema. b) Realizar um estudo da situao atual e verificar quais a(s) forma(s) de resolver o problema. c) Terminada a fase de estudo, utilizar uma linguagem de programao para escrever o programa que dever a princpio, resolver o problema. d) Analisar junto aos usurios se o problema foi resolvido. Se a soluo no foi encontrada, dever ser retornado para a fase de estudo para descobrir onde est a falha.

Estrutura de um Algoritmo
n

Os algoritmos tero a seguinte estrutura: ALGORITMO <Nome do algoritmo> <definies> INCIO <Comandos> FIM.

Regras para se escrever um Algoritmo


n

Para escrever um algoritmo precisamos descrever a seqncia de instrues, de maneira simples e objetiva. Para isso utilizaremos algumas tcnicas:
n n

n n n

Usar somente um verbo por frase; Imaginar que voc est desenvolvendo um algoritmo para pessoas que no trabalham com informtica; Usar frases curtas e simples; Ser objetivo; Procurar usar palavras que no tenham sentido dbio.

O Aprendizado de Algoritmos
n

Algoritmos no se aprende:
E Copiando Algoritmos E Estudando Algoritmos

Algoritmos s se aprendem:
E Construindo Algoritmos E Testando Algoritmos.

Teoria da Computao e Algoritmos

Estruturas de Implementao de Algoritmos

Prof. Giuliano Prado de Morais Giglio, M.Sc.

Teoria da Computao e Algoritmos

Variveis e Tipos de Dados

Prof. Giuliano Prado de Morais Giglio, M.Sc.

Conceito de Variveis
n

Sabe-se da Matemtica que uma varivel a representao simblica dos elementos de um certo conjunto. Nos algoritmos destinados a resolver um problema no computador, a cada varivel corresponde uma posio de memria, cujo contedo pode variar ao longo do tempo durante a execuo de um algoritmo. Embora a varivel possa assumir diferentes valores, ela s pode armazenar um valor a cada instante.

Conceito de Variveis
n

Toda varivel identificada por um nome ou identificador. Exemplo: num algoritmo para calcular a rea de um tringulo retngulo pelo teorema de pitgoras (a2 = b2 + c2), os identificadores A, B e C

podem representar as posies de memria que armazenam o valor da hipotenusa e dos catetos.
n

Nunca usar uma palavra reservada (que faa parte da linguagem algortmica) poder causar ambigidade no entendimento do algoritmo. Na nossa linguagem algortmica, vamos admitir que nossas variveis podero armazenar valores numricos ou alfanumricos (strings).

Operao de Atribuio
n

A operao de atribuio permite que se fornea um valor a uma certa varivel.


n

Se for atribudo uma expresso varivel, ser armazenado o resultado daquela expresso. Se for atribudo uma outra varivel, ser armazenado o contedo daquela varivel.

Para a operao de atribuio, utilizaremos a seguinte sintaxe: varivel expresso Exemplos:


A2 NOME 'Joo' AB+C BA SENHA 'X3Y9' NOTA NOTA - 1 NOTA 10 C1/3 X 2.5

Identificadores
n

So os nomes dados a variveis, constantes e programas. Regras Para construo de Identificadores:


n

n n n n n

No podem ter nomes de palavras reservadas (comandos da linguagem); Devem possuir como 1 caractere uma letra ou Underscore ( _ ); Ter como demais caracteres letras, nmeros ou Underscore; Ter no mximo 127 caracteres; No possuir espaos em branco; A escolha de letras maisculas ou minsculas indiferente. Nome, Telefone, Nota1, Salario, Idade_Filho, PI.

Exemplos:
n

Tipos de Dados
n

No momento que formos trabalhar com variveis, indiquemos o tipo de informao que uma varivel pode conter, isto , se uma dada posio de memria armazenar um nmero ou uma letra etc. O Tipo de dado podem ser: n Primitivo = Pr-definido pela linguagem; n Sub-Faixa = uma parte de um tipo j existente; n Definido pelo usurio (Escalar) = Definidos pelo programador.

Tipos de Dados

Tipos de Dados CHAR(Caracter) e STRING(Cadeia)


n

As definies de variveis como sendo do tipo CHAR e STRING, possuem algumas curiosidades que merecem um cuidado especial por parte do usurio. Uso das aspas (): Atribuio de um valor para uma varivel do tipo CHAR (Caracter) ou STRING (Cadeia) colocar o valor ( dado ) entre aspas ( ), pois esta a forma de informar que a informao caracter. Exemplo: ALGORITMO Teste VARIVEIS Letra : CARACTER Nome : CADEIA INICIO Letra A; Nome Joo; FIM

Declarao de Variveis

Linearizao de Expresses
n

Para a construo de aritmticas devem ser em linhas. importante tambm correspondentes da computacional.

Algoritmos todas as expresses linearizadas, ou seja, colocadas ressalvar o uso dos operadores aritmtica tradicional para a

Modularizao de Expresses
n

A modularizao a diviso da expresso em partes, proporcionando maior compreenso e definindo prioridades para resoluo da mesma. Como pode ser observado no exemplo anterior, em expresses computacionais usamos somente parnteses ( ) para modularizao. Na informtica podemos ter parnteses dentro de parnteses. Exemplos de prioridades:
n n

(2+2)/2=2 2+2/2=3

Operao de Entrada e Sada


n

Os clculos do computador so de pouco valor a no ser que, primeiro, possamos fornecer os dados sobre os quais estes clculos sero efetuados e, segundo, ver os resultados destes clculos. Definimos aqui dois novos comandos da nossa linguagem algortmica para manusear entrada e sada.
n

O comando leia nos permite ler valores dados atribuindo-os variveis indicadas; o comando escreva nos permite mostrar os resultados.

Operao de Entrada e Sada


n n

A entrada pode vir do teclado ou de qualquer outro dispositivo de entrada. A sada pode aparecer na tela do monitor de vdeo ou ser impressa em papel. Caso deseja-se imprimir o resultado, usa-se o comando imprima A sintaxe destes comandos so: leia (varivel-1, varivel-2, ..., varivel-n) escreva (expresso-1, expresso-2, ..., expresso-n) Exemplos:
Leia (Nota) Leia (A,B,C) Leia (Nome) Escreva (15) Escreva (Nota + 2) Escreva (A,B) Imprima (Nota) Imprima (Tel) Imprima (Result)

Operadores Aritmticos e Relacionais

Aritmticos
Operao Adio Subtrao Multiplicao Diviso Exponenciao Operador + * / **

Relacionais
Operao Maior que Menor que Maior ou igual Menor ou igual Diferente Igual Operador > < <= <= <> =

Operadores Lgicos
n

Os operadores lgicos servem para combinar resultados de expresses, retornando se o resultado final verdadeiro ou falso. Os operadores lgicos so:
n

E (AND) = Uma expresso E verdadeira se todas as condies forem verdadeiras OU (OR) = Uma expresso OU verdadeira se pelo menos uma condio for verdadeira NO (NOT) = Um expresso NO inverte o valor da expresso ou condio, se verdadeira inverte para falsa e vice-versa.

Operadores Lgicos
- Tabela Verdade -

Operadores Lgicos
n

Exemplos:
n n

Suponha que temos trs variveis A = 5, B = 8 e C =1 Os resultados das expresses seriam:

Expresses A=B A <> B A>B A<B A >= B A <= B E OU NO E OU NO B>C B=C B>C B<C

Resultado Falso Verdadeiro Verdadeiro Verdadeiro Falso Falso

Operadores Especiais (Mod e Div)


n

MOD : Retorna o resto da diviso entre 2 nmeros inteiros. DIV : Retorna o valor inteiro que resulta da diviso entre 2 nmeros inteiros.

Teoria da Computao e Algoritmos

Mtodo para montagem de Algoritmos

Prof. Giuliano Prado de Morais Giglio, M.Sc.

Refinamentos Sucessivos
n n

Um algoritmo considerado completo se os seus comandos forem do entendimento do seu destinatrio. Num algoritmo, um comando que no for do entendimento do destinatrio ter que ser desdobrado em novos comandos, que constituiro um refinamento do comando inicial, e assim sucessivamente, at que os comandos sejam entendidos pelo destinatrio. Por exemplo, o algoritmo para calcular a mdia aritmtica de dois nmeros pode ser escrito da seguinte forma:

Algoritmo CALCULA_MDIA Incio Receba os dois nmeros; Calcule a mdia dos dois nmeros; Exiba o resultado; Fim

Refinamentos Sucessivos
n

Podemos desdobrar o comando Calcule a mdia dos dois nmeros em: Soma os dois nmeros; Divida o resultado por 2;

Aps esse refinamento, o algoritmo pode ser considerado completo, a menos que o destinatrio no saiba fazer as operaes de adio e diviso, ou no seja capaz de entender diretamente algum comando.

Refinamentos Sucessivos
n

O algoritmo estando completo, podemos reescrevlo, inserindo o refinamento na posio do comando que foi refinado. Assim sendo, obtm-se: Algoritmo CALCULA_MDIA Incio Receba os dois nmeros; Soma os dois nmeros; Divida o resultado por 2; Exiba o resultado; Fim.

Refinamentos Sucessivos
n

Reescrever um algoritmo completo, com os refinamentos sucessivos inseridos nos seus devidos lugares, permite ter uma viso global de como o algoritmo deve ser executado. medida que o algoritmo passa a ser maior e mais complexo, esta viso global torna-se menos clara e, neste caso, um algoritmo apresentado com os refinamentos sucessivos separados oferece uma melhor abordagem para quem precisar entend-lo.

Teoria da Computao e Algoritmos

Estruturas de deciso e repetio

Prof. Giuliano Prado de Morais Giglio, M.Sc.

Estrutura Seqencial
n

Num algoritmo, os comandos devero ser executados numa seqncia linear, seguindo-se o texto em que esto escritos, de cima para baixo, se no houver indicao em contrrio. Linguagem Algortmica: inicio comando-1; comando-2; ... comando-n; Fim.
n

Exemplo: incio leia A,B; SOMA A + B; escreva SOMA; Fim.

Estrutura Condicional (Se .. ento)


n

A estrutura condicional permite a escolha do grupo de aes e estruturas a ser executado quando determinadas condies (expresses lgicas) so ou no satisfeitas. Esta estrutura pode se apresentar de duas formas: ESTRUTURA CONDICIONAL SIMPLES

se condio ento comando-1; comando-2; ... comando-n; fim-se; n Exemplo: se MDIA >= 7 ento SITUAO 'Aprovado'; Escreva (SITUACAO); fim-se

Estrutura Condicional ( Se .. Ento .. Seno.. )


n

ESTRUTURA CONDICIONAL COMPOSTA se condio ento comando-A1 comando-A2 ... comando-An seno comando-B1 comando-B2 ... comando-Bn fim-se;
Exemplo: ... se PESO > 80 ento escreva 'Voc est obeso' escreva 'Faa atividades fsicas' seno escreva 'Voc est no peso certo' escreva 'Procure manter sua forma' ...

SE .. ENTO Aninhados
n

Usados para tomadas de decises para mais de 2 opes. Sintaxe:

SE CONDIO ENTO
Comando1;

SENO SE CONDIO ENTO Comando2; SENO Comando3;

SE .. ENTO Aninhados
n

Exemplo: Faa um algoritmo para simular uma calculadora simples. Para isso, seu algoritmo dever ler dois nmeros inteiros e uma letra, correspondendo a uma operao matemtica, da seguinte forma:
n n n

Letra A significa fazer a soma dos dois nmeros Letra S significa fazer a subtrao dos dois nmeros Letra M significa fazer a multiplicao dos dois nmeros Letra D significa fazer a diviso dos dois nmeros

O algoritmo dever mostrar o resultado da operao escolhida.

ALGORITMO Calculadora VAR total: REAL; n1, n2: INTEIRO; opcao: CARACTER; INICIO escreva(Digite dois numeros); leia(n1, n2); escreva(Escolha a operao: A adio, S subtrao, M multiplicao, D diviso); leia(opcao); se (opcao = A) entao total <- n1 + n2; fimse; se (opcao = S) entao total <- n1 - n2; fimse; se (opcao = M) entao total <- n1 * n2; fimse; se (opcao = D) entao total <- n1 / n2; fimse; escreva(Resposta = , total) FIM.

Uma soluo seria ...

SE .. ENTAO Aninhados
n

E como podemos solucionar o problema, evitando que se faa os demais testes, depois que se encontra a opo desejada???

SE .. ENTO Aninhados
SE testar a 1 opo ENTO
Comando1;

SENO (h 3 opes restantes) testar as 3 opes restantes FIMSE

SE .. ENTO Aninhados
SE testar a 1 opo ENTO
Comando1; SENO (h 3 opes restantes)

SE testar a 2 opo ENTO


Comando2;

SENO (h 2 opes restantes) testar as 2 opes restantes FIMSE FIMSE

SE .. ENTO Aninhados
SE testar a 1 opo ENTO Comando1; SENO SE testar a 2 opo ENTO Comando2; SENO SE testar a 3 opo ENTO Comando3; SENO ( a quarta e ltima opo) Comando4; FIMSE FIMSE FIMSE

ALGORITMO Calculadora .... INICIO escreva(Digite dois numeros); leia(n1, n2); escreva(Escolha a operao: A adio, S subtrao, M multiplicao, D diviso); leia(opcao); se (opcao = A) entao total <- n1 + n2; senao se (opcao = S) entao total <- n1 - n2; senao se (opcao = M) entao total <- n1 * n2; senao total <- n1 / n2; fimse; fimse; fimse; escreva(Resposta = , total) FIM.

Soluo com Se .. Entao Aninhados

Estruturas de Seleo
n

A estrutura de condio equivale a um ninho de SEs. Sintaxe:

ESCOLHA <expresso> : CASO 1 Comando A1; CASO 2 Comando A2; CASO n Comando An; SENO Comando N;; FIM-ESCOLHA;

Estruturas de Seleo
Exemplo:
ALGORITMO OpcoesTitulo VARIVEIS Titulo: STRING; Op: INTEIRO; INICIO LEIA (OP); ESCOLHA OP: CASO 1 TITULO = OPO 1; CASO 2 TITULO = OPO 2; CASO 3 TITULO = OPO 3;

CASO 4 TITULO = OPO 4; CASO 5 TITULO = OPO 5; SENO TITULO = OPO ERRADA; FIM-ESCOLHA;

Estruturas de Seleo
Como ficaria nossa Calculadora essa estrutura?
ALGORITMO Calculadora VAR total: REAL n1, n2: INTEIRO opcao: CARACTER INICIO LEIA (n1, n2) LEIA (opcao) ESCOLHA opcao CASO A total <- n1 + n2; CASO S total <- n1 - n2; CASO M total <- n1 * n2;

CASO D total <- n1 / n2; OUTROCASO escreva(Opo Invlida) FIMESCOLHA ESCREVA(Resposta = , total) FIM.

Estruturas de Repetio
n

A estrutura de repetio permite que uma seqncia de comandos seja executada repetidamente at que uma determinada condio no seja satisfeita. Utilizaremos os comandos abaixo para representar esta estrutura.
n

Para..faa Enquanto..faa Repete..at

Estruturas de Repetio
n

Para .. Faa: Sua sintaxe :


PARA <Varivel> DE <INICIO> At <FIM>, PASSO <N> FAA

comando-A1; comando-A2; ... comando-An; fim-para;

Estruturas de Repetio
n

Exemplo ( Para .. Faa ):

Faa um algoritmo para ler e escrever o Nome de 20 pessoas. ALGORITMO LeEscreve VARIVEIS Nome : CADEIA Cont : INTEIRO INICIO PARA Cont DE 1 ATE 20 PASSO 1 FACA LEIA(Nome); ESCREVA(Nome); FIM-PARA; FIM.

Estruturas de Repetio
n

Enquanto .. Faa:

Sua sintaxe : enquanto condio faa comando-A1; comando-A2; ... comando-An; fimenquanto;

Estruturas de Repetio
Semntica:
Enquanto a condio for verdadeira, a seqncia ser repetida. Quando a condio fornecer resultado falso, o controle sai da estrutura passando para o comando seguinte ao final do bloco.

enquanto condio faa comando-A1; comando-A2; ... comando-An; fimenquanto;

Estruturas de Repetio
Uso de FLAG
n

Obs.:
n

FLAG um valor especfico fornecido aps o ltimo dado de entrada, que serve para indicar o fim dos dados de entrada. FLAG somente uma marca de fim dos dados de entrada (no um dado de entrada) e no pode ser processado. A leitura do FLAG informa ao programa que os dados de entrada terminaram e que ele deve partir para a execuo da finalizao de seu processamento (clculos finais, impresses finais etc.).

Estruturas de Repetio
n n

Exemplo 1: Uso de FLAG Obs.:


n

Controle de processamento genrico para uso de FLAG: ... leia ( o 1 conjunto de dados ); enquanto ( no for FLAG ) faa processar o conjunto de dados lido ; leia ( o prximo conjunto de dados ); fimenquanto finalizar processamento ; ...

Estruturas de Repetio
n

Exemplo 1: Uso de FLAG


Desenvolver um algoritmo para ler uma seqncia de nmeros inteiros, calcular e imprimir o quadrado de cada nmero lido. O ltimo valor a ser lido um FLAG = 0.

Estruturas de Repetio
n

Exemplo 1: Algoritmo em pseudolinguagem

Algoritmo Exemplo1 var NUM, QUADRADO : inteiro; inicio leia(NUM); // l o 1 conjunto de dados enquanto (NUM <> 0) faca // testa se no FLAG QUADRADO <- NUM*NUM; escreva(QUADRADO); leia(NUM); // l o prximo conjunto de dados fimenquanto Fim.

Estruturas de Repetio
n

Exemplo 1: Teste do Algoritmo n Considerando que sero fornecidos os seguintes dados de entrada: 2 -3 1 4 0 n O resultado do teste (teste de mesa) seria:

Estruturas de Repetio
n

Exemplo 2: Uso de acumulador


Desenvolver um algoritmo para ler uma seqncia de nmeros inteiros com FLAG = 0, calcular e imprimir a soma desses nmeros. Importante:
n

Uma forma possvel para resolver o problema de somatrio de valores (acumulador) imaginar uma varivel que armazena as somas parciais. Essa varivel deve iniciar com zero e somar nmero por nmero, at o final da seqncia.

Estruturas de Repetio
n

Exemplo 2: Algoritmo em pseudolinguagem

Algoritmo Exemplo2 var NUM, SOMA : inteiro; inicio SOMA <- 0; // zera a varivel soma leia(NUM); // l o 1 conjunto de dados enquanto (NUM <> 0) faca // testa se no FLAG SOMA <- SOMA + NUM; // acumula ao valor de soma o NUM leia(NUM); // l o prximo conjunto de dados fimenquanto escreva(SOMA); Fim.

Estruturas de Repetio
n

Exemplo 2: Teste do Algoritmo


Considerando que sero fornecidos os seguintes dados de entrada: 8 -3 2 1 0 O resultado do teste seria:

Estruturas de Repetio
n n

Exemplo ( Enquanto .. Faa ): Faa um algoritmo para ler e escrever o Nome de 20 pessoas.

ALGORITMO LeEscreve VARIVEIS Nome: STRING; Total: INTEIRO; INICIO Total 0; ENQUANTO (Total < 20) FAA LEIA(Nome); ESCREVA ('Nome=', Nome); Total Total + 1; FIM-ENQUANTO; END.

Estruturas de Repetio
n

Repita .. At: Sua sintaxe :

REPITA comando-A1; comando-A2; ... comando-An; ATE <Condio for verdadeira>

Estruturas de Repetio
n

Exemplo ( Repita .. At ): Faa um algoritmo para ler e escrever o Nome de 20 pessoas.

ALGORITMO LeEscreve VARIVEIS Nome: CADEIA Total: INTEIRO INICIO Total 0; REPITA LEIA(Nome); ESCREVA(' Nome= ',Nome); Total Total + 1; AT Total >=20; FIM.

Potrebbero piacerti anche