Você está na página 1de 25

Centro Universitrio de Lins - Unilins

APOSTILA DE ALGORITMO E PROGRAMAO BSICA

Prof Cristiane Paschoali Prof. Hamilton Luiz de Souza


2010

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Sumrio
Algoritmo e Lgica de Programao....................................................................................................4 Linguagens de Programao............................................................................................................4 Quanto ao paradigma..................................................................................................................4 Quanto a estrutura de tipos..........................................................................................................4 Quanto ao grau de abstrao.......................................................................................................5 Quanto gerao.........................................................................................................................5 Algoritmos.......................................................................................................................................6 Descrio Narrativa....................................................................................................................7 Fluxograma................................................................................................................................7 Pseudocdigo.............................................................................................................................7 Exerccio resolvido: ...................................................................................................................8 Exerccios Propostos...................................................................................................................9 Conceito de Varivel........................................................................................................................9 Formao de Identificadores............................................................................................................9 Estrutura Sequencial......................................................................................................................11 Tipos de Variveis..........................................................................................................................12 Comandos de Entrada e Sada.......................................................................................................13 Operadores e Funes....................................................................................................................14 Exerccios Propostos ................................................................................................................16 Estrutura Condicional....................................................................................................................16 Exerccio Resolvido..................................................................................................................18 Exerccios Propostos.................................................................................................................18 Estrutura de Repetio...................................................................................................................19 Estrutura de Repetio com Nmero Definido de Repeties Para.......................................19 Exerccios Resolvidos..........................................................................................................20 Exerccios Propostos............................................................................................................21 Estrutura de Repetio com Nmero Indefinido de Repeties Enquanto............................22 Exerccio Resolvido.............................................................................................................23 Exerccios Propostos............................................................................................................24 Referncias Bibliogrficas..................................................................................................................25

ndice de ilustraes
Ilustrao 1: Exemplo de fluxograma...................................................................................................8 Ilustrao 2: Resoluo com fluxograma...........................................................................................10

ndice de tabelas
Tabela 1: Conjunto de smbolos utilizados no fluxograma..................................................................7 Tabela 2: Tipos de variveis em Algoritmo e em Pascal....................................................................12 Tabela 3: Palavras reservadas em Algoritmo e em Pascal..................................................................13 2

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali Tabela 4: Tabela de operadores para clculos matemticos...............................................................14 Tabela 5: Tabela de operadores comparativos....................................................................................14 Tabela 6: Funes matemticas em Pascal.........................................................................................15

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Algoritmo e Lgica de Programao


Quando queremos criar ou desenvolver um software para realizar determinado tipo de processamento de dados, devemos escrever um programa ou vrios programas interligados. No entanto, para que o computador compreenda e execute esse programa, devemos escrev-lo usando uma linguagem que tanto o computador quanto o criador de software entendam. Essa linguagem chamada de linguagem de programao (ASCENCIO & CAMPOS, 2008).

Linguagens de Programao
Uma linguagem de programao um conjunto de regras sintticas e semnticas usadas para definir um programa de computador (WIKIPEDIA, 2010). O conjunto de palavras (tokens), composto de acordo com essas regras, constituem o cdigo fonte de um software. Linguagens de programao so importantes para que programadores e engenheiros de software possam escrever programas mais organizados e com maior rapidez. Elas tambm tornam os programas menos dependentes de computadores ou ambientes computacionais especficos. Isso porque os programas escritos podem ser traduzidos para o cdigo de mquina do computador ou do ambiente especfico onde ser executado. As linguagens podem ser classificadas quanto vrias caractersticas. Logo abaixo ve-se alguns exemplos (Wikipedia, 2010).

Quanto ao paradigma
Diferentes linguagens de programao podem ser agrupadas segundo o paradigma que seguem para abordar a sua sintaxe: Linguagem funcional Linguagem natural Programao lgica Programao imperativa Programao estruturada Linguagem orientada a objetos

Quanto a estrutura de tipos


Fracamente tipada, como Smalltalk, onde o tipo da varivel muda dinamicamente conforme a situao.
4

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Fortemente tipada, como Java, Ruby, onde o tipo da varivel, uma vez atribudo, se mantm o mesmo at ser descartada da memria. Dinamicamente tipada, como Perl, Python ou Ruby, onde o tipo da varivel definido em tempo de execuo. Estaticamente tipada, como Java e C, onde o tipo da varivel definido em tempo de compilao.

