Vous êtes sur la page 1sur 38

Lgica de Programao

Base desse material: Apostila de Lgica de Programao Prof. Paulo Srgio de Moraes (Unicamp) Livro: Algoritmos (Lgica para o desenvolvimento de programao de computadores) de Jos Augusto Manzano e Jayr Figueiredo de Oliveira. Apostila preparada com exerccios do Professor Maromo

2/38

Sumrio
1 Lgica de Programao............................................................................ 4 1.1 1.2 1.3 A importncia da simulao:.............................................................. 5 Exemplo de uma seqncia de instrues: .......................................... 5 Algoritmo ........................................................................................ 5 Regras para construo do Algoritmo ........................................... 6 Exemplos: ................................................................................ 6

1.3.1 1.3.2 2 2.1 2.2 2.3 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 4 4.1 4.2 4.3 5 5.1 5.2 5.3 5.4 6 7 6.1 7.1

Programas ............................................................................................. 7 Estrutura do Material ........................................................................ 7 Exemplo de Cdigo........................................................................... 7 Exerccios Iniciais - (linguagem natural) .............................................. 8 Tipos de Informao:........................................................................ 9 Tipos de Dados: ............................................................................... 9 Variveis:........................................................................................ 9 Constantes: ..................................................................................... 9 Operadores Aritmticos: ..................................................................10 Hierarquia das Operaes Aritmticas ................................................10 Exemplo ..................................................................................10 Expresses Aritmticas: ...................................................................10 Exemplo de Algoritmo Descrio Narrativa.......................................12 Teste de Mesa.................................................................................12 EXERCCIOS Lista 2 ......................................................................13 Simbologia .....................................................................................14 Exemplos: ......................................................................................14 Exerccios 3 - Fluxogramas ...............................................................16 Operadores Relacionais. ...................................................................18 Operadores Lgicos .........................................................................19 Exemplos .......................................................................................20 EXERCCIOS Expresses com Operadores Lgicos e Relacionais .........21 EXERCCIOS ...................................................................................23 Comandos de Deciso ......................................................................25 SE ENTO / IF ... THEN .............................................................25 SE ENTO SENO / IF ... THEN ... ELSE ......................................26 CASO SELECIONE / SELECT ... CASE...........................................28

INFORMAES ....................................................................................... 9

3.6.1

Fluxogramas - Diagrama de Bloco ............................................................14

Mais Sobre Operadores ...........................................................................18

Operaes Lgicas .................................................................................22 Estrutura de Deciso e Repetio .............................................................25 7.1.1 7.1.2 7.1.3 7.2

EXERCCIOS ...................................................................................30

Pgina 2/38

3/38
8 Comandos de Repetio..........................................................................32 8.1.1 8.1.2 8.1.3 8.2 9 Enquanto x, Processar (Do While ... Loop) ...................................32 At que x, processar ... (Do Until ... Loop)...................................33 Processar ..., Enquanto x (Do ... Loop While) ...............................33

EXERCCIOS ...................................................................................34

Referncias Bibliogrficas........................................................................38

Pgina 3/38

4/38

1 Lgica de Programao
Estas notas de aulas tm por objetivo preparar o aluno para as futuras aulas prticas de laboratrio. Grande parte dos exemplos analisados em sala de aula e os enunciados de exerccios constam neste material. A lgica de programao essencial para quem est iniciando na rea de informtica desenvolvendo sistemas e programas de computador. Atravs desta tcnica podemos encadear os nossos pensamentos em uma ordem lgica para atingir determinados objetivos. Os pensamentos encadeados podem ser descritos numa seqncia lgica de execuo. Em informtica, uma instruo a informao que indica ao computador a ao que o mesmo deve executar. A seqncia de uma codificao de instrues chamada de linguagem de programao. Linguagens como (C, PASCAL, ALGOL, COBOL, etc..) so chamadas de procedurais, devido ao fato das instrues serem executadas de forma seqencial, enquanto as linguagens, baseadas no conceito de eventos como C#, VB.NET, Delphi.NET e Java, utilizam outra estratgia de programao a qual chamamos de (POO Programao Orientada a Objetos). Logicamente torna-se trabalhoso trabalhar com dados de um computador bit-a-bit. Como forma de manipular este fluxo de estados eltricos e estrutur-lo de forma a permitir operaes mais simplificadas e otimizadas sobre os bytes, surgiu o conceito de programao. As linguagens de programao so geralmente em dois nveis: 1. Linguagens de Baixo Nvel: so linguagens de programao que tratam a informao na linguagem de mquina. 2. Linguagens de Alto Nvel: so linguagens de programao modeladas quase como a linguagem comum humana, que quando compiladas so convertidas para linguagem de mquina. Cada linguagem deste tipo possui uma sintaxe prpria, que deve ser respeitada e aprendida para que possa ser corretamente processada por seu compilador. Compilador um programa que permite que determinada programao em uma linguagem especfica seja adaptada para linguagem de mquina. No entanto, no necessrio que o programador aprenda todas as diversas linguagens disponveis no mercado. Cada linguagem recomendada para determinadas aplicaes, assim como possuem suas sintaxes prprias, mas todas so estruturadas logicamente. Com aprendizado de Lgica de Programao o aluno entender os conceitos bsicos da programao e poder com menor ou maior dificuldade, aprender a linguagem que quiser. Ento o que programar? Programar o ato de pensar utilizando-se algumas pr-definies. Tentaremos direcionar como voc deve canalizar seus pensamentos para resolver os problemas propostos. Programar nada mais que, resolver os problemas da vida real de forma entendvel ao computador.

