Conteúdo
Introdução .............................................................................................................................. 1
Computador e Programação .................................................................................................. 2
O papel do computador ..................................................................................................... 2
Noção de Variável ............................................................................................................... 3
Os nomes das variáveis ...................................................................................................... 3
Tipo de uma variável .......................................................................................................... 4
Declaração do tipo .............................................................................................................. 4
Instruções de atribuição ..................................................................................................... 5
Expressões numéricas ........................................................................................................ 7
Comunicar com o programa: Instruções de leitura e escrita. ............................................ 9
Instrução de escrita ............................................................................................................ 9
Instrução de leitura .......................................................................................................... 10
Clareza na entrada de dados ............................................................................................ 13
A selecção: Primeira estrutura fundamental ....................................................................... 13
A condição da escolha ...................................................................................................... 15
As condições simples ........................................................................................................ 15
Condições complexas ....................................................................................................... 16
Selecções no interior de outras ........................................................................................ 16
Estrutura de Repetição ......................................................................................................... 17
Exemplo introdutório ....................................................................................................... 17
Contar ............................................................................................................................... 18
Ciclos com contador ......................................................................................................... 19
Acumular........................................................................................................................... 19
Tabelas de uma Dimensão.................................................................................................... 20
Como utilizar uma tabela num programa ........................................................................ 21
Fluxogramas.......................................................................................................................... 23
Introdução
Computador e Programação
O computador, mais do que nunca, faz parte do nosso ambiente. Ouvimos muitas vezes à
nossa volta expressões como “processado por computador”, “o erro na fatura deveu-se ao
computador” e ainda por vezes, “o computador enganou-se”…
Estas frases mostram que se o público em geral tem normalmente uma ideia do que se
pode fazer com um computador, não ignora igualmente o papel fundamental que nele
desempenha a programação.
O papel do computador
- Gestão de stocks
- Consulta de bases de dados
- Construção de folhas de salários e faturas
- Tratamento de texto
- Cálculo da trajetória de um satélite
- Etc…
Como é possível que um mesmo computador possa efetuar tarefas tão diferentes e
variadas? Ouvimos dizer que basta programá-lo para o efeito. Com efeito o computador é
capaz de guardar em memória um programa, que depois é encarregado de executar.
Mais precisamente, o computador possui um reportório limitado de operações
elementares que sabe executar rapidamente e sem erros. Um programa é constituído por
um conjunto de instruções, que especificam:
Noção de Variável
Apesar de uma diversidade aparente, a maior parte das linguagens baseia-se na mesma
técnica fundamental, a saber, a “manipulação de valores contidos nas variáveis”. Vamos
precisar o que são estas variáveis e apresentar a noção do tipo de dados a elas ligados.
Quanto às instruções que permitem manipular os valores das variáveis, serão alvo da
nossa atenção posteriormente.
Em programação uma variável é um nome que serve para referenciar uma determinada
posição na memória RAM. Esta noção simples na aparência, contribui consideravelmente
para facilitar a realização de programas. Permite-nos manipular valores sem nos
preocuparmos com a posição que estes virão a ocupar efetivamente em memória. Para tal
basta-nos definir um nome para eles. Vejamos um esquema que ilustra a situação que
acabamos de descrever, a saber, dois modos de compreender a memória:
Memória RAM
01010 <- A
01011 <- Montante
As limitações que nos serão impostas na escolha dos nomes de variáveis dependerão da
linguagem escolhida. De uma forma geral em todas as linguagens, um nome de variável é
formado de uma ou várias letras; os algarismos são igualmente utilizados, desde que não
ocorram no início do nome.
O número máximo de caracteres autorizados varia com as linguagens.
Assim:
Esta distinção corresponde à noção de tipo. Assim diremos que uma variável destinada a
receber valores como 134 ou 12,45 será do tipo numérico; uma variável destinada a
conter letras será do tipo texto.
Em resumo
Declaração do tipo
O que indicará que as variáveis designadas C1, letra e z serão do tipo texto.
Instruções de atribuição
Vamos agora analisar uma das instruções que permitem manipular valores, a saber, a
instrução de atribuição.
O seu papel consiste simplesmente em colocar um valor numa dada variável. Assim uma
instrução permitirá dizer:
Atribuir a A o valor 5
Atribuir a A o valor de B
Em geral poderemos querer colocar numa variável o resultado de um cálculo ( o que terá
sentido para variáveis numéricas):
A 5
Instruções como
A 1
B A
B (A+3)
valor.
- À direita do símbolo ( ) encontra-se “qualquer coisa” que define o valor em questão.
Diremos que se trata de uma “expressão”.
Podemos portanto dizer que uma instrução de atribuição tem um duplo papel:
Entenda-se que quando determinamos o valor de uma expressão isto não modifica o valor
das variáveis que ocorrem nesta expressão.
Assim:
B (A+3)
Por outro lado, se a variável recetora (aqui B) já engloba um valor, este é puramente
substituído pelo novo valor.
Expliquemos melhor, usando um exemplo. Para cada variável, indicamos qual é o seu
valor antes da execução das instruções mencionadas:
A B
(1) A 1 1 -
(2) B A+3 1 4
(3) A 3 3 4
Exercícios:
Procedendo do modo indicado, mostre quais serão os valores das variáveis A, B e C depois
de cada uma das instruções:
a)
A 5
B 3
C A+B
A 2
C B-A
b)
A 5
B A+4
A A+1
B A-4
c)
A 3
B 10
C A+B
B A+B
A C
d)
A 5
B 7
A B
B A
Expressões numéricas
Exemplos:
1.35 -5.37
- Variáveis
- Símbolos operatórios
Já encontramos: + para a soma
- para a subtração
- Parêntesis
A B C X
A 1 1 - - -
B 2 1 2 - -
C 3 1 2 3 -
X A+B*C 1 2 3 7
X A*B+C 1 2 3 5
X A+B/C 1 2 3 2.5
X C/A+B 1 2 3 5
X
A 1 -
B 2 -
C 3 -
X A+B*C 7
X (A+B)*C 9
X A+C/B 2.5
X (A+C)/B 2
Vimos já como a atribuição pode afetar as variáveis. Em geral, para que um programa
apresente um interesse prático, deve poder comunicar-nos um certo número de
informações (resultados) através de um periférico. Será esse o papel da instrução de
escrita.
Instrução de escrita
Esta instrução tem por objectivo fornecer-nos resultados sob uma forma directamemente
compreensível. Mais precisamente ela escreve num periférico os valores de uma ou mais
variáveis.
Na maior parte das linguagens, é possível escolher o periférico em que se deseja escrever.
Aqui por uma questão de simplificação, suporemos que só se pode utilizar um periférico.
Consideremos que a instrução
Escrever(A)
Do mesmo modo
Escrever(x,y)
x 1
y 5
Escrever (x,y)
15
Outro exemplo:
Fornecerá os resultados:
35
18
Exercicio:
a)
b)
Instrução de leitura
Mais precisamente, esta instrução vai procurar um valor num periférico e atribuí-lo a uma
variável. Também aqui não ocorre simplesmente uma transmissão de informação dado
que a instrução deve transformar um ou vários caracteres para o valor binário
correspondente.
Na maior parte das linguagens, é possível escolher o periférico onde desejamos realizar a
leitura. Vamos supor que só é possível utilizar um periférico, e que a instrução:
Ler(A)
Do mesmo modo,
Ler(X,Y)
Este programa fornece o dobro de 58. Se no entanto quisermos obter o dobro de 549,
teremos de modificar o programa da seguinte maneira:
Exercício:
a)
Escreva um programa que leia um número e escreva o seu quadrado. Que obteremos se
se executar este programa fornecendo-lhe o número 5 como dado.
b)
- O preço de um artigo.
- O número de artigos.
- O imposto a aplicar.
5
25
Número fornecido:5
O seu quadrado:25
Ou ainda o quadrado de 5 é 25
Ou na seguinte forma:
Quando se trabalha a partir do teclado somos levados a fornecer os dados à medida que o
programa os exige. Em certas linguagens somos prevenidos que o programa espera uma
entrada nossa. Nestas condições aconselha-se vivamente a preceder qualquer instrução
de leitura da escrita de uma etiqueta definindo ao utilizar o que se espera dele.
Até agora vimos as três instruções de base, que são a atribuição, a leitura e a escrita. Só as
utilizámos para realizar programas cuja execução seja sequencial; por outras palavras, as
instruções são executadas pela ordem que são escritas.
Ora o interesse essencial do computador e a sua potência decorrem de duas coisas:
Suponhamos que temos necessidade, num programa de escrever uma mensagem que
indique se o sinal de um valor de uma dada variável é positivo ou negativo. Por outras
palavras, devemos executar a instrução:
Se (a>0) então
escrever (“valor positivo”)
senão
escrever (“valor negativo ou nulo”)
fim se
Vejamos agora um programa que lê dois números e uma letra. Se esta for “s” calcula e
escreve a soma de dois números. No caso contrário, calcula e escreve o produto.
Escrever (“soma”,res)
Senão
Res (a*b)
Escrever (“produto”,res)
Fim se
Escrever “fim do programa
A condição da escolha
As condições simples
a>0
operacao=”s”
É a isto que chamamos condições simples. De um modo geral uma condição simples
consiste na comparação de duas expressões do mesmo tipo. Aqui utilizaremos símbolos
matemáticos habituais. Eis a lista, acompanhada dos respectivos significados:
Símbolo Significado
= Igual a
< Inferior a
> Superior a
<= Inferior ou igual a
>= Superior ou igua a
<> Diferente de
Exercicio
Senão
Escrever (“ordem decrescente”)
Fim se
Condições complexas
A maior parte das linguagens autorizam condições formadas de várias condições simples
ligadas entre si pelas operações lógicas “e” e “ou”.
A<0 e b<0
Enquanto que:
A<0 ou b<0
Exercício:
Escrever um programa que leia um número e que indique se este se encontra ou não
compreendido ente 10 e 20 (incluídos).
Pode acontecer que uma das partes de uma estrutura de selecção contenha por sua vez
uma estrutura de seleção. Neste caso, diz-se que temos estruturas embebidas umas nas
outras.
Exercício
Cálculo de desconto.
Estrutura de Repetição
Exemplo introdutório
A repetição ou ciclo serve para repetir um conjunto de instruções até que uma condição
seja satisfeita.
Variáveis a, c : numéricas
Repetir
Ler (a)
c (a*a)
Escrever ( c )
Até a=0
Escrever (“fim”)
Ler (a)
c (a*a)
Escrever ( c )
Indicam que as instruções devem ser repetidas tantas vezes quantas as necessidades, até
que a variável “a” assuma o valor zero.
Contar
Na vida corrente sabemos como contar o número de letras ou número de vogais de uma
palavra. No primeiro caso, fazemos uma contagem sistemática, considerando cada letra
da palavra. No segundo caso, fazemos uma contagem seletiva, considerando apenas as
letras que satisfazem uma determinada condição.
Variáveis a, c, n : numéricas
N 0
Repetir
Ler (a)
c (a*a)
Escrever c
n (n+1)
Até (a=0)
Escrever (“indicou”, n, “valores”)
Exercicio
Variáveis Ne : numéricas
Variável letra : texto
Ne 0
Repetir
Ler (letra)
Se (letra=”e”) então
Ne (Ne+1)
Fim se
Até (letra=”.” )
Escrever (“a frase engloba”, Ne, “letras e” )
Exemplo
Supomos que se deseja repetir 50 vezes as instruções que permitem ler um valor e
escrever o seu quadrado:
Ler (a)
c (a*a)
Escrever c
Vimos no exemplo anterior a forma de contar o número de vezes que um ciclo é repetido.
Basta-nos agora repetir as nossas instruções até que o valor do contador atinja o valor 50.
Variáveis a, c, N : numéricas
N 0
Repetir
N (N+1)
Ler (a)
c (a*a)
Escrever ( c )
Até (N=50)
Escrever (“fim do programa”)
Acumular
Exemplo:
Exercício
Se for necessário dispor simultaneamente destes vinte valores, podemos sempre utilizar
vinte variáveis diferentes, cujos nomes serão por exemplo:
A B C D etc…
Ou ainda:
NotaA NotaB NotaC NotaD etc…
- É necessário encontrar um nome da variável para cada nota. Isto é possível para vinte
valores, mas arrisca-se a sr fastidioso para cem ou mil valores.
- Não existe qualquer relação entre estes diferentes valores. Ora em certos casos somos
levados a aplicar um mesmo tratamento ao conjunto ou a uma parte destes valores.
Imaginemos simplesmente como se poderá calcular a soma de um vasto conjunto de
notas…
Todas as linguagens propõem de facto, uma solução para esta situação. Esta reside na
noção de tabela, que consiste em:
- atribuir um único nome ao conjunto dos nossos vinte valores; por exemplo NOTAS;
- Em referenciar cada nota por este nome, seguido de um número entre parêntesis
(variando no nosso caso entre 1 e 20).
NOTAS
Exemplos:
Tabela notas(20):numéricas
Tabela x(4):numéricas
X(1) 12
X(2) 5
X(3) 8
X(4) 20
0 1 1 1 1 2
Exercício
1 4 9 16 25
Fluxogramas
2. Podem usar-se ligadores para representar uma saída ou uma entrada noutra parte do
fluxograma. Podem ser usados também para ligar linhas de fluxo.
5. Decisão: trata-se de uma forma em losango para indicar uma pergunta. Se a pergunta é
verdadeira, será seguido um trajeto: se for falsa, será seguido outro. Os trajetos
verdadeiro e falso são indicados pelos sinais V ou F.
Exemplo