Você está na página 1de 23

UNISANTANA Lgica e Programao Bsica

_____________________________________________________________________________________

Lgica e Programao Bsica


Prof.Libertuci prof.libertuci@uol.com.br I. Programao da Matria 1. Ementa Estudar Lgica de Programao Bsica desenvolver o raciocnio lgico e entender a maneira pela qual os programas computacionais so elaborados. Os alunos desenvolvem sua criatividade e autonomia na prpria capacidade de buscar solues, de resolver problemas, de formular e testar hipteses, de induzir, deduzir, generalizar e inferir resultados. Pretende-se, que os alunos compreendam conceitos, desenvolvam raciocnios e algoritmos, comuniquem e argumentem suas idias com clareza. 2. Objetivo Capacitar o aluno para a utilizao dos fundamentos de Algoritmos, tornando o aluno capaz de desenvolver solues para problemas relacionados disciplina. 3. Metodologia Aulas explicativas e expositivas, com apresentao dos conceitos da disciplina atravs de problemas e cenrios geralmente vivenciados por profissionais que atuam nesta rea. Para cada assunto abordado so apresentados exerccios para proporcionar ao aluno, domnio sobre a disciplina. 4. Contedo Programtico 1. Lgica 2. Estrutura de Programao 3. Expresses aritmticas 4. Variveis 5. Constantes 6. Entrada e sada de dados 7. Desvio condicional 8. Desvio condicional encadeado 9. Estrutura de repetio ."Para" 10. Estrutura de repetio. "Enquanto" 11. Estrutura de repetio. "Repita" 12. Vetores 13. Matrizes 14. Funes e Procedimentos

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________

5. Trabalho Discente Efetivo (TDE)


O TDE um trabalho que pode ser baseado em pesquisa que dever ser entregue no dia da prova. Este trabalho individual um dos componentes da mdia bimestral. O ttulo do trabalho ser definido pelo professor.

6. Atividades Complementares
As atividades complementares sero aplicadas nos dois bimestres e sero aplicadas na converso de algoritmos em portugus estruturados para uma linguagem de programao (C, Pascal, etc)

7. Avaliao Provas de avaliao bimestrais e trabalhos individuais. Notas: 60% - resultado de provas (6,0) 20% - TDE Trabalho Discente Efetivo (2,0) 20% - avaliao de trabalhos (2,0) Avaliao dos trabalhos a soma dos trabalhos. Nota de cada trabalho = 2,0 / (numero de trabalhos do semestre 1)

8. CRONOGRAMA DAS ATIVIDADES: O Calendrio escolar da Uni SantAnna prev um semestre com 20 semanas. T=atividade terica P=atividade prtica EAD=atividade semipresencial

Semana T/P/ EAD 01 02 03 04 05 06 07 08 09 10 11 T T T T T T T T T T T

Contedo / Atividades Apresentao da matria Ciclo de Processamento, Algoritmos, Fluxogramas. Estruturas e Exerccios Pseudocdigos, Variveis, Tipos de Dados, Operadores e Funes de Biblioteca Exerccios Comandos de controle. Comando SE. Exerccios. Comando Escolha. Exerccios Laos: Comandos de repetio. Comando Para. Exerccios. Reviso Prova 1. Bimestre Correo da prova. Vista de provas. Laos: Comandos de repetio. Comando Enquanto. Exercios. Comando Repita. Exerccios

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________ 12 13 14 15 16 17 18 19 20 T T T T T T T T T Exerccios de comandos de repetio Matrizes: Definio. Vetores e matrizes. Casos de uso. Exemplos de aplicao. Listas de exerccios de vetores para serem desenvolvidos em sala. Matrizes: Exerccio de vetores e matrizes bi-dimensionais para serem desenvolvidos em sala. Funes: definio, estrutura, casos de uso e exemplos de aplicao. Passagem de parmetros por valor e referncia. Listas de exerccios para serem desenvolvidos em sala. Funes: Listas de exerccios para serem desenvolvidos em sala. Reviso Prova 2.Bimestre Vista de Provas Provas substitutivas

9. Habilidades e Competncias desenvolvidas a partir do contedo ministrado. O contedo desta disciplina visa proporcionar aos alunos, habilidade e competncia em elaborar solues para problemas que envolvem lgica de programao em computadores, desta forma os alunos estaro aptos a aprenderem uma linguagem de programao futuramente.

