Vous êtes sur la page 1sur 17

Escola EB 2,3/S de Vila Flor

Curso Profissional - Técnico de Informática de Gestão – 1º Ano


2008/2009

1. Introdução à lógica de programação

1.1 Lógica
A lógica de programação é necessária para pessoas que desejem trabalhar com o
desenvolvimento de programas. É a técnica de encadear pensamentos, raciocinar
com a finalidade de atingir determinado objectivo.

Na vida real Num computador

Como vou fazer para Como calcular o quadrado de


chegar à escola? um número?
Talvez deva preparar-me e Talvez deva multiplicar o
apanhar o autocarro a número por ele mesmo.
horas.

1.2 Sequência Lógica


A sequência lógica pode ser descrita como uma sequência de instruções, que
devem ser seguidas para se cumprir uma determinada tarefa. São passos
executados até se atingir um objectivo ou solução de um problema.

Na Vida Real Num Computador

Para chegar a escola devo: Para calcular o quadrado de


• Acordar um número devo:

• Lavar • Ler esse número

• Vestir • Multiplicar por ele mesmo

• Tomar o pequeno-almoço • Mostrar o resultado

• Apanhar o autocarro

1.3 Instruções
Na linguagem comum, são as regras ou normas definidas para a realização ou
emprego de algo. Na informática, porém, instrução é a informação que indica a um
computador uma acção elementar a executar.
Uma ordem isolada pode não realizar nenhum processo completo. Por isso, devem
existir conjuntos de instruções colocadas em ordem sequencial lógica para a
realização de alguma tarefa.
As instruções são então um conjunto de regras ou normas definidas para a
realização, ou emprego, de algo. Em informática, é o que indica a um computador
uma acção elementar a executar.

Prof. Fernando Freixo Pág. 1


Escola EB 2,3/S de Vila Flor
Curso Profissional - Técnico de Informática de Gestão – 1º Ano
2008/2009

Existem vários tipos de instruções, que podem ser:


• de atribuição; algum valor é calculado ou colocado numa posição de memória,
• de escrita; para escrever dados,
• de leitura; para ler dados de algum dispositivo,
• sequenciais; instruções a ser executadas de um modo sequencial,
• de decisão condicional; do tipo: “SE … ENTÃO … SENÃO …”,
• de ciclos ou repetição; do tipo “PARA … ATÉ … FAZER …” ou “ENQUANTO … FAZER
…”,
• comentários; para apoiar o algoritmo, sem influenciar o mesmo.

Tipos de instruções:

Instrução Na vida real Num Computador

de O pequeno-almoço do
O Valor de X é igual a 5
atribuição João é sumo

O João conta o que vai


de escrita Escrever o valor de X
fazer

de leitura O João lê o jornal Ler o valor de X

Escolher livros para o dia


Colocar os livros na Ler número X
sequenciais mochila Multiplicar X por X
Colocar mochila às Mostrar resultado
costas

Se o Numero X é par
Se estiver bom tempo:
Escrever “O número é
Levar o guarda-chuva
de decisão par”
Senão:
condicional Senão:
Deixar guarda-chuva em
Escrever “O número é
casa
ímpar”

de ciclos ou Enquanto não chegar o Ler o número X enquanto


repetição autocarro vou esperar ele não for par

1.4 Algoritmos

Um algoritmo é formalmente uma sequência finita de passos que levam a execução


de uma tarefa. Podemos pensar num algoritmo como uma receita, uma sequência
de instruções, que permitem atingir uma meta específica. Estas tarefas não podem
ser redundantes nem subjectivas na sua definição, devem ser claras e precisas.

Prof. Fernando Freixo Pág. 2


Escola EB 2,3/S de Vila Flor
Curso Profissional - Técnico de Informática de Gestão – 1º Ano
2008/2009
Exemplo de algoritmo para “chupar um rebuçado”

1. Pegar num rebuçado


2. Retirar o papel
3. Chupar o rebuçado
4. Colocar o papel no lixo

Como se pode ver no exemplo anterior, um algoritmo é composto por um conjunto


