introduÇÃo À programaÇÃo - intranet.deei.fct.ualg.pt · introduÇÃo À programaÇÃo....

24
O que é um programa? Matlab vs outras linguagens de programação Paradigma de programação Fases de desenvolvimento de um programa INTRODUÇÃO À PROGRAMAÇÃO

Upload: others

Post on 22-Jul-2020

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

• O que é um programa?

• Matlab vs outras linguagens de programação

• Paradigma de programação

• Fases de desenvolvimento de um programa

INTRODUÇÃO À PROGRAMAÇÃO

Page 2: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

• Hardware

INTRODUÇÃO À PROGRAMAÇÃO

• CPU

• Periféricos

• Sistema

• Aplicação

• Software

Page 3: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

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.

INTRODUÇÃO À PROGRAMAÇÃO

Page 4: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

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.

INTRODUÇÃO À PROGRAMAÇÃO

Page 5: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

Exemplo de um programa

Cálculo de uma média pesada:

– Notas: n1, n2 e n3.

– Pesos respectivos: p1, p2 e p3.

INTRODUÇÃO À PROGRAMAÇÃO

Page 6: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

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);

• #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 tresnotas*");

• printf("\n*********************************\n");

• for(i = 0; i<N; i++)

• {

• printf("Introduza a nota %d: ",i);

• scanf(" %f",&notas[i]);

• }

Programa em C para o calculo da média

INTRODUÇÃO À PROGRAMAÇÃO

Page 7: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

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)

INTRODUÇÃO À PROGRAMAÇÃO

Page 8: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

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

INTRODUÇÃO À PROGRAMAÇÃO

Page 9: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

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.

INTRODUÇÃO À PROGRAMAÇÃO

Page 10: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

MATLAB==MATrix LABoratory

INTRODUÇÃO À PROGRAMAÇÃO

Page 11: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

INTRODUÇÃO À PROGRAMAÇÃO

Page 12: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

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.

INTRODUÇÃO À PROGRAMAÇÃO

Page 13: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

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

INTRODUÇÃO À PROGRAMAÇÃO

Page 14: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

Algoritmo

INTRODUÇÃO À PROGRAMAÇÃO

Page 15: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

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

Algoritmos

INTRODUÇÃO À PROGRAMAÇÃO

Page 16: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

INTRODUÇÃO À PROGRAMAÇÃO

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

Fluxograma

Page 17: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

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.

INTRODUÇÃO À PROGRAMAÇÃO

Page 18: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

Exemplo:

• 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

INTRODUÇÃO À PROGRAMAÇÃO

Cálculo de uma média ponderada e indicação se aprovado ou reprovado.

Page 19: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

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.

Características de um algoritmo

INTRODUÇÃO À PROGRAMAÇÃO

Page 20: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

Decomposição da soluçãoTop 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.

INTRODUÇÃO À PROGRAMAÇÃO

Page 21: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

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

Fases de desenvolvimento de um programa

INTRODUÇÃO À PROGRAMAÇÃO

Page 22: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

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 .

Exemplo:

INTRODUÇÃO À PROGRAMAÇÃO

Page 23: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

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

p2=[4,7] % Ponto 2

% Calcular distância:

d=sqrt(sum((p2-p1).^2)) % Matematicamente:

Etapa 5: TestandoPode-se testar manualmente, neste case d=3 .6056

( ) ( )2 2

2 1 2 1d x x y y= − + −

INTRODUÇÃO À PROGRAMAÇÃO

Page 24: INTRODUÇÃO À PROGRAMAÇÃO - intranet.deei.fct.ualg.pt · INTRODUÇÃO À PROGRAMAÇÃO. Comparação Matlab/C Mas existe um preço a pagar: – Para programas mais complexos,

INTRODUÇÃO À PROGRAMAÇÃO

ASPECTOS LIGADOS ÀS AULAS E ESTUDO DESTA MATÉRIA

Abrir conta nos computadores do DEEI:

Contactar Técnico de Informática, Artur Martins, sala C1 1.54

Utilização das salas de acesso livre: C1 1.58 e C1 0.22

APRENDE-SE A PROGRAMAR,

PROGRAMANDO !!!