Pgina 4/38

5/38

1.1 A importncia da simulao:


Por melhor que seja o conhecimento do Analista/Programador, este s poder ter certeza que sua estratgia foi bem sucedida aps testar o programa num computador. Bons programadores tm poucas surpresas quando testam seus programas, fazendo normalmente umas poucas correes para que o programa funcione de forma adequada. No entanto, comum ouvirmos dos programadores iniciantes frase do tipo Nunca conseguirei fazer um programa.... Certamente no conseguir se a estratgia no for bem definida. Imagine uma tarefa bem simples como preparar um arroz. Caso voc no saiba operar o fogo certamente no conseguir acend-lo. Se no tivesse visto colocar o dobro de gua em relao quantidade de arroz, provalmente o arroz no sairia no ponto. Essas aulas visam preparar o aluno a pensar, aprender e resolver de forma racional um problema, transformando-o em programa de computador.

1.2 Exemplo de uma seqncia de instrues:


Se necessitarmos trocar o pneu de um carro, necessario realizar uma srie de passos para realizar com sucesso essa tarefa. 1. Afrouxar os parafusos; 2. Colocar o macaco em baixo do carro; 3. Elevar o carro com o macaco; 4. Terminar de retirar os parafusos; 5. Retirar o pneu; 6. Colocar o estepe no lugar; 7. Colocar os parafusos; 8. Descer o carro; 9. Terminar de apertar os parafusos; Percebe-se que as instrues devem ser executadas em uma ordem seqencial no se retira o pneu antes de afrouxar e retirar os parafusos, por exemplo. Ento importante a execuo, no de uma ao isolada, e sim do conjunto de instrues na ordem correta para atingir um determinado resultado.

1.3 Algoritmo
Um algoritmo uma seqncia no ambgua de instrues que executada at que determinada condio se verifique. Mais especificamente, em matemtica, constitui o conjunto de processos (e smbolos que os representam) para efetuar um clculo. O conceito de algoritmo freqentemente ilustrado pelo exemplo de uma receita, embora muitos algoritmos sejam

Pgina 5/38

6/38
mais complexos. Eles podem repetir passos (fazer iteraes) ou necessitar de decises (tais como comparaes ou lgica) at que a tarefa seja completada. Um algoritmo corretamente executado no ir resolver um problema se estiver implementado incorretamente ou se no for apropriado ao problema. importante ressaltar que essas tarefas devam ser claras, precisas e no redundantes. (Fonte: Wikipedia.org).

1.3.1 Regras para construo do Algoritmo


Para escrever um algoritmo precisamos descrever a seqncia de instrues, de maneira simples e objetiva. Para isso utilizaremos algumas tcnicas: 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;

Essa forma inicial de representao de algoritmos conhecida como descrio narrativa.

1.3.2 Exemplos:
Algoritmo Exemplo 1
Algoritmo para chupar uma laranja: 1. Descascar a laranja; 2. Cortar ao meio; 3. Chupar a laranja; 4. Jogar a casca e o bagao fora.

Algoritmo Exemplo 2
Algoritmo para clculo da mdia de duas notas. 1. Entre com o primeiro nmero A. 2. Entre com o segundo nmero B. 3. Calcule a mdia dos dois nmeros A e B, primeiro somando e depois dividindo por 2. 4. Mostre o resultado da mdia.

Pgina 6/38

7/38

2 Programas
Os programas de computadores nada mais so do que algoritmos escritos numa linguagem de computador (Pascal, C, Cobol, Fortran, Visual Basic, Delphi, Java entre outras) e que so interpretados e executados por uma mquina ou vrias mquinas (computadores). Um programa de computador uma coleo de instrues que descrevem uma tarefa a ser realizada por um computador. O termo pode ser uma referncia ao cdigo fonte, escrito em alguma linguagem de programao, ou ao arquivo que contm a forma executvel deste cdigo fonte.(Wikipedia, 2008) Notem que dada esta interpretao rigorosa, um programa por natureza muito especfica e rgida em relao aos algoritmos da vida real. Lembrando: Programar nada mais que, resolver os problemas da vida real de forma entendvel ao computador.

2.1 Estrutura do Material


