Conceitos de Programação

Documentos relacionados
Programação em C++: Introdução

Engenharia Biomédica Jorge Henriques, Fevereiro, 2007

Introdução ao MATLAB. 2 - Apresentação de resultados em gráfico. 3 - Controlo de fluxo 3.1. Tipos de controlo 3.2. Expressões Lógicas

MATLAB. Programação básica. Abordagem topo-base. Início. Definição das. Divisão em Sub-problemas. Divisão em Sub-problemas. Abordagem topo-base

Noções de algoritmos - Aula 1

INTRODUÇÃO AO MATLAB - PARTE 2

TÉCNICO DE INFORMÁTICA - SISTEMAS

MATLAB. Programação básica

INTRODUÇÃO AO MATLAB. Hélder P. Oliveira

Exemplo 1. t = [0:2:20] ; g = 9.81; m = 68.1; cd = 0.25; v = sqrt(g*m/cd)*tanh(sqrt(g*cd/m)*t); plot(t, v) 2013/02/14

17 a 19 de fevereiro de 2009

Conceitos Fundamentais de MatLab/Octave. Prof. Responsáveis Wagner Santos C. de Jesus

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

RESOLUÇÃO. Computação e Programação (2009/2010-1º Semestre) 1º Teste (11/11/2009) Nome. Número. Leia com atenção os pontos que se seguem:

Noções de algoritmos - Aula 1

3. Linguagem de Programação C

Computação e Programação Exame Época de recurso

Computação e Programação

Matlab Noções introdutórias. Roteiro para aula

Estruturas de Repetição

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

1.a) Qual a diferença entre uma linguagem de programação de alto nível e uma linguagem de programação de baixo nível?

Computação e Programação Exame Época de recurso

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Processamento da Informação

Mini curso básico. Gilberto A. S. Segundo Fábio Carmo. Programa de Educação Tutorial

Introdução ao MATLAB. Afonso Paiva ICMC-USP

SCS Sistemas de Controle / Servomecanismos. Aula 01 Introdução ao software MATLAB

I-3 Introdução ao Matlab

MATLAB. Introdução. João Miguel da Costa Sousa 310

Introdução à Programação

Introdução. MATLAB (MATrix LABoratory) Programa optimizado para cálculos de engenharia e científicos Programa MATLAB implementa a linguagem de

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014

Nome: Número: Computação e Programação. Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Introdução ao Matlab. Sérgio Manuel Ângelo da Cruz. Aplicações Informáticas para Engenharia

Murilo F. Tomé ICMC-USP

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Estruturas de Controle - Seleção. Prof. César Melo

Linguagem C: Introdução

CCI Laboratório de Matemática Computacional

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Programa. Linguagem MATLAB Métodos Computacionais para EDO Métodos Computacionais para EDP. Critérios

Implementação de Métodos Recursivos. Jefferson Bertolai

MATLAB EM VIBRAÇÕES MECÂNICAS

GEO742: Tópicos Especiais em Geologia Exploratória II Métodos semiquantitativos

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Características Básicas

Fluxogramas e variáveis

Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional. Rodrigo Barbosa de Santis

MATLAB. Que é MATLAB?

Introdução ao MatLab Princípios de Programação

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

MC102 Algoritmos e Programação de Computadores

Computação e Programação 201*/201* - 1º Semestre

Introdução ao SciLab. SciLab O que é? Onde obter o programa:

INTRODUÇÃO AO SCILAB

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

imprimir seus quadrados.

CIT Aula 02 Variáveis e Estruturas de desvio condicional. Autor: Max Rodrigues Marques Carga Horária: 2 h 22/07/15 1

Disciplina: Introdução à Engenharia da Computação

Algoritmos e Programação

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Introdução à Computação

Programação em MATLAB

Programação de Computadores

MATLAB Avançado. Melissa Weber Mendonça

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Problema 2 (1 valor) M = [50:2:248 ; 249:-2:51] Problema 3 (1 valor)

Programação de Computadores III

CMP Algoritmos Algoritmos Parte I. Professor Vicente Paulo de Camargo

Controlo do fluxo de execução

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

