Vous êtes sur la page 1sur 43

LGICA DE PROGRAMAO

PROGRAMAO IMPERATIVA 2010/2

Lgica de Programao
a tcnica de encadear pensamentos para atingir determinado objetivo. Estes pensamentos podem ser descritos como uma seqncia de instrues, que devem ser seguidas para se cumprir uma determinada tarefa.

Instruo
a informao que indica a um computador uma ao elementar a executar. Uma ordem isolada no permite realizar o processo completo, para isso necessrio um conjunto de instrues colocadas em ordem seqencial lgica.

Algoritmo
uma seqncia finita de passos que levam a execuo de uma tarefa. Pode-se pensar em algoritmo como uma receita, uma seqncia de instrues que do cabo de uma meta especfica. Estas tarefas no podem ser redundantes nem subjetivas na sua definio, devem ser claras e precisas.

Programa
So algoritmos escritos numa linguagem de computador (Pascal, C, Cobol, Fortran, Visual Basic entre outras) e que so interpretados e executados por uma mquina, no caso um computador.

Exerccios
Crie uma seqncia lgica para tomar banho; Faa um algoritmo para somar dois nmeros e multiplicar o resultado pelo primeiro nmero; Descreva com detalhes a seqncia lgica para Trocar um pneu de um carro; Faa um algoritmo para trocar uma lmpada.

Escrevendo Algoritmos
Deve ser fcil de se interpretar e fcil de codificar, ou seja, ele deve ser o intermedirio entre a linguagem falada e a linguagem de programao:
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.

Escrevendo Algoritmos
Primeiro divide-se o problema apresentado em trs fases fundamentais:

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

Exemplo - Clculo da mdia


Sero realizadas 3 provas: P1, P2 e P3.
a) Quais so os dados de entrada? P1, P2 e P3 b) Qual ser o processamento a ser utilizado? (P1+P2+P3)/3 c) Quais sero os dados de sada? A mdia final.

Receba a nota da prova1 Receba a nota de prova2 Receba a nota de prova3 Some todas as notas e divida o resultado por 3 Mostre o resultado da diviso

Exerccio
1) 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

2) Faa um algoritmo para Calcular o estoque mdio de uma pea, sendo que ESTOQUEMDIO = (QUANTIDADE MNIMA + QUANTIDADE MXIMA) /2

Exerccio cont.
3) 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

Variveis e Constantes
So os elementos bsicos que um programa manipula. Uma varivel um espao reservado na memria do computador para armazenar um tipo de dado determinado. Variveis devem receber nomes para poderem ser referenciadas e modificadas quando necessrio. Um programa deve conter declaraes que especificam de que tipo so as variveis que ele utilizar e as vezes um valor inicial. As expresses combinam variveis e constantes para calcular novos valores.

Constantes
um determinado valor fixo que no se modifica ao longo do tempo, durante a execuo de um programa. Conforme o seu tipo, a constante classificada como sendo numrica, lgica e literal.

Variveis
Cada varivel corresponde a uma posio de memria, cujo contedo pode se alterado ao longo do tempo durante a execuo de um programa. Embora uma varivel possa assumir diferentes valores, ela s pode armazenar um valor a cada instante

Tipos de Variveis
Numricas: armazena nmeros utilizados para clculos. Podem ser ainda classificadas como Inteiras ou Reais. As variveis do tipo inteiro so para armazenamento de nmeros inteiros e as Reais so para o armazenamento de nmeros que possuam casas decimais; Caracteres: para armazenamento de dados que contenham letras e/ou nmeros; Lgicas: armazenam somente dados lgicos que podem ser Verdadeiro ou Falso.

Declarao de Variveis
As variveis s podem armazenar valores de um mesmo tipo, de maneira que tambm so classificadas como sendo numricas, lgicas e literais.

Operadores
Os operadores so meios pelo qual incrementamos, decrementamos, comparamos e avaliamos dados dentro do computador. Temos quatro tipos de operadores:
Operadores Aritmticos Operadores Relacionais Operadores Lgicos Operadores Bit-a-Bit

Operadores Aritmticos
Os operadores aritmticos so os utilizados para obter resultados numricos. Alm da adio (+), subtrao (-), multiplicao (*) e diviso (/), podem utilizar tambm o operador para resto da diviso inteira (%).

Operadores Relacionais
So utilizados para comparar caracteres ou nmeros, constantes ou variveis. Estes operadores sempre retornam valores lgicos (verdadeiro ou falso/ true ou false). Tendo duas variveis A = 5 e B = 3:
Operao A == B A != B A>B A<B A >= B A <= B Resultado falso verdadeiro verdadeiro falso verdadeiro falso