Quanto ao grau de abstrao


Linguagem de programao de baixo nvel, cujos smbolos so uma representao direta do cdigo de mquina que ser gerado, onde cada comando da linguagem equivale a um "opcode" do processador, como Assembly. Linguagem de programao de mdio nvel, que possui smbolos que podem ser convertidos diretamente para cdigo de mquina (goto, expresses matemticas, atribuio de variveis), mas tambm smbolos complexos que so convertidos por um compilador. Exemplo: C, C++. Linguagem de programao de alto nvel, composta de smbolos mais complexos, inteligvel pelo ser humano e no-executvel diretamente pela mquina, no nvel da especificao de algoritmos, como Pascal, Fortran, ALGOL e SQL.

Quanto gerao
Primeira gerao, as linguagens de baixo nvel (Assembly) Segunda gerao, as primeiras linguagens (Fortran, ALGOL,...) Terceira gerao, as procedurais e estruturadas (Pascal, C). Quarta gerao, linguagens que geram programas em outras linguagens (Java, C++), linguagens de consulta (SQL). Quinta gerao, linguagens lgicas (Prolog). As etapas para o desenvolvimento de um programa so (ASCENCIO & CAMPOS, 2008):
1. Anlise Nesta etapa, estuda-se o enunciado do problema para definir os dados de

entrada, o processamento e os dados de sada. 2. Algoritmo Ferramentas do tipo descrio narrativa, fluxograma ou portugus estruturado so utilizadas para descrever o problema com suas solues. 3. Codificao O algoritmo transformado em cdigos da linguagem de programao escolhida para se trabalhar. Portanto, um programa a codificao de um algoritmo em uma linguagem de programao (ASCENCIO, 1999).

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Para que se desenvolva esses programas, necessrio usar o que se chama lgica de programao. Lgica de programao a tcnica de encadear pensamentos para atingir determinado objetivo.

Algoritmos
A ferramenta que auxilia a lgica de programao na resoluo dos problemas so os algoritmos. A palavra algoritmo pode ter vrias definies, entre elas: Algoritmo uma sequncia de passos que visa atingir um objetivo bem definido. (FORBELLONE, 1999) Algoritmo a descrio de uma sequncia de passos que deve ser seguida para a realizao de uma tarefa. (ASCENCIO, 1999) Algoritmo uma sequncia finita de instrues ou operaes cuja execuo, em tempo finito, resolve um problema computacional, qualquer que seja sua instncia. (SALVETTI, 1999) Analisando as definies, podemos concluir que algoritmos no so somente utilizados em problemas computacionais, mas podem ser aplicados a qualquer situao do dia a dia. No exemplo abaixo, v-se um algoritmo para a troca de uma lmpada. Algoritmo Trocar Lmpada 1. Pegar uma lmpada nova. 2. Pegar uma escada. 3. Posicionar a escada embaixo da lmpada queimada. 4. Subir na escada com a lmpada nova na mo. 5. Retirar a lmpada queimada. 6. Colocar a lmpada nova. 7. Descer da escada. 8. Testar o interruptor. 9. Guardar a escada. 10. Jogar a lmpada velha no lixo. Assim como as vrias atividades podem ser realizadas de formas diferentes, tambm no existe somente um algoritmo correto. Algoritmos diferentes, desde que resolvam o problema proposto, esto corretos. Para se construir um algoritmo, alguns passos so importantes. So eles: Compreender o problema a ser resolvido. Definir os dados de entrada, quais destes dados sero fornecidos e quais j fazem parte do cenrio. Definir os processamentos necessrios para se resolver o problema. O processamento transforma os dados de entrada nos dados de sada. Definir os dados de sada, ou seja, quais informaes precisaro ser mostradas.
6

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Construir o algoritmo, utilizando uma das formas disponveis (sero mostradas mais adiante). Testar o algoritmo utilizando simulaes.

