Input/Output em Matlab

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

Download "Input/Output em Matlab"

Transcrição

1 Comandos load e save save nome_ficheiro [variáveis] [opções] Grava por defeito no ficheiro matlab.mat na directoria de trabalho. Opções: -mat no formato MAT-file (por defeito). -ascii no formato ASCII separados por espaços. -compress no formato compactado para poupar espaço. -nocompress sem compressão de dados (por defeito). -app adiciona as variáveis especificadas ao ficheiro. Sempre que se utilizarem dados apenas em Malab, os comandos load e save devem ser os utilizados. João Miguel da Costa Sousa 446 Input/Output em Matlab Função textread [a,b,c,...] = textread(nome_fich,formato,n) Exemplo com ficheiro testa_entrada.dat: Miguel Silva O Sim Ana Ferreira A Nao >> [nome,apelido,tipo,grupo,idade,resp] =... textread( testa_entrada, %s %s %s %f %d %s ) João Miguel da Costa Sousa 447 1

2 Exemplo com textread nome = Miguel Ana apelido = Silva Ferreira tipo = O+ A+ grupo = idade = resp = Sim Nao João Miguel da Costa Sousa 448 Abrir ficheiros fid = fopen(nome_fich,modo) [fid,msg] = fopen(nome_fich,modo) A função fopen recebe: Nome de ficheiro, nome_fich, que é uma string; Modo de abertura, modo, que pode ser r (por defeito), w, a, r+, w+, a+, etc. Retorna: Identificação do ficheiro, fid, que é um inteiro positivo atribuído pelo Matlab. Se fid = -1, ocorreu um erro na abertura do ficheiro, retornado em: Mensagem com erro, msg. João Miguel da Costa Sousa 449 2

3 Exemplos fids = fopen( all ) Retorna uma linha com todos os fids dos ficheiros abertos. fid = fopen( exemplo.dat, r ) Abre o ficheiro exemplo.dat para leitura. fid = fopen( saida_texto, wt ) Abre o ficheiro saida_texto para escrita de texto. fid = fopen( saida_texto, at ) Abre o ficheiro saida_texto já existente, para escrita de texto a partir do fim do ficheiro. João Miguel da Costa Sousa 450 Função fclose estado = fclose(fid) estado = fclose( all ) A função fclose fecha o ficheiro identificado por fid. Na forma estado=fclose( all ) fecha todos os ficheiros abertos com excepção de stdout(fid=1) e stderr(fid=2). Retorna estado que é o resultado da operação. Se for efectuada com sucesso retorna 0; caso contrário retorna -1. João Miguel da Costa Sousa 451 3

4 Funções I/O binárias cont = fwrite(fid,array,formato) Escreve no ficheiro fid um array por colunas com um formato especificado (Tabela pág. 369 do livro). Retorna o número de valores cont escritos no ficheiro. [array,cont] = fread(fid,número,formato) Lê um array do ficheiro fid um array com um determinado número de valores com um formato especificado. Retorna array lido e o número de valores cont escritos no ficheiro. João Miguel da Costa Sousa 452 Exemplo: io_binario.m % Ficheiro script: io_binario.m % Este programa mostra como utilizar funções de I/O binárias. % Variaveis: % cont -- Numero de valores a ler / escrever % fid -- id do ficheiro % nome_fic -- nome do ficheiro % in_array -- array de entrada % msg -- mensagem de erro % out_array -- array de saída % estado -- estado da operação % Pergunta nome de ficheiro nome_fic = input('introduza o nome do ficheiro: ','s'); % Gera o vector linha de dados aleatorios out_array = randn(1,10000); % Abre o ficherio de saida para escrita. [fid,msg] = fopen(nome_fic,'w'); if fid > 0 % Se abertura for bem sucedida: % Escreve os dados de saida. cont = fwrite(fid,out_array,'float64'); % Informa utilizador disp([int2str(cont) ' valores escritos.']); João Miguel da Costa Sousa 453 4

5 Exemplo: io_binario.m (2) % Fecha o ficheiro estado = fclose(fid); else % Escreve mensagem de erro. disp(msg); % Recuperaçao de dados. % Abertura do ficheiro para leitura. [fid,msg] = fopen(nome_fic,'r'); if fid > 0 % Se abertura for bem sucedida: % Le os dados de entrada. [in_array, cont] = fread(fid,[ ],'float64'); % Informa utilizador disp([int2str(cont) ' valores lidos.']); % Fecha o ficheiro estado = fclose(fid); else % Escreve mensagem de erro. disp(msg); João Miguel da Costa Sousa 454 Execução >> io_binario Introduza o nome do ficheiro: teste_io valores escritos valores lidos. Foi gerado um ficheiro com bytes (10000 valors de 64 bits, onde cada valor ocupa 8 bytes). João Miguel da Costa Sousa 455 5

6 Função I/O formatadas cont = fprintf(fid,formato,val1,val2,...) fprintf(formato,val1,val2,...) Escreve no ficheiro fid ou na Command Window (stdout) com um dado formato os valores val1, val2, etc. The Components of a Format Specifier %-12.5e Marker (Required) Modifier (Optional) Field Width (Optional) Precision (Optional) Format Descriptor (Required) João Miguel da Costa Sousa 456 Formatos Os formatos mais relevantes são: %c caracter simples %d notação decimal (com sinal) %e,%e notação exponencial (com e ou E) %f real em vírgula flutuante %g,%g a mais compacta de %f ou %e %s string (cadeia de caracteres) As marcas mais relevantes são: - alinhar à esquerda; por defeito o alinhamento é à direita + escreve sempre um sinal + ou - 0 preenche com zeros em vez de espaços em branco João Miguel da Costa Sousa 457 6

7 Exemplo: tabela.m % Ficheiro script: tabela.m % Este programa cria uma tabela de raizes quadradas, quadrados e cubos. % ( ) % Variaveis: % cubos -- valores ao cubo % ii -- indice % quadrados -- valores ao quadrado % raizes -- valores das raizes quadradas % saida -- tabela de saida % Escrece o titulo da tabela. fprintf(' Tabela de raizes quadradas, quadrados e cubos\n\n'); % Cabeçalho das colunas fprintf(' Numero Raiz Quadrada Quadrados Cubos\n'); fprintf(' ====== ============= ========= =====\n'); % Gera os dados ii = 1:10; raizes = sqrt(ii); quadrados = ii.^2; cubos = ii.^3; % Cria a tabela de saida saida = [ii' raizes' quadrados' cubos']; % Escreve os dados for ii = 1:10 fprintf (' %2d %12.4f %7d %7d\n', saida(ii,:)); João Miguel da Costa Sousa 458 Resultado de execução >> tabela Tabela de Raizes quadradas, quadrados e cubos Numero Raiz Quadrada Quadrados Cubos ====== ============= ========= ===== João Miguel da Costa Sousa 459 7

