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

Slides:



Advertisements
Apresentações semelhantes
1.3.2 – Linguagem Assembly Um programa em linguagem de máquina sofre de total falta de clareza O programa é uma sequência de linhas numeradas Cada linha.
Advertisements

Introdução à Ciência da Computação Linguagens de Programação.
Algoritmo Exemplo: faça um algoritmo para tocar todas as músicas de um cd. Após o usuário apertar o play Algoritmo Para as músicas de 1 até última música.
Paulo Marques Hernâni Pedroso
ENGENHARIA CIVIL COMPUTAÇÃO APLICADA Aula 12
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 4.
O Essencial sobre Linguagens de Programação Luís Caires Maio 2005.
9 de Março de 2006Trajectória de um Projéctil1 Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação 2º Semestre 2005/2006.
16 Março 2006Vectores, Gráficos e Funções - Trajectória de um Projéctil1 Vectores, Gráficos e Funções Trajectória de Projéctil Pedro Barahona DI/FCT/UNL.
6 Outubro de 2005Trajectória de um Projéctil1 Jorge Cruz DI/FCT/UNL Introdução aos Computadores e à Programação 1º Semestre 2005/2006.
1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005.
Funções, Execução Condicional, Recursividade e Iteração
7 de Março de 2006 Introdução (Informal) à Programação 1 Pedro Barahona DI/FCT/UNL Programação para as Ciências Experimentais 2º Semestre 2005/2006.
Recursividade e Iteração Factorial, Fibonacci e Maior Divisor Comum
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
31 de Março de 2005Trajectória de um Projéctil - Gráficos e Funções1 Trajectória de Projéctil –Gráficos e Funções Pedro Barahona DI/FCT/UNL Março 2005.
Vectores, Gráficos e Funções Trajectória de um Projéctil
Ciclos e Funções Trajectória de Projéctil Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação 2º Semestre 2007/2008.
Introdução aos Computadores e à Programação
1 Introdução (Informal) à Programação DI/FCT/UNL 1º Semestre 2004/2005.
Introdução (Informal) à Programação
2 de Junho de 2005Conclusão1 Pedro Barahona DI/FCT/UNL Junho 2005.
5 Março 2007Ciclos e Funções - Trajectória de um Projéctil1 Ciclos e Funções Trajectória de Projéctil Pedro Barahona DI/FCT/UNL Introdução aos Computadores.
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.
Introdução aos Computadores e à Programação
Matrizes e Gráficos Trajectória de Projéctil Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação 2º Semestre 2008/2009.
ELEMENTOS DA INFORMÁTICA
Software Básico Silvio Fernandes
Introdução a Programação Renata Freire
INTRODUÇÃO À PROGRAMAÇÃO
THOBER CORADI DETOFENO, MSC. Aula 07
Linguagens de Programação
Laboratório de Programação de Computadores I
Sincronização e Comunicação entre Processos
Introdução a Linguagem de Programação C
Paradigmas de programação
Algoritmos e Estruturas de Dados I – Estruturas de Dados
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
PROGRAMAÇÃO I UNIDADE 1.
Funcionamento básico de um computador
Comunicação Inclusiva Acessibilidade e Programação Web
Compiladores, Aula Nº 7 João M. P. Cardoso
16/17 de Março de 2004 Introdução (Informal) à Programação 1 Pedro Barahona DI/FCT/UNL Março 2004.
Estrutura de dados, pseudocódigo
FTIN Formação Técnica em Informática
Linguagens de programação
Introdução a Programação
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
PROGRAMAÇÃO ESTRUTURADA (MODULARIZAÇÃO/SUBPROGRAMAÇÃO)
Laboratório I Mateus Raeder Material baseado nos originais da
História dos computadores e da programação
DESIGN E COMUNICAÇÃO MULTIMÉDIA 2011 / 2012 DESIGN E COMUNICAÇÃO MULTIMÉDIA 2011 / 2012 FORMADOR Gonçalo Miguel MÓDULO 25. Introdução ao ActionScript 3.0.
Organização e Arquitetura de Computadores
02/08/2011 Professor Leomir J. Borba- –
Conceitos Programas Programação Linguagens de Programação SQL.
Paradigma funcional.
Técnicas de Programação - TPR
Introdução a Algoritmos
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Introdução à Linguagem C
Algoritmos e Estruturas de Dados I – Estruturas de Dados
Algoritmos Estruturados
Linguagens de Programação Introdução Prof. Renato Melo.
Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004
Fundamentos de linguagens de programação
Programação de Computadores - 1
13/14 Abril de 2004Trajectória de um Projéctil1 Trajectória de Projéctil - Funções Pedro Barahona DI/FCT/UNL Março 2004.
Influencias sobre o Projeto da Linguagem
LÓGICA DE PROGRAMAÇÃO Curso: Técnico em Informática Professor: Ronaldo Disciplina: Lógica de Programação.
Módulo I – Softwares: Linguagens de Programação Prof.: Rogério Morais.
Transcrição da apresentação:

Introdução (Informal) à Programação Pedro Barahona DI/FCT/UNL Março 2004 10 de Março de 2005 Introdução (Informal) à Programação

Introdução (Informal) à Programação 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. Programa input output 10 de Março de 2005 Introdução (Informal) à Programação

Introdução (Informal) à Programação 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. Vá para Lisboa Saia da sala Saia do Edifício Dirija-se à portaria Vá para a paragem de autocarro Apanhe o autocarro .... 10 de Março de 2005 Introdução (Informal) à Programação

Introdução (Informal) à Programação 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. C  A + B LDA 1005 LDB 22345A91 ADD A,B STA 1234FE88 10 de Março de 2005 Introdução (Informal) à Programação

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). C  A + B LDA 11A810A0 LDB 22345A91 ADD A,B STA 1234FE88 10 de Março de 2005 Introdução (Informal) à Programação

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 10 de Março de 2005 Introdução (Informal) à Programação

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 10 de Março de 2005 Introdução (Informal) à Programação

Introdução (Informal) à Programação 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 10 de Março de 2005 Introdução (Informal) à Programação

Introdução (Informal) à Programação 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 10 de Março de 2005 Introdução (Informal) à Programação

Introdução (Informal) à Programação 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 10 de Março de 2005 Introdução (Informal) à Programação

Introdução (Informal) à Programação 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. 10 de Março de 2005 Introdução (Informal) à Programação

Introdução (Informal) à Programação 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. 10 de Março de 2005 Introdução (Informal) à Programação

Introdução (Informal) à Programação 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 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 10 de Março de 2005 Introdução (Informal) à Programação

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); se D = 0 então sai ‘ 2 raízes iguais’ R  -B/(2*A); sai R senão R1  (-B + D)/(2*A); sai R1; R2  (-B - D)/(2*A); sai R2; fim se; 10 de Março de 2005 Introdução (Informal) à Programação

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) # iter R T dif 1.00 49.00 48.000 1 25.00 1.96 23.040 2 13.48 3.64 9.845 3 8.56 5.73 2.832 4 7.14 6.86 0.281 5 7.00 2.81E-03 6 2.83E-07 7 3.55E-15 10 de Março de 2005 Introdução (Informal) à Programação

Algoritmo 3 – Teste da “Primalidade entra N ; primo  verdade ; limA = sqrt(N); para A de 2 a limA fazer limB = N / A; para B de A a limB fazer se A * B = N então primo  falso; fim se; fim para se primo então sai ‘o número é primo’ senão sai ‘o número não é primo’ Exemplo: 23 sqrt(23) = 4.7958... 2 * 2 ... 2 * 11 % 23/2 = 11.5 3 * 3 3 * 7 % 23/3 = 7.67 4 * 4 4 * 5 % 23/4 = 5.75 10 de Março de 2005 Introdução (Informal) à Programação