Você está na página 1de 26

Curso de Comunicação e Multimédia

Fudamentos de Algoritmia e Programação


1º semestre – 2022/2023

Parte prática: Introdução às Linguagens de


Programação

Sérgio Madeira

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação – alto e baixo
nível
Para que um computador possa executar tarefas ou resolver problemas
é necessário que seja carregado um programa na sua memória
principal.
Os programas são escritos usando uma linguagem de programação.
Destas existem principalmente dois tipos:

1. Linguagem Máquina ou de baixo nível.


Comandam directamente as operações dos computadores. São códigos
de zeros e uns pouco entendíveis pelos seres humanos
2. Linguagem de alto nível
Destinam-se a permitir que os seres humanos possam eles próprios
criar programas complexos. São portanto próximos da linguagem
humana.

Exemplos de linguagens de alto nível.


Fortran C C++ Pascal Basic Matlab Java Python

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação – tradutores de
linguagem

Um programa criado em linguagem de alto nível terá de ser convertido


para linguagem máquina para poder ser interpretado pelo computador.

Isto é feito pelos tradutores. Cada linguagem de alto nível tem os seus.
Existem 2 tipos de tradutores:

Interpretadores
Operam diretamente sobre o programa de alto nível (source module)
durante a execução, traduzindo linha a linha.

Compiladores
Traduzem todo o programa de uma só vez, criando uma versão em
linguagem máquina (object module) e seguidamente uma versão
executável (executable module) ligado a bibliotecas de software.

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação

Uma linguagem de programação (de alto nível) é constituída por:

Sintaxe:
Conjunto de regras rígidas constituídas pelas relações entre palavras
chave, identificadores, operadores e pontuação. Caso a sintaxe não
esteja correcta o compilador não conseguirá traduzir para linguagem
máquina. Normalmente o compilador detecta estes erros e aponta-os.

Semântica:
Conjunto de relações entre as operações solicitadas pelo programa. A
sua incorreção não origina erros de compilação mas de execução (resultados
errados, comportamento inesperado do programa …)

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação

Nota importante:
Basicamente todas as linguagens de programação usam os mesmos
tipos de estruturas, podendo essas variar sintaticamente de linguagem
para linguagem.

No que se segue apresentam-se as estruturas de programação mais


importantes de uma forma geral, não de uma linguagem em concreto.

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
Constituição básica de um programa
Nome do Program xpto
programa
Cabeçalho
Const pi=3.14159 : real; (Header)
Declaração
Var a, b : integer;
de variáveis
c : char
Begin
Instrução 1; Corpo
Corpo
Instrução 2; principal
principal
etc (main body)
End

As palavras a amarelo são palavras chave ou reservadas – fazem parte da


sintaxe da linguagem de programação
As , : ; são pontuação – fazem parte da sintaxe
As instruções (statements) são as ordens que o computador deve executar.

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
funções
Program xpto Function Func_1 (m,n)
Const pi=3.14159 : real; Const taxa=3.6 : real;
Var a, b, d : integer; Var m, n, p : integer;
c : char c : char

Begin Begin
Instrução 1; Instrução a;
d=Func_1 (a,b) Instrução b;
Instrução 2; Instrução c;
etc etc
End End

As funções são chamadas pelos programas. Como tal também se


denominam sub-programas.

Têm uma construção em tudo semelhantes aos programas.

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação - as variáveis

Em programação as variáveis funcionam da mesma forma que na


matemática, com algumas diferenças:

 É-lhes atribuido um nome (identificador)


 O nome de uma variável pode ser qualquer conjunto alfanumérico, mas não
pode começar por um número nem conter caracteres proibidos (ç, à, ã, - , : etc).

 Apenas podem conter valores de um tipo.


 Inteiros, reais, caracteres, cadeias de caracteres ou booleanos

 Normalmente têm de ser definidas no início do programa.

 Os valores são atribuidos às variáveis no decorrer do programa e podem variar


no decurso do mesmo.

 Ao ser definida uma variável é reservado um número de bytes na memória


principal correspondente ao tipo da variável.

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
as constantes

Em programação as constantes são em tudo semelhantes às variáveis,


com uma diferença:

 Só acomodam um valor de um tipo.

 O tipo e valor das constantes tem de ser definido no cabeçalho do programa


(embora nem sempre) e nunca muda ao longo do programa.

 Ao ser definida uma constante é reservado um número de bytes na memória


principal correspondente ao tipo da variável. As constantes necessitam de tanta
memória como as variáveis (se forem do mesmo tipo).

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
Declaração de variáveis e constantes