de passos que se desencadeiam sequencialmente. Os algoritmos representam
então o programa em linguagem informal, definindo conjuntos de processos para
efectuar uma tarefa. Este conceito é frequentemente ilustrado pelo exemplo de
uma receita, embora muitos algoritmos sejam bem mais complexos que isso.

1.5 Programas

Os programas de computadores nada mais são do que algoritmos escritos numa


determinada linguagem de computador, que depois serão interpretados e
executados por um computador.
Depois de implementado o algoritmo, passa-se à implementação do programa,
através de técnicas de programação e de uma linguagem de programação. Como
sabemos, uma linguagem é definida num alfabeto e é construída por conjuntos de
palavras desse alfabeto. Nas linguagens de programação existem conceitos
semelhantes e é necessário conhecer o alfabeto, as palavras disponíveis e a sintaxe
de programação.

2. Desenvolvimento de Algoritmos

2.1 Pseudocódigo

Pseudocódigo = Pseudo (Suposto) + Código (Instrução).

O pseudocódigo é uma forma genérica de escrever um algoritmo, utilizando uma


linguagem simples e sem a necessidade de conhecer alguma linguagem de
programação.
Com este tipo de código o programador pode-se centrar nos aspectos lógicos da
solução, descrevendo o seu raciocínio através da mistura de frases em linguagem
comum, palavras-chave que definem acções e instruções de programação.

Prof. Fernando Freixo Pág. 3


Escola EB 2,3/S de Vila Flor
Curso Profissional - Técnico de Informática de Gestão – 1º Ano
2008/2009
A forma geral da representação de um algoritmo na forma de pseudocódigo é a
seguinte:

Algoritmo nome_do_algoritmo
Declarações_niciais
Início
Corpo_do_algoritmo
Fim

Algoritmo é a palavra que indica o início da definição de um algoritmo em forma de


pseudocódigo;
- é um nome simbólico dado ao algoritmo com a finalidade de distingui-lo dos
outros;
- é uma forma opcional onde são declaradas as variáveis globais usadas no
algoritmo;
- local onde estão definidas as instruções que irão realizar as tarefas do algoritmo;
- Início e Fim são respectivamente as palavras que delimitam o início e o fim do
conjunto de instruções do corpo do algoritmo.

Segue-se um exemplo de um algoritmo em pseudocódigo, que lê dois números e


identifica o maior:

Algoritmo para identificar o número maior


número1 é um Inteiro
número2 é um inteiro
Início
Ler (número1)
Ler (número2)
Se número1 > número2 então
Escrever (‘O maior número é o’, número1)
Senão número1 < número2 então
Escrever (‘O maior número é o’, número2)
Senão
Escrever (‘O números são iguais’)
Fim

Prof. Fernando Freixo Pág. 4


Escola EB 2,3/S de Vila Flor
Curso Profissional - Técnico de Informática de Gestão – 1º Ano
2008/2009
Pode-se observar que o pseudocódigo é caracterizado por uma notação quase
código, isto é, usam-se termos do português narrativo, bem definido e sem
ambiguidades, utilizando somente as estruturas lógicas da programação
estruturada. Alguns desses termos pertencem à linguagem natural, outros são uma
aproximação às linguagens de programação. Desde que o problema esteja resolvido
em pseudocódigo, a sua codificação numa linguagem de programação, qualquer
que seja ela, é uma tarefa que não apresenta grandes dificuldades, desde que se
conheça a sintaxe pormenorizada dessa linguagem.

2.2 Regras e fases de construção de um algoritmo

O primeiro passo para fazer um programa é a análise do problema que se quer


resolver. Depois de clarificada a questão e delineadas as estratégias a seguir,
construir-se-á um algoritmo em pseudocódigo e/ou fluxogramas. Nunca se deve
iniciar a construção de um programa sem antes construir o algoritmo, pois a sua
omissão dificulta a programação, aumenta os erros e prejudica a eficiência na
obtenção do resultado.
Conceitos importantes para a formulação de um algoritmo
• Usar somente as palavras disponíveis;
• Imaginar que está a desenvolver um algoritmo para pessoas que não trabalham
com informática;
• Ser objectivo;
• Verificar se o resultado responde ao problema;
Exemplo de algoritmo ERRADO para “chupar um rebuçado”
• Pegar cuidadosamente num óptimo, saboroso e suculento rebuçado, rodar e
agitar.
• Retirar o papel e deita-lo ao chão.
• Esfregar o rebuçado no chão e chupar o rebuçado.
Apesar de este algoritmo cumprir com a tarefa a que se propõe, está construído de
forma errada e é muito pouco eficiente. Ninguém gostaria de um rebuçado depois
de ter estado no chão.