10. BIBLIOGRAFIA

1 MANZANO, Jos Augusto N. G.; OLIVEIRA, Jayr Figueiredo de; Algoritmos Lgica para Desenvolvimento de Programao de Computadores, Editora rica, 2009. 2 GUIMARES; Lages; Algoritmos e Estruturas de Dados, Livros Tcnicos e Cientficos Editora, 2002. 3 PEREIRA, Silvio do Lago - Estruturas de dados fundamentais: conceitos e aplicaes So Paulo: rica, 2001.

11. BIBLIOGRAFIA COMPLEMENTAR:

1 SALVETTI, Dirceu Douglas; BARBOSA, Lisbete Madsen; Algoritmos, Editora Makron Books, 2002. 12. Sites de Interesse 1. www.apostilando.com. Oferece apostilas referentes a Algoritmos. 2. http://www.apoioinformatica.inf.br/visualg/ 3. http://www.scribd.com/doc/2097411/VisuAlg-Ref

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________

II. Introduo Lgica

1.Definies
Lgica a correo do pensamento. Ou Lgica a correo do raciocnio. Ou Lgica a ordem da razo. Exemplos: Todo mamfero animal. Todo cavalo mamfero. Todo cavalo animal. O caf est no armrio. O armrio est fechado. Preciso abrir o armrio para pegar o caf.

2. Algoritmos Algoritmo uma seqncia de passos que visam atingir um objetivo bem definido. 3. Estrutura Bsica de Lgica de Programao

Entrada Algortmo

Sada

Lgica de programao: Consiste na construo de um algoritmo com comandos a serem executados ordenadamente de modo a produzir os resultados esperados corretamente. (Definio do professor)

Exemplo Como fritar um ovo? Verificar se tem ovo, frigideira, leo, sal, espumadeira, prato e fogo. Colocar a frigideira no fogo Colocar leo na frigideira

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________ Acender o fogo e esperar aquecer Quebrar o ovo e colocar o contedo dentro da frigideira Aguardar o ovo fritar at o ponto desejado Retirar o ovo da frigideira e colocar no prato Colocar sal no ovo.

Esta apenas uma das solues. A resoluo vai variar muito. Depende muito da viso e raciocnio lgico. Quanto mais detalhes colocamos em um algoritmo, melhor vai ser seu programa, ou seja, menos sujeito erros ele estar.

Exerccios
1. 2. 3. 4. 5. Trocar uma lmpada. Como trocar um pneu furado? Como abrir um cofre? Como retirar dinheiro no caixa eletrnico? Como preparar uma viagem? (entregar como trabalho de sala)

Resoluo dos Exerccios


1. Trocar uma lmpada. Pegue uma escada Posicione-a embaixo da lmpada Busque uma lmpada nova Suba na escada Retire a lmpada velha Coloque a lmpada ova E se a lmpada no estiver queimada? Ligue o interruptor Se a lmpada no ascender Pegue uma escada Posicione-a embaixo da lmpada Busque uma lmpada nova Suba na escada Retire a lmpada velha Coloque a lmpada nova Mas a lmpada nova est funcionando? ...ento deveria ser feito uma verificao no final.... Ligue o interruptor Se a lmpada no ascender Pegue uma escada Posicione-a embaixo da lmpada Busque uma lmpada nova Suba na escada Retire a lmpada velha Coloque a lmpada nova

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________ Desa da escada Enquanto a lmpada no ascender Retire a lmpada Coloque outra lmpada 2. Como trocar um pneu furado? Verificar se estepe Verificar macaco Verificar chave de roda Se todos esto ok, ento Verificar se marcha do carro est engata ou frio de mo puxado Colocar o macaco Afrouxar parafusos Levantar o carro Retirar os parafusos Retirar a roda Colocar a roda nova Colocar os parafusos Abaixar o carro Apertar os parafusos Guardar o pneu furado Guardar o macaco Guardar a chave de roda Seno No d pra trocar o pneu. 3. Como abrir um cofre? Obter a senha Digitar a senha Tentar abrir o cofre Enquanto cofre no abrir Obter a senha correta Digitar a senha Tentar abrir o cofre 4. Como retirar dinheiro no caixa eletrnico? Inserir o carto Digitar a senha Enquanto senha incorreta Digitar a senha Se senha ok ento Selecionar opo de retirada Enquanto operao no aprovada ou cancelar Digitar o valor Digitar senha Se operao aprovada ento Retirar o dinheiro Selecionar sair no menu do caixa. 5. Como preparar uma viagem? (entregar como trabalho de sala)

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________

