Você está na página 1de 19

3.

A Lógica da Programação
• Enfoque: Programação Estruturada

• Os Algoritmos
– permitem-nos partir dos problemas e obter os programas
– são a forma de lidar com a complexidade natural da actividade de programação
– são a fase intermédia entre a compreensão do problema e a escrita do programa numa
linguagem de programação

• Algoritmo
– é uma sequência ordenada e precisa de passos, acções ou operações, que conduzem à
solução de um dado problema
– a sua formulação consiste na descrição de forma ordenada, com clareza e rigor, das
operações que se pretendem realizar em computador para resolver um problema ou
atingir determinados objectivos
3.1. Fases típicas na elaboração de um programa
Análise do Problema

Formulação de um Algoritmo

Tradução do algoritmo num


programa-fonte

Revisão do Texto
Tradução do programa-fonte
para código-máquina

Detecção de sim Revisão do algoritmo


erros de escrita

não

Testes de verificação lógica

Detecção de sim
erros de lógica

não

Programa Terminado
António Tavares, 2001/2002
3.2. Entidades fundamentais da lógica de programação
• Nos algoritmos destinados a programas de computador, tem de se recorrer a diversas
estruturas de representação das acções ou operações a realizar

• Entidades fundamentais:
– Dados
– Instruções básicas
– Estruturas de controlo
– Condições ou expressões lógicas
– Subprogramas

• Um programa executa sequencialmente um conjunto de instruções básicas sobre dados


• São no entanto necessárias situações em que:
– Uma instrução tenha de ser repetida várias vezes
– Decidir sobre se deve ou não executar determinada instrução em função de uma determinada condição
– Seleccionar a acção a realizar de entre um conjunto de alternativas
3.3. Exemplo:
• Problema:
– É dado o preço de um terreno de forma rectangular, bem como as medidas de dois
dos lados adjacentes
– Pretendemos saber se o seu preço por metro quadrado está acima ou abaixo da
média dos preços praticados na zona (que nos é dado)
• Formulação do algoritmo:
Táctica : decompor o problema em problemas mais simples
1. Temos de saber: o preço do terreno (P1); a medida do lado A (em metros); a medida
do lado B (em metros); o preço médio por metro quadrado (P2)
2. Calcular a área do terreno: A(área) = lado A x lado B
3. Calcular o preço por m2: P3 (preço por m2) = P1(preço do terreno) / A(área)
4. Comparar os preços por m2
SE P3(preço por m2) > P2(preço médio) ENTÃO o P1(preço do terreno) está acima da
média
SE P3(preço por m2) <P2( preço médio) ENTÃO o P1(preço do terreno) está abaixo ao da
média
SENÃO o preço está abaixo da média
3.4. Formas de representar algoritmos

Existem essencialmente duas para a programação estruturada:

Fluxogramas – descrição gráfica

Pseudocódigo – descrição textual que se aproxima da linguagem natural


Fluxogramas

Simbolos Significado Exemplo

Processamento em geral x ¬x+1

Leitura/Escrita
Escreve x
de dados
Inicio/Fim
Inicio
de Processamento

Linha de Fluxo

Conector de Fluxos

Decisão condicional X>5

Escolha múltipla Caso x

Subprograma Rotina x
Fluxogramas
Inicio

Ler valor 1

Ler valor 2

Não Não
Valor 1 > Valor2 Valor 1 > Valor2

Sim Sim

Escrever Escrever Escrever


Valor 1 é maior Valor 2 é maior Valores iguais

Fim
Pseudocódigo
Código de escrita que :
– utiliza uma combinação de termos convencionais para indicar as instruções
do programa
– os termos utilizados são usualmente um misto de palavras da nossa
linguagem natural com palavras e notações típicas das linguagens de
programação.

Características:
– Não tem uma notação standard
– Tem maior proximidade com as linguagens de programação permitindo
diminuir o esforço gasto no desenvolvimento/codificação
Pseudocódigo

• Pseudocódigo é uma forma de representação de algorítmos, ou seja, um


programa escrito numa linguagem natural (português) que, depois, podemos
passar para o computador.
• Para a escrita de códigos usando pseudocódigo é necessário conhecer alguns
comandos básicos:
• escreva (” “) = comando usado para imprimir uma mensagem no écran;
• leia () = comando usado para ler valores digitados no teclado;
• <- = comando de atribuição;
• inicio = palavra usada para iniciar o programa principal;
• fimalgortimo = palavra usada para finalizar o algoritmo;
• var = palavra usada para declarar variaveis;
• algoritmo = palavra usada para indicar o inicio do programa.

António Tavares, 2001/2002 01 – Computadores e Linguagens de Programação Acetato 9


Pseudocódigo
Início
Escreva (“Introduza dois valores”)
Leia (valor1)
Leia (valor2)
SE valor 1 > valor ENTÃO
Escreva (valor 1, “é maior”)
SENÃO
SE valor 1 < valor 2 ENTÃO
Escreva (valor 2, “é maior”)
SENÃO
Escreva (“valores iguais”)
Fimalgoritmo
Exemplo

Construa um algoritmo para ler dois números.