8 Função fscanf array = fscanf(fid,formato) [array,cont] = fscanf(fid,formato,tamanho) Lê do ficheiro fid um array num dado formato especificado. A variável cont contém o número de variáveis lido. O argumento opcional tamanho pode conter: n lê exactamente n valores. Inf lê até ao fim do ficheiro. array é um vector coluna com todos os dados lidos. [n m] lê exactamente n m valores para uma matriz com esta dimensão. João Miguel da Costa Sousa 460 Comparação de formatações % Ficheiro script: comparacao.m % % Este programa compara operações de I/O binárias e formatadas. % Gera uma tabela de valores aleatorios e escreve-os no % disco de forma binária e formatada % % Revisoes: % Data Programador Descricao das alteracoes % ==== ============= ======================== % 14/05/06 Joao M. C. Sousa Codigo original % % Variaveis: % cont -- Numero de valores a ler / escrever % fid -- id do ficheiro % in_array -- array de entrada % msg -- mensagem de erro % out_array -- array de saída % estado -- estado da operação % tempo -- tempo gasto em segundos % Gera os dados out_array = randn(1,10000); João Miguel da Costa Sousa 461 8

9 comparacao.m (2) % Saida binaria tic; for ii = 1:10 % Abre ficheiro binario para escrita. [fid,msg] = fopen('nao_formatado.dat','w'); % Escreve os dados cont = fwrite(fid,out_array,'float64'); % Fecha o ficheiro estado = fclose(fid); % Calcula o tempo medio tempo = toc / 10; fprintf ('Tempo de escrita no ficheiro nao formatado = %6.3f\n',tempo); % Saida formatada tic; for ii = 1:10 % Abre ficheiro formatado para escrita. [fid,msg] = fopen('formatado.dat','wt'); % Escreve os dados cont = fprintf(fid,'%23.15e\n',out_array); % Fecha o ficheiro estado = fclose(fid); % Calcula o tempo medio tempo = toc / 10; fprintf ('Tempo de escrita no ficheiro formatado = %6.3f\n',tempo); João Miguel da Costa Sousa 462 comparacao.m (3) % Tempo de leitura binaria tic; for ii = 1:10 % Abre ficheiro binario para leitura. [fid,msg] = fopen('nao_formatado.dat','r'); % Le os dados cont = fread(fid,inf,'float64'); % Fecha o ficheiro estado = fclose(fid); % Calcula o tempo medio tempo = toc / 10; fprintf ('Tempo de leitura no ficheiro nao formatado = %6.3f\n',tempo); % Tempo de leitura formatada tic; for ii = 1:10 % Abre ficheiro formatado para leitura. [fid,msg] = fopen('formatado.dat','rt'); % Le os dados cont = fscanf(fid,'%f',inf); % Fecha o ficheiro estado = fclose(fid); % Calcula o tempo medio tempo = toc / 10; fprintf ('Tempo de leitura no ficheiro formatado = %6.3f\n',tempo); João Miguel da Costa Sousa 463 9

10 Execução >> comparacao Tempo de escrita no ficheiro nao formatado = Tempo de escrita no ficheiro formatado = Tempo de leitura no ficheiro nao formatado = Tempo de leitura no ficheiro formatado = >>!dir *.dat Volume in drive C has no label. Volume Serial Number is Directory of C:\joao\SHEETS\aulas\IntProg : formatado.dat : nao_formatado.dat 2 File(s) bytes 0 Dir(s) bytes free João Miguel da Costa Sousa 464 Tipos de dados avançados em Matlab MATLAB Data Types double single int8, unit8 int16, uint16 logical char int32, unit32 int64, unint64 logical data double precision (real and complex) single precision (real and complex) integer and unsigned integer data types character strings cell structure user classes function handles cell arrays structures objects function handles João Miguel da Costa Sousa

11 Células de matrizes (Cell arrays) Uma cell array é uma matriz cujos elementos são células, com qualquer tipo de elementos. cell 1,1 cell 1, ' This is a text string.' cell 2,1 cell 2,2 3 + i4 i i4 [ ] João Miguel da Costa Sousa 466 Elementos das cell arrays Cada elemento aponta para outra estrutura: a(1,1) a(1,2) 'This is a text string.' a(2,1) a(2,2) [ ] 3 + 4i 10i 5 3 4i João Miguel da Costa Sousa

12 Acesso às células A notação de parêntesis devolve o conteúdo da célula: >> a(1,1) [3x3 double] A notação de chavetas devolve o conteúdo do conteúdo da célula: >> a{1,1} João Miguel da Costa Sousa 468 Criação de cell arrays Podem ser criadas de duas formas: Com atribuições; Por indexação de contéudos (content indexing) Por indexação de células (cell indexing) Com pré-alocação de cell arrays utilizando a função cell. João Miguel da Costa Sousa

13 Criação de células por atribuição Indexação de contéudos (content indexing) a{1,1} = [1 3-7; 2 0 6; 0 5 1]; a{1,2} = This is a text string. ; a{2,1} = [3+4*i -5; -10*i 3-4*i]; a{2,2} = []; Indexação de células (cell indexing) a(1,1) = {[1 3-7; 2 0 6; 0 5 1]}; a(1,2) = { This is a text string. }; a(2,1) = {[3+4*i -5; -10*i 3-4*i]}; a(2,2) = {[]}; João Miguel da Costa Sousa 470 Pré-alocação de células Criação de uma célula vazia: a = cell(2,2); As chavetas { } são construtores tal como os parêntesis rectos [ ] o são para as arrays. Exemplo: b = {[1 2], 17, [2;4]; *i, Hello, eye(3)}; João Miguel da Costa Sousa

14 Visualização de células >> a a = [3x3 double] [1x22 char]; [2x2 double] []; >> b b = [1x2 double] [ 17] [2x1 double]; [ i] Hello [3x3 double]; >> celldisp(a) a{1,1} = a{2,1} = i i i a{1,2} = This is a text string. a{2,2} = [] João Miguel da Costa Sousa 472 Função cellplot >> cellplot(b) João Miguel da Costa Sousa