III.

Estrutura Bsica de Programao a) Estrutura lgica Vimos nos exerccios anteriores que sempre devamos verificar algumas condies para que o algoritmo lgico pudesse ser elaborado. Estas condies so fatores essenciais ao desenvolvimento do algoritmo.

Condies iniciais

Algoritmo

Objetivo

b) Estrutura de programao A estrutura de programao semelhante estrutura lgica , ou seja, a estrutura de programao deve seguir a estrutura do algoritmo.

Dados de entrada
Programa

Informaes

A estrutura de programao
Inicio

Processa

Fim Onde: Inicio: Bloco do programa onde so declaradas as variveis, funes e procedimentos. Processa: Bloco do programa onde so executados os comandos lgicamente organizados que vo manipular dados e informaes com o objetivo de apresentar o resultado esperado.

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________ Fim: Bloco do programa onde so apresentadas as informaes desejadas, finalizao de objetos, etc. Para elaborao de algoritmos, utilizaremos a linguagem do VisualG que um aplicativo onde os comandos so estruturados em portugus.

c) Formato Bsico do Pseudocdigo e Incluso de Comentrios


O formato bsico do nosso pseudocdigo no VisualG o seguinte: algoritmo "semnome" // Funo : // Autor : // Data : // Seo de Declaraes var inicio // Seo de Comandos

Fimalgoritmo

Descrio da Estrutura Palavra reservada nome do programa Algoritmo nome do programa var indica inicio da rea de declarao de variveis

var <lista de variveis> : <tipo da varivel> Indica inicio do corpo principal do programa Inicio <comando1> <comando2> <comando3> . . . fimAlgoritmo comandos a serem executados

indica fim do programa.

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________ Exemplo:

Algoritmo Exemplo Var a,b,C: inteiro Inicio Escreva(Digite um numero:) Leia(a) Escreva(Digite um numero:) Leia(b) C <- a + b Escreva(Resultado: ,C) fimalgoritmo
Comentrios: // O VisuAlg permite a incluso de comentrios: qualquer texto precedido de "//" ignorado, at se atingir o final da sua linha. Por este motivo, os comentrios no se estendem por mais de uma linha: quando se deseja escrever comentrios mais longos, que ocupem vrias linhas, cada uma delas dever comear por "//".

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________

IV. Variveis e Tipos de dados


Tipos de Dados Quatro tipos de dados bsicos: inteiro, real, cadeia de caracteres e lgico (ou booleano). As palavras-chave que os definem so as seguintes (observe que elas no tm acentuao): inteiro: define variveis numricas do tipo inteiro, ou seja, sem casas decimais. real: define variveis numricas do tipo real, ou seja, com casas decimais. caractere: define variveis do tipo string, ou seja, cadeia de caracteres. logico: define variveis do tipo booleano, ou seja, com valor VERDADEIRO ou FALSO.

Nomes de Variveis e sua Declarao Os nomes das variveis devem comear por uma letra e depois conter letras, nmeros ou underline. O limite de caracteres vai depender da linguagem. As variveis podem ser simples ou estruturadas (na verso atual, os vetores podem ser de uma ou duas dimenses). No pode haver duas variveis com o mesmo nome, com a natural exceo dos elementos de um mesmo vetor. A seo de declarao de variveis comea com a palavra-chave var, e continua com as seguintes sintaxes: <lista-de-variveis> : <tipo-de-dado> <lista-de-variveis> : vetor "["<lista-de-intervalos>"]" de <tipo-dedado> Na <lista-de-variveis>, os nomes das variveis esto separados por vrgulas. Na <lista-de-intervalos>, os <intervalo> so separados por vrgulas, e tm a seguinte sintaxe: <intervalo>: <valor-inicial> .. <valor-final> Na verso atual do VisuAlg, tanto <valor-inicial> como <valor-final> devem ser inteiros. Alm disso, exige-se evidentemente que <valor-final> seja maior do que <valor-inicial>. Exemplos: var a: inteiro Valor1, Valor2: real vet: vetor [1..10] de real matriz: vetor [0..4,8..10] de inteiro nome_do_aluno: caractere sinalizador: lgico

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________

