A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução à Programação

Apresentações semelhantes


Apresentação em tema: "Introdução à Programação"— Transcrição da apresentação:

1 Introdução à Programação
ETI e IGE ISCTE

2 Introdução à Programação
Docentes Manuel Menezes de Sequeira Joaquim Esmerado Maria Albuquerque Luís Mota Responsável: Prof. Manuel Menezes de Sequeira Gabinete D6.18 Cacifo 202 Telefone Telemóvel MSN: Yahoo!: Manuel_Menezes_de_Sequeira Introdução à Programação 2003/2004

3 Introdução à Programação
Informação Folhas teóricas Diapositivos das aula teóricas Resumos das aulas práticas Introdução à Programação 2003/2004

4 Introdução à Programação
Avaliação Problema: 10% Em grupo Trabalho Final: 40% Entrega intermédia: avaliação negativa = -3 Entrega final: trabalho completo Em grupo, com discussão individual Frequência: 50% Individual, sem consulta: nota mínima 7 Grupos: 2 alunos Introdução à Programação 2003/2004

5 Introdução à Programação
Objectivos Conhecer abordagens típicas de resolução de problemas Ser capaz de planear resolução de problemas, desenhando e estruturando programas Dominar ambiente de desenvolvimento e respectivas ferramentas Ter conhecimentos intermédios de C++ Introdução à Programação 2003/2004

6 Introdução à Programação
Programa (I) Programação procedimental Tipos, variáveis e constantes Modularização, abstracção e encapsulamento Rotinas Noções de programação por contrato: asserções Controlo de fluxo Desenvolvimento de ciclos Agregados Introdução à Programação 2003/2004

7 Introdução à Programação
Programa (II) Programação baseada em objectos: Tipos abstractos de dados Invariantes de classe Classes e categorias de acesso De novo modularização, abstracção e encapsulamento Introdução à Programação 2003/2004

8 Introdução à Programação
Metodologia Aulas teóricas (2 x 50m) Aulas laboratoriais (3 x 50m) Aulas de dúvidas Esclarecimento de dúvidas via correio electrónico Por vezes no canal #C++ do IRC Introdução à Programação 2003/2004

9 Introdução à programação
Aula 1 Introdução à programação

10 Introdução à Programação
O que é um computador? Máquina programável genérica Processador Memória rápida RAM e ROM Memória lenta disco rígido Introdução à Programação 2003/2004

11 Arte de Resolver Problemas
Diz-se que só se compreende realmente um assunto depois de o ter ensinado a alguém. Na realidade, só se compreende realmente um assunto depois de o ter ensinado a um computador. Donald E. Knuth Introdução à Programação 2003/2004

12 Introdução à Programação
Algoritmo Método de resolução de problema Características: Finitude: tem de terminar Definitude: cada passo bem definido Entradas: zero ou mais, de conjunto bem definido Saídas: uma ou mais, dependem das entradas Eficácia: operações todas executáveis Introdução à Programação 2003/2004

13 Introdução à Programação
Problema Cálculo do máximo divisor comum de dois inteiros positivos Entradas: m e n Saídas: k, tal que k = mdc(m, n) 0 < mdc(m, n), ou seja, 1 <= mdc(m, n) mdc(m, n) <= min(m, n) Introdução à Programação 2003/2004

14 Introdução à Programação
Variáveis Nome Tipo m : inteiro 12 Valor Introdução à Programação 2003/2004

15 Introdução à Programação
Algoritmo do mdc 1 se m < n então 2 k <- m 3 senão 4 k <- n 5 enquanto m ÷ k <> 0 ou n ÷ k <> 0 faça-se: 6 k <- k – 1 7 fim do enquanto 8 Introdução à Programação 2003/2004

16 Traçado do algoritmo do mdc
Transição m n k m < n m ÷ k <> 0 n ÷ k <> 0 m ÷ k <> 0 ou n ÷ k <> 0 Introdução à Programação 2003/2004

17 Traçado do algoritmo do mdc
Transição m n k m < n m ÷ k <> 0 n ÷ k <> 0 m ÷ k <> 0 ou n ÷ k <> 0 1 12 8 ? Falso Introdução à Programação 2003/2004

18 Traçado do algoritmo do mdc
Transição m n k m < n m ÷ k <> 0 n ÷ k <> 0 m ÷ k <> 0 ou n ÷ k <> 0 1 12 8 ? Falso 4 Introdução à Programação 2003/2004

19 Traçado do algoritmo do mdc
Transição m n k m < n m ÷ k <> 0 n ÷ k <> 0 m ÷ k <> 0 ou n ÷ k <> 0 1 12 8 ? Falso 4 5 Verdadeiro Introdução à Programação 2003/2004

20 Traçado do algoritmo do mdc
Transição m n k m < n m ÷ k <> 0 n ÷ k <> 0 m ÷ k <> 0 ou n ÷ k <> 0 1 12 8 ? Falso 4 5 Verdadeiro 6 Introdução à Programação 2003/2004