15 Extensão de células É bastante ineficiente e deve ser evitado. Exemplo: a{3,3} = 5; cell 1,1 cell 1, ' Thisisa text string.' cell 1,3 [ ] cell 2,1 cell 2,2 cell 2,3 3 + i4 i i4 [ ] [ ] cell 3,1 cell 3,2 cell 3,3 [ ] [ ] [ 5] João Miguel da Costa Sousa 474 Exemplo: testa_prealocacao.m % Ficheiro script: testa_prealocacao.m % Este programa testa a criacao de cell arrays com e sem prealocacao. % % Revisoes: (...) % Variaveis: % a - Cell array % dimensao - Dimensao da cell array % Cria array sem prealocacao clear all dimensao = 50000; tic for ii = 1:dimensao a{ii} = ['Elemento ' int2str(ii)]; disp( ['Tempo gasto sem prealocacao = ' num2str(toc)] ); % Cria array com prealocacao clear all dimensao = 50000; tic a = cell(1,dimensao); for ii = 1:dimensao a{ii} = ['Elemento ' int2str(ii)]; disp( ['Tempo gasto com prealocacao = ' num2str(toc)] ); João Miguel da Costa Sousa

16 Apagar células >> a a = [3x3 double] [1x22 char] [] [2x2 double] [] [] [] [] [5] >> a(3,:)= [] a = [3x3 double] [1x22 char] [] [2x2 double] [] [] João Miguel da Costa Sousa 476 Utilização de dados >> c = {[1 2; 3 4], caes, gatos, i}; >> c{1,1} >> c{2,1} gatos >> c{1,1}(2,1) 2 João Miguel da Costa Sousa