Operadores Lgicos
Os operadores lgicos servem para combinar resultados de expresses, retornando se o resultado final verdadeiro ou falso.
E / AND 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 Um expresso NOT (NO) inverte o valor da expresso ou condio, se verdadeira inverte para falsa e vice-versa.

Operadores Lgicos

A == B

B == C

Exerccio
1) 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 ( ) 2) 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) ( )

Exerccio
1) Elabore um programa que leia um nmero. Se positivo armazene-o em A, se for negativo, em B. No final mostrar o resultado. 2) 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. 3) Construa um programa 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.

Exerccio cont.
4) 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)

5) Faa um teste de mesa e o algoritmo do diagrama apresentado, de acordo com os dados fornecidos.

Mostra o resultado

Exerccio cont.

Estrutura de Deciso
Com as instrues de SALTO ou DESVIO podese 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, Se Seno e Caso Selecione.

Instruo se/if
A estrutura de deciso SE/IF normalmente vem acompanhada de uma instruo, ou seja, se determinada condio for satisfeita pelo comando SE/IF ento execute determinada instruo. Ex.:
If(MEDIA >= 5) { cout << APROVADO; }

Instruo se/seno
A estrutura de deciso SE/SENO sempre uma instruo ser executada: caso a condio seja verdadeira a instruo da condio ser executada, caso contrrio a instruo da condio falsa ser executada. Exemplo:
if(MEDIA >= 5) cout << APROVADO; else cout << REPROVADO;

Instruo caso/selecione
A estrutura de deciso CASO/SELECIONE utilizada para testar, na condio, uma nica expresso. Compara-se, ento, o resultado obtido no teste com os valores fornecidos em cada clusula Caso.

Exemplo Instruo case


cout << DIGITE A OPO; cin >> OP; switch(OP) { case 1: cout << OPO 1; break; case 2: cout << OPO 2; break; case 3: cout << OPO 3; break; case 4: cout << OPO 4; break; case 5: cout << OPO 5; break; default: cout << OPO ERRADA; }

Instrues de Repetio
Utilizadas quando desejamos que um determinado conjunto de instrues sejam executadas um nmero definido ou indefinido de vezes, ou enquanto um determinado estado de coisas prevalecer ou at que seja alcanado. Trabalharemos com modelos de instrues de repetio:
Enquanto x, processar (While ...Loop); Processar ..., Enquanto x (Do ... Loop While); Para ... Seguinte (For ... Next)

Instruo while(x)
O bloco de operaes ser executado enquanto a condio x for verdadeira. O teste da condio ser sempre realizado antes de qualquer operao. Exemplo:
int Nr = 0; While(Nr <= 100) { Nr = Nr + 1; }

Instruo do...while(x)
Neste caso primeiro so executadas as instrues, e somente depois realizado o teste da condio. Se a condio for verdadeira, as instrues so executadas novamente, caso seja falso encerrada a instruo DO. Exemplo:
int Nr = 0; do Nr = Nr + 1; While(Nr <= 100);

Instruo for
A condio testada antes da execuo de cada grupo de instrues contidas no lao. Exemplo:
For(int Nr = 0; Nr <= 100; Nr++) { cout << Nr << endl; }

Exerccio
1) 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).

Exerccio cont.
2) 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. Faa um algoritmo para calcular o nmero de gros que o monge esperava receber.

Exerccio cont.
3) Faa um algoritmo que conte de 1 a 100 e a cada mltiplo de 10 emita uma mensagem: Mltiplo de 10.

Vetores
Vetores so variveis compostas que podem armazenar um conjunto de valores. Todos estes valores so referenciados atravs do nome do vetor (o mesmo para todo o conjunto de valores) e de um ndice (distinto para cada valor). Os valores armazenados numa varivel vetorial so todos do mesmo tipo, por isso os vetores so chamados de variveis compostas homogneas.

Declarao de Vetores
Os vetores so declarados anexando-se ao nome da varivel um colchete com o nmero de posies que o vetor poder conter: Ex.: int idade[8];

Acessando Vetores
Cada uma das posies do vetor so referenciadas atravs do nome do vetor seguido do respectivo ndice colocado entre colchetes. idade[0] = 23; idade[3] = 34; idade[6] = 25; idade[1] = 22; idade[4] = 23; idade[7] = 39; idade[2] = 18; idade[5] = 21;

Mostrando Vetores
A vantagem de se usar ndices dentro do nome da varivel a possibilidade de referenciar um dado elemento do vetor atravs de um ndice varivel. Ex.: for(int i=0; i < 8; i++) cout << idade[i];