3. Fluxogramas

3.1 Definição de Fluxograma

Um fluxograma é uma representação esquemática de um processo, muitas vezes


feita através de gráficos que ilustram de forma descomplicada a transição de
informações entre os elementos que o compõem.

Prof. Fernando Freixo Pág. 5


Escola EB 2,3/S de Vila Flor
Curso Profissional - Técnico de Informática de Gestão – 1º Ano
2008/2009
Um fluxograma é a forma padronizada e eficaz de representar os passos lógicos de
um determinado algoritmo. Com os fluxogramas podemos definir uma sequência de
símbolos, com significado bem definidos, facilitando a visualização dos passos de
processamento.

3.2 Simbologia

Símbolo Significado

Início / Fim

Entrada e Saída de Dados

Processamento de tarefa

Ponto de decisão

Ligação entre símbolos

3.3 Exemplos de Fluxogramas


Pegando no exemplo do algoritmo para Chupar um rebuçado da secção 2.4,
podemos representar o mesmo algoritmo segundo o seguinte fluxograma:

Prof. Fernando Freixo Pág. 6


Escola EB 2,3/S de Vila Flor
Curso Profissional - Técnico de Informática de Gestão – 1º Ano
2008/2009

Ou então, para representar através dum fluxograma o algoritmo para calcular o


quadrado de um número, temos:

4. Constantes, Variáveis e Tipos de dados

4.1 Constantes
As variáveis e as constantes são os elementos básicos que um programa manipula.
Uma constante é um determinado valor fixo que não se modifica ao longo do
tempo, durante a execução de um programa.

Prof. Fernando Freixo Pág. 7


Escola EB 2,3/S de Vila Flor
Curso Profissional - Técnico de Informática de Gestão – 1º Ano
2008/2009
Na vida real podemos associar uma constante a uma característica inalterável,
como por exemplo a afirmação “O João é alto”. Num computador, as constantes são
variáveis que assumem sempre o valor que lhes foi atribuído no início.

4.2 Variáveis

Nos programas de computador utilizam-se dados, registados em variáveis. Estas


variáveis são definidas segundo um dicionário e deve ser constituída por:
Nome – nome da variável que vai ser usada no algoritmo.
Tipo – tipo da variável (real, inteira, booleana, caracter,…)
Gama – domínio a que pertence a variável (nº negativo, nº positivo, {A,Z}, …).
Significado – descrição da variável, o que ela realmente significa.
A definição de uma variável tem que possuir todos os atributos descritos. O nome
deve identificar univocamente a variável, deve armazenar sempre o mesmo tipo de
dados e todos os seus valores devem pertencer ao domínio escolhido.

4.3 Tipos de Variáveis/Constantes


As variáveis e as constantes podem ser basicamente de quatro tipos: Numéricas,
Caracteres, alfanuméricas ou Lógicas.
• Numéricas: Específicas para armazenamento de números, que posteriormente
poderão ser utilizados para cálculos. Podem ser ainda classificadas como
Inteiras ou Reais.
• Inteiros: Armazenamento de números inteiros
• Reais : Armazenamento de números reais
• Caracteres: Específicas para armazenamento de conjuntos de caracteres de
texto que não contenham números.
• Alfanuméricas: Para armazenamento de dados que contenham letras e/ou
números. Pode em determinados momentos conter somente dados numéricos
ou somente literais. Se usado somente para armazenamento de números, não
poderá ser utilizada para operações matemáticas.
• Lógicas: Armazenam somente dados lógicos que podem ser de Verdade ou
Falso.
Num programa informático é quase sempre necessário definir o tipo de variável e
em pseudocódigo isso pode fazer-se do seguinte modo:
A variável X é Inteira

