Você está na página 1de 8

Introduo Programao Lgica de Programao Parte 1

Lgica de programao
1 Introduo Objetivo da lgica de programao: conhecer a construo de algoritmos. Algoritmo: sequncia de aes bsicas e ordenadas que, quando executadas, garantem a obteno de um resultado esperado.

Aes bsicas: sero, para ns, aquelas que o computador pode executar. Elas so definidas a partir dos comandos e estruturas existentes nas linguagens de programao.

Obs.: o Algoritmo no um programa computacional, mas poderemos convert-lo facilmente em um programa ao codific-lo em uma linguagem de programao (Pascal, C++, etc.).

Vamos, antes de conhecer as regras para a construo de algoritmos, tentar descrever as aes necessrias para, por exemplo, fazer uma limonada. A partir desta primeira experincia poderemos discutir alguns cuidados a serem observados na construo de algoritmos. Para simplificar esta nossa primeira experincia vamos observar as seguintes consideraes: tudo que necessrio est ao alcance da mo; no precisaremos verificar as medidas; a limonada ser adoada com aucar; 2 - Portugol Definio: protolinguagem de programao estruturada ( com ela que escrevemos os algoritmos) Caractersticas: semelhana com o portugus; uso de identao; uso de estruturas predefinidas (incio, fim, nome de programa, repetio, desvios, etc.). 3 Comandos, operadores e estruturas do Portugol 3.1 Comando PROGRAMA

o primeiro comando do algoritmo; sua funo dar nome a um programa; o nome de um programa deve conter apenas letras e nmeros, sem espaos em branco ou caracteres especiais (, *, -, etc.); sintaxe do comando:

programa SOMAEDIVIDE;

Obs.: normalmente uma linha de comando de um algoritmo encerrada com um ponto e vrgula, existem algumas excees que sero destacadas quando for o caso.

Elaborado por Maurilo Campolina Diniz Peixoto

Introduo Programao Lgica de Programao Parte 1

3.2 Estrutura de Declarao de Variveis


sua funo reservar, nomear e definir o tamanho dos espaos de memria a serem utilizados pelo programa; normalmente utilizada a memria RAM para armazenar dados (valores) durante a execuo de um programa; chamamos de valor toda informao armazenada em uma varivel, independente de ser numrica, literal ou lgica; as variveis do tipo numricas podem ser divididas, a princpio, em:

tipo inteiro: pode armazenar valores inteiros entre -32.767 e 32.768; tipo real: pode armazenar valores inteiros fora da faixa citada acima e valores decimais entre 2,9 x 10-39 e 1,7 x 1038; tipo caracter: armazena apenas um caracter; tipo palavra: armazena um conjunto de at 256 caracteres.

as variveis do tipo literais podem ser dividas em:


o nome de uma varivel deve conter apenas letras e nmeros, sem espaos em branco ou caracteres especiais (, *, -, etc.); sintaxe da declarao de variveis (exemplos):

variveis A, B : inteiro; variveis JOAO, K : real; variveis X, Y : inteiro; A, B, D : real; DGT : caracter; RRW2 : palavra;

Obs.: existem outros tipos de variveis que sero apresentados mais a frente em nosso curso. 3.3 Comando INCIO

sua funo informar ao computador o comeo das aes (comandos) que sero executadas; usamos tambm o comando INCIO para informar o comeo dos comandos de uma estrutura interna do programa; aps o comando INCIO nunca usaremos ponto e vrgula.

3.4 Comando FIM


sua funo informar ao computador o trmino das aes (comandos) que sero executadas; usamos tambm o comando FIM para informar o trmino dos comandos de uma estrutura interna do programa; aps o comando FIM poderemos ter ponto final (fim do algoritmo), ponto vrgula (fim dos comandos de uma estrutura) ou nenhuma pontuao. Veremos as diversas possibilidades ao conhecermos as estruturas.

Elaborado por Maurilo Campolina Diniz Peixoto

Introduo Programao Lgica de Programao Parte 1

3.5 Operadores 3.5.1 Operadores matemticos: usados para realizar operaes matemticas Operador Adio Subtrao Multiplicao Diviso Exponenciao Smbolo + * / ^ Exemplo 3+2 A5 C*D 10 / 2 3^2

3.5.2 Operadores relacionais: usados para comparar valores, o resultado da comparao um valor lgico (falso ou verdadeiro). Os valores podero ser constantes (5, S, etc.) ou serem valores armazenados em variveis. Os operadores relacionais so utilizados para executar testes lgicos, sobre os quais falaremos mais a frente. Operador Maior Maior ou igual Menor Menor ou igual Igual Diferente Smbolo > >= < <= = <> Exemplo 2>5 4>=1 3 < 10 7<=6 6=5 6<>5 Resultado Falso Verdadeiro Verdadeiro Falso Falso Verdadeiro

Obs.1: Fique atento pois na programao o smbolo = um operador relacional e no tem a mesma funo da matemtica qual estamos acostumados.

Obs.2: Poderemos usar os operadores relacionais igual e diferente para valores literais: Sim = Sim ou N < > n