Essa apostila foi estruturada exerccios com grau de dificuldade crescente e com os respectivos comentrios. A soluo de todos os algoritmos ser trabalhada em sala de aula. Ao todo sero em torno de 50 exerccios utilizando todas as tcnicas estruturadas e bem exemplificadas.

2.2 Exemplo de Cdigo


Exemplo de um Cdigo que Realiza a soma de dois nmeros A, B e retornam o resultado em C.

Pgina 7/38

8/38

Em Pacal Program Soma; Var A, B, C: integer; Begin A:=1; B:=2; C:=A+B; Writeln(O Resultado , C); End Sub

Em C #include <stdlib.h> #include <stdio.h> int main() { int a=1; int b=3; int c=a+b; printf("O resultado eh--> %d \n",c); system("pause"); return(0); }

2.3 Exerccios Iniciais - (linguagem natural)


1. Crie uma seqncia lgica para preparar um caf. No vale com cafeteira; 2. Crie uma seqncia lgica para escovar os dentes. 3. Crie uma seqncia lgica para somar trs nmeros e multiplicar o resultado pelo primeiro dos trs. 4. Crie uma seqncia lgica para soma de trs valores. 5. Crie uma seqncia lgica para tomar um banho.

Pgina 8/38

9/38

3 INFORMAES
Antes de continuarmos a estruturao de algoritmos importante que voc conhea alguns conceitos, como: Tipos de Informao, Tipos de Dados, Variveis, Constantes, Operadores Aritmticos, Expresses Aritmticas ou Frmulas Matemticas.

3.1 Tipos de Informao:


O computador uma ferramenta usada para solucionar problemas que envolvam a manipulao de informaes, sendo que essas informaes podem ser dados e instrues.

3.2 Tipos de Dados:


Os dados representam as informaes processadas pelo computador. Alguns tipos de dados: numricos (inteiros e reais), dados caracteres ou literais, lgicos, datas, entre outros.

3.3 Variveis:
Todo o tipo de dado que sofre modificao ao longo do processo chamado de varivel. A varivel o local de armazenamento na memria do computador. Para representar essa posio fsica de memria, ns atribumos nomes para as variveis. O nome de uma varivel usado para identific-la. Existem algumas regras para a utilizao de variveis, so elas: 1. Nomes devem ter um ou mais caracteres, no podendo iniciar com nmeros, o caractere inicial deve ser uma letra, ex: o o 1COD invlido; COD1 vlido. Cd prod invlido; Codprod vlido.

2. Nomes no podem ter espaos, ou seja, serem compostos. o o

3. Palavras reservadas no podem ser utilizadas. 4. No se podem utilizar caracteres diferentes de nmeros e letras.

3.4 Constantes:
Toda a informao que fixa. Por exemplo: NOVOSAL:= SAL * 1.3. Aplicando 30% de aumento para o salrio e atribuindo esse novo valor a varivel NOVOSAL que representa o novo salrio.

Pgina 9/38

10/38

3.5 Operadores Aritmticos:


As variveis e constantes podero ser utilizadas para clculos matemticos. Vejamos a tabela abaixo:

Operador binrio = + / %

Descrio Atribuio Soma Subtrao Diviso Resto (obtm o resto da diviso) Aplica-se na linguagem C, porm no reconhecido em Pascal.

Operador unrio +

Ao Sinal negativo Sinal positivo

3.6 Hierarquia das Operaes Aritmticas


1 - ( ) Parnteses 2 - Exponenciao 3 - Multiplicao, diviso (o que aparecer primeiro) 4 + ou (o que aparecer primeiro)

3.6.1 Exemplo
1 + 7 * 2 ** 2 1 = 28 3 * (1 2) + 4 * 2 = 5

3.7 Expresses Aritmticas:


Expresses definidas pelo relacionamento existentes entre variveis e constantes numricas por meio do uso de operadores. Exemplo: TOTCOMPRA:= QTD * PRECPROD. Total da compra recebe o valor do clculo de quantidade * preo unitrio do produto.

Pgina 10/38

11/38
Na seo anterior vimos que ALGORITMO uma seqncia lgica de instrues que podem ser executadas. importante ressaltar que qualquer tarefa que siga determinado padro pode ser descrita por um algoritmo, como por exemplo:

COMO PREPARAR UMA TIGELA DE PIPOCAS


ou ento

CALCULAR O SALDO FINANCEIRO DE UM ESTOQUE


Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em trs fases fundamentais.

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

Analogia com o homem.

Pgina 11/38

12/38

3.8 Exemplo de Algoritmo Descrio Narrativa


Imagine o seguinte problema: Calcular a mdia final dos alunos da 7 Srie. Os alunos realizaro quatro provas: P1, P2, P3 e P4. Onde: Mdia Final = P1 + P2 + P3 + P4 4 Para montar o algoritmo proposto, faremos trs perguntas: a) Quais so os dados de entrada? R: Os dados de entrada so P1, P2, P3 e P4. b) Qual ser o processamento a ser utilizado? R: O procedimento ser somar todos os dados de entrada e dividi-los por 4 (quatro). c) Quais sero os dados de sada? R: O dado de sada ser a mdia final. Algoritmo Receba a nota da prova1 Receba a nota de prova2 Receba a nota de prova3 Receba a nota da prova4 Some todas as notas e divida o resultado por 4 Mostre o resultado da diviso