SEBENTA INTRODUÇÃO Á ALGORITMIA

Desenho e Análise de Algoritmos CC /2018. Folha 1 - Revisão: Escrita de algoritmos em pseudo-código e verificação de correção

Modelo Matemático simples

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Estruturas de seleção. Prof.: Jesus

Programação de Computadores III

CCI Laboratório de Matemática Computacional

= = = = = = = = = = = = = = = =

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Introdução à programação em PASCAL. Aula de 22/10/2001. Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Informática para Ciências e Engenharias 2014/15. Teórica 8

Minicurso MATLAB BÁSICO MÓDULO 1

Princípios de Desenvolvimento de Algoritmos MAC122

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Vetores, Matrizes e Gráficos

Algoritmo e Programação Matemática

Lista de Exercícios - 1 Prof: Yuri Frota

Conceitos Básicos de Algoritmos

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados

COMANDOS DE SELEÇÃO. > Maior que < Menor que >= Maior ou igual a <= Menor ou igual a == Igual a ~= Diferente de

AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa

Transcrição:

Conceitos de Programação J. Barbosa 1

Conceitos básicos de programação Algoritmo Conjunto finito de regras sobre as quais se pode dar execução a um dado processo (Knuth73v1) Ex: ordenação de um conjunto, pesquisa numa base de dados. Atributos que deve possuir: Ser finito, inteligível, exequível, caracterizável. Formas de representação : Narrativa, Fluxograma, Pseudo código, Linguagens de programação 2

Enunciado: Conceitos básicos de programação Exemplo: Algoritmo de Euclides Dados dois inteiros m e n, encontrar o maior inteiro que os divida a ambos exactamente (máximo divisor comum). Descrição narrativa: Algoritmo mdc (Algoritmo de Euclides) 1º- (Encontrar o resto) - Dividir m por n e afectar r com o resto ( 0 <= r < n) 2º- ( O resto é zero?) - Se r=0, o algoritmo termina; n é o valor procurado. 3 º- (Substituir) - Afectar m com n e n com r, voltando ao passo 1. 3

Conceitos básicos de programação Exemplo: Algoritmo de Euclides Descrição em fluxograma m, n? Pseudocódigo: descrição do algoritmo próxima da linguagem de programação mas escrita em linguagem corrente. r = m % n r = 0? MDC = n Não n = r m = n Função mdc Leia m Leia n r = mod(m,n) Enquanto (r ~= 0) m=n n=r r = mod(m,n) Escreve n 4

Conceitos básicos de programação: Fluxograma Início e fim Entrada e saída de dados Intruções de atribuição/execução Intruções condicionais Liga pontos distintos do algoritmo 5

Conceitos básicos de programação Descrição em Matlab: function n=mdc m=input( Valor m? ) n=input( Valor n? ) r = mod(m,n); while ( r ~= 0) m=n; n=r; r= mod(m,n); end Descrição em linguagem C: int mdc(int m, int n) { int r; while ( (r= m % n)!= 0) { m=n; n=r; } return n; } 6

Variáveis As variáveis representam a memória do computador onde se podem guardar dados de entrada e resultados. Facilitam a escrita dos programas ao permitirem identificar a memória através de nomes escolhidos pelo utilizador. Nome da variável: letras, números e _ Primeiro caracter tem de ser uma letra Distingue entre maiúsculas e minúsculas ans: variável que fica com o resultado de uma operação quando não é especificada pelo utilizador uma variável para guardar esse resultado. Palavras reservadas: iskeyword Variáveis definidas: whos 7

Operadores Operadores aritméticos: +, -, *, / Operadores de relação: <, <=, ==, ~=, >, >= Operadores Lógicos: & (e), (ou), ~ (negação), xor (ou exclusivo) 8

Matlab Alguns operadores: + Addition - Subtraction * Multiplication / Division : Colon operator ^ Power. Transpose Complex conjugate transpose Matrix multiplication/matrix right division 9

Precedência dos operadores b + b 2 4ac 2a (-b+sqrt(b^2 4*a*c)) / (2*a) Ordem: ( ) conteúdo dos parêntesis ^ expoente ~ *, / +, Operadores de relação & 10

