Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.1 Octave Programação.

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

1 Exercício prático 7 Private Sub cmdExecutar_Click() If optLer Then frmLer.Show Else frmEscrever.Show End If End Sub Private Sub cmdSair_Click() End End.
Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 5.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 3.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 4.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 6.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 9.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 2.
Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 4.
Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 6.
Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Introdução 1.1 Octave Cadeias e ficheiros.
Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Introdução 1.1 Octave Funções, Condições e Ciclos.
Entradas, Saídas e Análise de Dados Regressão Linear
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 3.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 4.
Vectores (e Listas) : Pesquisa e Ordenação
17 Novembro 2006Algoritmos de Ordenação e Pesquisa Aplicação a Listas de Registos 1 Jorge Cruz DI/FCT/UNL Introdução aos Computadores e à Programação 1º
Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Ficheiros 5.1 Octave Ficheiros.
1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005.
Registos em Ficheiros - Estruturas Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação 2º Semestre 2008/ Maio 20091Registos em.
Recursividade e Iteração Factorial, Fibonacci e Maior Divisor Comum
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
11 de Maio de 2006Listas e Ordenação1 Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação 2º Semestre 2005/2006.
Vectores, Gráficos e Funções Trajectória de um Projéctil
17 Novembro 2005Leitura, Escrita e Processamento de Registos - Estruturas e Listas 1 Leitura, Escrita e Processamento de Registos Estruturas e Listas Jorge.
Introdução aos Computadores e Programação DI-FCT-UNL-2004/2005 Introdução 1.1 Octave Introdução.
Miguel Maurício Introdução aos Computadores e Programação DI-FCT-UNL-2004/2005 Programação 5.1 Octave Programação.
1 Funções, Expressões e Excepções Trajectórias Óptimas DI/FCT/UNL 1º Semestre 2004/2005.
1 Processamento de Registos Listas e Estruturas DI/FCT/UNL 1º Semestre 2004/2005.
10 Novembro 2006Leitura, Escrita e Processamento de Registos - Estruturas e Listas 1 Leitura, Escrita e Processamento de Registos Estruturas e Listas Jorge.
Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Introdução 1.1 Octave Introdução.
Funções, Condições e Ciclos 3.1Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Octave Funções, Condições e Ciclos.
1 Introdução (Informal) à Programação DI/FCT/UNL 1º Semestre 2004/2005.
Pesquisa e Ordenação de Vectores
Introdução (Informal) à Programação
Introdução aos Computadores e Programação DI-FCT-UNL-2005/2006 Introdução 1.1 Octave Ficheiros (matrizes e registos)
5 de Maio de 2005Registos em Ficheiros1 Registos em Ficheiros - Estruturas Pedro Barahona DI/FCT/UNL Maio 2005.
Registos em Ficheiros - Estruturas Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação 2º Semestre 2007/ Maio 20081Registos em.
Entradas, Saídas e Análise de Dados Regressão Linear
Excel Profa. Cristina M. Nunes.
Claudio Esperança Python: Comandos Básicos. Primeiros passos em programação Até agora só vimos como computar algumas expressões simples Expressões são.
Prof. Luis Otavio Alvares
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Introdução ao JavaScript
Tratamento de Ficheiros
Programação Baseada em Objectos Desenho de TAD
Revisão da Linguagem C.
Classes e objetos P. O. O. Prof. Grace.
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Comunicação Inclusiva Acessibilidade e Programação Web
PROGRAMAÇÃO ESTRUTURADA II
Ordenação e Pesquisa de Dados Marco Antonio Montebello Júnior
Funções Universidade Federal de Ouro Preto - UFOP
Manipulação de Arquivos em C
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004
Aula Prática 12 Operações com Arquivos Monitoria
O Portal do Estudante de Computação
1 2 Observa ilustração. Cria um texto. Observa ilustração.
20/21 Abril de 2004Funções, Expressões e Excepções1 Pedro Barahona DI/FCT/UNL Abril 2004.
Aula 6 - Estruturas de Controle
Linguagem e Ambiente Scratch
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
ARQUIVOS.
Capítulo V – Comandos de Entrada e Saída 5.1 – Equipamentos de entrada e saída 5.2 – Saída no vídeo-texto 5.3 – Entrada pelo teclado 5.4 – Entrada e saída.
18/19 de Maio de 2004Registos em Ficheiros1 Pedro Barahona DI/FCT/UNL Maio 2004.
Programação e Aplicações Gráficas
Operações com Arquivos Monitoria A estrutura FILE  É como um tipo de dado, mas não é um tipo propriamente dito  Definido no arquivo cabeçalho.
Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004
Programação II Arquivos Autoria: Ernani Santos Modificação: Clebson Oliveira Adaptação: Claudia Boeres.
Transcrição da apresentação:

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.1 Octave Programação

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.2 Conceitos básicos Mecanismos Sequencial Forma de expressar através de uma linguagem que acção 1 deve ser executada antes da acção 2. Condicional Forma de expressar uma situação onde se pretende que caso seja verificada uma condição seja executada a acção 1 e caso contrário seja executada a acção 2. Repetição Forma de expressar uma situação onde existe a necessidade de executar um bloco de acções um certo números de vezes ou até que seja verificada uma condição.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.3 Condições É uma expressão booleana que retorna true (1) ou false (0). x < y verdade se x menor que y x <= y verdade se x menor ou igual a y x == y verdade se x igual a y x >= y verdade se x maior ou igual a y x > y verdade se x maior que y x != y x ~= y x <> y verdade se x diferente de y

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.4 Comparação octave:1> x=2 x = 2 octave:2> x > 4 ans = 0 comparação de dois valores numéricos octave:3> [1, 2; 3,4] == [1, 2; 2, 4] ans = comparação de matrizes é efectuada elemento a elemento octave:10> [1, 2; 2,4] == 2 ans = neste caso o valor escalar é comparado com cada um dos elementos da matriz octave:7> index("file.txt",".")!=5 ans = 0 comparação em que um dos valores é retornado por uma função

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.5 Operadores booleanos booleano1 || booleano2 operador ou (or) o resultado é verdade se pelo menos uma das expressões for verdade (true) booleano1 && booleano2 operador e (and) o resultado é verdade se e só se todas as expressões forem verdade ! booleano1 ~ booleano1 operador negação (not) o resultado é verdade se a expressão for falsa (false)

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.6 Instrução if SintaxeExemploDescrição if (condição) bloco1 else bloco2 endif if ( x > y) maior =x else maior =y endif se a condição for verdadeira o bloco1 é executado, senão é o bloco2

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.7 Instrução while SintaxeExemploDescrição while (condição) bloco1 endwhile while ( x > y) y = y+1 endwhile enquanto a condição for verdadeira o bloco de instruções vai ser executado, até que a condição se torne falsa.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.8 Instrução for SintaxeExemploDescrição for var = expr bloco endfor for i=1:10 y = y+1 endfor O bloco de instruções ( y=y+1 ) vai ser executado 10 vezes (inicio do ciclo em 1 e fim em 10). o valor da variável i vai sendo incrementado (do valor do passo, que neste caso é 1) automaticamente em cada passagem.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.9 Instrução break ExemploDescrição for i=1:10 y = y + I if ( y == 6 ) break endif endfor x = y Neste exemplo, temos um ciclo que irá ser executado 10 vezes, se a condição y==6 não ocorrer. Se durante a execução do ciclo essa condição se verificar a instrução break será executada e o ciclo de for quebrado, passando a execução directamente para a instrução seguinte ao ciclo ( x=y ).

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.10 Instrução disp disp(x) permite fazer o display do valor de x. Exemplo1Exemplo2 octave:1> y=0; octave:2> for i=1:4 > y=y+10 > Endfor y = 10 y = 20 y = 30 y = 40 octave:3> y=0; octave:4> for i=1:4 > y = y+10; > Endfor octave:5>disp("O valor de y:"), disp(y) O valor de y: 40 octave:6> disp("O valor de y:"), y O valor de y: y = 40

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.11 Instrução input (1) O Octave tem algumas funções disponíveis para interagir com o utilizador, sendo uma delas o input. A instrução input(prompt) emite para o terminal a prompt e fica à espera que o utilizador introduza um valor.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.12 Instrução input (2) octave:1> input("Qual o valor de x? ") Qual o valor de x? 10 ans = 10 octave:2> x=ans; octave:3> y = x^2; octave:4> disp("quadrado de x :"), disp(y) quadrado de x : 100

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.13 Ficheiros de entrada/saída Muitas vezes existe a necessidade de ler dados do exterior ou armazenar. Nestes casos podemos usar ficheiros para armazenar a informação. Para manipular ficheiros a primeira acção a fazer é proceder a sua abertura ( fopen ). Depois de concluídas as operações de leitura e escrita nos ficheiros, estes têm que ser fechados ( fclose ).

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.14 Instrução fopen (1) fid = fopen(nome_fich,modo ) Modo r - abre ficheiro existente para leitura. w - abre ficheiro para escrita, o anterior conteúdo do ficheiro é eliminado. a - abre ficheiro para escrita no final do ficheiro (append). r+ - abre existente para leitura e escrita. w+ - abre ficheiro para leitura e escrita, o anterior conteúdo do ficheiro é eliminado. a+ - abre ou cria ficheiro para leitura e escrita no final do ficheiro.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.15 Instrução fopen (2) fid = { id = name = mode = arch = status = } id é um valor inteiro que apartir do momento da abertura, vai identificar o ficheiro; name é o nome do ficheiro, deve ser igual ao parametro nome_fich; mode é o modo como o ficheiro foi aberto; arch é o tipo de interpretação pela arquitectura; status indica o estado em que se encontra o ficheiro; No caso problemas na abertura, fid toma o valor -1.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.16 Instrução fclose fclose(fid) Fecha o ficheiro com o identificador fid.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.17 fopen / fclose exemplos (1) Exemplo Descrição octave:4> f1=fopen("dados.txt","r") f1 = { id = 3 name = dados.txt mode = r arch = native status = open } Abertura do ficheiro já existente para leitura, com o nome "dados.txt", que se encontra na directoria corrente. octave:10> f2=fopen("tmp/dados2.txt","r") f2 = { id = 4 name = tmp/dados2.txt mode = r arch = native status = open } Abertura de um ficheiro já existente para leitura, com o nome "dados2.txt", que se encontra na subdirectoria tmp da directoria corrente.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.18 fopen / fclose exemplos (2) ExemploDescrição octave:7> f3=fopen("teste.txt","r") f3 = -1 Tentativa de abertura de um ficheiro para leitura, mas em que ocorreu um problema (por exemplo ficheiro não existe). octave:8> f4=fopen("teste.txt","w") f4 = { id = 5 name = teste.txt mode = w arch = native status = open } Abertura do ficheiro "teste.txt" para escrita. Neste caso o ficheiro ainda não existia, mas como foi aberto para escrita ele vai ser automaticamente criado na directoria corrente.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.19 Leitura e escrita simples em ficheiros (1) Escrita fputs(fid, string) puts(string) Leitura fgets(fid,len) fgetl(fid,len)

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.20 Leitura e escrita simples em ficheiros (2) ExemploDescrição octave:1> fid=fopen("teste.txt","w"); octave:2> str="Para teste a escrita em ficheiros\n"; octave:3> fputs(fid,str) ans = 0 octave:4> fputs(fid,"segunda linha") ans = 0 octave:5> fputs(fid,"\n") ans = 0 octave:6> fputs(fid,"outra linha") ans = 0 octave:7> fclose(fid) ans = 0 Este exemplo abre ficheiro para escrita (se não ainda não existia cria-o) e escreve em "teste.txt", após o que fecha o ficheiro. O caracter ' \n ' sinaliza o fim de linha. Analise o resultado desta acção, abrindo o ficheiro "teste.txt" com um editor de texto (por exemplo o Notepad) e observe o conteudo do ficheiro.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.21 Leitura e escrita simples em ficheiros (3) ExemploDescrição octave:14> fid=fopen("teste.txt","r"); octave:15> str1=fgetl(fid,100); octave:16> str2=fgets(fid,100); octave:17> str3=fgets(fid,4); octave:18> fclose(fid); octave:19> str1 str1 = Para teste a escrita em ficheiros octave:20> str2 str2 = segunda linha octave:21> str3 str3 = outr Exemplo de leitura de ficheiros de texto utilizando as funções fgetl e fgets.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.22 Leitura e escrita formatada em ficheiros (1) Escrita printf(template,...) fprintf(fid,template,...) Leitura (pensada em termos de matrizes) [val,count] = fscanf(fid,template,size)

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.23 Leitura e escrita formatada em ficheiros (2) Templates %d – inteiro com sinal. %f – real com sinal. %s – string. %c – caracter.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.24 Leitura e escrita formatada em ficheiros (3) octave:1> nome="Antonio Silva"; octave:2> num=12753; octave:3> nota=15.5; octave:4> printf("Aluno %s num: %d nota %f \n",nome,num,nota); Aluno Antonio Silva num: nota octave:5> m=[1,2,3;4,5,6;7,8,9]; octave:6> printf("%d ",m);

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.25 Leitura e escrita formatada em ficheiros (4) octave:7> fid=fopen("teste.dat","w"); octave:8> fprintf(fid,"%d ",m); octave:9> fprintf(fid,"%d ",m*2); octave:10> fclose(fid) ans = 0 octave:11> fid2=fopen("teste.dat","r"); octave:12> x1=fscanf(fid2,"%d ",[3,3]) x1 = octave:13> [x2,dim]=fscanf(fid2,"%d ",[3,3]) x2 = dim = 9 octave:14> fclose(fid2); Escrita de duas matrizes de valores num ficheiro e respectiva leitura. O terceiro argumento da função indica a dimensão da matriz. Como pode observar, no segundo exemplo de leitura, a função também retorna o número de elementos lidos.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.26 Leitura e escrita formatada em ficheiros (5) octave:15> fid=fopen("teste.txt","r"); octave:16> x3=fscanf(fid,"%d ",10) x3 = octave:17> x4=fscanf(fid,"%d ",10) x4 = octave:18> x5=fscanf(fid,"%d ",10) x5 = [](1x0) octave:19> fclose(fid); Outro exemplo de leitura do mesmo ficheiro " teste.dat ", mas agora lendo os valores para uma variável vector. Agora o terceiro argumento indica o numero de elementos a ler. Ao chegar ao fim do ficheiro (não tendo mais elementos para ler) afecta a variável com o vector vazio []. Se não colocar nenhum valor terceiro parametro da função, esta vai ler para um vector todos os elementos do ficheiro.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.27 Leitura e escrita formatada em ficheiros (6) octave:21> m2=log(m) m2 = octave:22> printf("%.5f %.4f %.6f \n",m2); octave:23>printf("%f %d %.2f \n",[1,2;3,4]); Escreve no écran os valores formatados como reais. O printf efectua um ciclo sobre o template de formatação, o que pode levar a alguma confusão (linha 23) (O valor antes de f indica o número de casas decimais).

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.28 Funções A organização do código de modo a torná-lo mais versátil e estruturado deve ser um dos objectivos a ter em mente aquando da elaboração de um programa. ExemploDescrição function msg_entrada printf("Hoje está um lindo dia\n"); endfunction A partir do momento da sua declaração é possível utilizar a função, para tal basta executar o seu nome ( msg_entrada ) na linha de comando.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.29 Funções Argumentos (1) ExemploDescrição function ret_val = area_circ(raio) ret_val = pi*raio^2; endfunction Esta função calcula a área de um círculo, tem um parâmetro de entrada (raio) e retorna um valor. Exemplo de utilização (chamada): octave:10> a = area_circ(5) a =

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.30 Funções Argumentos (2) ErradoCorrecto function retval = avg(v) if (is_vector(v)) retval = sum(v)/length(v); endif endfunction function retval = avg(v) retval = 0 if (is_vector(v)) retval = sum(v)/length(v); else printf("erro, o argumento deve ser um vector\n") endif endfunction

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.31 Funções Argumentos (3) ExemploDescrição function [max,idx] = vmax(v) idx = 1; max = v(idx); for i=2:length(v) if ( v(i)> max ) max = v(i); idx = i; endif endfor endfunction octave:30> [valor,pos] = vmax([ ]) valor = 8 pos = 5 octave:31> maximo = vmax([ ]) maximo = 7

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.32 Funções Argumentos (4) Mais exemplos de funções que por exemplo manipulam ficheiros podem ser vistos no capítulo 3.6 do Octave:Guia de estudo.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.33 Ficheiros de script Um ficheiro de script pode conter qualquer sequência de comandos Octave. Os comandos descritos no ficheiro são executados um a um e em sequência como se estivesse a ser introduzidos na linha de comando. As linhas de comentário são iniciadas por # ou % (linha a linha). O Octave ao detectar um destes símbolos ignora toda a linha.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.34 Ficheiros de funções (1) É mais prático ter as funções usadas separadas por ficheiros de modo a ser possível rapidamente fazer uma alteração. Para o Octave detectar estes ficheiros de funções, estes devem conter na primeira linha a definição da função. Os ficheiros terão que ter o mesmo nome que a função, isto é, por ex. uma função chamada area_circ o ficheiro deve chamar-se area_circ.m.

Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Programação 5.35 Ficheiros de funções (2) # função que calcula a area de uma circunferencia # dado o valor do seu raio. function ret_val = area_circ(raio) ret_val = pi*raio^2 endfunction