Introdu o informal programa o
This presentation is the property of its rightful owner.
Sponsored Links
1 / 18

Introdução (Informal) à Programação PowerPoint PPT Presentation


  • 77 Views
  • Uploaded on
  • Presentation posted in: General

Introdução (Informal) à Programação. Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação 2º Semestre 2005/2006. input. output. Programa. Programa e Algoritmo.

Download Presentation

Introdução (Informal) à Programação

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Introdu o informal programa o

Introdução (Informal) à Programação

Pedro Barahona

DI/FCT/UNL

Introdução aos Computadores e à Programação

2º Semestre 2005/2006

Introdução (Informal) à Programação


Programa e algoritmo

input

output

Programa

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.

Introdução (Informal) à Programação


N veis de abstra o

Saia da sala

Saia do Edifício

Dirija-se à portaria

Vá para a paragem de autocarro

Apanhe o autocarro

....

Vá para Lisboa

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.

Introdução (Informal) à Programação


N veis de abstra o1

LDA 1005

LDB 22345A91

ADD A,B

STA 1234FE88

C  A + B

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.

Introdução (Informal) à Programação


Linguagens de programa o

LDA 11A810A0

LDB 22345A91

ADD A,B

STA 1234FE88

C  A + B

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).

Introdução (Informal) à Programação


Linguagens de programa o 2

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

Introdução (Informal) à Programação


Programa o imperativa

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)

Introdução (Informal) à Programação


Controle de execu o

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 = 2

  • B  A + 3 ;% A variável B toma o valor 2+3 = 5

  • C  B * 2 ;% A variável C toma o valor 5*2 = 10

  • sai C ; % O valor de C é passado para o exterior

Introdução (Informal) à Programação


Controle de execu o1

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 A

  • fim se;

  • sai B ; % o valor de B é comunicado

Introdução (Informal) à Programação


Controle de execu o2

Controle de Execução

  • Execução Repetida (“enquanto”)

    • Exemplo:

  • entra A; % o valor de A é “entrado”

  • B  1;% o valor de B é inicializado a 1

  • enquanto A > 1 fazer

  • B  B * A;% à variável B é atribuído

  • A  A – 1;%o factorial de A

  • fim enquanto;

  • sai B; % o valor de B é comunicado

Introdução (Informal) à Programação


Tipos de dados simples

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.

Introdução (Informal) à Programação


Estruturas de dados

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.

Introdução (Informal) à Programação


Estruturas de dados1

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

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

Introdução (Informal) à Programação


Algoritmo 1 ra zes da equa o do 2 grau

Algoritmo 1 – Raízes da equação do 2º grau

  • entra A ;

  • entra B ; % Ax2 + Bx + C = 0

  • entra 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;

Introdução (Informal) à Programação


Algoritmo 2 c lculo da raiz quadrada

A

Algoritmo 2 – Cálculo da Raiz Quadrada

X = sqrt(A)  U * L = A  L = A / U

  • Assumindo Li X  Ui, o intervalo [Li, Ui] pode ir sendo reduzido até convergir no valor de X = sqrt(A).

L1

U1

Li = 2 / Ui

L1

L2

U2

U1

L3

U3

Introdução (Informal) à Programação


Algoritmo 2 c lculo da raiz quadrada1

Algoritmo 2 – Cálculo da Raiz Quadrada

Z = sqrt(X)  X * X = 2  L = 2 / U

  • entra X ;

  • entra P ;

  • % P: precisão pretendida

  • U  10000000 ;

  • L  X / U ;

  • enquanto U-L >= P fazer

  • U  (U + L)/2;

  • L  X / U;

  • fim enquanto;

  • Sai U ;

  • % U  sqrt(X)

Introdução (Informal) à Programação


Algoritmo 3 maior divisor comum

Algoritmo 3 – Maior Divisor Comum”

C  X – Y

novo X  max(Y,C)

novo Y  min(Y,C)

Introdução (Informal) à Programação


Algoritmo 3 maior divisor comum1

Algoritmo 3 – Maior Divisor Comum”

  • entra A ; entra B ;

  • Se A > B então

  • X  A; Y  B;

  • senão

  • X  B; Y  A;

  • fim se

  • D  A - B

  • enquanto D > 0 fazer

  • se D > Y então

  • X  D;

  • senão

  • X  Y; Y  D;

  • fim se

  • D  X-Y;

  • fim enquanto

  • sai X

Introdução (Informal) à Programação


  • Login