17 Células de strings Podem ter número de elementos diferentes; são mais flexíveis. Podem ser criadas elemento a elemento, ou converto os dados de um array: >> cellstring{1} = Joao M. Sousa ; >> cellstring{2} = Lisboa ; >> cellstring{3} = BI ; >> cellstring Joao M. Sousa Lisboa BI >> dados = [ Linha 1 ; Linha adicional ] dados = Linha 1 Linha adicional >> c = cellstr(dados) c = Linha 1 Linha adicional João Miguel da Costa Sousa 478 Significado das células São muito flexíveis e podem ser utilizadas em muitos comandos internos do Matlab. Os argumentos opcionais do Matlab são dados por varargin, que é uma célula. Assim, os argumentos de uma função podem ser variáveis, e do tipo que se quiser: function teste1(varargin) disp([ Existem int2str(varargin) argumentos. ]); disp([ Os argumentos de entrada sao: ); disp(varargin); % funcao teste1 João Miguel da Costa Sousa

18 Execução de teste1.m >> teste1 Existem 0 argumentos. Os argumentos de entrada sao: >> teste1(6) Existem 6 argumentos. Os argumentos de entrada sao: [6] >> teste1(1, teste 1, [1 2; 3 4]) Existem 3 argumentos. Os argumentos de entrada sao: [1] teste 1 [2x2 double] João Miguel da Costa Sousa 480 Exemplo: função plot_linha.m function plot_linha(varargin) %PLOT_LINHA faz os graficos especificados pelos pares [x,y] % Funcao PLOT_LINHA aceita um numero arbitrario de pontos [x,y] e traca uma % linha ligando os pontos. Pode aceitar a especificação do tipo de linha do % grafico. % Variaveis: % ii -- Indice % jj -- Indice % linespec -- String definido as especificacoes do plot % msg -- Mensagem de erro % varargin -- Celula com os argumentos de entrada % x -- Valores de x do grafico % y -- Valores de x do grafico % % Registo das revisões: % Data Programador Descricao das alteracoes % ======== ================ ======================== % 21/05/06 Joao M. C. Sousa Codigo original % Verifica se o numero de argumentos e' correcto % Sao necessarios pelo menos 2 pontos para tracar uma linha msg = nargchk(2,inf,nargin); error(msg); João Miguel da Costa Sousa

19 Função plot_linha.m (2) % Inicializa variaveis jj = 0; linespec = ''; % Le os valores de x e y, assegurando que a string com % especificacao da linha do grafico, se existir, e guardada. for ii = 1:nargin % Este argumento um par [x,y] ou a especificacao da linha? if ischar(varargin{ii}) % Guarda o valor da especificacao da linha linespec = varargin{ii}; else % E' um par [x,y]. Guarda os valores. jj = jj + 1; x(jj) = varargin{ii}(1); y(jj) = varargin{ii}(2); % Faz o grafico da funcao. if isempty(linespec) plot(x,y); else plot(x,y,linespec); % funcao plot_linha João Miguel da Costa Sousa 482 Exemplo de execução >> plot_linha([0 0],[1 1],[2 4],[3 9],'k--') João Miguel da Costa Sousa

20 Argumento varargout function [nvals,varargout] = teste2(mult) % nvals e o numero de variaveis retornado % varargout contem as variaveis retornadas nvals = nargout 1; for ii = 1:nargout 1 varargout{ii} = randn * mult; % funcao teste2 João Miguel da Costa Sousa 484 Execução de teste2 >> teste2(4) -1 >> [a b c d] = teste2(4) a = 3 b = c = d = João Miguel da Costa Sousa

21 Estruturas As estruturas (structures) são arrays em Matlab que contêm vários campos (fields). Os campos de uma estrutura têm um nome e podem conter qualquer tipo de dados. Esta estrutura é semelhante às fichas em Fortran90. Os campos são acedidos através de um ponto.. Exemplo: ver student.name na pág. seguinte. João Miguel da Costa Sousa 486 Exemplo de estrutura student name John Doe addr1 123 Main Street city Anytown state LA zip João Miguel da Costa Sousa

22 Criação de estruturas As estruturas podem ser criadas utilizando atribuições De uma vez, utilizando a função struct. Exemplo: >> student.name = John Doe ; >> student.addr1 = 123 Main Street ; >> student.city = Anytown ; >> student.state = LA ; >> student.zip = student = name: John Doe addr1: 123 Main Street city: Anytown ; state: LA zip: João Miguel da Costa Sousa 488 Criação com atribuições Pode ser incluído um segundo elemento: >> student(2).name = Jane Q. Public ; student = 1x2 struct array with fields: name addr1 city state zip >> student(2) name: Jane Q. Public addr1: [] city: [] state: [] zip: [] >> student(1)? João Miguel da Costa Sousa

23 Criação de estruturas com struct A utilização da finção struct pré-aloca espaço em memória. str_array = struct( campo1,val1, campo2,val2,...) Inicialização: >> student(1000) = struct( name,[], addr1,[],... city,[], state,[], zip,[]) student = 1x1000 struct array with fields: name addr1 city state zip João Miguel da Costa Sousa 490 Adição e remoção de campos >> student(2).exams = [ ] student = 1x2 struct array with fields: name addr1 city state zip exams >> stud2 = rmfield(student, zip ) stud2 = 1x2 struct array with fields: name addr1 city state exams João Miguel da Costa Sousa

24 Exemplo de estrutura student student(1) student(1) student(2) student(2) student(3) student(3).name 'John Doe'.name 'Jane Q. Public'.name 'Big Bird'.addr1 '123 Main Street'.city 'Anytown'.addr1 'P. O. Box 17'.city 'Nowhere'.addr1 '123 Sesame Street'.city 'New York'.state 'LA'.state 'MS'.state 'NY'.zip '71211'.zip '68888'.zip '10018'.exams [ ].exams [ ].exams [ ] João Miguel da Costa Sousa 492 Utilização de dados em estruturas >> student(2).addr1 P. O. Box 17 >> student(3).exams >> student(3).exams(2) 84 Os campos das estruturas podem ser argumentos de funções: >> mean(student(2).exams) João Miguel da Costa Sousa

25 Utilização de dados em estruturas (2) Os valores dos campos não podem ser extraídos para um array. Têm de se utilizar ciclos para trabalhar esses dados. Exemplo: a expressão student.zip retorna três tabelas separadas. Para se obter numa array: for ii = 1:length(student) zip(ii) = student(ii).zip Exemplo: média de todos os exames de todos os estudantes: lista_exames = []; for ii = 1:length(student) lista_exames = [lista_exames student(ii).exams]; mean(lista_exames) João Miguel da Costa Sousa 494 Nomes de campo dinâmicos Os nomes de campo dinâmicos podem ser alterados durante a execução. >> student(1).name John Doe >> student(1).( name ) John Doe João Miguel da Costa Sousa

26 Função calc_media.m function [media, nvals] = calc_media(estrutura,campo) %CALC_MEDIA calcula a média dos valors num dado campo. % Função CALC_MEDIA calcula o valor medio dos elementos % num dado campo de uma estrutura s(tructure array). % Devolve a media e (opcionalmente) o numero de elementos % para os quais se calculou a média % Variaveis: % vector_aux -- Array dos valores para calcular a media % media -- media de vector_aux % ii -- Indice % % Registo das revisões: % Data Programador Descricao das alteracoes % ======== ================ ======================== % 22/05/06 Joao M. C. Sousa Codigo original % Testa se o numero de argumentos e' correcto. msg = nargchk(2,2,nargin); error(msg); % Cria um vector com os valores do campo vector_aux = []; for ii = 1:length(estrutura) vector_aux = [vector_aux estrutura(ii).(campo)]; João Miguel da Costa Sousa 496 Função calc_media.m % Calcula media media = mean(vector_aux); % Devolve o numero de valores da media if nargout == 2 nvals = length(vector_aux); % funcao calc_media Exemplo execução: >> [media,nvals] = calc_media(student, exams ) media = nvals = 9 >> [media,nvals] = calc_media(student, zip ) media = João Miguel da Costa Sousa

27 Tamanho e estruturas encadeadas >> size(student) 1 3 >> size(student(1).name) 1 8 Estruturas encadeadas (nested). Exemplo: >> student(1).class(1).name = Analise I ; >> student(1).class(2).name = Fisica I ; >> student(1).class(1).instructor = Mr. Jones ; >> student(1).class(2). instructor = Mr. Smith ; João Miguel da Costa Sousa 498 Estruturas encadeadas: exemplo >> student(1) name: John Doe addr1: 123 Main Street city: Anytown ; state: LA zip: exams: [ ] class: [1x2 struct] >> student(1).class 1x2 struct array with fields: name instructor >> student(1).class(1) name: Analise I instructor: Mr. Jones >> student(1).class(2) name: Fisica I instructor: Mr. Smith >> student(1).class(2).name Fisica I João Miguel da Costa Sousa

28 Organização de dados em estruturas Exemplo: Uma imagem a cores pode ser codificada: Como uma estrutura 1x1 com três campos (imagens de 128x128 correspondentes às componentes R, G, B) Uma matriz (128x128) de estruturas com três campos cada (os escalares R, G, B) João Miguel da Costa Sousa 500 Células e estruturas As células são melhores que as estruturas nas seguintes aplicações: 1. Quando é necessário aceder a vários campos dos dados numa única instrução. 2. Quando se quer aceder a subconjuntos dos dados, como listas separadas por vírgulas. 3. Quando o conjunto de nomes de campos não é fixo. 4. Quando se retiram campos da estrutura de forma frequente. João Miguel da Costa Sousa

29 Funções Handle Este tipo de dados guarda informação para ser utilizada mais tarde. Quando são criadas, as funções handle guardam toda a informação necessária para ser executada. Assim, a função pode ser executada mais tarde. São muito boas para Graphical User Interfaces. João Miguel da Costa Sousa 502 Criação de funções handle function res = my_func(x) res = x.^2 2*x + 1; % funcao my_fun Criação da função handle para my_func: hndl hndl = str2func( my_func ); >> hndl hndl >> hndl(4) 9 >> my_func(4) 9 >> h1 >> h1() João Miguel da Costa Sousa

30 Utilização de funções handle >> whos Name Size Bytes Class ans 1x1 8 double array h1 1x1 16 function_handle array hndl 1x1 16 function_handle array Grand total is 3 elements using 40 bytes >> feval(hndl,4) 9 >> func2str(hndl) my_func João Miguel da Costa Sousa 504 Função plot_funcao function plot_funcao(funcao,pontos) %PLOT_FUNCAO faz o grafico entre pontos especificados. % Funcao PLOT_FUNCAO aceita uma funcao handle, e % faz o grafico dessa funcao nos pontos especificados. (...) % Variaveis: % funcao -- Funcao handle % msg -- Mensagem de erro % Verifica se o numero de argumentos e' correcto msg = nargchk(2,2,nargin); error(msg); % Vai buscar o nome da funcao nome_func = func2str(funcao); % Faz o grafico dos dados e coloca as legas plot(pontos,funcao(pontos)); title(['\bfplot of ' nome_func '(x) vs x']); xlabel('\bfx'); ylabel(['\bf' nome_func '(x)']); grid on; % function plot_funcao João Miguel da Costa Sousa

31 Exemplo de execução >> João Miguel da Costa Sousa 506 Vantagens das funções handle As funções handle podem ser passadas como argumentos de funções. Desempenho melhora quando as funções são executadas várias vezes. As funções privadas, encadeadas e as sub-funções podem ser acessíveis em qualquer parte se forem funções handle. Um M-file pode ter várias funções, se estas forem posteriormente definidas como funções handle. João Miguel da Costa Sousa

Estruturas de dados complexas: cell arrays e structures

Estruturas de dados complexas: cell arrays e structures Estruturas de dados complexas: cell arrays e structures Structures (estruturas) Criação de estruturas Alterar, acrescentar e remover campos (fields) Visualizar (apresentar) uma estrutura Estruturas como

Leia mais

Tópicos avançados sobre funções

Tópicos avançados sobre funções Tópicos avançados sobre funções Definição de function handle Utilização de function handles Funções anónimas Funções em que os argumentos são funções (function functions) Funções com número de parâmetros

Leia mais

Estruturas de dados complexas: cell arrays e structures

Estruturas de dados complexas: cell arrays e structures Estruturas de dados complexas: cell arrays e structures Cell arrays Criação de cell arrays Aceder a elementos Visualizar elementos Modificar elementos Eliminar elementos Guardar strings em cell arrays

Leia mais

MATLAB. Sumário. Tópicos Avançados. 1. Estruturas 2. Células. J. R. Caldas Pinto, J. M. da Costa Sousa 357

MATLAB. Sumário. Tópicos Avançados. 1. Estruturas 2. Células. J. R. Caldas Pinto, J. M. da Costa Sousa 357 MATLAB Tópicos Avançados Sumário 1. Estruturas 2. Células J. R. Caldas Pinto, J. M. da Costa Sousa 357 1 Tipos de dados avançados em Matlab J. R. Caldas Pinto, J. M. da Costa Sousa 358 Estruturas As estruturas

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec - LEAN 1º Semestre 2010-2011 Aula Teórica 13 Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Alinhamento da AT 13 Estruturas de dados Cell arrays Manipulação

Leia mais

Cell arrays e estruturas: exemplos

Cell arrays e estruturas: exemplos Cell arrays e estruturas: exemplos Cell arrays e estruturas: Comparação entre os dois tipos de dados; Exemplos. Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Cell arrays e estruturas

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec, LEAN - 1º Semestre 2015-2016 Aula Teórica 14 Ficheiros de dados Processo de leitura/escrita em ficheiros de texto Manipulação de uma base de dados Ficheiros de dados do

Leia mais

Funções em Matlab. Subprogramas em Matlab são funções.

Funções em Matlab. Subprogramas em Matlab são funções. MATLAB Funções Funções em Matlab Subprogramas em Matlab são funções. function [saida1, saida2,...] = nome_funcao(ent1, ent2,...) % Comentário numa linha que diz o que faz a função % Mais comentários %

Leia mais

Tópicos avançados sobre funções (cont.)

Tópicos avançados sobre funções (cont.) Tópicos avançados sobre funções (cont.) Definição de function handle Utilização de function handles Funções anónimas Funções em que os argumentos são funções (function functions) Funções com número de

Leia mais

MATLAB. Programação básica

MATLAB. Programação básica MATLAB Programação básica Tipo de dados logical Podem ter valores true ou false. Dados do tipo lógico podem ser utilizados com valores numéricos. São convertidos nos valores 0 e 1. Operadores relacionais

Leia mais

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?

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? P1 Conceitos (2,4 valores) 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? (0.8v) 1.b) Indique três vantagens de criar um programa