Vale destacar que os algoritmos devem ser genricos para o problema proposto, no importando quais sero os dados de entrada fornecidos. Os trs tipos de algoritmos mais utilizados so: descrio narrativa, fluxograma e pseudocdigo. Logo abaixo esto as caractersticas de cada um. Descrio Narrativa Consiste em analisar o enunciado do problema e escrever, utilizando uma linguagem natural, os passos a serem seguidos para sua resoluo. Uma vantagem deste tipo de algoritmo sua facilidade, pois no h necessidade de novos conhecimentos para empreglo. Uma desvantagem a abertura para vrias interpretaes que a linguagem natural proporciona. Fluxograma Consiste em analisar o enunciado do problema e escrever, utilizando smbolos grficos definidos, os passos para a soluo do problema. Uma vantagem a simplicidade que os elementos grficos proporcionam para o entendimento. Uma desvantagem a necessidade de aprender a simbologia do fluxograma. Para conhecimento da simbologia, vide tabela 1. Pseudocdigo Consiste em analisar o problema e escrever, por meio de regras predefinidas, os passos a serem seguidos para a resoluo. Uma vantagem a facilidade de transcrio para a linguagem de programao, bastando conhecer as palavras reservadas da linguagem a ser utilizadas. Uma desvantagem a necessidade de aprender as regras do pseudocdigo.
Tabela 1: Conjunto de smbolos utilizados no fluxograma Smbolo Significado Smbolo utilizado para indicar o incio e o fim do algoritmo. Permite indicar o sentido do fluxo de dados. Serve exclusivamente para conectar os smbolos ou blocos existentes. Smbolo utilizado para indicar clculos e atribuies de valores.

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali Smbolo Significado Smbolo utilizado para representar a entrada de dados. Smbolo utilizado para representar a sada de dados. Smbolo utilizado para indicar que deve ser tomada uma deciso, apontando a possibilidade de desvios.

Exerccio resolvido:
Faa um algoritmo para mostrar o resultado da multiplicao de dois nmeros. Soluo com descrio narrativa: 1. Obter os dois nmeros que sero multiplicados 2. Multiplicar os nmeros. 3. Mostrar o resultado obtido na multiplicao. Soluo em algoritmo: Incio

N1, N2

M = N1 * N2

M
Ilustrao 1: Exemplo de fluxograma

Fim

Soluo em pseudocdigo: Algoritmo multiplicao Declarao de variveis Real N1, N2, M Incio Escrever Digite os nmeros a serem multiplicados Leia N1, N2
8

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

M N1 * N2 Escrever M Fim

Exerccios Propostos
a) Faa um algoritmo que calcule a mdia aritmtica de um aluno, dadas as notas de trabalho e de prova de um determinado bimestre. b) Faa um algoritmo que receba dois nmeros e mostre as quatro operaes bsicas (soma, subtrao, multiplicao e diviso) realizadas com eles.