3.9 Teste de Mesa


Aps desenvolver um algoritmo ele dever ser testado. Este teste chamado de TESTE DE MESA, que significa: seguir as instrues do algoritmo, de maneira precisa, para verificar se o procedimento utilizado est correto ou no.

Utilize a tabela abaixo:


P1 10 10 8 P2 8 10 9 P3 6 10 6 P4 4 10 5 MEDIA 7 10 7

Pgina 12/38

13/38

3.10 EXERCCIOS Lista 2


6) Identifique os dados de entrada, processamento e sada no algoritmo abaixo: Receba cdigo da pea Receba valor da pea Receba Quantidade de peas Calcule o valor total da pea (Quantidade * Valor da pea) Mostre o cdigo da pea e seu valor total

7) Faa um algoritmo para Calcular o estoque mdio de uma pea, sendo que ESTOQUEMDIO = (QUANTIDADE MNIMA + QUANTIDADE MXIMA) /2. 8) Faa um algoritmo (descrio narrativa) para Calcular a idade aproximada em anos de uma pessoa, Sendo que IDADE = ANOATUAL ANONASC. 9) Faa um algoritmo (descrio narrativa) para Calcular a seguinte expresso: X = X ^ 2 + 2 Onde X informado como entrada. 10) Teste os algoritmos anteriores com dados definidos por voc. (Teste de Mesa)

Pgina 13/38

14/38

4 Fluxogramas - Diagrama de Bloco


O que um diagrama de bloco (fluxograma)? Com o diagrama podemos definir uma seqncia de smbolos, com significado bem definido, portanto, sua principal funo a de facilitar a visualizao dos passos de um processamento. uma ferramenta indispensvel para o profissional que est envolvido diretamente com a programao.

4.1 Simbologia
Existem diversos smbolos em um diagrama de bloco. No decorrer do curso apresentaremos os mais utilizados. Veja no quadro abaixo alguns dos smbolos que iremos utilizar:

Indica incio e fim de fluxograma TERMINADOR Entrada de Dados (Leitura) DADOS Processamento em geral. Ex: clculo da mdia. PROCESSO Estrutura de Deciso. DECISO Sada de Dados em Tela. Mostra o resultado na tela. DOCUMENTO

4.2 Exemplos:
Algoritmo Exemplo 1 Descrio Narrativa Algoritmo para chupar uma laranja: 1. Descascar a laranja; 2. Cortar ao meio; 3. Chupar a laranja; 4. Jogar a casca e o bagao fora.

Pgina 14/38

15/38
Algoritmo Exemplo 1 Fluxograma

Algoritmo Exemplo 2 Descrio Narrativa Algoritmo para clculo da mdia de duas notas. 1. Entre com o primeiro nmero A. 2. Entre com o segundo nmero B. 3. Calcule a mdia dos dois nmeros A e B, primeiro somando e depois dividindo por 2. 4. Mostre o resultado da mdia.

Pgina 15/38

16/38
Algoritmo Exemplo 2 Fluxograma

INCIO

MEDIA:= (A+B)/2

MEDIA

FIM

4.3 Exerccios 3 - Fluxogramas


11) Construa um diagrama de blocos que: Leia a cotao do dlar Leia um valor em dlares Converta esse valor para Real Mostre o resultado

12) Desenvolva um diagrama que: Leia 4 (quatro) nmeros Calcule o quadrado para cada um Somem todos e Mostre o resultado

Pgina 16/38

17/38
13) Construa um algoritmo para pagamento de comisso de vendedores de peas, levando-se em considerao que sua comisso ser de 5% do total da venda e que voc tem os seguintes dados: Identificao do vendedor Cdigo da pea Preo unitrio da pea Quantidade vendida

14) Construa um algoritmo que receba como entrada os seguintes dados: Peso de uma pessoa; Sua altura em centmetros;

E em seguida calcule o ndice de Massa Corprea (IMC) atravs da seguinte frmula: PESO / ALT / ALT. 15) Faa o teste de mesa dos exerccios anteriores.

Pgina 17/38

18/38

5 Mais Sobre Operadores


J vimos um pouco sobre os operadores matemticos, porm alm desses ainda existem os: Operadores Relacionais. Operadores Lgicos.

5.1 Operadores Relacionais.


Os operadores relacionais so utilizados para comparar String de caracteres e nmeros. Os valores a serem comparados podem ser caracteres ou variveis. Estes operadores sempre retornam valores lgicos (verdadeiro ou falso/ True ou False) Para estabelecer prioridades no que diz respeito a qual operao executar primeiro, utilize os parnteses. Os operadores relacionais so: Descrio Igual a Diferente de Maior que Menor que Maior ou igual a Menor ou igual a Smbolo (Em C) == != > < >= <=