Leia mais

Manipulação de strings e conversão entre tipos de dados

Manipulação de strings e conversão entre tipos de dados e conversão entre tipos de dados Criação de variáveis do tipo string: As strings como arrays uni-dimensionais Operações sobre strings Concatenação Formatação Comparação Procura, Substituição e Separação

Leia mais

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

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 MATLAB Programação básica Abordagem topo-base Início Definição Definição do do problema problema Definição das entradas Definição entradas e das e saídas saídas Projecto Projecto do do algoritmo algoritmo

Leia mais

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

MATLAB. Introdução. João Miguel da Costa Sousa 310 MATLAB Introdução MATLAB (MATrix LABoratory) Programa optimizado para cálculos de engenharia e científicos Programa MATLAB implementa a linguagem de programação MATLAB. Contém mais de 1000 funções pré

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec - LEAN 1º Semestre 2010-2011 Aula Teórica 16 Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Alinhamento da AT 16 Estrutura try-catch Processo de leitura/escrita

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec, LEAN - 1º Semestre 2015-2016 Aula Teórica 20 Números complexos Tópicos Avançados sobre Funções Funções com número variável de argumentos de entrada e saída Funções como

Leia mais

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

Introdução. MATLAB (MATrix LABoratory) Programa optimizado para cálculos de engenharia e científicos Programa MATLAB implementa a linguagem de MATLAB Introdução MATLAB (MATrix LABoratory) Programa optimizado para cálculos de engenharia e científicos Programa MATLAB implementa a linguagem de programação MATLAB. Contém mais de 1000 funções pré

Leia mais

Sumário. Ficheiros. Ficheiros

Sumário. Ficheiros. Ficheiros Sumário Ficheiros Motivação Operações Ficheiros de texto e binários Manipulação de ficheiros de texto Abertura Encerramento Descritores de ficheiros: stdin, stdout, stderr Escrita Leitura Outras funções

Leia mais

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

Computação e Programação 201*/201* - 1º Semestre Computação e Programação 201*/201* - 1º Semestre Exame Tipo MEMec LEAN DURAÇÃO: 2h30min Leia com atenção os pontos que se seguem: Comece por IDENTIFICAR TODAS AS FOLHAS DO EXAME. Não desagrafe as folhas.

Leia mais

1/24 FICHEIROS DE TEXTO

1/24 FICHEIROS DE TEXTO 1/24 FICHEIROS DE TEXTO Hardware de entrada/saída 2/24 Hardware de entrada/saída Grande variedade de dispositivos de E/S (Input/Output) - de memória: disco interno e externo, DVD, pen, CD,... - de transmissão:

Leia mais

INF 1620 P4-27/06/02 Questão 1 Nome:

INF 1620 P4-27/06/02 Questão 1 Nome: INF 1620 P4-27/06/02 Questão 1 Considere o tipo que representa uma grandeza vetorial (com três componentes) dado por: struct vetor { float x; float y; float z; }; typedef vetor Vetor; Pede-se: (a) Escreva

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec - LEAN 1º Semestre 2010-2011 Aula Teórica 15 Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Alinhamento da AT 15 Manipulação avançada de ficheiros Leitura

Leia mais

Sistemas e Sinais. Laboratório 0 (parte c) Miguel Pedro Silva e João Reis

Sistemas e Sinais. Laboratório 0 (parte c) Miguel Pedro Silva e João Reis Sistemas e Sinais Laboratório 0 (parte c) (MATLAB : Cell arrays e structures) Miguel Pedro Silva e João Reis Instituto Superior Técnico, Dep. de Engenharia Mecânica - Secção Sistemas, Grupo de Controlo

Leia mais

Informática para Ciências e Engenharias (B) 2016/17. Teórica 7

Informática para Ciências e Engenharias (B) 2016/17. Teórica 7 Informática para Ciências e Engenharias (B) 2016/17 Teórica 7 Sumário Ficheiros. Ficheiros de texto e binários. Sistema de ficheiros. Operações sobre ficheiros de texto. 24 Abril 2017 7: Sistemas de Ficheiros;

Leia mais

Manipulação avançada de ficheiros