V. Operadores Aritmticos, Caracteres e Lgicos


Operadores Aritmticos Operadores unrios, isto , so aplicados a um nico operando. So os operadores aritmticos de maior precedncia. Exemplos: -3, +x. Enquanto o operador unrio - inverte o sinal do seu operando, o operador + no altera o valor em nada o seu valor. Operador de diviso inteira. Por exemplo, 5 \ 2 = 2. Tem a mesma precedncia do operador de diviso tradicional. Operadores aritmticos tradicionais de adio, subtrao, multiplicao e diviso. Por conveno, * e / tm precedncia sobre + e -. Para modificar a ordem de avaliao das operaes, necessrio usar parnteses como em qualquer expresso aritmtica. Operador de mdulo (isto , resto da diviso inteira). Por exemplo, 8 MOD 3 = 2. Tem a mesma precedncia do operador de diviso tradicional. Operador de potenciao. Por exemplo, 5 ^ 2 = 25. Tem a maior precedncia entre os operadores aritmticos binrios (aqueles que tm dois operandos).

+,-

+,,*,/ MOD ou % ^

Operadores de Caracteres + Operador de concatenao de strings (isto , cadeias de caracteres), quando usado com dois valores (variveis ou constantes) do tipo "caractere". Por exemplo: "Rio " + " de Janeiro" = "Rio de Janeiro".

Operadores Relacionais =, <, >, <=, >=, <> Respectivamente: igual, menor que, maior que, menor ou igual a, maior ou igual a, diferente de. So utilizados em expresses lgicas para se testar a relao entre dois valores do mesmo tipo. Exemplos: 3 = 3 ( 3 igual a 3?) resulta em VERDADEIRO ; "A" > "B" ("A" est depois de "B" na ordem alfabtica?) resulta em FALSO.

Importante: No VisuAlg, as comparaes entre strings no diferenciam as letras maisculas das minsculas. Assim, "ABC" igual a "abc". Valores lgicos obedecem seguinte ordem: FALSO < VERDADEIRO. Operadores Lgicos nao Operador unrio de negao. nao VERDADEIRO = FALSO, e nao FALSO = VERDADEIRO. Tem a maior precedncia entre os operadores lgicos. Equivale ao NOT do Pascal. Operador que resulta VERDADEIRO quando um dos seus operandos lgicos for verdadeiro. Equivale ao OR do Pascal. Operador que resulta VERDADEIRO somente se seus dois operandos lgicos forem verdadeiros. Equivale ao AND do Pascal.

ou E

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________ xou Operador que resulta VERDADEIRO se seus dois operandos lgicos forem diferentes, e FALSO se forem iguais. Equivale ao XOR do Pascal.

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________

VI. Expresses Matemtica Os clculos matemticos devem seguir algumas regras de preferncia. Parnteses Exponenciao / Radiciao Multiplicao / Diviso Soma / Subtrao