Conceito de Varivel
Os algoritmos e programas recebem dados que precisam ser armazenados para posteriormente poderem ser processados. Esse armazenamento feito na memria do computador, quando os algoritmos se transformam em programas. Dessa forma, uma varivel uma posio (ou endereo) de memria do computador. Possui um tipo e um nome, podendo o seu contedo variar ao longo da execuo do programa. Embora uma varivel possa assumir vrios valores ao longo da execuo do algoritmo ou programa, ela s pode armazenar um nico valor em determinado instante. Os tipos de dados mais comuns so: Numricos Dividem-se em dois grupos: reais e inteiros. Os inteiros podem ser positivos ou negativos e no possuem parte decimal. Os reais podem ser positivos ou negativos e possuem parte decimal. Exemplo de nmeros inteiros: 3 -45 98 -423 34 -9 Exemplo de nmeros reais: 45,2 -90,56 158,26 -324,8 Literais ou caracteres So dados formados por um nico caractere ou por uma cadeia de caracteres. Podem ser letras (maisculas ou minsculas), caracteres especiais (* & % $ # @ ? ,) ou nmeros (que, nesse caso, no podem ser utilizados para operaes matemticas). Lgicos Tambm so chamados de booleanos e s podem assumir um de dois valores: verdadeiro ou falso. Formao de Identificadores Identificadores so nomes de variveis, dos programas, das constantes, das rotinas, etc. Existem algumas regras bsicas para criao desses nomes devem ser seguidas, principalmente quando estivermos lidando com a linguagem de programao Pascal, para evitar problemas. Os caracteres que podem ser utilizados so: letras maisculas e minsculas, nmeros
9

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

e underline. O primeiro caractere do nome no pode ser um nmero, deve ser uma letra. No podem ser utilizados espaos em branco e caracteres especiais. No podem ser utilizadas palavras reservadas da linguagem utilizada. O nome do programa no poder ter o mesmo nome de qualquer varivel utilizada.

Pensando na resoluo dos algoritmos voltados para posterior implementao em Pascal, estamos pensando em solues de problemas seguindo o paradigma estruturado, ou imperativo. Para solues deste tipo, necessrio detalhar as aes para se chegar resposta necessria. A seguir vemos como calcular a rea e o permetro de um retngulo seguindo esses passos. 1. 2. 3. 4. 5. Obter o valor da altura do retngulo. Obter o valor da largura do retngulo. Calcular a rea. Calcular o permetro. Mostrar os clculos realizados.

Em fluxograma: Incio

Alt, Lar

Area = Alt * Lar

Per = 2*Alt + 2*Lar

Area,Per
Ilustrao 2: Resoluo com fluxograma

Fim

10

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Em algoritmo: Algoritmo Retngulo Declarao de variveis Real Alt,Lar,Area,Per Incio Escrever A altura e a largura do retngulo Leia Alt,Lar Area Alt*Lar Per 2*Alt + 2*Lar Escrever Area,Per Fim

Estrutura Sequencial
Pelo paradigma estruturado, qualquer problema pode ser resolvido utilizando trs estruturas: sequencial, condicional e iterativa (repetio). Na estrutura sequencial, os passos para a resoluo do problema so executados em sua integridade, um por um, sequencialmente. A estrutura sequencial em algoritmo segue o seguinte formato: Algoritmonome DeclaraodeVariveis variveis Incio Blocodeinstrues Fim Em Pascal essa estrutura se transforma em: Programnome; Var variveis; Begin Blocodeinstrues; End. Comando de atribuio

11

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

O comando de atribuio utilizado para conceder valores ou operaes a variveis, sendo representado pelo smbolo em algoritmos e por := em Pascal. Exemplos de atribuio: x4*2 x:=x+2 yaula y:='resposta'

Tipos de Variveis
Os tipos de variveis mais utilizados so: Inteiro, Real, Caractere, Cadeia de Caracteres e Lgicos para algoritmos. Em Pascal estes tipos ficam, respectivamente: Integer, Real, Char, String e Boolean. A tabela 2 mostra quais os tamanhos e faixa de valores dessas e de outras variveis.
Tabela 2: Tipos de variveis em Algoritmo e em Pascal

Algoritmo Inteiro Real Caractere Cadeia Caracteres Lgico de

Pascal Integer Real Char String Boolean Shortint Longint Double

Faixa de Valores -32.768 a 32.767

Tamanho (aprox) 16 bits

2,9x10-39 a 1,7x1038 (11 a 12 6 bytes dgitos com sinal) 1 caractere qualquer Cadeia de caracteres mximo 255) (no 1 byte Tantos bytes quantos forem os caracteres

Falso ou Verdadeiro. True ou 8 bits False. -128 a 127 -2.147.483.648 2.147.483.647 a 8 bits 32 bits

5,0x10-324 a 1,7x10308 (15 a 16 8 bytes dgitos com sinal)

A tabela 3 mostra quais as palavras reservadas em Algoritmo e em Pascal.

12

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Tabela 3: Palavras reservadas em Algoritmo e em Pascal

Algoritmo Algoritmo Declarao de Variveis Incio Fim .E. .OU. Se Ento Seno Para Enquanto Ler Escrever Program Var Begin End And Or If Then Else For While Read Write Do To Not File Object Label Repeat

Pascal

Comandos de Entrada e Sada


O comando de entrada utilizado para receber dados digitados pelo usurio, sendo armazenados em variveis. Em Algoritmo utiliza-se o comando Ler e em Pascal Read. O comando de sada utilizado para mostrar os dados na tela ou na impressora. Em Algoritmo usa-se o comando Escrever e em Pascal Write.

13

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Operadores e Funes
Existem vrios operadores e funes predefinidas destinados a clculos matemticos, mostrados nas tabelas 4, 5 e 6.
Tabela 4: Tabela de operadores para clculos matemticos

Op. em Algoritmo + * / Resto Divide

Op. em Pascal := + * / mod div

Exemplo e comentrio xy ou x:=y (o contedo da varivel y atribudo para a varivel x) x+y (Soma o contedo de x e de y) x y (Subtrai o contedo de y do contedo de x) x * y (Multiplica o contedo de x pelo contedo de y) x/y (Obtm o quociente da diviso de x por y) Resto(x,y) ou xmody (Obtm o resto da diviso de x por y) Divide(x,y) ou x div y (Obtm o quociente inteiro da diviso de x por y)

Observaes: a) Os operadores div e mod s podem ser aplicados com operandos do tipo inteiro. b) O operador / sempre conduz a um resultado real. c) Com os operadores +, - e *, se pelo menos um dos operandos for real, ento o resultado tambm ser real.
Tabela 5: Tabela de operadores comparativos