Manipulação avançada de ficheiros Manipulação avançada de ficheiros Leitura / escrita de ficheiros Formato ascii Formato.mat Ligação a folhas de cálculo (Microsoft Excel) Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII

Leia mais

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

INTRODUÇÃO AO MATLAB. Hélder P. Oliveira INTRODUÇÃO AO MATLAB Hélder P. Oliveira helder.f.oliveira@inescporto.pt 16 de fevereiro de 2017 TÓPICOS Conceitos básicos, variáveis, scripts, funções Matrizes, vectores e outras estruturas Gráficos Operadores

Leia mais

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

Informática para Ciências e Engenharias 2014/15. Teórica 8 Informática para Ciências e Engenharias 2014/15 Teórica 8 Na aula de hoje... Organização de um disco. Sistema de ficheiros. Ficheiros de texto e binários. Operações sobre ficheiros de texto. 2 Ficheiros

Leia mais

Mestrado em Engenharia Física Tecnológica

Mestrado em Engenharia Física Tecnológica 5 a Aula - Ciclo for. Leitura e Escrita em Ficheiros. Programação Mestrado em Engenharia Física Tecnológica Samuel M. Eleutério sme@tecnico.ulisboa.pt Departamento de Física Instituto Superior Técnico

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec, LEAN - 1º Semestre 2015-2016 Aula Teórica 21 Introdução à linguagem compilada C Estrutura e compilação do código fonte Tipos de dados básicos Operadores aritméticos e lógicos

Leia mais

Exemplo: função cálculo distancia

Exemplo: função cálculo distancia Funções em Matlab Subprogramas em Matlab são funções. function [saida1, saida2,...] = nome_funcao(ent1, ent2,...) % Comentário numa linha que diz o que faz a função % Mais comentários % Até esta linha

Leia mais

Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre

Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Manipulação de ficheiros de texto Programação 2010/2011 IST-DEEC Manipulação de Ficheiros 1 Sumário Ficheiros

Leia mais

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

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas Nome: Número: Computação e Programação 2016-2017 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época Normal 11 de janeiro de 2017 Exame sem

Leia mais

Computação e Programação Exame 2ª Época