4.3 A instrução de afectação/atribuição

Prof. Fernando Freixo Pág. 8


Escola EB 2,3/S de Vila Flor
Curso Profissional - Técnico de Informática de Gestão – 1º Ano
2008/2009

Quando se pretende atribuir um valor numa constante/variável numa representação


em pseudocódigo deveremos escrever o seguinte:
X = 5 (A variável X recebe o valor 5)
X = Y (A variável X recebe o valor da variável Y)
Nome = “José”
Variável -> Nome
Conteúdo da variável = José
Note que atrás foi dito que em cada momento uma variável só pode conter um
único valor, por isso a sequência…
X=1
X=3
X=5
… faz com que o valor final da variável X seja o correspondente ao último valor
atribuído, igual a 5.
É necessário ter em atenção que na Matemática e no C o significado do sinal = é
muito diferente:

Exemplos (suponha que x= 1, y = 2 e z = 3):


x = y + z: Em Matemática e em C têm o mesmo significado e a variável x fica com
o valor 5;
x = x + 2: Em Matemática é sempre falso ( 5 é diferente de 7) e em C é uma
atribuição que coloca o valor 7 na variável x.

4.5 Entrada e saída de dados

Para que exista comunicação entre um algoritmo ou um programa e o exterior é


necessário que explicitamente escrevamos instruções para a escrita e leitura de
dados. Para estas duas tarefas existem duas instruções:

Entrada de dados (ou Input)


Ler (X)
Saída de dados (ou Output)
Escrever (X) ou Escrever(‘Um texto qualquer’)

Exemplo de Algoritmo

Algoritmo para calcular a área de uma mesa.


A Largura é número Real

Prof. Fernando Freixo Pág. 9


Escola EB 2,3/S de Vila Flor
Curso Profissional - Técnico de Informática de Gestão – 1º Ano
2008/2009

O Comprimento é número Real


A Área é Real
Início
Ler(Largura)
Ler(Comprimento)
Área = Largura * Comprimento
Escrever(Área)
Fim

5. Operadores e Funções

Os operadores são usados para efectuar cálculos sobre variáveis.


Temos três tipos de operadores, que são:
• Operadores Aritméticos
• Operadores Relacionais
• Operadores Lógicos

5.1 Operadores Aritméticos


Os operadores aritméticos são utilizados para obter resultados numéricos. Além da
adição, subtracção, multiplicação e divisão, pode-se também usar o operador para
exponenciação.

Operação Símbolo

Adição +

Subtracção -

Multiplicação *

Divisão /

Exponenciação ^

Com estes operadores podemos efectuar todo o tipo de cálculos.


X = 5 + 4 (A variável X recebe o valor 5 mais 4)
Y = 5 - X (A variável Y recebe o valor 5 menos o valor de X)
Hierarquia das operações aritméticas.

Prof. Fernando Freixo Pág. 10


Escola EB 2,3/S de Vila Flor
Curso Profissional - Técnico de Informática de Gestão – 1º Ano
2008/2009
As operações aritméticas respeitam as mesmas precedências que são estudadas na
matemática, por isso a hierarquia dos operadores é a seguinte:
1º - () Parênteses
2º - Exponenciação
3º - Multiplicação, divisão (o que aparecer primeiro)
4º - Soma ou subtracção (o que aparecer primeiro)

Exemplos da escrita algorítmica.

Em pseudocódigo

X/2

2*A

Y^2

(X + Y) / 2

5.2. Operadores Relacionais

Os Operadores relacionais são utilizados para comparar cadeias de caracteres


(texto) e números. Estes operadores devolvem sempre valores lógicos (Verdadeiro
ou Falso).

Matemática Em pseudocódigo

Igual a ==

Diferente de <>

Maior que >

Menor que <

Maior ou igual a >=

Menor ou igual a <=

Por exemplo, se tivermos duas variáveis:


X=5
Y=7
Os resultados das expressões seriam:

Expressão Valor

X=Y Falso

X <> Y Verdadeiro