Exemplos a) x = {3(5 3 )- (3/4)} b) y = 3 / (4*3(7/2-1)+[3-(2/4)] Os clculos matemticos devem seguir algumas regras de preferncia. Parnteses Exponenciao/Radiciao Multiplicao/Diviso Soma/Subtrao

Exerccios 1. Converter as expresses matemticas acima para o padro de programao. Trabalho para entregar: Converter a expresso matemtica abaixo e apresentar o resultado (valor de H), onde: A=2 X=1 Y=0,5 Z=3 W=-2 D=0 H = 2X{-5Y+3Z[7W(1+A)]} 2 A{ 5Y + ( Z / 2)[7W (66 + 3D )]

H = 2X{-5Y+3Z[7W(1+A)]}2A{-5Y+(Z/2)[7W(66+3D)]} H = 2*X*(-5*Y+3*Z*(7*W*(1+A)))*2*A*(-5*Y+(Z/2)*(7*W*(66+3*D))) H = 2*1*(-5*0.5+3*3*(7*(-2)*(1+2)))*2*2*(-5*0.5+(3/2)*(7*(-2)*(66+3*0))) H = 2*(-5*0.5+3*3*(7*(-2)*(3)))*2*2*(-5*0.5+(1.5)*(7*(-2)*(66))) H = 2*(-5*0.5+3*3*(-14*(3)))*4*(-5*0.5+(1.5)*(-14*(66))) H = 2*(-5*0.5+3*3*(-42))*4*(-5*0.5+(1.5)*(-924)) H = 2*(-2.5+9*(-42))*4*(-2.5+(1.5)*(-924))

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________

H = 2*(-2.5+(-378))*4*(-2.5+(-1386)) H = 2*(-380,5)*4*(-1388,5) H = (-761)*(-5554) H = 4226594 2. Elabore a expresso necessria para resolver a expresso matemticas abaixo. C=1 A=2 X=1 Z=2 M=-3 S=1 N=-1
3 C + 3A 2 X 3 3Z + 8 + Z 3 + M S5 * N

H1 =

H1 = (3-C+3A) / ((2X-3)/(Z3+M))+(3Z+8)/(S5*N))) H1 = (3-1+3*A) / (((2*X-3)/(Z*3+M)+(3*Z+8)/(S*5*N))) H1 = (3-1+3*2) / (((2*1-3)/(2*3+(-3))+(3*2+8)/(1*5*(-1)))) H1 = (8) / (((2-3)/(6+(-3))+(6+8)/(-5))) H1 = (8) / (((-1)/(3)+(14)/(-5))) H1 = (8) / ((-0,3333) + (-2,8) H1 = 8 / (-3,13333) H1 = -2,55319

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________

VII. Comandos de Entrada e Sada de dados


Comandos de Sada de Dados escreva (<lista-de-expresses>) Escreve no dispositivo de sada padro (isto , na rea direita da metade inferior da tela do VisuAlg) o contedo de cada uma das expresses que compem <lista-deexpresses>. As expresses dentro desta lista devem estar separadas por vrgulas; depois de serem avaliadas, seus resultados so impressos na ordem indicada. escreval (<lista-de-expresses>). Idem ao anterior, com a nica diferena que pula uma linha em seguida. Exemplos: algoritmo "exemplo" var x: real y: inteiro a: caractere l: logico inicio x <- 2.5 y <- 6 a <- "teste" l <- VERDADEIRO escreval ("x", x:4:1, y+3:4) // Escreve: x 2.5 9 escreval (a, "ok") // Escreve: testeok (e depois pula linha) escreval (a, " ok") // Escreve: teste ok (e depois pula linha) escreval (a + " ok") // Escreve: teste ok (e depois pula linha) escreva (l) // Escreve: VERDADEIRO fimalgoritmo Note que o VisuAlg separa expresses do tipo numrico e lgico com um espao esquerda, mas no as expresses do tipo caractere, para que assim possa haver a concatenao. Quando se deseja separar expresses do tipo caractere, necessrio acrescentar espaos nos locais adequados.

Comando de Entrada de Dados leia (<lista-de-variveis>) Recebe valores digitados pelos usurio, atribuindo-os s variveis cujos nomes esto em <lista-de-variveis> ( respeitada a ordem especificada nesta lista). anlogo ao comando read do Pascal. Veja no exemplo abaixo o resultado: algoritmo "exemplo 1" var x: inteiro;

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________ inicio leia (x) escreva (x) fimalgoritmo O comando de leitura acima ir exibir uma janela como a que se v ao lado, com a mensagem padro: "Entre com o valor de <nome-de-varivel>"

Se voc clicar em Cancelar ou teclar Esc durante a leitura de dados, o programa ser imediatamente interrompido.

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________

VIII. Desvio Condicional


Comando de Desvio Condicional se <expresso-lgica> entao <seqncia-de-comandos> fimse Ao encontrar este comando, linguagem analisa a <expresso-lgica>. Se o seu resultado for VERDADEIRO, todos os comandos da <seqncia-de-comandos> (entre esta linha e a linha com fimse) so executados. Se o resultado for FALSO, estes comandos so desprezados e a execuo do algoritmo continua a partir da primeira linha depois do fimse.

se <expresso-lgica> entao <seqncia-de-comandos-1> senao <seqncia-de-comandos-2> fimse Nesta outra forma do comando, se o resultado da avaliao de <expresso-lgica> for VERDADEIRO, todos os comandos da <seqncia-de-comandos-1> (entre esta linha e a linha com senao) so executados, e a execuo continua depois a partir da primeira linha depois do fimse. Se o resultado for FALSO, estes comandos so desprezados e o algoritmo continua a ser executado a partir da primeira linha depois do senao, executando todos os comandos da <seqncia-de-comandos-2> (at a linha com fimse). Estes comandos equivalem ao if...then e if...then...else do Pascal. Note que no h necessidade de delimitadores de bloco (como begin e end), pois as seqncias de comandos j esto delimitadas pelas palavras-chave senao e fimse. O VisuAlg permite o aninhamento desses comandos de desvio condicional. Comando de Seleo Mltipla A sintaxe a seguinte: escolha <expresso-de-seleo> caso <exp11>, <exp12>, ..., <exp1n> <seqncia-de-comandos-1> caso <exp21>, <exp22>, ..., <exp2n> <seqncia-de-comandos-2> ... outrocaso <seqncia-de-comandos-extra> fimescolha Veja o exemplo a seguir, que ilustra bem o que faz este comando:

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________ algoritmo "Times" var time: caractere inicio escreva ("Entre com o nome de um time de futebol: ") leia (time) escolha time caso "Flamengo", "Fluminense", "Vasco", "Botafogo" escreval (" um time carioca.") caso "So Paulo", "Palmeiras", "Santos", "Cornthians" escreval (" um time paulista.") outrocaso escreval (" de outro estado.") fimescolha fimalgoritmo Exemplo retirado da apostila de BRUNO TONET & CRISTIAN KOLIVER Um determinado clube de futebol pretende classificar seus atletas em categorias e para isto ele contratou um programador para criar um programa que executasse esta tarefa. Para isso o clube criou uma tabela que continha a faixa etria do atleta e sua categoria. A tabela est demonstrada abaixo: IDADE CATEGORIA De 05 a 10 Infantil De 11 a 15 Juvenil De 16 a 20 Junior De 21 a 25 Profissional Construa um programa que solicite o nome e a idade de um atleta e imprima a sua categoria. 1. Algoritmo "CLASSIFICAO DE ATLETAS 2. var 3. nome, categoria : caractere 4. idade : inteiro 5. inicio 6. Escreva("Nome do Atleta = ") 7. Leia (nome) 8. Escreva("Idade do Atleta = ") 9. Leia (idade) 10. Escolha idade 11. caso 5,6,7,8,9,10 12. categoria <- "Infantil" 13. caso 11,12,13,14,15 14. categoria <- "Juvenil" 15. caso 16,17,18,19,20 16. categoria <- "Junior" 17. caso 21,22,23,24,25 18. categoria <- "Profissional" 19. outrocaso 20. categoria <- "INVALIDO" 21. Fimescolha 22. Escreva ("Categoria = ",categoria) 23. fimalgoritmo

IX. Comando de Repetio

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________

Introduo
Comandos de repetio permitem processar grupos de comandos repetidos em uma estrutura que facilita o controle do processamento. Existem trs estruturas bsicas de comandos de repetio que variam em sua sintaxe de acordo com a linguagem. Estrs comandos so: PARA REPITA ENQUANTO a) Comando ENQUANTO Sintaxe:
Estrutura Condio para sair do looping.