Tipos de dados inteiro Números sem parte decimal, como 12562, -25 real com vírgula fixa Números com parte decimal, como 35.1256, 0.65141 real com vírgula flutuante Números com parte decimal em notação científica, como 0.351256e2, 0.65141 complexos Números com parte real e imaginária string Sequências de caracteres da tabela ASCII 11

Funções para entrada e saída de dados Entrada de dados pelo teclado valor numérico: a = input( Introduza um valor? ) para ler uma string: a = input( Introduza uma string?, s ) 12

Funções para entrada e saída de dados Escrita de dados para o ecrã: fprintf (formato, valores) Podemos escrever qualquer tipo de variável e na mesma instrução. ex: fprintf( O resultado é : %d, x); %d apresenta os valores como inteiros %e apresenta os valores em formato exponencial %f apresenta os valores em vírgula flutuante %s escreve uma string \n muda de linha \t tab, permite organizar a escrita de dados 13

Instruções de controlo de execução Decisão binária - if Decisão múltipla switch Repetição condicional - while, for 14

Decisão binária - if Fluxograma FALSE A<B TRUE X = A +B X = A - B Em Matlab if ( A < B ) x= A + B else x= A B end If exp1 instruções 1 elseif exp2 instruções 2 elseif exp3 instruções 3 else instruções 4 end Exemplo: Determinar se o ano é bissexto function bissexto(ano) if (mod(ano,400) == 0 mod(ano,4) == 0 & mod(year,100) ~= 0) fprintf( sim ) else fprintf( Nao e ) end fprintf( um ano bissexto. ) } 15

Decisão múltipla switch Fluxograma Em Matlab i == 0 FALSE i == 1 FALSE i == 2 FALSE fprintf( outro ) TRUE fprintf("zero ); TRUE fprintf( um ) TRUE fprintf( dois ) switch i case 0 fprintf( zero ) case 1 fprintf( um ) case 2 fprintf( dois ) otherwise fprintf( outro ) end Pode escrever-se: case {exp1, exp2, exp3, } 16

Repetição condicional - while, for Fluxograma Em Matlab i = 1; i = i + 1; fprintf(" i =%d, i ) i = 1; while i<6 fprintf( i=%d,i) i = i + 1 ; end i<6 FALSE TRUE for i=1:6 fprintf( i=%d,i) end 17

Exemplo: Algoritmo de aproximações sucessivas Quantas tentativas são necessárias para adivinhar um nº entre 0 e 7? Árvore de decisão binária FALSE X>=4 TRUE FALSE X>=2 TRUE FALSE X>=6 TRUE X>=1 X>=3 X>=5 X>=7 FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE X=0 X=1 X=2 X=3 X=4 X=5 X=6 X=7 18

Algoritmo de aproximações sucessivas i=4; n=0; Fluxograma i>0 TRUE i = i / 2; Exercício: passar o fluxograma para um programa em Matlab FALSE X >= i+n FALSE X = n ; TRUE n = n + i; Programa em Matlab i = floor((maximo+1)/2); numero = 0; while i>0 fprintf( valor maior ou igual que %d,i+numero); f=input( (S/N)?, s ) if f == s numero = numero + i; end i = floor(i / 2); end fprintf( O numero que pensou e %2.0d, numero); 19

Exercícios Escreva uma função para resolver equações quadráticas: ax 2 +bx+c=0 O ganho de tensão de um amplificador é dado por v = [23/(23 2 + (0.5f) 2 ) 1/2 ] n onde f é a frequência de funcionamento em Hertz e n o número de etapas do amplificador. Escreva uma função que calcule v em função dos valores f e n. 20

Vector Vector: é uma sequência de valores do mesmo tipo à qual é dada no programa um nome único. Os elementos do vector são acedidos pelo nome e pela posição ocupada na sequência. v = 2 variável escalar m=[2 4-3] vector com 3 elementos v = m(1) v ficará com o valor 2, um escalar. k = lenght(m) k ficará com o valor 3, ou seja, a dimensão do vector 21

Matriz Matriz: é um vector com duas dimensões A = 2 1 9 0 1 3 5 1 3 linha coluna b = A(1,3) b ficará com o valor 5 22

Matriz [1,2,3] vector linha ou matriz 1x3 [1;2;3] vector coluna ou matriz 3x1 [1,2;3,4;5,6] matriz 3x2 [] matriz vazia 0x0 Operador (:) x = 0:0.2:1 equivale a x=[0,0.2,0.4,0.6,0.8,1] Operador ( ) transposta: A corresponde à transposta da matriz A, ou seja, transforma as linhas em colunas. 23

Matrizes Funções disponiveis para inicializar matrizes: zeros(n) matriz de zeros de nxn zeros(m,n) idem de mxn ones(n) matriz de uns de nxn ones(m,n) idem de mxn eye(n) matriz identidade de nxn eye(m,n) matriz de zeros e uns nas posições (i,i) rand(n) matriz aleatória de nxn rand(m,n) idem de mxn magic(n) matriz nxn onde a soma dos elementos de qualquer linha ou coluna é sempre igual 24

Matrizes Exemplos: a=ones(3,2) b=[a, zeros(3), a] c=eye(size(b)) d = rand(2) Soma de matrizes C = A + B Produto de matrizes C = A*B o número de colunas da primeira tem de ser igual ao número de linhas da segunda matriz. 25

Matrizes Divisão matricial x=a\b é a solução de A*x=b x=a/b é a solução de x*a=b 26

Funções que operam por colunas/linhas max, min, mean, sort, sum, prod Ex: x = [1:5:20] A=[1:3;4:6] a) a=sum(x) a=34 b) b=sum(a) b=[5 7 9] c) c=sum(a,2) c=[6;15] soma os elementos de cada linha d) d=sum(a(:)) d=21 soma todos os elementos da A e) e=max(a) e=[4 9 6] maior elemento de cada coluna f) [f1,f2]=max(a) f1=[4 9 6] f2=[2 1 2] f1 contém os maiores elementos em cada coluna e f2 o índice da linha 27