Op. em Algoritmo =

Op. em Pascal = <> <=

Exemplo e comentrio x=y (Compara se o contedo de x igual ao contedo de y) x y ou x <> y (Compara se o contedo de x diferente do contedo de y) x y ou x <= y (Compara se o contedo de x menor ou igual ao contedo de y) x y ou x >= y (Compara se o contedo de x maior ou igual ao contedo de y)
14

>=

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

< >

< >

x < y (Compara se o contedo de x menor do que o contedo de y) x > y (Compara se o contedo de x maior do que o contedo de y)

Funes Matemticas Funo abs log trunc frac round sin cos pi sqrt sqr inc dec Exemplo abx(x) log(x) trunc(x) frac(x) round(x) sin(x) cos(x) pi sqrt(x) sqr(x) inc(x,y) dec(x,y) Comentrio Obtm o valor absoluto de x. Obtm o logaritmo natural de x. Obtm a parte inteira do nmero real armazenado em x. Obtm a parte armazenado em x. Arredonda x. Calcula o seno de x (x deve ser passado em radianos) Calcula o co-seno de x (x deve ser passado em radianos) Retorna o valor de . Calcula a raiz quadrada de x. Calcula x elevado ao quadrado. Incrementa a varivel x com o valor da varivel y. Decrementa a varivel x com o valor da varivel y. fracionria do nmero real

Tabela 6: Funes matemticas em Pascal

Observao: Por no existir operador de potenciao, tem-se: AB = Exp(B * Ln(A)) Exemplo: 510 = Exp(10 * Ln(5)) As prioridades entre operadores, incluindo as funes, so: 1. ( ) - parnteses 2. funes 3. * , / , div , mod 4. + , Quando se tem, em uma mesma expresso, vrios operadores com a mesma prioridade, a expresso resolvida da esquerda para a direita.

15

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Exerccios Propostos
(Obs.: os exerccios devero ser resolvidos em fluxograma e algoritmo) 1) Faa um algoritmo que receba trs notas e seus respectivos pesos, calcule e mostre a mdia ponderada dessas notas. 2) Faa um algoritmo que receba o salrio de um funcionrio, calcule e mostre o novo salrio, sabendo que este sofreu um aumento de 25%. 3) Faa um algoritmo que receba o salrio de um funcionrio e o percentual de aumento, calcule e mostre o valor do aumento e o novo salrio. 4) Faa um algoritmo que calcule e mostre a rea de um crculo. reacirculo = *R2 5) Faa um algoritmo que receba o valor de um depsito e o valor da taxa de juros, calcule e mostre o valor do rendimento e o valor total depois do rendimento. 6) Sabe-se que: 1 p = 12 polegadas 1 jarda = 3 ps 1 milha = 1.760 jardas Faa um algoritmo que receba uma medida em ps, vaa as converses a seguir e mostre os resultados em polegadas, em jardas e em milhas. 7) Faa um algoritmo que receba o ano de nascimento de uma pessoa e o ano atual, calcule e mostre: a idade dessa pessoa e quantos anos ela ter em 2050. 8) Faa um programa que receba o nmero de horas trabalhadas e o valor do salrio mnimo, calcule e mostre o salrio a receber seguindo as seguintes regras: - a hora trabalhada vale a metade do salrio mnimo; - o salrio bruto equivale ao nmero de horas trabalhadas multiplicado pelo valor da hora trabalhada; - o imposto equivale a 3% do salrio bruto; - o salrio a receber equivale ao salrio bruto menos o imposto.