Exemplo: Tendo duas variveis A = 8 e B = 6 Os resultados das expresses seriam: Expresso A == B A <> B A>B A<B A >= B A <= B Resultado FALSO VERDADEIRO VERDADEIRO FALSO VERDADEIRO FALSO

Pgina 18/38

19/38

Figura 1 - Smbolo usado para comparao

5.2 Operadores Lgicos


Os operadores lgicos servem para combinar resultados de expresses, retornando se o resultado final verdadeiro ou falso. Os operadores lgicos so: E OU NO AND / E Uma expresso AND (E) verdadeira se todas as condies forem verdadeiras. OR / OU Uma expresso OR (OU) verdadeira se pelo menos uma condio for verdadeira NOT / NO Uma expresso NOT (NO) inverte o valor da expresso ou condio, se verdadeira inverte para falsa e vice-versa. AND OR NOT

Pgina 19/38

20/38
A tabela abaixo mostra todos os valores possveis criados pelos trs operadores lgicos (AND/E, OR/OU e NOT/NO) 1 Valor V V F F V V F F V F Operador E AND AND AND OR OR OR OR NOT NOT 2 Valor V F V F V F V F F V Resultado V F F F V V V F

Nota do Maromo: Na linguagem C, os operadores so, respectivamente: AND (&&), OR (!) e NOT (!).

5.3 Exemplos
Exemplo 1: Seja A=5, B=3, C=2. Calcule o resultado da expresso lgica: 1) A + 7 > B * C Sendo A = 5 Ento 5 + 7 = 12 E3*2=6 Ento a expresso 12 > 6 Verdadeiro (V) Exemplo 2: Suponha que temos trs variveis A = 5, B = 8 e C =1 Os resultados das expresses seriam: Expresso 1 A=B A <> B A>B A<B A >= B A <= B Operador AND OR NOT AND OR NOT Operador em C && || ! && || ! B>C B=C Expresso 2 B>C B<C Resultado Falso Verdadeiro Verdadeiro Verdadeiro Falso Falso

Pgina 20/38

21/38

5.4 EXERCCIOS Expresses com Operadores Lgicos e Relacionais


16) Tendo as variveis SALARIO, IR e SALLIQ, e considerando os valores abaixo. Informe se as expresses so verdadeiras ou falsas. SALARIO 100,00 200,00 300,00 IR 0,00 10,00 15,00 SALLIQ 100 190,00 285,00 EXPRESSO (SALLIQ >= 100,00) (SALLIQ < 190,00) SALLIQ = SALARIO - IR V ou F

17) Sabendo que A=3, B=7 e C=4, informe se as expresses abaixo so verdadeiras ou falsas. a) (A+C) > B b) B >= (A + 2) c) C = (B A) d) (B + A) <= C e) (C+A) > B 18) Sabendo que A=5, B=4 e C=3 e D=6, informe se as expresses abaixo so verdadeiras ou falsas. a) (A > C) AND (C <= D) b) (A+B) > 10 OR (A+B) = (C+D) c) (A>=C) AND (D >= C) 19) Sabendo-se que X=1, Y=2, informe se as expresses abaixo so verdadeiras ou falsas. a) X ^ 2 + Y > Y ^ 2 b) X + Y = Y ^2 -1 20) Sabendo-se que A=5, B=7, informe o valor da expresso abaixo, se verdadeiro ou falso. NOT (A>B)

Pgina 21/38

22/38

6 Operaes Lgicas
Operaes Lgicas so utilizadas quando se torna necessrio tomar decises em um diagrama de bloco. Num diagrama de bloco, toda deciso ter sempre como resposta o resultado VERDADEIRO ou FALSO. Exemplo Como no exemplo do algoritmo CHUPAR UMA BALA. Imaginemos que algumas pessoas no gostem de chupar bala de Morango, neste caso teremos que modificar o algoritmo para: Chupar uma bala. Pegar a bala A bala de morango? Se sim, no chupe a bala Se no, continue com o algoritmo Retirar o papel Chupar a bala Jogar o papel no lixo Exemplo: Algoritmo Chupar Bala utilizando diagrama de Blocos

Pgina 22/38

23/38

6.1 EXERCCIOS
21) Elabore um diagrama de blocos que leia um nmero. Se positivo armazene-o em A, se for negativo, em B. No final mostrar o resultado 22) Ler um nmero e verificar se ele par ou mpar. Quando for par armazenar esse valor em P e quando for mpar armazen-lo em I. Exibir P e I no final do processamento. 23) Construa um diagrama de blocos para ler uma varivel numrica N e imprimi-la somente se a mesma for maior que 100, caso contrrio imprimi-la com o valor zero 24) Tendo como dados de entrada a altura e o sexo de uma pessoa. Construa um algoritmo que calcule seu peso ideal, utilizando as seguintes frmulas: Para homens: (72.7*h) - 58 Para mulheres: (62.1*h) - 44.7 (h = altura) 25) Faa um teste de mesa do diagrama apresentado abaixo, de acordo com os dados fornecidos:

Pgina 23/38

24/38

Pgina 24/38

25/38

7 Estrutura de Deciso e Repetio


Como vimos no captulo anterior em Operaes Lgicas, verificamos que na maioria das vezes necessitamos tomar decises no andamento do algoritmo. Essas decises interferem diretamente no andamento do programa. Trabalharemos com dois tipos de estrutura. A estrutura de Deciso e a estrutura de Repetio

7.1 Comandos de Deciso


Os comandos de deciso ou desvio fazem parte das tcnicas de programao que conduzem a estruturas de programas que no so totalmente seqenciais. Com as instrues de SALTO ou DESVIO pode-se fazer com que o programa proceda de uma ou outra maneira, de acordo com as decises lgicas tomadas em funo dos dados ou resultados anteriores. As principais estruturas de deciso so: Se Ento, Se ento Seno e Caso Selecione

7.1.1 SE ENTO / IF ... THEN


A estrutura de deciso SE/IF normalmente vem acompanhada de um comando, ou seja, se determinada condio for satisfeita pelo comando SE/IF ento execute determinado comando. Imagine um algoritmo que determinado aluno somente estar aprovado se sua mdia for maior ou igual a 5.0, veja no exemplo de algoritmo como ficaria. SE MEDIA >= 5.0 ENTO ALUNO APROVADO Em diagrama de blocos ficaria assim:

Pgina 25/38

26/38
Em Visual Basic IF MEDIA >= 5 Then Text1 = APROVADO ENDIF Em Linguagem C if (media>=5) printf(Aprovado);

7.1.2 SE ENTO SENO / IF ... THEN ... ELSE


A estrutura de deciso SE/ENTO/SENO, funciona exatamente como a estrutura SE, com apenas uma diferena, em SE somente podemos executar comandos caso a condio seja verdadeira, diferente de SE/SENO pois sempre um comando ser executado independente da condio, ou seja, caso a condio seja verdadeira o comando da condio ser executado, caso contrrio o comando da condio falsa ser executado Em algoritmo ficaria assim: SE MDIA >= 5.0 ENTO ALUNO APROVADO SENO ALUNO REPROVADO Em diagrama

Pgina 26/38

27/38
Em Visual Basic IF MEDIA >= 5 Then Text1 = APROVADO ELSE Text1 = REPROVADO ENDIF Em Linguagem C IF (MEDIA >= 5) Printf( APROVADO); ELSE Printf(REPROVADO);

No exemplo acima est sendo executada uma condio que, se for verdadeira, executa o comando APROVADO, caso contrrio executa o segundo comando REPROVADO. Podemos tambm dentro de uma mesma condio testar outras condies. Como no exemplo abaixo:

Pgina 27/38

28/38
Em Visual Basic IF MEDIA >= 5 Then IF MEDIA >= 7.0 then Text1 = Aluno APROVADO ELSE Text1 = Aluno Necessita fazer outra Avaliao ENDIF ELSE Text1 = Aluno REPROVADO ENDIF

Em Linguagem C IF (MEDIA >= 5) { IF (MEDIA >= 7.0) Printf(Aluno APROVADO); ELSE Printf(Aluno Necessita fazer outra Avaliao); } ELSE Printf(Aluno REPROVADO);

7.1.3 CASO SELECIONE / SELECT ... CASE


A estrutura de deciso CASO/SELECIONE utilizada para testar, na condio, uma nica expresso, que produz um resultado, ou, ento, o valor de uma varivel, em que est armazenado um determinado contedo. Compara-se, ento, o resultado obtido no teste com os valores fornecidos em cada clusula Caso. No exemplo do diagrama de blocos abaixo, recebido uma varivel Op e testado seu contedo, caso uma das condies seja satisfeita, atribudo para a varivel Titulo a String Opo X, caso contrrio atribudo a string Opo Errada. Em diagrama:

Pgina 28/38

29/38

Pgina 29/38

30/38
Em Visual Basic: TITULO = OP = INPUTBOX(DIGITE A OPO) SELECT CASE OP CASE 1 TITULO = OPO 1 CASE 2 TITULO = OPO 2 CASE 3 TITULO = OPO 3 CASE 4 TITULO = OPO 4 CASE 5 TITULO = OPO 5 CASE ELSE TITULO = OPO ERRADA END SELECT LABEL1.CAPTION = TITULO