1. algoritmo "exemplo1" Em seguida, calcule a soma desses números,
2. var armazenando o resultado em outra variável.
3. n1, n2, soma: real Imprima os dados iniciais e a soma.
4.
5. inicio
6.
7. escreva("digite um número ")
8. leia(n1)
9. escreva("digite outro número ")
10. leia(n2)
11. soma <- n1 + n2;
12. escreva(" primeiro número = ", n1)
13. escreva(" segundo número = ", n2)
14. escreva(" soma = ", soma)
15.
16. fimalgoritmo
Analisar o algoritmo desenvolvido (1)
• Linha 1: usa-se a palavra chave ALGORITMO para começar a elaborar o
algoritmo. Observe-se que em seguida temos um nome entre as aspas duplas,
então, sempre que se desenvolve um algoritmo deve escrever na primeira linha
algoritmo “nome_do_algoritmo”. É importante saber que toda a linguagem
de programação tem um modo específico de identificar o inicio do programa. É
necessário consultar sempre a documentação da linguagem de programação em
que se deseja trabalhar, para verificar a estrutura da mesma.
• Linha 2: usa-se a palavra chave VAR para indicar que naquele espaço deve-se
declarar as variáveis que serão usadas no programa.
• Linha 3: aqui são declaradas as variáveis, com seus identificadores e tipos.
Observe-se que primeiro vem o nome (identificador) da variável e após os dois
pontos é que vem o tipo da mesma. n1 e n2 são os dois números, soma é a
variável que armazenará o resultado da operação.
Analisar o algoritmo desenvolvido (2)
• Linha 5: usa-se a palavra chave INICIO para indicar que a partir daquele ponto,
tem-se o início do programa principal. Programa principal? já estamos no
programa? Pois é!!! Esclarecendo: O algoritmo inteiro, das linhas 01 à 16, é um
programa, mas ele é dividido em partes, ou seja: nome do programa, declaração
de variáveis, etc. Esta é norma para todas as linguagens de programação, o que de
facto o algoritmo vai fazer, está no programa principal, ou seja, dentro de
INICIO e FIMALGORITMO. As divisões existem porque um programa, na
verdade, é um conjunto de programas, é o que chamamos de modularização. O
mais importante é saber que o programa principal é aquele que faz EXECUTAR
os seus comandos.
• Linha 7: usa-se o comando ESCREVA para que seja impresso no ecran do
usuário um texto. Neste caso, está sendo impresso na tela um texto de solicitação.
Solicita-se que o usuário digite um número.
Analisar o algoritmo desenvolvido (3)
• Linha 9: idem à linha 7.
• Linha 10: idem à linha 8.
• Linha 11: aqui é realizada uma operação matemática, mais especificamente
aritmética. Usa-se o comando <- para que seja atribuído à variável SOMA o
resultado da soma entre os valores armazenados em n1 e n2.
• Linha 12: aqui novamente usa-se o comando escreva, mas desta vez há algo
diferente em relação às linhas 7 e 9. Esta-se imprimindo no ecran, juntamente
com o texto que se pretende, os valores das variáveis. Tal é feito usando-se a
vírgula seguida da variável que se pretende seja impressa no ecran.
• Linha 13: idem à linha 12
• Linha 14: idem à linha 12
• Linha 16: usamos a palavra chave FIMALGORITMO para finalizar o programa
principal e terminar a execução do programa. A palavra chave força a saída do
programa, fechando a janela e liberando o espaço de memória que estava
reservado para as variáveis.
3.5. Ciclo de obtenção do produto final

Ciclo: Formulação, Codificação, Compilação, Depuração

Situação/Problema Programa Terminado

Formulação de um
algoritmo como solução Verificação e
do problema Programa em
depuração do
Diagramas código-máquina
programa
Fluxogramas
Pseudocódigo

Tradução do
Escrita de um programa - tradução programa-fonte em
do algoritmo em linguagem de
linguagem-máquina
programação
Compiladores
Linguagens de programação Interpretadores
3.6. A abordagem Estruturada
• Linguagens de Programação Estruturadas => Abordagem Estruturada

• Abordagem Estruturada - abordagem sistemática da construção de SW cujos


princípios são:
1. a separação das definições de dados e de programa
2. a concepção descendente ou “Top-Down”
3. e refinamento progressivo

=> A separação das definições de dados e de programa


– Os programas surgem com duas partes principais bem diferenciadas:
– Parte declarativa: declaram-se os tipos de dados e variáveis a utilizar no corpo das
instruções do programa
– Parte operativa: o corpo de instruções com que se pretende concretizar as operações e
atingir os objectivos pretendidos
3.6. A abordagem Estruturada
=> A concepção descendente ou “Top-Down”
– É um método de abordagem dos problemas em que se vai decompondo o problema
original em problemas particulares, em níveis sucessivamente mais concretos até ao
pormenor desejado

=> Refinamento Progressivo


– É um complemento lógico da abordagem descendente
– Consiste em ir concretizando, cada vez com mais detalhe, com maior exactidão e perfeição,
os passos sucessivos do projecto em questão
– Muito útil no desenvolvimento de pseudocódigo

• Abordagem Modular – apresenta semelhanças com a abordagem estruturada,


consistindo na decomposição de um problema complexo nos seus componentes, que se
chamam módulos
– Os módulos são unidades com alguma autonomia, mas também relacionáveis entre
si, pois podem-se integrar (ligar) num todo
– Reutilização de bibliotecas de módulos
Exercícios

• Construa um algoritmo para ler dois números. Em seguida, calcule a soma, a


subtração, a multiplicação e a divisão desses números, armazenando os resultados
em outras variáveis. Imprimir os dados iniciais e os resultados.
• Elabore um algoritmo para ler a base e a altura de um triangulo. Em seguida,
calcular a sua área. Imprimir: base, altura e a área.
• Elabore um algoritmo para ler o nome de um aluno, sua idade (em anos) e as
quatro notas (de quatro trimestres). Calcular a média anual do aluno. Imprimir:
nome, idade, notas e média.

António Tavares, 2001/2002 01 – Computadores e Linguagens de Programação Acetato 18


Obrigado

Você também pode gostar