Computação e Programação Exame 2ª Época Computação e Programação 2012-2013 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame 2ª Época 30 de janeiro de 2013 Exame sem consulta (2 horas

Leia mais

INF 1620 P4 30/06/07 Questão 1 Nome:

INF 1620 P4 30/06/07 Questão 1 Nome: INF 1620 P4 30/06/07 Questão 1 O maior divisor comum (MDC) de dois números inteiros é o maior número inteiro que faz uma divisão exata (com resto zero) desses dois números. Por exemplo, o MDC de 32 e 40

Leia mais

COMPUTAÇÃO E PROGRAMAÇÃO 1º Semestre 2010/2011 MEMec, LEAN

COMPUTAÇÃO E PROGRAMAÇÃO 1º Semestre 2010/2011 MEMec, LEAN COMPUTAÇÃO E PROGRAMAÇÃO 1º Semestre 2010/2011 MEMec, LEAN Ficha da Aula Prática 8: Processamento de ficheiros. Sumário das tarefas e objectivos da aula: 1. Conhecer as operações necessárias à leitura,

Leia mais

O que é a modularização

O que é a modularização capa O que é a modularização Código Modularizado Código Não Modularizado Modularização Porque modularizar um código? -Decompor uma tarefa complexa em tarefas menores e de fácil solução. -Fazer uso da técnica

Leia mais

13a. Aula Manipulação de arquivos

13a. Aula Manipulação de arquivos 13a. Aula Manipulação de arquivos 2013.2 O sistema de entrada e saída do ANSI C é composto por uma série de funções (fopen, fprintf, fgets, fclose) cujos protótipos estão reunidos em stdio.h Todas estas

Leia mais

Introdução à Programação em C Input / Output

Introdução à Programação em C Input / Output Introdução à Programação em C Input / Output Resumo Aula Anterior Programa começa com função main() Sintaxe para definição de funções Definição de variáveis e atribuições Estruturas de controlo if-then

Leia mais

Programação. Folha Prática 10. Lab. 10. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.

Programação. Folha Prática 10. Lab. 10. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved. Programação Folha Prática 10 Lab. 10 Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved. 1. Revisão. 2. Objectivos. 3. Exercícios LAB. 10 10ª semana

Leia mais

INF 1620 P4 11/12/06 Questão 1 Nome:

INF 1620 P4 11/12/06 Questão 1 Nome: INF 1620 P4 11/12/06 Questão 1 Considere que o cálculo da multa para o pagamento de um determinado imposto varia de acordo com a tabela a seguir: Valor do Imposto Original Multa por mês de atraso até R$

Leia mais

Linguagem C Ficheiros Compilação Separada

Linguagem C Ficheiros Compilação Separada Linguagem C Ficheiros Compilação Separada typedef definição de tipos Apontadores para estruturas Ficheiros na bibiloteca standard do C Compilação Separada Definição de novos tipos em C É possível definir

Leia mais

TUTORIAL SIMPLIFICADO DE MATLAB

TUTORIAL SIMPLIFICADO DE MATLAB TUTORIAL SIMPLIFICADO DE MATLAB Esse tutorial visa apresentar apenas as funções mais utilizadas pelo grupo. O Matlab suporta várias funções de entrada e saída de arquivos da linguagem C. Tais funções incluem

Leia mais

INF 1620 P4-01/07/08 Questão 1 Nome:

INF 1620 P4-01/07/08 Questão 1 Nome: INF 1620 P4-01/07/08 Questão 1 Escreva uma função em C que receba duas strings, cujos caracteres estão ordenados em ordem crescente, e retorne uma nova string alocada dinamicamente, que contém todos os

Leia mais

INF 1620 P4-06/12/02 Questão 1 Nome:

INF 1620 P4-06/12/02 Questão 1 Nome: INF 1620 P4-06/12/02 Questão 1 (a) Escreva uma função em C que receba como parâmetro um número inteiro não negativo e retorne, como resultado da função, o valor do seu fatorial. O cabeçalho desta função

Leia mais

Manipulação avançada de ficheiros

Manipulação avançada de ficheiros Manipulação avançada de ficheiros Modularidade na manipulação de ficheiros Caso de estudo Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Revisão de instruções leitura/escrita comando

Leia mais

A Linguagem C. A forma de um programa em C

A Linguagem C. A forma de um programa em C A Linguagem C Criada em 1972 por D. M. Ritchie e K. Thompson. Tornou-se uma das mais importantes e populares, principalmente pela portabilidade e flexibilidade. Foi projetada para o desenvolvimento de

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia mais

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

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas Nome: Número: Computação e Programação 2017-2018 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de Recurso 31 de janeiro de 2018 Exame

Leia mais

Sistemas e Sinais. Laboratório 0 (parte a) (Iniciação ao MATLAB ) Miguel Pedro Silva e João Reis

Sistemas e Sinais. Laboratório 0 (parte a) (Iniciação ao MATLAB ) Miguel Pedro Silva e João Reis Sistemas e Sinais Laboratório 0 (parte a) (Iniciação ao MATLAB ) Miguel Pedro Silva e João Reis Instituto Superior Técnico, Dep. de Engenharia Mecânica - Secção Sistemas, Grupo de Controlo Automação e

Leia mais

A linguagem C (visão histórica)

A linguagem C (visão histórica) A linguagem C (visão histórica) A linguagem C é uma linguagem de programação desenvolvida no ínício dos anos 70 por Dennis Ritchie, que trabalhava nos laboratórios Bell e que também inciou em paralelo,

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec - LEAN 1º Semestre 2010-2011 Aula Teórica 3 Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Alinhamento da AT 3 MATLAB Comandos básicos Variáveis e Constantes

Leia mais

INF 1620 P3-27/11/04 Questão 1 Nome:

INF 1620 P3-27/11/04 Questão 1 Nome: INF 1620 P3-27/11/04 Questão 1 Considere um arquivo texto com as notas dos alunos de uma disciplina. Os dados de cada aluno são armazenados em duas linhas do arquivo: uma com o seu nome (cadeia com até

Leia mais

INF 1620 P4-09/07/03 Questão 1 Nome:

INF 1620 P4-09/07/03 Questão 1 Nome: INF 1620 P4-09/07/03 Questão 1 Um ponto geométrico no espaço 2D é representado pelas coordenadas reais x e y. Considere uma aplicação que precisa manipular pontos, através da implementação de duas funções.

Leia mais

Manipulação de Arquivos

Manipulação de Arquivos Manipulação de Arquivos Verdades sobre o 4º Bimestre: Você precisa completar 20 pontos Você está de saco cheio cansado Você ainda se embaralha nos printf s e scanf s Pois bem, você pode não ficar entrando

Leia mais

MATLAB Avançado. Melissa Weber Mendonça

MATLAB Avançado. Melissa Weber Mendonça MATLAB Avançado Melissa Weber Mendonça melissa.mendonca@ufsc.br Estruturas Outra maneira de armazenar dados heterogêneos é usar estruturas: cada estrutura é composta de campos que podem conter quaisquer

Leia mais

Mestrado em Engenharia Física Tecnológica

Mestrado em Engenharia Física Tecnológica 20 a Aula - Biblioteca Standard (II) Programação Mestrado em Engenharia Física Tecnológica Samuel M. Eleutério sme@tecnico.ulisboa.pt Departamento de Física Instituto Superior Técnico Universidade de Lisboa

Leia mais

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

Nome: Número: Computação e Programação. Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas Nome: Número: Computação e Programação 2016-2017 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de Recurso 1 de Fevereiro de 2017 Exame

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 3.3. Conceitos Básicos de C: Expressões, Operadores e Bibliotecas

Leia mais

INF 1620 P2-14/10/05 Questão 1 Nome:

INF 1620 P2-14/10/05 Questão 1 Nome: INF 1620 P2-14/10/05 Questão 1 Considere um cadastro de produtos de um estoque, com as seguintes informações para cada produto: Código de identificação do produto: representado por um valor inteiro Nome

Leia mais

Aula 14 Oficina de Programação Tópicos Especiais em C: Arquivos. Profa. Elaine Faria UFU

Aula 14 Oficina de Programação Tópicos Especiais em C: Arquivos. Profa. Elaine Faria UFU Aula 14 Oficina de Programação Tópicos Especiais em C: Arquivos Profa. Elaine Faria UFU - 2017 Uso da Memória Secundária Em muitos casos necessitamos da memória secundária (auxiliar), para armazenar informações

Leia mais

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

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

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

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C Sistemas Operacionais e Introdução à Programação Programação com linguagem C 1 Entrada e saída: escrevendo na tela Veja uma comparação entre um programa Portugol e seu equivalente em C: Inicio Inteiro

Leia mais

Introdução à Ciência da Computação

Introdução à Ciência da Computação Introdução à Ciência da Computação Unidade III Programação de Computadores com Octave Uso do Octave no Modo Interativo Prof. Roberto M. de Faria/DSC/UFCG Ajuda para o Octave Para ter acesso à documentação

Leia mais

Correção do 1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de 2006, 2º Semestre

Correção do 1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de 2006, 2º Semestre Correção do º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 3 de Junho de 26, 2º Semestre. (2.) Perguntas de resposta rápida de Fortran (.4 valores cada).. Todos os componentes

Leia mais

INF 1620 P3-25/11/05 Questão 1 Nome:

INF 1620 P3-25/11/05 Questão 1 Nome: INF 1620 P3-25/11/05 Questão 1 Dizemos que uma matriz quadrada é um quadrado mágico se a soma dos elementos de cada linha, a soma dos elementos de cada coluna e a soma dos elementos de sua diagonal principal

Leia mais

Introdução a Programação. Manipulando Arquivos em Modo Texto

Introdução a Programação. Manipulando Arquivos em Modo Texto Introdução a Programação Manipulando Arquivos em Modo Texto Tópicos da Aula Hoje aprenderemos funções de manipulação de arquivos texto Funções de leitura em modo texto Funções de escrita em modo texto

Leia mais

Existe uma quantidade de informação que pode ser armazenada para resolver o problema.

Existe uma quantidade de informação que pode ser armazenada para resolver o problema. Arquivos Introdução As estruturas vistas anteriormente armazenam as informações na memória principal do computador. Nem sempre é conveniente. Problemas: A informação é perdida; As estruturas de dados são

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação 128 13 129 Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas

Leia mais

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P4 07/12/2010

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P4 07/12/2010 Departamento de Informática - PUC-Rio INF 1007 Programação 2 P4 07/12/2010 Aluno: Matrícula: Turma: Instruções: 1) Escreva seu nome completo, matrícula e turma; 2) A prova deve ser completamente resolvida

Leia mais

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:

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: Computação e Programação (2009/2010-1º Semestre) 1º Teste MEMec - LEAN (11/11/2009) DURAÇÃO: 1h30m RESOLUÇÃO Leia com atenção os pontos que se seguem: Comece por escrever o seu nome e número nesta folha,

Leia mais

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

SCS Sistemas de Controle / Servomecanismos. Aula 01 Introdução ao software MATLAB Aula 01 Introdução ao software MATLAB O MATLAB (Matrix Laboratory) é um ambiente de programação de alto desempenho voltado para a resolução de problemas expressos em notação matemática, projeto e simulação