Estrutura Condicional
A estrutura condicional modifica o curso das instrues, que deixam de ser sequenciais. A ideia dessa estrutura executar uma entre duas instrues, dependendo do resultado de uma condio que s pode ter dois resultados: verdadeiro ou falso. A estrutura completa se compem da seguinte forma: SE condio ENTO comando1 SENO comando2 Tal estrutura deve ser entendida da seguinte forma: SE a condio a ser testada resultar em verdadeiro, ENTO o comando1 ser executado. SENO, ou seja, se a condio resultar em falso, o comando2 ser executado. H casos em que se deseja executar
16

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

mais de um comando em uma, ou nas duas, situaes. Neste caso, necessrio usar as instrues Incio Fim para delimitar o bloco de instrues a ser executado. SE condio ENTO INCIO comando1 comando2 comando3 FIM SENO INCIO comando4 comando5 FIM Tambm pode haver casos em que s ser necessrio executar algum comando quando a condio a ser testada for verdadeira. No caso dela resultar em falso, nada precisar ser feito. Neste caso, teremos a estrutura condicional incompleta, como exemplificado a seguir. SE condio ENTO comando1 ou SE condio ENTO INCIO comando1 comando2 comando3 FIM No caso da condio a ser testada precisar ser formada por vrias outras condies, o que se chama de condio composta, deve-se lembrar do uso dos operadores lgicos .E. e .OU. e a seguinte tabela verdade:

Tabela .E.
VeV=V VeF=F FeV=F FeF=F

Tabela .OU.
V ou V = V V ou F = V F ou V = V F ou F = F

17

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Exerccio Resolvido
Fazer um algoritmo que determina e exibe se um nmero inteiro fornecido pelo usurio igual a zero ou no. Algoritmo Exemplo Declarao de Variveis Inteiro Num Incio Ler Num Se Num = 0 Ento Escrever Nmero igual a zero Seno Escrever Nmero diferente de zero Fim

Exerccios Propostos
1. Fazer um algoritmo que, dados os coeficientes e o termo independente de uma equao de segundo grau, determina e exibe suas razes, se houver. 2. Fazer um algoritmo que receba as duas notas bimestrais, calcule a mdia aritmtica e, caso a mdia seja igual ou maior a 6.0, exiba a mensagem Aprovado. Caso a mdia seja menor do que 6.0, a mensagem a ser exibida Reprovado. 3. Fazer um algoritmo que receba trs nmeros diferentes e os exiba em ordem crescente. 4. Faa um algoritmo que receba trs nmeros e mostre o menor. 5. Faa um algoritmo que recebe um nmero e exibe uma mensagem dizendo se ele par ou mpar. 6. Fazer um algoritmo que calcule o novo salrio do funcionrio seguindo a seguinte regra: se o funcionrio ganhar at R$ 1.000,00 o aumento ser de 20%. Acima de R$ 1.000,00 o aumento ser de 12%. 7. Fazer um algoritmo que recebe trs valores e verifica se eles podem ser os lados de um tringulo. Obs.: o comprimento de cada lado de um tringulo menor do que a soma dos outros dois lados. 8. Ainda considerando o exerccio 6, caso os valores fornecidos possam ser os lados de um tringulo, exibir a mensagem se o tringulo equiltero (possui os trs lados iguais), issceles (possui dois lados iguais) ou escaleno (possui os trs lados diferentes).

18

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Estrutura de Repetio
A estrutura de repetio utilizada quando uma srie de instrues precisa ser repetida. Esta srie de instrues pode abranger at mesmo o algoritmo todo. O nmero de repeties pode ter um nmero pr-fixado ou estar ligado a alguma condio. Dessa forma, existem duas estruturas de repetio para satisfazer a estas necessidades.

Estrutura de Repetio com Nmero Definido de Repeties Para


Essa estrutura usada quando se sabe, de antemo, qual ser o nmero de vezes que as instrues precisaro ser repetidas. O formato da estrutura : PARA CONT ValorInicial AT ValorFinal INCIO Instruo1 Instruo2 Instruo3 FIM As instrues 1, 2 e 3 sero repetidas levando em considerao o ValorInicial e o ValorFinal que so atribudos varivel CONT. a diferena entre eles que dir o nmero de repeties que o lao ir executar. Caso s haja uma instruo a ser repetida, os comandos INCIO-FIM podem ser suprimidos. Logo abaixo, alguns exemplos de utilizao. Exemplo 1 PARA CONT 1 AT 10 Escrever Oi No Exemplo 1, a instruo 'Escrever Oi' ser repetida 10 vezes, pois a varivel de controle do lao (CONT), tambm chamada de contador do lao, assumir valor inicial 1, que ser incrementado de 1 em 1 at chegar ao valor 10, condio que far com que o curso de instrues do algoritmo saia do lao e v para a primeira instruo depois dele. Exemplo 2 PARA CONT 1 AT 5 INCIO qtde qtde + 1 x qtde * 5 FIM J no Exemplo 2, existem duas instrues que esto sendo repetidas. Este bloco de instrues ser repetido 5 vezes, visto que o contador do lao assume valor inicial 1, indo
19

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