7.2 EXERCCIOS
26) Joo Papo-de-pescador, homem de bem, comprou um microcomputador para controlar o rendimento dirio de seu trabalho. Toda vez que ele traz um peso de peixes maior que o estabelecido pelo regulamento de pesca do estado de So Paulo (50 quilos) deve pagar uma multa de R$ 4,00 por quilo excedente. Tarefa: Joo precisa que voc faa um diagrama de blocos que leia a varivel P (peso de peixes) e verifique se h excesso. Se houver, gravar na varivel E (Excesso) e na varivel M o valor da multa que Joo dever pagar. Caso contrrio mostrar tais variveis com o contedo ZERO. 27) Elabore um diagrama de bloco que leia as variveis C e N, respectivamente cdigo e nmero de horas trabalhadas de um operrio. E calcule o salrio sabendose que ele ganha R$ 10,00 por hora. Quando o nmero de horas excederem a 50 calcule o excesso de pagamento armazenando-o na varivel E, caso contrrio zerar tal varivel. A hora excedente de trabalho vale R$ 20,00. No final do processamento imprimir o salrio total e o salrio excedente. 28) Desenvolva um diagrama de blocos que: Leia 4 (quatro) nmeros; Calcule o quadrado de cada um; Se o valor resultante do quadrado do terceiro for >= 1000, imprima-o e finalize;

Pgina 30/38

31/38
Caso contrrio, imprima os valores lidos e seus respectivos quadrados. 29) Faa um diagrama de bloco que leia um nmero inteiro e mostre uma mensagem indicando se este nmero par ou mpar, e se positivo ou negativo. 30) A Secretaria de Meio Ambiente que controla o ndice de poluio mantm 3 grupos de indstrias que so altamente poluentes do meio ambiente. O ndice de poluio aceitvel varia de 0,05 at 0,25. Se o ndice variar entre 0,26 e 0,3 as indstrias do 1 grupo so intimadas a suspenderem suas atividades Se o ndice variar entre 0,31 e 0,4 as indstrias do 1 e 2 grupo so intimadas a suspenderem suas atividades Se o ndice for acima 0,41 todos os grupos devem ser notificados a paralisarem suas atividades. Faa um diagrama de bloco que leia o ndice de poluio medido e emita a notificao adequada aos diferentes grupos de empresas. 31) Elabore um algoritmo que dada a idade de um nadador classifique-o em uma as seguintes categorias: Infantil A = 5 a 7 anos Infantil B = 8 a 11 anos Juvenil A = 12 a 13 anos Juvenil B = 14 a 17 anos Adultos = Maiores de 18 anos

Pgina 31/38

32/38

8 Comandos de Repetio
Utilizamos os comandos de repetio quando desejamos que um determinado conjunto de instrues ou comandos seja executado um nmero definido ou indefinido de vezes, ou enquanto um determinado estado de coisas prevalecer ou at que seja alcanado. Trabalharemos com modelos de comandos de repetio: 1. 2. 3. 4. 5. Enquanto x, processar (Do While ...Loop); At que x, processar ... (Do Until ... Loop); Processar ..., Enquanto x (Do ... Loop While); Processar ..., At que x (Do ... Loop Until) Para ... At ... Seguinte (For ... To ... Next)

8.1.1 Enquanto x, Processar (Do While ... Loop)


Neste caso, o bloco de operaes ser executado enquanto a condio x for verdadeira. O teste da condio ser sempre realizado antes de qualquer operao. Enquanto a condio for verdadeira o processo se repete. Podemos utilizar essa estrutura para trabalharmos com contadores. Em diagrama de bloco a estrutura a seguinte:

Pgina 32/38

33/38

8.1.2 At que x, processar ... (Do Until ... Loop)


Neste caso, o bloco de operaes ser executado at que a condio seja satisfeita, ou seja, somente executar os comandos enquanto a condio for falsa.

8.1.3 Processar ..., Enquanto x (Do ... Loop While)


Neste caso primeiro so executados os comandos, e somente depois realizado o teste da condio. Se a condio for verdadeira, os comandos so executados novamente, caso seja falso encerrado o comando DO.

Pgina 33/38

34/38

Em Visual Basic Nr = 0 Do Nr = Nr + 1 Loop While Nr <= 100 Label1.Caption = Nr

8.2 EXERCCIOS
32) Faa um diagrama que dado um nmero pelo usurio, mostre se o mesmo mltiplo de 5, se par ou mpar, negativo ou positivo e se primo ou no. 33) Faa um algoritmo que determine o maior entre N nmeros. A condio de parada a entrada de um valor 0, ou seja, o algoritmo deve ficar calculando o maior at que a entrada seja igual a 0 (ZERO). 34) Uma rainha requisitou os servios de um monge e disse-lhe que pagaria qualquer preo. O monge, necessitando de alimentos , indagou rainha sobre o pagamento, se poderia ser feito com gros de trigo dispostos em um tabuleiro de xadrez, de tal forma que o primeiro quadro deveria conter apenas um gro e os quadros subseqentes , o dobro do quadro anterior. A rainha achou o trabalho barato e pediu que o servio fosse executado, sem se dar conta de que seria impossvel efetuar o pagamento. Tarefa: Faa um algoritmo para calcular o nmero de gros que o monge esperava receber. 35) Faa um algoritmo que conte de 1 a 100 e a cada mltiplo de 10 emita uma mensagem: Mltiplo de 10. 36) Elabore um algoritmo que gera e escreve os nmeros mpares dos nmeros idos entre 100 e 200.

