INTRODUÇÃO À PROGRAMAÇÃO

Tamanho: px
Começar a partir da página:

Download "INTRODUÇÃO À PROGRAMAÇÃO"

Transcrição

1 O que é um programa? Matlab vs outras linguagens de programação Paradigma de programação Fases de desenvolvimento de um programa

2 CPU Hardware Periféricos Sistema Software Aplicação

3 O que é um programa? Computadores podem manipular e calcular grandes quantidades de informação a grande velocidade. São inúteis se não se específica exactamente o que queremos realizar com eles através de comandos bem definidos. Um Programa é um conjunto de comandos.

4 Linguagens de programação A partir de 1940 foram sendo desenvolvidos várias linguagens de programação: Maquina, baixo nível, alto nível, Matlab, C++, JAVA, Fortran, O que distingue as linguagens são os tipos de problemas que pretendem resolver. Matlab: excelente para escrever pequenos programas que manipulam números. Problemas complexos podem ser resolvidos em poucas linhas de código.

5 Exemplo de um programa Cálculo de uma média pesada: Notas: n1, n2 e n3. Pesos respectivos: p1, p2 e p3.

6 Programa em C para o calculo da média #include "stdio.h" void main(void) { const int N = 3; float pesos[n]; float notas[n]; float soma; float soma_pesos; float media; int i; printf("\n*********************************"); printf("\n* Calculo da media de tres notas*"); printf("\n*********************************\n") ; for(i = 0; i<n; i++) { printf("introduza a nota %d: ",i); scanf(" %f",&notas[i]); } printf("\n"); for(i = 0; i<n; i++) { printf("introduza o peso %d: ",i); scanf(" %f",&pesos[i]); } soma = 0; soma_pesos = 0; for(i = 0; i <N; i++) { soma = soma + notas[i]*pesos[i]; soma_pesos = soma_pesos + pesos[i]; } media = soma/soma_pesos; printf("\na media é: %f",media);

7 Programa em Matlab % Programa para calcular uma media pesada notas = input('introduza as notas: '); pesos = input('introduza os pesos: '); media = sum(notas.*pesos)/sum(pesos)

8 Comparação Matlab/C Matlab tem vantagens: Programas muito mais simples: escrita mais rápida e com menos erros. Versatilidade, mais fácil de adaptar a diferentes tipos de dados. Muito eficiente e melhor solução para pequenos programas que envolvem calculo numérico => Muitos dos problemas de engenharia encaixam neste perfil

9 Comparação Matlab/C Mas existe um preço a pagar: Para programas mais complexos, melhor outras linguagens mais estruturados que reduzem a possibilidade de erro. Ex: Sistemas operativos Pouco optimizado para operações não numéricas (aplicações gráficas, processadores de texto, etc ) Matlab é interpretado, logo mais lento.

10 MATLAB==MATrix LABoratory

11

12 Paradigma de Programação Metodologia de programação para desenvolver uma aplicação: Dividir para conquistar. Decomposição de cima para baixo (Top-Down). Refinamento passo a passo.

13 Fases de desenvolvimento de um programa Analise do problema Especificação do problema Análise algorítmica Teste do algoritmo Implementação da aplicação Geração do código Teste e validação do código

14 Algoritmo

15 Algoritmos A formulação de um problema é frequentemente mais essencial do que a sua solução, a qual pode ser meramente uma questão de habilidade matemática ou experimental. Einstein

16 Problema: Estamos numa sala escura e pretende-se luz. Fluxograma

17 Pseudo-código Linguagem intermédia para facilitar o desenvolvimento do algoritmo. Combinação de português\inglês com matlab para descrever o algoritmo sem se preocupar com pormenores sintácticos.

18 Exemplo: INTRODUÇÃO À PROGRAMAÇÃO Cálculo de uma média ponderada e indicação se aprovado ou reprovado. Ler as notas Ler os pesos Calcular a média com os pesos Se média >= 9.5 escrever aprovado caso contrário escrever reprovado

19 Características de um algoritmo Um bom algoritmo deve: Resolver classes de problemas e não problemas particulares (considerar todas os valores possíveis para as variáveis de entrada) Ser eficiente, resolvendo o problema com o menor custo possível (em termos de nº de instruções ou espaço de memória) Terminar com uma solução ou indicando que não há solução.

20 Decomposição da solução Top down design - Dividir para conquistar. Melhor estratégia para lidar com a complexidade. - Consiste em descrever o problema num conjunto de sub-problemas de resolução mais fácil. Decomposição. Cada sub-problema pode também ser subdividido (refinamento progressivo). - Só depois se programa.

21 Fases de desenvolvimento de um programa 1. Definir o problema 2. Especificar as entradas e saídas 3. Escrever o algoritmo a. Decomposição em sub-problemas b. Refinamento progressivo 4. Converter o programa em código matlab 5. Testar o programa

22 Exemplo: Etapa 1: Enunciado do Problema: Calculo da distância em linha recta entre dois pontos num plano Etapa 2: Descrição de Entrada e Saída: Escrita da informação que é dada para resolução do problema para então proceder-se a identificação dos valores a serem calculados Etapa 3: Escrever o algoritmo: Uma vez que pode-se trabalhar o problema com um simples grupo de dados, então está-se pronto para o desenvolvimento de um algoritmo ou um esboço passo a passo da solução. Este Esboço é convertido para os comandos do MATLAB para que o computador faça todos os cálculos necessários.

23 Etapa 4: Solução MATLAB % Note que o sinal % é usado para anteceder comentários % que explicam % os comandos do MATLAB. % Este programa calcule e imprime a distância em linha recta, entre dois % pontos p1=[1, 5] % Ponto 1 INTRODUÇÃO À PROGRAMAÇÃO p2=[4,7] % Ponto 2 % Calcular distância: d=sqrt(sum((p2-p1).^2)) % Matematicamente: ( ) ( ) 2 2 d = x x + y y Etapa 5: Testando Pode-se testar manualmente, neste case d=3.6056

24 ASPECTOS LIGADOS ÀS AULAS E ESTUDO DESTA MATÉRIA Abrir conta nos computadores do DEEI: Contactar Técnico de Informática, Artur Martins, sala C Utilização das salas de acesso livre: C e C APRENDE-SE A PROGRAMAR, PROGRAMANDO!!!