at 5. Neste caso, como h mais de uma instruo, o uso dos marcadores INCIO-FIM obrigatrio pois, caso no sejam utilizados, somente a primeira instruo ser repetida 5 vezes, sendo a segunda instruo executada somente 1 vez, depois que o curso do algoritmo sair do lao.

Exerccios Resolvidos

1. Faa um algoritmo que receba 5 nmeros inteiros fornecidos pelo usurio, um nmero de cada vez, e, para cada valor lido, diga se este nmero par ou mpar. Algoritmo Exec_01 Declarao de variveis Inteiro Num,Cont Incio Para Cont 1 at 5 Incio Ler Num Se Num Resto 2 = 0 Ento Escrever Nmero Par Seno Escrever Nmero mpar Fim Fim Obs.: A funo resto, neste algoritmo, pode ser escrita na forma Num Resto 2 ou Resto(Num,2). 2. Fazer um algoritmo que recebe um conjunto de 50 valores, determina e exibe qual o maior valor do conjunto. Algoritmo Exec_02 Declarao de Variveis Real Num,Maior Inteiro Cont Incio Para cont 1 at 50 Incio Ler Num Se cont = 1 ento
20

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

maior num Seno Se num > maior ento maior num Fim Escrever maior Fim

Exerccios Propostos

1. Faa um algoritmo que receba a idade de 35 pessoas, calcule e mostre a quantidade de pessoas em cada faixa etria, seguindo a tabela abaixo. Faixa Etria 1 2 3 4 5 At 15 anos De 16 a 30 anos De 31 a 45 anos De 46 a 60 anos Acima de 60 anos Idade

2. Faa um algoritmo que receba um nmero, calcule e mostre a tabuada desse nmero. 3. Faa um algoritmo que mostre as tabuadas dos nmeros de 1 a 10. 4. Faa um algoritmo que receba a idade, a altura e o peso de 25 pessoas, calcule e mostre: a) a quantidade de pessoas com idade superior a 50 anos; b) a mdia das alturas das pessoas com idade entre 10 e 20 anos; c) a percentagem de pessoas com peso inferior a 40 quilos entre todas as pessoas analisadas. 5. Faa um algoritmo que receba um nmero inteiro e diga se esse nmero primo ou no. 6. Faa um algoritmo que receba 100 nmeros inteiros, calcule e mostre a soma dos nmeros pares e dos nmeros primos. 7. Faa um algoritmo que receba 200 nmeros inteiros e mostre a quantidade de nmeros primos dentre os nmeros que foram digitados. 8. Cada espectador de um cinema respondeu a um questionrio no qual constava sua idade e sua opinio em relao ao filme: timo 3; bom 2; regular 1. Faa um algoritmo que receba a idade e a opinio de 80 espectadores, calcule e mostre: a) a mdia das idades das pessoas que responderam timo;
21

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

