1 / 17

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

Introdução (Informal) à Programação. Pedro Barahona DI/FCT/UNL Março 2004. Responsável (substituição): Pedro Barahona ( pb@di.fct.unl.pt / centria.di.fct.unl.pt/~pb) Assistentes: Susana Nascimento, Joaquim Ferreira da Silva, Jorge Simão, Jorge Custódio, Alexandre Pinto, Bruno Barreiros

jela
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introdução (Informal) à Programação Pedro Barahona DI/FCT/UNL Março 2004 Introdução (Informal) à Programação

  2. Responsável (substituição): • Pedro Barahona ( pb@di.fct.unl.pt / centria.di.fct.unl.pt/~pb) • Assistentes: • Susana Nascimento, Joaquim Ferreira da Silva, Jorge Simão, Jorge Custódio, Alexandre Pinto, Bruno Barreiros • Objectivos • Introdução à Algoritmia • Familiarização com uma linguagem imperativa (Octave/MATLAB) • Aplicação a problemas de engenharia Introdução (Informal) à Programação

  3. Avaliação • Regras de Avaliação: • Trabalho de HTML • Semana de 15-Mar a 19-Mar • Mini-teste de Octave • Semana de 29-Mar a 2-Abr • Trabalho de Octave (1) • Semana de 3-Mai a 7-Mai • Trabalho de Octave (2) • Semana de 31-Mai a 4-Jun • Nota Final: • 25 % - Testes e Trabalhos em grupos de 2 • 75% - Exame Individual (Programação - Algoritmia e Octave) Introdução (Informal) à Programação

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

  5. 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” fôr o interlocutor, a mais alto nível podem ser dadas as intruções. Introdução (Informal) à Programação

  6. LDA 11A810A0 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

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

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

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

  10. 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 e • 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

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

  12. Controle de Execução • Execução Repetida (“enquanto”) • Exemplo: • entra A; • B  1 ; % o valor de A é “entrado” • 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

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

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

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

  16. 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); • R1  (-B + D)/(2*A); • R2  (-B - D)/(2*A); • sai R1; • sai R2; • fim se; Introdução (Informal) à Programação

  17. Algoritmo 2 – Cálculo da Raiz Quadrada • 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) Introdução (Informal) à Programação

More Related