Carregar apresentação
A apresentação está carregando. Por favor, espere
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.