b) a quantidade de pessoas que responderam regular; c) a percentagem de pessoas que responderam bom, entre todos os espectadores analisados. Estrutura de Repetio com Nmero Indefinido de Repeties Enquanto Use-se essa estrutura de repetio quando no no sabemos o nmero de vezes que uma instruo ou conjunto de instrues ter que ser repetido. Diferentemente do Para, o Enquanto no tem um contador na sua estrutura, ele baseado em uma condio que ser testada e, no caso do resultado ser verdadeiro, entra-se no lao para executar as instrues. No caso da condio testada dar falso, vai-se para a primeira instruo aps o lao, no executando as instrues que esto no seu interior. Apesar dessa estrutura ser utilizada em casos para os quais no se sabe de antemo o nmero de repeties a serem executadas, tambm pode ser utilizada para casos em que se sabe o nmero de repeties. Existem dois detalhes importantes a serem observados: 1. Como a condio testada antes de se entrar no lao, caso ela resulte em falso logo no primeiro teste, as instrues no interior do lao no sero executadas nenhuma vez. 2. No caso da condio resultar em verdadeiro e se entrar no lao, dentro do lao deve haver alguma instrues que possibilite mudar essa situao e fazer com que a condio testada resulte em falo em algum momento. Caso contrrio, o curso das instrues no sair mais do lao e cai-se em uma situao chamada looping infinito. O formato da estrutura o seguinte: ENQUANTO <Condio> INCIO Instruo1 Instruo2 Instruo3 FIM A Condio um teste a ser feito e seus resultados s podem ser Verdadeiro ou Falso. Enquanto esta condio for testada e resultar em verdadeiro, as instrues dentro do lao sero executadas. A partir do momento que o teste resultar em falso, o curso das instrues passa para a primeira instruo aps o lao.

22

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Exemplo resp 1 ENQUANTO resp = 1 INCIO LER num soma soma + num ESCREVER Deseja continuar? 1- Sim | 2- No LER resp FIM No exemplo acima, a resposta do usurio que dir se o lao continuar a ser executado ou no. O valor 1 ser digitado caso se deseje continuar e o valor 2 ser digitado para parar a execuo do lao. Para que se entrasse no lao a primeira vez, foi atribudo o valor 1 para a varivel a ser testada antes do lao. Dentro do lao, essa varivel tem a possibilidade de mudar de valor com o comando LER. Esses so os detalhes observados anteriormente.
Exerccio Resolvido

1. Faa um algoritmo que receba um conjunto indeterminado de valores inteiros e exiba, ao final, quantos valores positivos, quantos negativos e quantos nulos foram digitados. Algoritmo Exemplo Declarao de Variveis Inteiro num,qtdep,qtden,qtde0 Cadeia resp Incio qtdep 0 qtden 0 qtde0 0 resp 'Sim' Enquanto resp = 'Sim' Incio Ler num Se num > 0 ento qtdep qtdep + 1 Se num < 0 ento qtden qtden + 1 Se num = 0 ento qtde0 qtde0 + 1 Escrever 'Deseja continuar? <Sim | No>' Ler resp
23

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Fim Escrever qtdep,qtden,qtde0 Fim

Exerccios Propostos

1. Dado um conjunto com n valores, fazer um algoritmo que calcule e exiba quantos valores dentro do conjunto digitado foram iguais a 5. 2. Fazer um algoritmo que receba um conjunto indeterminado de valores e, ao final, exiba quantos valores pares e quantos valores mpares foram digitados. 3. Fazer um algoritmo que receba um conjunto indeterminado de valores e, ao final, exiba quantos valores primos foram digitados. 4. Faa um algoritmo que receba um conjunto de valores inteiros e positivos, calcule e mostre o maior e menor valor do conjunto. Para encerrar a entrada de dados, deve ser digitado o valor zero. 5. Foi feita uma pesquisa entre os habitantes de uma regio. Foram coletados a idade, sexo (M|F) e salrio. Faa um algoritmo que calcule e mostre: a) a mdia geral dos salrios coletados; b) e maior e a menor idade do grupo; c) a quantidade de mulheres com salrio at R$ 500,00; d) a idade e o sexo da pessoa que possui o menor salrio. Uma idade negativa ser digitada para finalizar a entrada de dados. 6. Uma agncia bancria possui vrios clientes que podem fazer investimentos por um ms, conforme a tabela a seguir: TIPO 1 2 3 DESCRIO Poupana Poupana plus Fundos de renda fixa RENDIMENTO MENSAL 1,50% 2,00% 4,00%

Faa um algoritmo que leia o cdigo do cliente, o tipo do investimento e o valor investido, e que calcule e mostre o rendimento de acordo com o tipo do investimento. No final, o programa dever mostrar o total investido e o total de juros pagos. A leitura terminar quando o cdigo do cliente digitado for menor ou igual a 0.

24

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Referncias Bibliogrficas ASCENCIO, A. F. G. & CAMPOS, E. A. V., Fundamentos da Programao de Computadores Algoritmos, Pascal, C/C++ e Java. 2 ed. So Paulo: Pearson Prentice Hall, 2008.

25

Você também pode gostar