Exemplos
Const, Var, Real, Integer,
Const taxa_juro=1.85 : Real Char, Cadeia, Boolean
São palavras reservadas
Var alunos_turma : Integer
nota_aluno : Char

Var alunos_turma, alunos_extra_turma : Integer


nota_aluno : Char
nome_aluno : Cadeia
classif_media, classif_max, classif_min : Char
aprovado : Boolean

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
as variáveis dimensionais

Em programação são também aceites variáveis dimensionais ou Arrays.


A dimensão destas variáveis pode ser qualquer uma.
Array, of
 Declaração de um vector com 10 caracteres (1 dimensão). São palavras
Var notas_alunos : Array [1 : 10] of ‘A’ .. ‘E’ reservadas

‘B’ ‘B’ ‘A’ ‘F’ ‘A’ ‘B’ ‘C’ ‘B’ ‘C’ ‘C’

 Declação de uma matriz 3x3 de inteiros (2 dimensões).


34 21 -8
Var matriz3 : Array [1 : 3,1: 3] of Integer
12 3 32
-51 4 2
 Poderíamos agora declarar uma cadeia de caracteres para acomodar nomes.
Var nome_aluno : Array [1 : 20] of Char
‘I’ ‘A’ ‘R’ ‘A’ ‘S’ ‘O’ ‘U’ ‘S’ ‘A’ ‘C’ ‘A’ ‘R’ ‘V’ ‘A’ ‘L’ ‘H’ ‘O’

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
Instrução de atribuição

Em determinadas etapas de um programa é necessário atribuir valores


às variáveis.

Tal é feito com instruções de atribuição. Alguns exemplos (tendo em


conta os exemplos de declaração de variáveis anteriores):

alunos_turma = 21; notas_alunos(8) = ‘B’

nota_aluno = ‘B’; matriz3(1,2) = 21

aprovado = true;

Em algumas linguagens de programação a instrução de atribuição é :=

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação - Cálculos
Em determinadas etapas de um programa é necessário efectuar
cálculos com as constantes e variáveis.

Tal é feito com os operadores e funções matemáticas. Um exemplo:

valor_anual = sqr(12*(lucro/2–inflacao));
Algumas funções

operadores sqr Ao quadrado

sqrt Raíz quadrada


+ Soma
^ Elevado a
- Subtração
sin Seno
* Multiplicação round Arredondar

/ Divisão etc

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
Expressões lógicas
Muitas estruturas de programação precisam da avaliação de
expressões lógicas. Destas resultam apenas valores lógicos (ou
booleanos).
Operadores lógicos
Exemplos: nota_aluno < ’C’; == Igual

> Maior
~(aprovado)
< Menor

~(aprovado) & faltas >= 10 >= Maior ou igual

<= Menor ou igual

& AND
Nota: segue-se neste caso os
Símbolos usados pela linguagem | OR

Matlab ~ NOT

xor XOR

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
Input – entrada de dados
Em dado momento os programas necessitam de entrada de informação.
Uma forma de o fazer é através do teclado. Aqui há uma variabilidade
grande nas linguagens de programação.

Vejamos como ler o valor da variável x através do teclado

read (x) Lê o valor e não muda de linha


Pascal
readln (x) Lê o valor e muda de linha

Console.read (x) Lê o valor e não muda de linha


Visual Basic
Console.readLine (x) Lê o valor e muda de linha

input(x,”Pick a number.”)
O Matlab muda sempre de linha Matlab
x

INPUT x Lê o valor e muda de linha Basic

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
Output – escrita no ecran
Os programas de nada serviriam se não cedessem informação. Uma
forma de o fazer é escrever os resultados do processamento no écran.
Aqui há uma variabilidade grande nas linguagens de programação.

Vejamos como escrever o valor da variável x.

write (x) Escreve e não muda de linha


Pascal
writeln (x) Escreve e muda de linha

Console.write (x) Escreve e não muda de linha


Visual Basic
Console.writeLine (x) Escreve e muda de linha

disp(x)
O Matlab muda sempre de linha Matlab
x

PRINT x Escreve e muda de linha Basic

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
instruções condicionais - IF

A sintaxe desta instrução pode assumir duas formas:


IF, THEN, ELSE
1) If expressão booleana Then instrução; São palavras
reservadas
2) If expressão booleana Then instrução_1
Else instrução_2;

Em 1) se a expressão booleana assumir o valor verdadeiro, e só nesse


caso, será executada a instrução.

Em 2) se a expressão booleana assumir o valor verdadeiro será executada