ENQUANTO <condio> <comando1> <comando2> ... <comandon> FIMENQUANTO

Comandos que sero executados

Neste exemplo de estrutura, os comandos sero executados enquanto a <condio for verdadeira. Quando a <condio> se tornar falsa, o processamento desta estrutura ser encerrado e continuar aps o FIMENQUANTO.

Exemplo 01:
Escreval(Digite um numero maior que 20: ) X <- 0 Enquanto (X < 20) Leia( X ) FimEnquanto

Exemplo 02: Digitar n nmeros e apresentar o maior nmero digitado.


continua = S ENQUANTO ((continua = S) ou (continua = s)) Escreva(Digite um nmero: ) Leia ( X )

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________

i <- i + 1 Se i = 1 entao // Se o primeiro numero que estou digitando, ento vou assumir que o maior. Maior <- X Seno Se X > Maior entao Maior <- X FimSe FimSe Escreva(Digitar mais um nmero (S/N)? ) Leia(continua) FIMENQUANTO Escreval(O maior nmero digitado foi , Maior )

B) Comando REPITA Sintaxe:


Estrutura

REPITA <comando1> <comando2> ... <comandon> ATE <condio>

Comandos que sero executados Condio para sair do looping.

No comando REPITA os <comandos> sero executados at que a <condio> se torne verdadeira. Os comandos sero executados pelo menos uma vez. Caso a <condio> nunca se torne verdadeira, o processamento entra em looping infinito, causando o travamento do programa. O processamento dos comandos no interior da estrutura deve em algum momento alterar a <condio> para verdadeiro e encerrar o processo