Prof. Fernando Freixo Pág. 11


Escola EB 2,3/S de Vila Flor
Curso Profissional - Técnico de Informática de Gestão – 1º Ano
2008/2009

X>Y Falso

X<Y Verdadeiro

X >= Y Falso

X <= Y Verdadeiro

Operadores Lógicos
Os operadores lógicos servem para combinar resultados de expressões, retornando
se o resultado final é verdadeiro ou falso.
Os operadores lógicos são:

E AND

OU OR

NÃO NOT

• E / AND : O resultado duma expressão deste tipo é verdadeiro se as duas


condições envolvidas forem ambas verdadeiras.
• OU / OR: O resultado duma expressão deste tipo é verdadeiro se pelo menos
uma das condições envolvidas for verdadeira.
• NÃO / NOT: Esta expressão inverte o valor da expressão ou condição. Se
verdadeira passa a falsa e se falsa, passa a verdadeira,

Exemplos:
Suponha que temos três variáveis:
A = 5, B = 8 e C = 1

Expressão Valor

A=BEB=C Falso

B <> A OU B < C Verdadeiro

NÃO(A > B) Verdadeiro

NÃO(X < Y) E B < C Falso

5.2 - Sequências de execução

• Sequencial

Prof. Fernando Freixo Pág. 12


Escola EB 2,3/S de Vila Flor
Curso Profissional - Técnico de Informática de Gestão – 1º Ano
2008/2009
As instruções seguem uma sequência fixa, executando de cima para baixo, uma por
linha.
Instrução 1
Instrução 2
Instrução 3

Instrução n

• Selectiva

A instrução selectiva determina se uma determinada instrução se executa ou não,
segundo o cumprimento de uma determinada condição. A condição pode ser uma
expressão ou qualquer instrução que resulte num valor booleano.
SE condição
instruções1
SENÃO
instruções2
FIM SE

Uma instrução selectiva pode ser múltipla, existindo várias condições encadeadas e
que condicionam a instrução a executar.

SE condição 1
instruções1
SENÃO condição 2
instruções2
SENÃO condição 3
instruções3
SENÃO
instruções4
FIM SE

Outra alternativa para uma instrução selectiva é:

Caso condição
SE caso1

Prof. Fernando Freixo Pág. 13


Escola EB 2,3/S de Vila Flor
Curso Profissional - Técnico de Informática de Gestão – 1º Ano
2008/2009
instruções1
SE caso2
instruções2
SE caso3
instruções3
SENÃO
Instruções4
FIM Caso

• Interactiva

As instruções interactivas dão a possibilidade de realizar uma sequência de


instruções mais de uma vez. Existe uma condição e enquanto ela for verdadeira o
corpo da instrução executa repetidamente.

ENQUANTO condição
instruções1
CONTINUAR

Exemplos de algoritmos:

Exemplo1: Algoritmo para


Se ainda não lavei os identificar o número
dentes então maior entre dois valores
Posso ir deitar lidos
Senão Algoritmo número maior
Tenho de ir lavar os numero1 é inteiro
dentes numero2 é inteiro
Exemplo2: Inicio
Enquanto não vier o Ler(numero1)
autocarro Ler(numero2)
Espero e leio um livro Se numero1 > numero 2
continuar escrever(O numero1 é
maior)
Senão
escrever(O numero2 é
maior)
Fim Se
Fim

Prof. Fernando Freixo Pág. 14


Escola EB 2,3/S de Vila Flor
Curso Profissional - Técnico de Informática de Gestão – 1º Ano
2008/2009
6. Funções

Existem cálculos que já estão definidos e não é necessário definir o seu cálculo
numa linguagem de programação. Para o executar, basta chamar por uma função,
enviar-lhe um conjunto de valores de entrada e recolher o seu valor de saída.
Por exemplo, para calcular a raiz quadrada de 9 e colocar o resultado numa variável
com o nome X bastaria fazer:
X = Sqr(9)

6.1 Exemplo prático


Imaginemos o seguinte problema: Queremos um programa que descobre se um
número é par?

O primeiro passo consiste em analisar o problema.