3.6 Comando de atribuio


sua funo atribuir (armazenar) um determinado valor em uma varivel; este valor poder ser uma constante ou um resultado de uma operao matemtica; smbolo: : = ou . Exemplos: A : = 3; (significa: atribua ao espao de memria A o valor 3) B : = C + D; (significa: atribua ao espao de memria B o resultado da operao de adio do valor armazenado em C com o valor armazenado em D) DIA : = segunda; (significa: atribua ao espao de memria DIA o valor segunda.

Obs.: Ao lidarmos com valores literais iremos coloc-los entre apstrofos.

Elaborado por Maurilo Campolina Diniz Peixoto

Introduo Programao Lgica de Programao Parte 1

3.7 Comandos de entrada e sada 3.7.1 Comando de entrada


sua funo ordenar ao computador que receba e armazene um valor informado; este valor poder ser informado atravs do teclado, de um leitor tico, de um sensor, etc. sintaxe do comando: LEIA ( A );

ao que ser executada pelo computador: receber um valor informado e armazenar no espao de memria chamado A.

3.7.2 Comando de sada


sua funo ordenar ao computador que apresente um valor armazenado em uma varivel ou uma mensagem definida no programa; este valor poder ser apresentado na tela, em uma impressora ou armazenado em um arquivo, por exemplo; sintaxes possveis para o comando: ESCREVA ( C );

ao que ser executada pelo computador: apresentar o valor armazenado no espao de memria chamado C.

ESCREVA ( C );

ao que ser executada pelo computador: apresentar o caracter ou conjunto de caracteres existente entre os apstrofos.

ESCREVA ( SOMA = , K );

ao que ser executada pelo computador: apresentar o conjunto de caracteres entre e os apstrofos e em seguida o valor armazenado no espao de memria chamado K.

Iremos agora construir nossos primeiros algoritmos. Faremos isto passo a passo de forma a observar algumas tcnicas e cuidados que poderemos utilizar.

Algoritmo 1 Fazer um algoritmo para somar dois nmeros. O primeiro passo compreender o que deve ser ordenado ao computador, ou seja, o que deve ser feito para obtermos o resultado esperado. Na anlise do que deve ser feito podemos utilizar como referncia o mundo real, observando as aes que ns executaramos para fazer o que pedido. O segundo passo extrair do problema proposto os verbos e substantivos diretamente relacionados ao que o computador deve fazer, neste caso encontramos:

somar nmeros

No terceiro passo iremos avaliar se a ao que encontramos uma ao bsica, como definida anteriormente, e se temos tudo o que necessrio para execut-la. No exemplo em
Elaborado por Maurilo Campolina Diniz Peixoto

Introduo Programao Lgica de Programao Parte 1

questo sabemos que podemos realizar uma soma com o uso de operadores matemticos e do comando de atribuio (A := B + C). Verificamos ento que deveremos, antes de somar, perguntar quais os nmeros devero ser somados e, aps a soma deveremos apresentar o resultado. Teremos portanto as seguintes ordens a serem dadas ao computador:

ler nmero B ler nmero C somar nmeros escrever resultado

Se observarmos as aes obtidas at o momento podemos verificar que temos apenas aes bsicas e temos tudo que precisamos para execut-las. Neste ponto chamamos a ateno para o fato de que os verbos representam as aes a serem executadas e os substantivos representam as informaes a serem armazenadas. Sendo assim podemos definir a necessidade de declarao de 3 variveis para o nosso algoritmo: uma para o nmero B, uma para o nmero C e outra para o resultado. Obs.: como no foram especificados os nmeros que sero somados, devemos criar variveis que possam armazenar a maior variedade de nmeros possveis, neste caso do tipo Real. Outra forma possvel de chegarmos at as aes bsicas analisarmos as informaes (dados) que devem entrar no computador, as informaes (dados) que devem sair do computador e o que deve ser feito (processado) para que os dados de entrada sejam convertidos nos dados de sada. Veja o esquema a seguir:

Entrada de Dados - 1 valor - 2 valor

Processo: - somar 1 e 2 valor - armazenar resultado

Sada de Dados - soma dos valores

E chegaremos s aes (ou comandos): ler nmero B ler nmero C

soma = B + C

escrever soma

Observe que as aes encontradas so semelhantes s do mtodo anterior.

Partimos ento para o quarto passo, a construo do algoritmo. Observe que, fazendo as anlises anteriores com cuidado, teremos neste ponto todas as aes a serem transformadas em comandos para o computador. programa SOMA2; variveis A, B, C: real; incio leia ( B ); leia ( C ); A := B + C; escreva ( A ); fim.
Elaborado por Maurilo Campolina Diniz Peixoto

Introduo Programao Lgica de Programao Parte 1

O nmero de passos necessrios para construo de um algoritmo pode variar de um caso para o outro, dependendo da experincia e da prtica na identificao das aes bsicas. Antes de darmos o nosso trabalho como concludo, devemos testar o algoritmo e verificar seu funcionamento. Para isto basta escolher valores para o teste e seguir todos os comandos e observar se o resultado esperado foi atingido. Lembre-se da funo de cada comando. Caso seja necessria a execuo de alguma ao no comandada significa que nosso algoritmo est errado. Por fim, aps o teste, iremos inserir no algoritmo mensagens para o usurio, garantindo a correta utilizao do mesmo. programa SOMA2; variveis A, B, C : real; incio escreva ( Programa para somar dois nmeros ); escreva ( Digite o primeiro nmero e tecle enter ); leia ( B ); escreva ( Digite o segundo nmero e tecle enter ); leia ( C ); A := B + C; escreva ( A soma dos nmeros : , A ); fim.

Para o problema em questo, a soma de dois nmeros, apesar de simples, podemos observar que existem outras solues. Vamos analisar uma delas que se aproxima mais do mundo real.

Quando ns somos instrudos a fazer uma soma adotamos a seguinte sequncia de aes:

assumimos que o valor inicial da soma zero somos informados do primeiro nmero somamos este nmero ao valor inicial da soma e consideramos o resultado como soma parcial somos informados do segundo nmero somamos este nmero ao valor da soma parcial at o momento e consideramos o resultado desta nova soma como o resultado final armazenamos este resultado para apresentao quando solicitado

Reduzindo estas aes a aes bsicas obtemos:


zerar o resultado ler nmero (1 ) somar resultado anterior com nmero ler nmero ( 2 ) somar resultado anterior com nmero escrever resultado

Aps verificarmos que temos apenas aes bsicas e tudo que precisamos para execut-las, podemos observar que temos apenas dois substantivos: Resultado e Nmero. Estas sero provavelmente as variveis necessrias. Podemos ento construir o novo algoritmo, que tambm ser soluo para a questo proposta:

Elaborado por Maurilo Campolina Diniz Peixoto

Introduo Programao Lgica de Programao Parte 1

programa SOMA2NOVO; variveis R, N : real; incio escreva ( Programa para somar dois nmeros ); R : = 0; escreva ( Digite o primeiro nmero e tecle enter ); leia ( N ); R : = R + N; escreva ( Digite o segundo nmero e tecle enter ); leia ( N ); R := R + N; escreva ( A soma dos nmeros : , R ); fim. Observe que, apesar de termos algumas linhas de comando a mais, utilizamos apenas duas variveis. No caso de dois nmeros no temos uma diferena significativa em termos de utilizao de memria, mas, para uma quantidade maior de valores a serem somados, o segundo algoritmo implicar em menos memria utilizada.

Algoritmo 2 Fazer um algoritmo para escrever a mdia de 3 nmeros. Primeiro passo: compreenso e anlise do problema proposto. Segundo passo: identificao de verbos e substantivos no enunciado e lista de aes encontradas: escrever a mdia Terceiro passo: busca por aes bsicas e pelas necessidades para execut-las.

ler nmero 1 ler nmero 2 ler nmero 3 calcular mdia (soma dos nmeros dividida pela quantidade de nmeros) escrever mdia

Vamos observar, mais uma vez, outra maneira de se chegar s aes bsicas

Entrada de Dados - 1 valor - 2 valor - 3 valor

Processo: - somar 3 valores - dividir por 3 - armazenar resultado

Sada de Dados - mdia dos valores

E chegaremos s aes (ou comandos): ler nmero 1 ler nmero 2 ler nmero 3

mdia = ( num1 + num2 + num 3) / 3

escrever soma

Observe que, como no exemplo anterior, chegaremos s mesmas aes encontradas pelo mtodo anterior.

Elaborado por Maurilo Campolina Diniz Peixoto

Introduo Programao Lgica de Programao Parte 1

Quarto passo: algoritmo programa MEDIA3; variveis N1, N2, N3, MED: real; incio leia ( N1 ); leia ( N2 ); leia ( N3 ); MED : = ( N1 + N2 + N3 ) / 3 escreva ( MED ); fim. Aps o teste teremos: programa MEDIA; variveis N1, N2, N3, MED: real; incio escreva ( Programa para clculo da mdia de 3 nmeros ); escreva ( Digite o primeiro nmero e tecle enter ); leia ( N1 ); escreva ( Digite o segundo nmero e tecle enter ); leia ( N2 ); escreva ( Digite o terceiro nmero e tecle enter ); leia ( N3 ); MED : = ( N1 + N2 + N3 ) / 3; escreva ( A mdia dos nmeros , MED ); fim. Fica a sugesto de construo de outro algoritmo para o problema proposto utilizando o raciocnio do segundo caso do Algoritmo 1.

Exerccios propostos: Algoritmo 3 Fazer um algoritmo para escrever o nome e o telefone de uma pessoa. Algoritmo 4 Fazer um algoritmo para calcular um porcentagem de um determinado valor. Outros exerccios propostos: - Fazer um algoritmo para calcular a soma das notas de um aluno em cinco avaliaes - Fazer um algoritmo para calcular o desconto em uma compra. - Fazer um algoritmo para a diferena percentual de dois preos. - Fazer um algoritmo para calcular uma multa por atraso e o valor final a ser pago.

Elaborado por Maurilo Campolina Diniz Peixoto