Leia mais

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

Problema 2 (1 valor) M = [50:2:248 ; 249:-2:51] Problema 3 (1 valor) Nome : Número : Computação e Programação 2015-2016 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de Recurso 27 de janeiro de 2015 Exame

Leia mais

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

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas Nome: Número: Computação e Programação 2017-2018 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de Recurso 31 de janeiro de 2018 Exame

Leia mais

Computação e Programação (2009/2010-1º Semestre)

Computação e Programação (2009/2010-1º Semestre) Computação e Programação (2009/2010-1º Semestre) 2º Exame: 2010-02-10 DURAÇÃO: 3 horas MEMec - LEAN Leia com atenção os pontos que se seguem: Comece por escrever o seu nome e número nesta folha, e número,

Leia mais

INF 1620 P1-13/09/02 Questão 1 Nome:

INF 1620 P1-13/09/02 Questão 1 Nome: INF 1620 P1-13/09/02 Questão 1 Considere que o cálculo da multa para o pagamento de um determinado imposto varia de acordo com a tabela a seguir: Valor do Imposto Original Multa por mês de atraso até R$

Leia mais

Introdução à Linguagem C

Introdução à Linguagem C Engenharia de CONTROLE e AUTOMAÇÃO Introdução à Linguagem C Aula 02 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria beltrame@mail.ufsm.br

Leia mais

Departamento de Informática PUC-Rio INF Estruturas de Dados Lista 2 Completa (Gerada em 8 de maio de 2006)

Departamento de Informática PUC-Rio INF Estruturas de Dados Lista 2 Completa (Gerada em 8 de maio de 2006) Departamento de Informática PUC-Rio INF1620 - Estruturas de Dados Lista 2 Completa 2006.1 (Gerada em 8 de maio de 2006) 1. Considerando a estrutura struct Ponto { int x; int y; para representar um ponto

Leia mais

Computação e Programação Exame Resolvido 1ª Época

Computação e Programação Exame Resolvido 1ª Época Computação e Programação 2012-2013 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Resolvido 1ª Época 9 de janeiro de 2012 Exame sem consulta

Leia mais

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

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 Gráficos Aqui é que há uma diferença entre as capacidades gráficas dos dois ambientes, MATLAB e Octave. O MATLAB permite mais variantes. No curso bastam-nos as possibilidades do Octave que trabalha sobre

Leia mais

MC-102 Aula 24 Arquivos em C e Parâmetros do Programa

MC-102 Aula 24 Arquivos em C e Parâmetros do Programa MC-102 Aula 24 Arquivos em C e Parâmetros do Programa Instituto de Computação Unicamp 3 de Novembro de 2016 Roteiro 1 Arquivos Introdução a Arquivos em C Nomes e Extensões Tipos de Arquivos Caminhos Absolutos

Leia mais

CAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos:

CAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos: CAP. IX - MANIPULAÇÃO DE ARQUIVOS 9.1 Generalidades sobre arquivos 9.2 Abertura e fechamento de arquivos 9.3 Arquivos textos e arquivos binários 9.4 Leitura e escrita em arquivos binários 9.5 Procura direta

Leia mais

Engenharia Biomédica Jorge Henriques, Fevereiro, 2007

Engenharia Biomédica Jorge Henriques, Fevereiro, 2007 MatLab+Simulink Introdução Engenharia Biomédica Jorge Henriques, Fevereiro, 2007 Índice 1. Em que consiste o MATLAB? 2. Como usar o MATLAB? 2.1Linha de comando 2.2Uso de scripts 3. Tipos de Dados Fundamentais

Leia mais

Alocação Dinâmica de Memória - Exercício

Alocação Dinâmica de Memória - Exercício Alocação Dinâmica de Memória - Exercício Construa um programa que leia da entrada padrão o número de linhas e de colunas de uma matriz de floats, aloque espaço dinamicamente para esta e a inicialize, com

Leia mais

Programação de Computadores (2014/15) 11 a folha de Problemas

Programação de Computadores (2014/15) 11 a folha de Problemas Programação de Computadores (2014/15) 11 a folha de Problemas Matéria abordada: acesso a ficheiros, funções (estruturas; passagem de parâmetros por valor e por referência; argumentos na linha de comando;

Leia mais

3.1 - Funções para manipular dados de entrada e saída padrão

3.1 - Funções para manipular dados de entrada e saída padrão 1616161616161616161616161616161616161616161616161616 3- ENTRADA E SAÍDA EM C Os principais meios para executar operações de entrada e saída (E/S) são: Entrada e saída pelo console (ou padrão): teclado

Leia mais

Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 13 Arquivos

Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 13 Arquivos Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I Aula 13 Arquivos Responsável Seiji Isotani, Rafaela V. Rocha sisotani@icmc.usp.br rafaela.vilela@gmail.com

Leia mais

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

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de

Leia mais

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

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec - LEAN 1º Semestre 2010-2011 Aula Teórica 10 Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Alinhamento da AT 10 Passagem de argumentos por valor Âmbito

Leia mais

Introdução à Computação II AULA 08 BCC Noturno - EMA896115B

Introdução à Computação II AULA 08 BCC Noturno - EMA896115B Introdução à Computação II AULA 08 BCC Noturno - EMA896115B Prof. Rafael Oliveira olivrap@gmail.com Universidade Estadual Paulista Júlio de Mesquita Filho UNESP Rio Claro 2014 (Sem 2) O ambiente de execução

Leia mais

Fundamentos Programação

Fundamentos Programação Fundamentos Programação A programação de computadores não é difícil. Realmente só requer algo como: Aprender alguns conceitos gerais Ser cuidadoso, organizado e lógico Praticar até aprender a dominar a

Leia mais

Computação e Programação

Computação e Programação Computação e Programação 9ª Aula de Problemas Manipulação avançada de ficheiros fopen, fclose, fprintf, fgetl, fgets, fscanf, textscan Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Problema

Leia mais

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

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas Nome: Número: Computação e Programação 2017-2018 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época Normal 10 de janeiro de 2018 Exame sem

Leia mais

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double

Leia mais

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

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas Nome: Número: Computação e Programação 2017-2018 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época Normal 10 de janeiro de 2018 Exame sem

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

CURSO BÁSICO DE PROGRAMAÇÃO AULA 17. Manipulação de arquivos binários.

CURSO BÁSICO DE PROGRAMAÇÃO AULA 17. Manipulação de arquivos binários. CURSO BÁSICO DE PROGRAMAÇÃO AULA 17 Manipulação de arquivos binários. Revisão Abrindo arquivos de texto em C FILE *arquivo = fopen(, ); FILE: Tipo do objeto de arquivo. fopen: Função

Leia mais