Introdução (Informal) à Programação
-
Upload
jillian-bond -
Category
Documents
-
view
31 -
download
0
description
Transcript of Introdução (Informal) à Programação
![Page 1: Introdução (Informal) à Programação](https://reader036.fdocumentos.com/reader036/viewer/2022082819/568137d3550346895d9f74c4/html5/thumbnails/1.jpg)
29 de Setembro de 2005 Introdução (Informal) à Programação 1
Introdução (Informal) à Programação
Jorge CruzDI/FCT/UNL
Introdução aos Computadores e à Programação1º Semestre 2005/2006
![Page 2: Introdução (Informal) à Programação](https://reader036.fdocumentos.com/reader036/viewer/2022082819/568137d3550346895d9f74c4/html5/thumbnails/2.jpg)
29 de Setembro de 2005 Introdução (Informal) à Programação 2
Programa e Algoritmo
• Um programa é um conjunto de instruções que aplicadas aos dados de entrada (input) e a outros intermédios auxiliares produz um resultado (output).
• Um programa é a materialização para uma dada máquina (computador e linguagem de programação) de um algoritmo.
Programainput output
![Page 3: Introdução (Informal) à Programação](https://reader036.fdocumentos.com/reader036/viewer/2022082819/568137d3550346895d9f74c4/html5/thumbnails/3.jpg)
29 de Setembro de 2005 Introdução (Informal) à Programação 3
Níveis de Abstração
• Um programa pode ser entendido a vários níveis de abstracção (detalhe).
• Quanto mais “inteligente/conhecedor” for o interlocutor, a mais alto nível podem ser dadas as instruções.
Vá para Lisboa
Saia da sala
Saia do Edifício
Dirija-se à portaria
Vá para a paragem de autocarro
Apanhe o autocarro
....
![Page 4: Introdução (Informal) à Programação](https://reader036.fdocumentos.com/reader036/viewer/2022082819/568137d3550346895d9f74c4/html5/thumbnails/4.jpg)
29 de Setembro de 2005 Introdução (Informal) à Programação 4
Níveis de Abstração
Nível Máquina e Nível “Humano”• Um computador só executa instruções extremamente
simples. Por exemplo:– Transferir palavras entre a memória e os registos – Processar dados nos registos (p.ex. soma binária)
• Um programador humano raciocina a um nível mais alto de abstração.
C A + BLDA 1005
LDB 22345A91
ADD A,B
STA 1234FE88
![Page 5: Introdução (Informal) à Programação](https://reader036.fdocumentos.com/reader036/viewer/2022082819/568137d3550346895d9f74c4/html5/thumbnails/5.jpg)
29 de Setembro de 2005 Introdução (Informal) à Programação 5
Linguagens de Programação
• As linguagens de programação permitem a um utilizador especificar um programa de uma forma semelhante ao algoritmo.
• Um compilador/interpretador da linguagem deverá fazer a tradução das intruções de alto nível para as de nível máquina (por exemplo, manter os endereços de memória onde estão guardadas as variáveis).
C A + BLDA 11A810A0
LDB 22345A91
ADD A,B
STA 1234FE88
![Page 6: Introdução (Informal) à Programação](https://reader036.fdocumentos.com/reader036/viewer/2022082819/568137d3550346895d9f74c4/html5/thumbnails/6.jpg)
29 de Setembro de 2005 Introdução (Informal) à Programação 6
Linguagens de Programação (2)
• Existem vários tipos de linguagens de programação baseadas em diferentes paradigmas (estilos) de programação.
– Linguagens imperativas: Fortran, Pascal, C, Octave/MATLAB
• Controle explícito da execução
– Linguagens Orientadas por Objectos: Smalltalk, C++, Java• Controle implícito na manipulação dos dados
– Linguagens Funcionais: LISP, Scheme• Baseadas na especificação de funções
– Linguagens Lógicas: Prolog• Implementando a Lógica de Predicados
![Page 7: Introdução (Informal) à Programação](https://reader036.fdocumentos.com/reader036/viewer/2022082819/568137d3550346895d9f74c4/html5/thumbnails/7.jpg)
29 de Setembro de 2005 Introdução (Informal) à Programação 7
Programação Imperativa
• No paradigma de programação imperativa, o programador especifica explicitamente o controle de execução, isto é, a sequenciação das instruções base.
• Informalmente podemos considerar as seguintes instruções base, na especificação de algoritmos:
– Afectação: A Expressão • A variável A toma o valor da Expressão
– Entrada: Entra A• A variável A toma um valor dado do exterior (teclado, ficheiro)
– Saída: Sai A• A variável A é passada para o exterior (monitor, ficheiro)
![Page 8: Introdução (Informal) à Programação](https://reader036.fdocumentos.com/reader036/viewer/2022082819/568137d3550346895d9f74c4/html5/thumbnails/8.jpg)
29 de Setembro de 2005 Introdução (Informal) à Programação 8
Controle de Execução
• A ordem pela qual as várias instruções são executadas é controlada explicitamente por instruções de
– Sequência
– Execução Condicional
– Execução Repetida
• Sequência (“;”)– Exemplo:
entra A ; % O valor de A é “entrado”. Seja A = 2B A + 3 ; % A variável B toma o valor 2+3 = 5C B * 2 ; % A variável C toma o valor 5*2 = 10sai C ; % O valor de C é passado para o exterior
![Page 9: Introdução (Informal) à Programação](https://reader036.fdocumentos.com/reader036/viewer/2022082819/568137d3550346895d9f74c4/html5/thumbnails/9.jpg)
29 de Setembro de 2005 Introdução (Informal) à Programação 9
Controle de Execução
• Execução condicional (“se”) – Exemplo:
entra A ; % o valor de A é “entrado”se A > 0 então B A % à variável B é atribuído senão % o valor absoluto B - A % da variável Afim se;
sai B ; % o valor de B é comunicado
![Page 10: Introdução (Informal) à Programação](https://reader036.fdocumentos.com/reader036/viewer/2022082819/568137d3550346895d9f74c4/html5/thumbnails/10.jpg)
29 de Setembro de 2005 Introdução (Informal) à Programação 10
Controle de Execução
• Execução Repetida (“enquanto”) – Exemplo:
entra A; % o valor de A é “entrado”B 1; % o valor de B é inicializado a 1enquanto A > 1 fazer B B * A; % à variável B é atribuído A A – 1; % o factorial de Afim enquanto;
sai B; % o valor de B é comunicado
![Page 11: Introdução (Informal) à Programação](https://reader036.fdocumentos.com/reader036/viewer/2022082819/568137d3550346895d9f74c4/html5/thumbnails/11.jpg)
29 de Setembro de 2005 Introdução (Informal) à Programação 11
Tipos de Dados Simples
• Às variáveis usadas têm sido atribuídos valores inteiros. No entanto podem ser considerados outros valores nos algoritmos (e programas).
• Os tipos de dados simples habituais são – Booleanos (Verdade/Falso ou 1/0)– Numéricos (Inteiros, Reais e Imaginários)– Não numéricos (caracteres)
• Normalmente o contexto torna claro os tipos de dados pretendidos para as variáveis, mas as linguagens de programação típicas (não o Octave) requerem a declaração dos tipos de dados das variáveis.
![Page 12: Introdução (Informal) à Programação](https://reader036.fdocumentos.com/reader036/viewer/2022082819/568137d3550346895d9f74c4/html5/thumbnails/12.jpg)
29 de Setembro de 2005 Introdução (Informal) à Programação 12
Estruturas de Dados
• Os dados simples podem ser agrupados em estruturas de dados mais complexas.
• As estruturas mais vulgares correspondem a matrizes de dimensão arbitrária.
• Um caso importante são as matrizes unidimensionais (vectores).
• Como o nome indica (MATrix LABoratory), o sistema Octave /MATLAB tem um suporte muito completo dos tipos de dados matriz, permitindo a sua definição e as operações habituais.
![Page 13: Introdução (Informal) à Programação](https://reader036.fdocumentos.com/reader036/viewer/2022082819/568137d3550346895d9f74c4/html5/thumbnails/13.jpg)
29 de Setembro de 2005 Introdução (Informal) à Programação 13
Estruturas de Dados
• Exemplo 1:
A = [1 2 3 ; 4 5 6 ; 7 8 9]
• Exemplo 2:
B = [3 3 3 ; 2 2 2 ; 1 1 0]
• Exemplo 3:
C = A + B
• Exemplo 4:
D = [1 2 3] * A
1 2 3
A = 4 5 6
7 8 9
3 3 3
B = 2 2 2
1 1 0
4 5 6
C = 6 7 8
8 9 9
D = 30 36 42
![Page 14: Introdução (Informal) à Programação](https://reader036.fdocumentos.com/reader036/viewer/2022082819/568137d3550346895d9f74c4/html5/thumbnails/14.jpg)
29 de Setembro de 2005 Introdução (Informal) à Programação 14
Algoritmo 1 – Raízes da equação do 2º grauentra A ; entra B ; % Ax2 + Bx + C = 0entra C ; Disc B^2 – 4 * A * C;se Disc < 0 então sai ‘não há raízes reais’senão D sqrt(Disc); se D = 0 então sai ‘ 2 raízes iguais’ R -B/(2*A); sai R senão R1 (-B + D)/(2*A); sai R1; R2 (-B - D)/(2*A); sai R2; fim se; fim se;
![Page 15: Introdução (Informal) à Programação](https://reader036.fdocumentos.com/reader036/viewer/2022082819/568137d3550346895d9f74c4/html5/thumbnails/15.jpg)
29 de Setembro de 2005 Introdução (Informal) à Programação 15
Algoritmo 2 – Cálculo da Raiz Quadrada
# iter R T dif
0 1.00 49.00 48.000
1 25.00 1.96 23.040
2 13.48 3.64 9.845
3 8.56 5.73 2.832
4 7.14 6.86 0.281
5 7.00 7.00 2.81E-03
6 7.00 7.00 2.83E-07
7 7.00 7.00 3.55E-15
entra X ; entra P ;
% P é a precisão pretendida
R 1 ;T X ;enquanto abs(T-R) >= P fazer R (R + T)/2; T X / R;fim enquanto;Sai R ;
% R sqrt(X)
![Page 16: Introdução (Informal) à Programação](https://reader036.fdocumentos.com/reader036/viewer/2022082819/568137d3550346895d9f74c4/html5/thumbnails/16.jpg)
29 de Setembro de 2005 Introdução (Informal) à Programação 16
Algoritmo 3 – Teste da “Primalidade”
entra N ; primo verdade ;limA = sqrt(N);para A de 2 a limA fazerlimB = N / A; para B de A a limB fazer se A * B = N então primo falso; fim se; fim parafim parase primo então sai ‘o número é primo’senão sai ‘o número não é primo’fim se;
Exemplo: 23sqrt(23) = 4.7958...
2 * 2 ...
2 * 11 % 23/2 = 11.53 * 3 ...3 * 7 % 23/3 = 7.674 * 4 ...4 * 5 % 23/4 = 5.75