Exemplo 01:
Escreval(Digite um numero maior que 20: ) REPITA Leia( X ) ATE ( X > 20 )

Exemplo 02: Digitar n nmeros e apresentar o maior nmero digitado.

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________

REPITA Leia ( X ) i <- i + 1 Se i = 1 entao // Se o primeiro numero que estou digitando, ento vou assumir que o maior. Maior <- X Seno Se X > Maior entao Maior <- X FimSe FimSe Escreva(Digitar mais um nmero (S/N)? ) Leia(continua) ATE ( continua = N) ou (continua = n) Escreval(O maior nmero digitado foi , Maior )

b) Comando PARA
contador

Sintaxe 01:

PARA <varivel > DE <valor_inicial> ATE <valor_final> FACA


Estrutura

<comando1> <comando2> ... <comandon>

Comandos que sero executados

FIMPARA

Quando o comando PARA executado, ele executa os comandos que esto dentro da estrutura n vezes. Estas n vezes a diferena entre o valor_final e o valor_inicial. <varivel> , tambm chamada de varivel contadora ou varivel controladora quem controla a quantidade de vezes que os comandos so executados. Ela incrementada de 1 para cada vez que os comandos so excutados. valor_inicial deve ser menor ou igual ao valor_final. Este comando mais utilizado quando sabe-se a quantidade de vezes que os comandos devem ser executados.

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________

Exemplo 01: Neste exemplo ser apresentado na tela o contedo da varivel contadora dez vezes.
Para i de 1 ate 10 faca Escreval( i ) Fimpara

Exemplo 02: Neste exemplo ser apresentado na tela o contedo da varivel contadora 15 vezes.
Para i de 5 ate 20 faca Escreval( i ) Fimpara

Exemplo 03: Neste exemplo ser apresentado o dobro do nmero digitado. Isto ser repetido 8 vezes.
Para i de 1 ate 8 faca Leia(N) Dobro <- N * 2 Escreval( O dobro do nmero digitado , Dobro ) Fimpara

Exemplo 04: Calcular a tabuada do nmero digitado.


Leia(N) Para i de 1 ate 10 faca Escreval( i , x , i*N) Fimpara

Exemplo 05: Digitar 13 nmeros e apresentar o maior nmero digitado.


Para i de 1 ate 13 faca Leia ( X ) Se i = 1 entao // Se o primeiro numero que estou digitando, ento vou assumir que o maior. Maior <- X Seno Se X > Maior entao Maior <- X FimSe FimSe Fimpara Escreval(O maior nmero digitado foi , Maior )

UNISANTANA Lgica e Programao Bsica


_____________________________________________________________________________________

contador

Sintaxe 02:
PARA <varivel > DE <valor_inicial> ATE <valor_final> PASSO < n > FACA

Estrutura

<comando1> <comando2> ... <comandon> FIMPARA

Comandos que sero executados

Nesta sintaxe a diferena o PASSO n. Neste caso, isto quer dizer que a <varivel> vai ser incrementado de n. Exemplo 01: Neste exemplo ser apresentado na tela o contedo da varivel contadora apenas 5 vezes. Ser apresentado os valores 1, 3, 5, 7 e 9. Para i de 1 ate 10 passo 2 faca Escreval( i ) Fimpara Nesta sintaxe, n pode ser negativo. Neste caso, o valor_inicial deve ser maior que valor_final. Exemplo 02: Neste exemplo ser apresentado na tela o contedo da varivel contadora apenas 5 vezes mas em ordem decrescente. Ser apresentado os valores 10, 8, 6, 4 e 2. Para i de 10 ate 1 passo -2 faca Escreval( i ) Fimpara Exemplo 03: Contagem regressiva. Ser apresentado os valores 10, 9, 8, 7, 6, 5, 4, 3, 2, 1. Para i de 10 ate 1 passo -1 faca Escreval( i ) Fimpara

Você também pode gostar