Por exemplo, sabemos pela matemática que, para descobrir se um número é par,
divide-se esse número por 2 e verifica-se se o resultado é inteiro, o que equivale a
verificar se o resto dessa divisão é igual a 0.
O parágrafo anterior é importante para conseguir realizar o algoritmo com
eficiência. Sem essa noção, será mais difícil escrever um programa que calcule uma
solução adequada.
Então, seguindo a análise, podemos começar a escrever pseudocódigo.

Algoritmo número par


numero é inteiro
auxiliar é real
Inicio
Ler(numero)
auxiliar = numero / 2
Se auxiliar é inteiro
escrever(O numero é par)
Senão
escrever(O numero é impar)
Fim Se
Fim

Note que no algoritmo anterior existe uma condição (se auxiliar é inteiro) que surge
descrita em linguagem informal. Como ainda não aprendemos como verificar se um
número é inteiro, temos que usar esse tipo de linguagem

Prof. Fernando Freixo Pág. 15


Escola EB 2,3/S de Vila Flor
Curso Profissional - Técnico de Informática de Gestão – 1º Ano
2008/2009
Imaginemos agora o seguinte problema: Queremos um programa que descobre se
um número é múltiplo de 3?
Vamos então começar pelo primeiro passo e analisar o problema.
Por exemplo, sabemos pela matemática que, para descobrir se um número é
múltiplo de 2, divide-se esse número por 2 e verifica-se se o resultado é inteiro, o
que equivale a verificar se o resto dessa divisão é igual a 0. Para analisar se é
múltiplo de 3, divide-se esse número por 3 e verifica-se também o resultado e se o
resto da divisão é igual a 0.
Mais uma vez, o parágrafo anterior é importante para conseguir realizar o algoritmo
com eficiência. Sem essa noção, seria também difícil escrever o programa.
Então, concluindo a análise, podemos começar a escrever pseudocódigo.

Algoritmo número múltiplo de 3


numero é inteiro
auxiliar é real
Inicio
Ler(numero)
auxiliar = numero / 3
Se auxiliar é inteiro
escrever(O numero é par)
Senão
escrever(O numero é impar)
Fim Se
Fim

Para terminar vamos resolver o seguinte problema: Queremos um programa que


classifique um Triângulo quanto aos lados.
Analisando o problema, temos que um triângulo se classifica do seguinte modo:
• 3 lados iguais: Triângulo equilátero
• 2 lados iguais: Triângulo isósceles
• 3 lados diferentes: Triângulo escaleno

Então, o algoritmo resume-se a ler os lados dos triângulos e verificar qual das três
condições se verificam. Se chamarmos às variáveis que receberão os lados do
triângulo de L1, L2 e L3 temos as seguintes comparações a fazer:

Prof. Fernando Freixo Pág. 16


Escola EB 2,3/S de Vila Flor
Curso Profissional - Técnico de Informática de Gestão – 1º Ano
2008/2009
L1 = L2 E L1 = L3 E L2 = L3: Triângulo equilátero
(L1 = L2 E L1 <> L3) OU (L1 = L3 E L1 <> L2) OU (L2 = L3 E L1 <> L3): Triângulo
isósceles
L1 <> L2 E L1 <> L3 E L2 <> L3: Triângulo escaleno

Algoritmo classificar triângulos


L1 é inteiro
L2 é inteiro
L3 é inteiro
Inicio
Ler(L1)
Ler(L2)
Ler(L3)
Se L1 == L2 E L1 == L3 E L2 == L3
escrever(O triângulo é equilátero)
Senão (L1 == L2 E L1 <> L3) OU (L1 == L3 E L1 <> L2) OU (L2 == L3 E L1
<> L3)
escrever(O triângulo é isósceles)
Senão
escrever(O triângulo é escaleno
Fim Se
Fim

Note que a terceira condição não foi transcrita para o algoritmo. Tal não é
necessário pois se um triângulo não é equilátero nem isósceles, tem de ser
obrigatoriamente escaleno. Assim, o algoritmo fica mais legível e eficiente.

Prof. Fernando Freixo Pág. 17

Vous aimerez peut-être aussi