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

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

Introdução à Programação ETI e IGE ISCTE. 2003/2004 Introdução à Programação 2 Docentes Manuel Menezes de Sequeira Joaquim Esmerado Maria Albuquerque.

Apresentações semelhantes


Apresentação em tema: "Introdução à Programação ETI e IGE ISCTE. 2003/2004 Introdução à Programação 2 Docentes Manuel Menezes de Sequeira Joaquim Esmerado Maria Albuquerque."— Transcrição da apresentação:

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

2 2003/2004 Introdução à Programação 2 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

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

4 2003/2004 Introdução à Programação 4 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

5 2003/2004 Introdução à Programação 5 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++

6 2003/2004 Introdução à Programação 6 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

7 2003/2004 Introdução à Programação 7 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

8 2003/2004 Introdução à Programação 8 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

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

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

11 2003/2004 Introdução à Programação 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

12 2003/2004 Introdução à Programação 12 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

13 2003/2004 Introdução à Programação 13 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)

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

15 2003/2004 Introdução à Programação 15 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

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

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

18 2003/2004 Introdução à Programação 18 Traçado do algoritmo do mdc Transiçãomnkm < nm ÷ k <> 0n ÷ k <> 0m ÷ k <> 0 ou n ÷ k <> ?Falso??? 4128?Falso???

19 2003/2004 Introdução à Programação 19 Traçado do algoritmo do mdc Transiçãomnkm < nm ÷ k <> 0n ÷ k <> 0m ÷ k <> 0 ou n ÷ k <> ?Falso??? 4128?Falso??? 51288FalsoVerdadeiroFalsoVerdadeiro

20 2003/2004 Introdução à Programação 20 Traçado do algoritmo do mdc Transiçãomnkm < nm ÷ k <> 0n ÷ k <> 0m ÷ k <> 0 ou n ÷ k <> ?Falso??? 4128?Falso??? 51288FalsoVerdadeiroFalsoVerdadeiro 61288FalsoVerdadeiroFalsoVerdadeiro

21 2003/2004 Introdução à Programação 21 Traçado do algoritmo do mdc Transiçãomnkm < nm ÷ k <> 0n ÷ k <> 0m ÷ k <> 0 ou n ÷ k <> ?Falso??? 4128?Falso??? 51288FalsoVerdadeiroFalsoVerdadeiro 61288FalsoVerdadeiroFalsoVerdadeiro 71287FalsoVerdadeiro

22 2003/2004 Introdução à Programação 22 Traçado do algoritmo do mdc Transiçãomnkm < nm ÷ k <> 0n ÷ k <> 0m ÷ k <> 0 ou n ÷ k <> ?Falso??? 4128?Falso??? 51288FalsoVerdadeiroFalsoVerdadeiro 61288FalsoVerdadeiroFalsoVerdadeiro 71287FalsoVerdadeiro 61287FalsoVerdadeiro

23 2003/2004 Introdução à Programação 23 Traçado do algoritmo do mdc Transiçãomnkm < nm ÷ k <> 0n ÷ k <> 0m ÷ k <> 0 ou n ÷ k <> ?Falso??? 4128?Falso??? 51288FalsoVerdadeiroFalsoVerdadeiro 61288FalsoVerdadeiroFalsoVerdadeiro 71287FalsoVerdadeiro 61287FalsoVerdadeiro 71286Falso Verdadeiro

24 2003/2004 Introdução à Programação 24 Traçado do algoritmo do mdc Transiçãomnkm < nm ÷ k <> 0n ÷ k <> 0m ÷ k <> 0 ou n ÷ k <> ?Falso??? 4128?Falso??? 51288FalsoVerdadeiroFalsoVerdadeiro 61288FalsoVerdadeiroFalsoVerdadeiro 71287FalsoVerdadeiro 61287FalsoVerdadeiro 71286Falso Verdadeiro 61286Falso Verdadeiro

25 2003/2004 Introdução à Programação 25 Traçado do algoritmo do mdc Transiçãomnkm < nm ÷ k <> 0n ÷ k <> 0m ÷ k <> 0 ou n ÷ k <> ?Falso??? 4128?Falso??? 51288FalsoVerdadeiroFalsoVerdadeiro 61288FalsoVerdadeiroFalsoVerdadeiro 71287FalsoVerdadeiro 61287FalsoVerdadeiro 71286Falso Verdadeiro 61286Falso Verdadeiro 71285FalsoVerdadeiro

26 2003/2004 Introdução à Programação 26 Traçado do algoritmo do mdc Transiçãomnkm < nm ÷ k <> 0n ÷ k <> 0m ÷ k <> 0 ou n ÷ k <> ?Falso??? 4128?Falso??? 51288FalsoVerdadeiroFalsoVerdadeiro 61288FalsoVerdadeiroFalsoVerdadeiro 71287FalsoVerdadeiro 61287FalsoVerdadeiro 71286Falso Verdadeiro 61286Falso Verdadeiro 71285FalsoVerdadeiro 61285FalsoVerdadeiro

27 2003/2004 Introdução à Programação 27 Traçado do algoritmo do mdc Transiçãomnkm < nm ÷ k <> 0n ÷ k <> 0m ÷ k <> 0 ou n ÷ k <> ?Falso??? 4128?Falso??? 51288FalsoVerdadeiroFalsoVerdadeiro 61288FalsoVerdadeiroFalsoVerdadeiro 71287FalsoVerdadeiro 61287FalsoVerdadeiro 71286Falso Verdadeiro 61286Falso Verdadeiro 71285FalsoVerdadeiro 61285FalsoVerdadeiro 71284Falso

28 2003/2004 Introdução à Programação 28 Traçado do algoritmo do mdc Transiçãomnkm < nm ÷ k <> 0n ÷ k <> 0m ÷ k <> 0 ou n ÷ k <> ?Falso??? 4128?Falso??? 51288FalsoVerdadeiroFalsoVerdadeiro 61288FalsoVerdadeiroFalsoVerdadeiro 71287FalsoVerdadeiro 61287FalsoVerdadeiro 71286Falso Verdadeiro 61286Falso Verdadeiro 71285FalsoVerdadeiro 61285FalsoVerdadeiro 71284Falso 81284Falso

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

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

31 2003/2004 Introdução à Programação 31 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

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

33 2003/2004 Introdução à Programação 33 Programa mdc em C++ #include 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; }

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

35 2003/2004 Introdução à Programação 35 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

36 2003/2004 Introdução à Programação 36 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


Carregar ppt "Introdução à Programação ETI e IGE ISCTE. 2003/2004 Introdução à Programação 2 Docentes Manuel Menezes de Sequeira Joaquim Esmerado Maria Albuquerque."

Apresentações semelhantes


Anúncios Google