a instruçao1, se assumir o valor falso será executada a instrução2.

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
instruções condicionais - IF composto
If expressão booleana Then
Begin
BEGIN, END
Instrução_1;
São palavras
Instrução_2;
reservadas
: :
Instrução_n
End
Else
Begin
Instrução_1';
Instrução_2';
: :
Instrução_p
End;

Repare-se como cada conjunto de instruções está enquadrado com Begin


 End

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
instruções condicionais - IF sobreposto
1) If expressão booleana1 Then
If expressão booleana2 Then instrução;

2) If expressão booleana1 Then


If expressão booleana2 Then instrução1
Else instrução2;

3) If expressão booleana1 Then instrução1


Else If expressão booleana2 Then instrução2
Else If expressão booleana3 Then instrução3
Else instrução4;

No caso 2) há a dúvida sobre a que Then dirá respeito a palavra reservada


Else.
Regra: a instrução Else refere-se sempre à última instrução Then
encontrada que ainda não tenha sido complementada com um Else.

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
instruções condicionais - CASE

Case expressão Of Case, Of


domínio_1:instrução_1; São palavras
domínio_2:instrução_2; reservadas
: :
domínio_n:instrução_n
End;

Neste caso a expressão não tem necessariamente um valor lógico. O Case


funciona melhor que o If quando se tem de optar por escolhas não lógicas.

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
instruções condicionais - CASE
Outra forma para o Case também muito usada.
Switch
É uma palavra
Switch expressão
reservada.
Case domínio_1:instrução_1;
Case domínio_2:instrução_2;
: :
Case domínio_n:instrução_n
End;

NOTA IMPORTANTE: Procura-se nestes diapositivos abordar as estruturas


usadas em programação de uma forma geral. Cada linguagem de programação
terá depois a sua sintaxe própria, porventura diferente do que é mostrado aqui,
mas sempre parecida.

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
Estruturas de repetição - ciclo FOR

For variável_controlo:=valor_inicial To valor_final Do For, To, Do


Begin São palavras
Instrução; reservadas.
End

O ciclo FOR repete um conjunto de instruções um número pre-determinado de


vezes.

NOTA IMPORTANTE: Procura-se nestes diapositivos abordar as estruturas


usadas em programação de uma forma geral. Cada linguagem de programação
terá depois a sua sintaxe própria, porventura diferente do que é mostrado aqui,
mas sempre parecida.

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
Estruturas de repetição - ciclo REPEAT

Repeat
instrução_1; Repeat, Until
instrução_2; São palavras
: : reservadas.
instrução_n;
Until expressão_booleana

Chegado à palavra reservada Until é avaliada a expressão booleana. Se for


FALSE o programa volta ao início do ciclo.

As instruções têm de promover a ocorrência de TRUE na expressão booleana,


sob pena de o ciclo continuar indefinidamente (Infinit LOOP).

A instrução Repeat não necessita de Begin – End.

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
Estruturas de repetição - ciclo WHILE

While expressão_booleana Do
Begin While
instrução_1; É uma palavra
instrução_2; reservada.
: :
instrução_n;
End

No início do ciclo é avaliada a expressão booleana. Só há entrada no ciclo se


esta for True.

As instruções têm de promover a ocorrência de FALSE na expressão booleana,


sob pena de o ciclo continuar indefinidamente (Infinit LOOP).

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação
Exemplos
Exemplo de um programa em Pascal para somar todos os números até n.

PROGRAM exemplo_9_3_2(input,output);
Var i, n, soma : integer;
Aspecto no ecran
BEGIN
writeln('Introduza um número inteiro positivo.');
readln(n); Introduza um número inteiro positivo.
i:=1; 5
soma:=0;
Eis a soma dos números até 5: 15
WHILE i < n+1 DO
BEGIN
soma:=soma+i
i:=i+1;
END;
writeln(‘Eis a soma dos números até ‘,n,’: ‘,soma);

END.

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação


Linguagens de programação - Comentários
É boa estratégia colocar comentários para clarificar o funcionamento dos
programas. Em Pascal devem inserir-se em {* *}, em Matlab os
comentários iniciam por %. Veja-se o programa anterior com comentários.

PROGRAM exemplo_9_3_2(input,output);
{* Programa para calcular a soma de todos os inteiros até n. *}
Var i, n, soma : integer;
BEGIN
{* Leitura do valor n. *}
writeln('Introduza um número inteiro positivo.');
readln(n);
i:=1;
{* Cálculo da soma através de um ciclo While. *}
soma:=0;
WHILE i < n+1 DO
BEGIN
i:=i+1;
soma:=soma+i
END;
writeln(‘Eis a soma dos números até ‘,n,’: ‘,soma);
END.

Comunicação e Multimédia – Fundamentos de Algoritmia e Programação

Você também pode gostar