Gravar e ler dados de ficheiros save nome_ficheiro var1 var2 -opcoes opções: -mat Formato binário (opção por defeito) -append Acrescenta os dados no fim do ficheiro (por defeito se o ficheiro já existir apaga o conteúdo anterior) -ascii Formato ascii, mantissa de 8 digitos -ascii -double Formato ascii, mantissa de 16 digitos -compress faz compressão de dados Ex: save fnome a b guarda no ficheiro fnome.mat o conteúdo das variáveis a e b save fnome guarda todas as variáveis definidas 28

Gravar e ler dados de ficheiros load nome_ficheiro var1 var2 -opcoes load fnome s t load fnome.dat lê as variáveis s,t do ficheiro, que poderá ter mais variáveis lê todas as variáveis do ficheiro Nota: se o ficheiro tiver uma extensão diferente de.mat o Matlab considera que está em ASCII. clear clear a c limpa todas as variáveis definidas limpa apenas as variáveis a e c 29

Gráficos Alguns tipos: plot(x,y) loglog(x,y) semilogx(x,y) semilogy(x,y) bar(x,y) barh(x,y) stairs(x,y) hist(x,n) pie(x) gráfico linear x-y ambas as escalas logaritmicas escala de x logaritmica escala de y logaritmica gráfico de barras gráfico barras horizontais gráfico em degraus histograma gráfico redondo de percentagens 30

Gráficos Ex: x = -2:0.2:2; y = cos(x); plot(x,y, r- ) grid on gráfico linear x-y com linha sólida vermelha Representar duas funções: z = sin(x) plot(x,y, r-,x,z, g: ) ou: plot(x,y, r- ) hold on plot(x,z, g: ) 31

Gráficos Comandos sobre os gráficos: title( Título ) xlabel( x ) ylabel( y ) text(x,y, texto ) gtext( texto ) Posiciona o texto com o rato grid on grid off axis([xmin xmax ymin ymax]) subplot(n,m,p) coloca vários gráficos na mesma janela 32

Bibliografia Prontuário do Matlab de Fernando Gomes Martins FEUP Edições 33