Introdução à Programação

Slides:



Advertisements
Apresentações semelhantes
Programação II Licenciatura de Ciências da Computação Padoca Calado
Advertisements

Fundamentos da Didáctica da Matemática
Programação em Java Prof. Maurício Braga
Binding Amarração de endereços de Protocolos
Introdução à Ciência da Computação Linguagens de Programação.
Capítulo 1 Introdução.
Análise do Lugar das Raízes Introdução. 6. 2
Fundamento de Electrónica
Fundamento de Electrónica Docente: Paulo Lopes.
1 Arquitectura de Computadores II Ano lectivo 2008/09
Arquitectura de Computadores I
1 Economia I Economia I lic Contabilidade
Investigação Operacional 2009/2010 José Fernando Oliveira Manuel Pina Marques Maria Antónia Carravilla.
Métodos de Decisão 2008/2009 José Fernando Oliveira Maria Antónia Carravilla Mestrado Integrado em Engenharia.
O Essencial sobre Linguagens de Programação Luís Caires Maio 2005.
2 de Junho de 2005Conclusão1 Pedro Barahona DI/FCT/UNL Junho 2005.
Introdução aos Computadores e Programação
1 Conclusão DI/FCT/UNL 1º Semestre 2004/ Ciclos de Simulação A técnica usada no exemplo da queda livre pode ser utilizada para trajectórias a duas.
Múltiplos Os múltiplos de um número inteiro obtêm-se multiplicando esse número por 0, 1, 2, 3, 4, 5, 6, ... Exemplos: M5= {0, 5, 10, 15, 20,
Profa. M.Sc. Yáskara Menescal
Informática Aplicada Prof. Araken Medeiros
Algoritmos e Programação Linguagens de Programação Teoria Aula (09/06)
AULA 23 Profa. Sandra de Amo GBC053 – BCC
Modelagem de Sistemas de Informação I 2013/2 Laboratórios de Especificação Prof. Eber equipe.nce.ufrj.br/eber.
SSC114 Arquitetura de Computadores Pipeline - Desempenho
INTRODUÇÃO À PROGRAMAÇÃO
Engenharia Software Artigo Final
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Componentes do Computador e noções de Arquitetura de Computadores
ALGORITMO E ESTRUTURA DE DADOS
CÁLCULOS FINANCEIROS 2ª aula
Programação e Sistemas de Informação
Fundamento de Electrónica Docente: Paulo Lopes. 2 Contacto Gabinete D637 Cacifo309.
Modularização: funções e procedimentos
Aula 10 Tipos Abstractos de Dados I. 2003/2004 Introdução à Programação 2 Flashback Lembram-se da Aula 4?
2002/2003 Programação Orientada para Objectos 1 Aula 11: Genericidade Genericidade usando herança Conceito de rotina genérica Conceito de classe genérica.
Programação Orientada para Objectos
Programação Baseada em Objectos Desenho de TAD
Programação Orientada para Objectos
Apresentação da disciplina
Manuel Pina Marques Marta Rocha
Prof. Luciel Henrique de Oliveira
Processamento da Informação BC-05045
Investigação Operacional 2011/2012 Isabel Horta José Fernando Oliveira Luís Guimarães Teresa Bianchi.
Complexidade de Algoritmos
Prof. João Paulo de Toledo Gomes
CÁLCULO NUMÉRICO Introdução Prof. Esp. Geonir Paulo Schnorr
Métodos de Decisão 2010/2011 Maria Antónia Carravilla José Fernando Oliveira Marta Soares Rocha.
Investigação Operacional 2010/2011 Manuel Pina Marques Maria Antónia Carravilla Vera Lúcia Oliveira.
Comunicação Inclusiva Acessibilidade e Programação Web
Investigação Operacional 2005/2006 António Miguel Gomes José Fernando Oliveira Maria Antónia Carravilla.
Licenciatura em Ciências Biomédicas
UML – Diagrama de Classes
© Introdução à programação Ano lectivo 2006/2007.
Problemas de Fluxo Máximo
LINGUAGENS DE PROGRAMAÇÃO PROF. DANIELA PIRES
Fábio de Oliveira Borges
Arquitetura do Software
Complexidade computacional
Introdução à Informática Profa. Regiane Klidzio
Desenho e Modelação Geométrica (2014/15) Apresentação 2011/12.
ALGORITMOS Intensivo Janeiro e Fevereiro de 2011
Ciclo Básico Curso Técnico de Informática AULA 2 Prof.º Carlos Trentini Hardware Básico.
Aula 5 Disciplina: Sistemas de Controle 1 - ET76H
Métodos Estatísticos LESI. Equipa Docente Docente: Maria Antónia Forjaz Gabinete: Gab2017, Dep. de Mat. Tel: (253 60) 4346
Sistemas Operacionais de Rede
Métodos anteriores aos computadores Computadores
Investigação Operacional 2007/2008 José Fernando Oliveira Maria Antónia Carravilla Licenciatura em Engenharia.
Métodos de Decisão 2006/2007 José Fernando Oliveira Maria Antónia Carravilla Licenciatura em Engenharia.
TRABALHANDO COM JOGOS NO COMPUTADOR
Transcrição da apresentação:

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

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

Introdução à Programação Informação http://iscte.pt/programacao/p1 http://br.groups.yahoo.com/group/ip-iscte ip-iscte@yahoogrupos.com.br Folhas teóricas Diapositivos das aula teóricas Resumos das aulas práticas Introdução à Programação 2003/2004

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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