1 programa dados Utilização de ficheiros externos A maneira mais simples de escrever para um ficheiro externo é redireccionar a saída de um programa: em.

Slides:



Advertisements
Apresentações semelhantes
TRATAMENTO DE ARQUIVOS EM C
Advertisements

Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 12 Criado por Frederick H. Colclough, Colorado Technical University E/S de Arquivo e Streams.
Python: Entrada e Saída
© Copyright 2008 Algoritmos e Estruturas de Dados IF672ec - Algoritmos e Estruturas de Dados CIn - UFPE { alp4, dnq, dwcs, fmm, jdf2, lfpd, mraga, psbof,
Sessão 04 Comandos Introdutórios Introdução Introdução Estrutura de Ficheiros Estrutura de Ficheiros Redireccionamento Redireccionamento Pipe´s Pipe´s.
Ricardo Jacobi Linguagem C Introdução Linguagens de Programação Fatores de Qualidade em Software Estilos de Programação Manutenção em Software Histórico.
Prof. Luis Otavio Alvares
Modificadores de tipos e Arquivos
Arquivos Prof: Erivelto Tschoeke, Msc. –
Prof: Erivelto Tschoeke, Msc. –
Linguagem de Programação 1
LINGUAGEM ESTRUTURADA TURBO C
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo II Confecção de Tabelas.
Curso de C/C++ Avançado
Armazenamento de Dados em Arquivos
Armazenamento de Dados em Arquivos
Tratamento de Ficheiros
Funções.
Matrizes clássicas e vectores em C++
Aula 11 Tipos Abstractos de Dados II. 2003/2004 Introdução à Programação 2 Estrutura global do programa #include using namespace std; int mdc(int const.
Aula 10 Tipos Abstractos de Dados I. 2003/2004 Introdução à Programação 2 Flashback Lembram-se da Aula 4?
Modularização: funções e procedimentos (continuação)
Vetor de Ponteiros Exemplo de Alocação. Escrever Vetor de Vetores de floats int main() { int i, k, n; float **vetor; // vetor de vetores int *tamanho;
Algoritmos e linguagens de programação 1 (aula 05)
Arquivos associado a um dispositivo de armazenamento
Revisão /*======================================================*/
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
1 programa dados Utilização de ficheiros externos A maneira mais simples de escrever para um ficheiro externo é redireccionar a saída de um programa: em.
Exercício 1 Faça um programa que receba como entrada o nome e o salário de um funcionário de uma empresa e que calcule o novo valor do salário do.
PROGRAMAÇÃO ESTRUTURADA II
Instruções condicionais
Ordenação e Pesquisa de Dados Marco Antonio Montebello Júnior
Manipulação de Arquivos em C
Arquivos Continuação.
Linguagem de Programação II
Linguagem de Programação II
Streams –input e output
Stream streamneste contexto: sequência de bytes Utilizado em diversas plataformas Simplifica o tratamento de dados e sua integração Bibliotecas em C++
DAVID ANDERSON CARDOSO DANTAS
VETORES Roteiro da aula Referência ao Programa: Estrutura de Dados
Aula Prática 12 Operações com Arquivos Monitoria
Curso de C/C++ Aula 4 Instrutor: Luiz Felipe Sotero
Procedural vs. OO (Figuras Geométricas: Área do triângulo)
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Estrutura de Dados Professor: Cheli dos S. Mendes da Costa Arquivo.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tratamento de ficheiros Abrir e fechar um ficheiro.
Informática e Computação Estrutura de Repetição aula 12
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.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 07) Prof. Alessandro Bernardo.
Aula Prática 11 Operações com Arquivos Monitoria
18/19 de Maio de 2004Registos em Ficheiros1 Pedro Barahona DI/FCT/UNL Maio 2004.
Algoritmos e Estruturas de Dados
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.
Aula Prática 11 Operações com Arquivos Monitoria
Manipulando arquivos texto com C
Programação de Computadores I – Arquivos
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo IX Subprogramação e Recursividade.
Salvando em Arquivos. Arquivos Um arquivo pode estar associado a qualquer dispositivo de entrada e saída, como por exemplo: teclado, video, impressora,
Programação em C++ Pimenta Rodrigues Pedro Pereira Manuela Sousa Entrada e saída de dados Programação em C++
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 08) Prof. Alessandro Bernardo.
USP – ICMC – SSC SSC0300 2º Semestre 2015 Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Eletrônica ] 1 Prof. Dr. Daniel Rodrigo.
Programação II Arquivos Autoria: Ernani Santos Modificação: Clebson Oliveira Adaptação: Claudia Boeres.
Fundamentos de Programação 1 Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Seqüências ou de Texto ”.
Fundamentos de Programação 1 Slides 19 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Binários”.
Estrutura de Dados STRUCTS Dilvan Moreira. Objetivos  Entender o que são e como usar:  Estrutura de Dados para a Linguagem C  Structs (Registros)
Fundamentos de Programação 1 Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Seqüências ou de Texto ”. 1.
1 Aula 08 Conteúdo de Suporte ao Trabalho 2 Prof. Filipe Mutz.
Algoritmos e Estruturas de Dados I
Ponteiros Parte III.
Transcrição da apresentação:

1 programa dados Utilização de ficheiros externos A maneira mais simples de escrever para um ficheiro externo é redireccionar a saída de um programa: em UNIX./exec > dados.dat Mas esta versão é muito limitada. Para aceder a um ficheiro externo num programa em C/C++ temos de definir um stream

2 Streams por defeito no C++: cout : ecrã cout : ecrã cin : teclado cin : teclado cerr : ecrã, mesmo se a saída tiver sido redireccionada cerr : ecrã, mesmo se a saída tiver sido redireccionadaTipos: ifstream : leitura ifstream : leitura ofstream : escrita ofstream : escrita fstream : escrita ou leitura fstream : escrita ou leitura Abertura para leitura e escrita: Em C++: fstream InOut(RW.dat, fstream::in | fstream::out ); Em C++: fstream InOut(RW.dat, fstream::in | fstream::out ); Em C: InOut=fopen(RW.dat, r+); Em C: InOut=fopen(RW.dat, r+); Utilização de ficheiros externos

3 Versão C: FILE *stream; FILE *stream; stream = fopen(ficheiro.dat, wt); (r para leitura) fprintf(stream, %d %f\n, i, x); (ou fscanf....) fclose(stream); Para I/O binário usa-se fread e fwrite. Streams standard: stdin (teclado), stdin (teclado), stdout (ecrã), stdout (ecrã), stderr (ecrã se a saída tiver sido redireccionada para ficheiro) stderr (ecrã se a saída tiver sido redireccionada para ficheiro) printf fprintf(stdout, …); scanf fscanf(stdin, …); Utilização de ficheiros externos

4 Versão C++: #include #include ifstream stream; ifstream para leitura stream.open(dados.dat); stream >> x >> y ; dados.close(stream); Pode simplificar-se: ifstream stream(dados.dat) Utilização de ficheiros externos

5 Comparação C++/C: Utilização de ficheiros externos #include #include using namespace std; int main(){ int i1, i2; ifstream dados("dados.dat"); if(dados.bad()){ cerr << "Impossivel ler o ficheiro" << endl; exit(1);} while( dados >> i1 >> i2, !dados.eof() ) cout << i1 << " " << i2 << endl; cout << i1 << " " << i2 << endl; return 0; } #include #include int main(){ int i1, i2; FILE *dados; if( !(dados = fopen("dados.dat", "rt") ) ){ fprintf(stderr, "Impossivel ler o ficheiro\n"); exit(1);} while( (fscanf(dados, "%d %d", &i1, &i2 )) != EOF ) printf("%d %d\n", i1, i2); printf("%d %d\n", i1, i2); return 0; }

6 Funções (versão C/C++) Passagem de variáveis entre funções: Valor Valor Referência Referência Nos dois casos o que é passado para o interior da função é uma cópia do valor da variável apresentada no argumento. Na passagem por valor é passado o valor contido na variável Na passagem por valor é passado o valor contido na variável Na passagem por referência é passada a localização em memória da variável Na passagem por referência é passada a localização em memória da variável A passagem por referência é a mais utilizada quando pretendemos passar objectos complexos para dentro das funções.

7 Funções (versão C/C++) Exemplo de passagem por valor: Passagem por referência:

8 Funções (versão C/C++) Ponteiros a gogo: char *sp = ola; char *s2 = bom dia; sp=&s2; printf(%s, sp); //bom dia Ponteiro especial para funções: void* double obj=3.14; double *pd = &obj; Void *pv = &obj; pv = pd; void* indica que o valor associado é um ponteiro mas que o tipo desse ponteiro é desconhecido. Pode ser usado para comparar com outro ponteiro ou passar ou retornar de uma função. Pode-se também atribuir a outro ponteiro do tipo void*. Não se pode operar sobre o objecto para o qual aponta!!!

9 Funções (versão C/C++) Ponteiros e referências; Int val=1024; Int *pi=&ival; Int &ri = ival; Referências referem-se sempre a um objecto; não é possível definir uma referência sem a inicializar; atribuição a uma referência altera o objecto a que a referência se refere, não o liga a outro objecto, Ponteiros podem-se definir per se; os ponteiros permitem que os objectos permaneçam inalterados mas a atribuição liga-o a outro objecto.

10 Funções (versão C/C++) Ponteiros a gogo: double dval; double *pd = &val; double *pd2=pd; int *pe = pd; //erro! Ponteiros de tipo diferente pi = &dval; // OK! int ival =1024, ival2 =2048; int *pi = &ival, *pi2=&ival2; pi=pi2; // pi aponta para ival2; valor de ival2 não modificado int &ri =ival, &ir2 = ival2; // ri e ri2 sao referencias a ival e ival2 ri = ri2; // atribui ival2 a ival; valor de ival modificado No último caso a atribuição altera ival, não o valor referenciado por ri, mas não a referência; as 2 referências referem-se na mesma aos objectos originais e agora o valor desses objectos é o mesmo