Pgina 34/38

35/38
37) Construa um algoritmo que leia 500 valores inteiros e positivos e: Encontre o maior valor Encontre o menor valor Calcule a mdia dos nmeros lidos 38) Faa um algoritmo que dado um nmero pelo usurio, mostre se o mesmo mltiplo de 5, se par ou mpar, negativo ou positivo. 39) Faa um algoritmo que dado um nmero pelo usurio, mostre se o mesmo um nmero primo ou no. 40) Em um circo havia vrios animais. Faa um algoritmo que leia a idade e a espcie de cada animal existente nesse circo e ao final mostre qual a idade e espcie mais velha. O algoritmo deve solicitar se o usurio deseja continuar a execuo. Quando o usurio digitar n encerrar o programa exibindo o resultado. 41) Faa um programa que mostre o nmero de nmeros mpares (entre 1 e 168) listando cada um na tela. 42) Em uma sala de reunio havia vrias pessoas sentadas, sabendo-se que a ltima pessoa se chamava Joo e era o nico com 33 anos de idade. Faa um algoritmo que leia o Nome, a Idade e o Sexo de cada pessoa na sala e mostre ao final: Quantas pessoas so do sexo masculino; Quantas pessoas so do sexo feminino; Quantas pessoas so menores de 21; E a mdia de idade da sala.

43) Faa um algoritmo que exiba na tela a tabuada do 1 ao 10. 44) Fazer um algoritmo que receba o peso da carga de um caminho em KG, e seu preo por arroba (15KG). Informe ao final qual o valor em R$ de mercadoria nesse caminho. 45) Fazer o fluxograma que pea ao usurio que digite um nmero qualquer. Caso o nmero seja positivo, mostrar mensagem que o nmero positivo. Caso negativo mostrar mensagem que o nmero negativo. O programa dever repetir esta operao at que o usurio digite o nmero zero. 46) Dados 3 valores A, B, C, verifique se esses podem ser valores de lados um tringulo e, se for, determine se o tringulo eqiltero, issceles ou escaleno. Sabe-se que:

Pgina 35/38

36/38
A) para que esses valores possam ser tringulos as somas dos dois lados devem ser maior que a do outro lado. B) O tringulo eqiltero um polgono com trs lados iguais. C) O tringulo issceles: tem dois lados iguais. D) o tringulo escaleno: tem trs lados diferentes Veja figura:

47) Faa um algoritmo que leia 2 valores numricos e um smbolo. Caso o smbolo seja um dos relacionados abaixo efetue a operao correspondente com os valores e mostre o resultado. Ateno para a diviso por 0! + - * / operao de soma operao de subtrao operao de multiplicao operao de diviso

48) Dado o fluxograma ao lado, realize o teste de mesa e mostre ao final os valores de A, B e C. Varivel A B C
A= B + 8; B= B + 7 C= B +5 N

INCIO

A=5; B=2; C=0;

Valor
A= B + 5 - A; B= A * B; C= A + B + 5

(A % 2) > (B 1)

A= 3 + A; B= 2 + B + 5 C= C + B + C

A, B, C

FIM

49) Dados 20 nmeros, verifique quantos destes so mltiplos de 3.

Pgina 36/38

37/38
50) De lambuja: Voc est dirigindo um nibus da viao Garcia, origem de So Paulo-SP e destino a Uberlndia-MG. Sabe-se que saram de So Paulo, 27 passageiros, sendo que desses, 13 eram mulheres. Chegando a Campinas subiram 02 moas e 01 criana, em Limeira desceram 07 passageiros (02 mulheres), em Ribeiro Preto subiram 01 homem e 01 mulher casada. Sabendo que todos esses possuam RG e com exceo da criana, podiam viajar sem acompanhante. Escreva no retngulo abaixo o nome e a idade do motorista.

Galera. Qualquer erro na apostila me envie um e-mail. professormoraes@gmail.com Valeu. Maromo

Pgina 37/38

38/38

9 Referncias Bibliogrficas
(Wikipedia, 2008) Notas sobre Algoritmos - acessado em <<http://pt.wikibooks.org/wiki/L%C3%B3gica_de_Programa%C3%A7%C3%A3o/A lgoritmos>> no ms de Fevereiro de 2008. (Pianesso, A.C) Tutorial Linguagem de Programao Engenharia da Computao, Ana Cludia f Pianesso. (Moraes, P.S) Apostila de Lgica de Programao - Prof. Paulo Srgio de Moraes (Unicamp)

Pgina 38/38

Vous aimerez peut-être aussi