21 Traçado do algoritmo do mdc
Transição m n k m < n m ÷ k <> 0 n ÷ k <> 0 m ÷ k <> 0 ou n ÷ k <> 0 1 12 8 ? Falso 4 5 Verdadeiro 6 7 Introdução à Programação 2003/2004

22 Traçado do algoritmo do mdc
Transição m n k m < n m ÷ k <> 0 n ÷ k <> 0 m ÷ k <> 0 ou n ÷ k <> 0 1 12 8 ? Falso 4 5 Verdadeiro 6 7 Introdução à Programação 2003/2004

23 Traçado do algoritmo do mdc
Transição m n k m < n m ÷ k <> 0 n ÷ k <> 0 m ÷ k <> 0 ou n ÷ k <> 0 1 12 8 ? Falso 4 5 Verdadeiro 6 7 Introdução à Programação 2003/2004

24 Traçado do algoritmo do mdc
Transição m n k m < n m ÷ k <> 0 n ÷ k <> 0 m ÷ k <> 0 ou n ÷ k <> 0 1 12 8 ? Falso 4 5 Verdadeiro 6 7 Introdução à Programação 2003/2004

25 Traçado do algoritmo do mdc
Transição m n k m < n m ÷ k <> 0 n ÷ k <> 0 m ÷ k <> 0 ou n ÷ k <> 0 1 12 8 ? Falso 4 5 Verdadeiro 6 7 Introdução à Programação 2003/2004

26 Traçado do algoritmo do mdc
Transição m n k m < n m ÷ k <> 0 n ÷ k <> 0 m ÷ k <> 0 ou n ÷ k <> 0 1 12 8 ? Falso 4 5 Verdadeiro 6 7 Introdução à Programação 2003/2004

27 Traçado do algoritmo do mdc
Transição m n k m < n m ÷ k <> 0 n ÷ k <> 0 m ÷ k <> 0 ou n ÷ k <> 0 1 12 8 ? Falso 4 5 Verdadeiro 6 7 Introdução à Programação 2003/2004

28 Traçado do algoritmo do mdc
Transição m n k m < n m ÷ k <> 0 n ÷ k <> 0 m ÷ k <> 0 ou n ÷ k <> 0 1 12 8 ? Falso 4 5 Verdadeiro 6 7 Introdução à Programação 2003/2004

29 Diagrama de actividade
Início da actividade Entroncamento Ramificação Transição [¬G] Guarda [G] passo Actividade Fim da actividade Introdução à Programação 2003/2004

30 Diagrama de actividade do mdc
{0  m  0  n} [m < n] [m  n] k  m k  n {k = min(m, n)} {mdc(m, n)  k} [m ÷ k = 0  n ÷ k = 0] {mdc(m, n) < k} [m ÷ k  0  n ÷ k  0] {k = mdc(m, n)} k  k - 1 {mdc(m, n)  k} Introdução à Programação 2003/2004

31 Introdução à Programação
Linguagens Linguagem natural Português Ambígua e imprecisa Linguagem máquina Muito básica: usada pelos computadores Linguagem de programação de alto nível Sem ambiguidades nem imprecisões Não tão penosa como linguagem máquina Introdução à Programação 2003/2004

32 Linguagem de programação C++
máquina Compilador de C++ Processador Introdução à Programação 2003/2004

33 Introdução à Programação
Programa mdc em C++ #include <iostream> using namespace std; int main() { cout << "Introduza dois inteiros positivos: "; int m, n; cin >> m >> n; int k; if(m < n) k = m; else k = n; while(m % k != 0 or n % k != 0) --k; cout << "O máximo divisor comum de " << m << " e " << n << " é " << k << endl; } Introdução à Programação 2003/2004

34 Fases da resolução de problemas
Especificação Humano Desenvolvimento do algoritmo Concretização do algoritmo na linguagem de programação Tradução do programa para linguagem máquina Computador Execução do programa (e.g., mdc(131, 47)) Introdução à Programação 2003/2004

35 Introdução à Programação
A reter... Programar Resolver problemas Algoritmo Receita finita, definida, com entradas, com saídas e eficaz Correcção de algoritmo Não se demonstra por testes Tipos de linguagens Naturais, de programação de alto nível, máquina, etc. Programa Concretização numa linguagem de programação Compilador Traduz programa de linguagem de programação para linguagem máquina Introdução à Programação 2003/2004

36 Introdução à Programação
Aula 1: Sumário Computador como máquina programável Programação: arte de resolver problemas Conceito de algoritmo Conceitos de linguagens naturais, de programação e máquina Programa: concretização dum algoritmo Fases da resolução dum problema usando um computador Introdução à Programação 2003/2004


Carregar ppt "Introdução à Programação"

Apresentações semelhantes


Anúncios Google