Manipulação de Arquivos Binários
|
|
|
- Victoria Martini Farinha
- 8 Há anos
- Visualizações:
Transcrição
1 Introdução à Computação I Departamento de Física e Matemática FFCLRP-USP Prof. Dr. José Augusto Baranauskas IBm1006 1º Semestre/2006 Notas de Aula Manipulação de Arquivos Binários Até agora vimos como criar arquivos de acesso seqüencial bem como realizar a busca por uma informação particular nesses arquivos. Arquivos seqüenciais são inadequados para aplicações ditas de acesso instantâneo. Algumas aplicações típicas de acesso instantâneo são os sistemas de reservas de vôos, sistemas de ponto-de-venda, caixas automáticos, sistemas bancários e outros tipos de sistemas de processamento de transações que requerem acesso rápido a um dado específico. Por exemplo, no banco onde você possui sua conta corrente, mesmo quando você utiliza um caixa automático, sua conta é verificada se possui fundos em alguns segundos. Este tipo de acesso instantâneo é possível através dos arquivos de acesso aleatório. Os registros individuais em um arquivo de acesso aleatório podem ser acessados direta e rapidamente sem ser necessário procurar em todos os registros. Como vimos em aulas anteriores, C++ não impõe estrutura para arquivos. Assim, a aplicação que deseja fazer uso de arquivos de acesso aleatório deve literalmente criá-los. Uma variedade de técnicas pode ser utilizada para criar arquivos de acesso aleatório e possivelmente a mais simples requer que todos os registros no arquivo possuam um tamanho fixo. A utilização de registros de tamanho fixo facilita o cálculo da localização exata de qualquer registro relativamente ao início do arquivo (como uma função do tamanho do registro e da chave). Na figura seguinte é mostrado um esquema C++ de um arquivo de acesso aleatório, composto de registros de tamanho fixo (cada registro possui 100 bytes). Um arquivo de acesso aleatório é como um trem com vários vagões, alguns cheios, outros vazios byte offsets 100 bytes 100 bytes 100 bytes 100 bytes 100 bytes 100 bytes Os dados podem ser inseridos em um arquivo de acesso aleatório sem destruir outros dados no arquivo. Os dados armazenados anteriormente também podem ser atualizados ou apagados sem a necessidade de reescrever o arquivo inteiro. Criando um Arquivo Binário No exemplo seguinte é criado um arquivo que pode ser utilizado para gerenciar um sistema de contas de clientes. Assume-se que cada cliente é identificado pelo número de sua conta, nome e saldo. A seguinte estrutura de dados é definida: 1 // cliente.h 2 // Definição da estrutura cliente 3 #ifndef CLIENTE_H 4 #define CLIENTE_H 5 6 struct cliente 7 { int numero; 8 char nome[30]; 9 float saldo; 10 }; #endif Com base nisso, o programa seguinte cria o arquivo denominado credito.dat contendo 100 registros em branco ou seja, com informações que podem ser consideradas como indicadoras de um registro vazio 1
2 (linha 9). Na linha 17, os registros (todos iguais a clientevazio) são gravados no arquivo através do comando: outcredito.write((const char *)(&clientevazio), sizeof(cliente)); O método write requer dois parâmetros, sendo o primeiro um ponteiro constante para o tipo de dados char. Assim, é necessário converter a variável clientevazio (do tipo cliente) para o tipo (const char *). Em algumas implementações é necessário substituir o comando anterior por: outcredito.write(reinterpret_cast<const char *>(&clientevazio), sizeof(cliente)); O segundo parâmetro do método write é um inteiro do tipo size_t especificando o número de bytes a serem escritos. O tamanho do registro de cliente é dado pela função sizeof(cliente), que determina quantos bytes a estrutura de dados (registro) cliente ocupa no computador em questão. 1 // cliente1.cpp 2 // Criação sequencial de um arquivo de acesso aleatório 3 #include <iostream> 4 #include <fstream> 5 #include <cstdlib> 6 using namespace std; 7 #include "cliente.h" 8 int main() 9 { cliente clientevazio = {0, "", 0.0}; 10 Ofstream outcredito("credito.dat",ios::out); if(! outcredito) 13 { cerr << "Arquivo credito.dat nao pode ser aberto." << endl; 14 exit(1); 15 } 16 for (int i = 0; i < 100; i++) 17 outcredito.write((const char *)(&clientevazio),sizeof(cliente)); 18 return 0; 19 } Escrevendo Dados Aleatoriamente em um Arquivo Uma vez criado o arquivo com o programa anterior, agora podemos proceder à atualização dos registros contidos nele no programa seguinte. Observe na linha 10: o modo de abertura ios::ate abre um arquivo para gravação e move o ponteiro de arquivo para o final-de-arquivo; os dados podem ser gravados em qualquer posição no arquivo neste modo de abertura de arquivo. O programa então lê um número de conta, c.numero (linhas 17-18) entre 1 e 100 (que é o total de registros existentes no arquivo criado com o programa anterior). Em seguida o nome e saldo do cliente são lidos (linhas 20-21). Na linha 24 o ponteiro de arquivo é posicionado na conta desejada (lembre-se que o ponteiro de arquivo indica o número de bytes deslocados em relação ao início do arquivo e que o arquivo começa no byte de número zero. Assim, para o primeiro registro, devemos posicionar no byte zero; para o segundo registro devemos posicionar no byte sizeof(cliente) e assim por diante. Para o n-ésimo registro, devemos posicionar no byte (n-1)*sizeof(cliente). Uma vez o ponteiro de arquivo na posição correta, na linha 26 os dados fornecidos pelo usuário são regravados por cima dos existentes, atualizando as informações. 1 // cliente2.cpp 2 // Escrevendo Dados de modo aleatorio 3 #include <iostream> 4 #include <fstream> 5 #include <cstdlib> 6 using namespace std; 7 #include "cliente.h" 8 int main() 9 { cliente c; 10 ofstream outcredito("credito.dat",ios::ate); 2
3 11 12 if(! outcredito) 13 { cerr << "Arquivo credito.dat nao pode ser aberto." << endl; 14 exit(1); 15 } cout << "Enter numero da conta de 1 a 100 (0 termina) "; 18 cin >> c.numero; 19 while(c.numero > 0 && c.numero <= 100) 20 { cout << "Entre nome, saldo\n? "; 21 cin >> c.nome >> c.saldo; // posicionar no cliente desejado 24 outcredito.seekp((c.numero - 1) * sizeof(cliente)); 25 // atualizar dados 26 outcredito.write((const char *)(&c),sizeof(cliente)); cout << "Enter numero da conta de 1 a 100 (0 termina) "; 29 cin >> c.numero; 30 } 31 return 0; 32 } Lendo Dados Seqüencialmente a partir de um Arquivo de Acesso Aleatório Considerando o próximo programa, nas linhas 24 e 32, os registros são lidos do arquivo através do comando: incredito.read((char *)(&c), sizeof(cliente)); O método read requer dois parâmetros, sendo o primeiro um ponteiro para o tipo de dados char. Assim, é necessário converter a variável c (do tipo cliente) para o tipo (char *). Em algumas implementações é necessário substituir o comando anterior por: incredito.read(reinterpret_cast<char *>(&c), sizeof(cliente)); O segundo parâmetro do método read é um inteiro do tipo size_t especificando o número de bytes a serem lidos. Como antes mencionado, o tamanho do registro de cliente é dado pela função sizeof(cliente), que determina quantos bytes a estrutura de dados (registro) cliente ocupa no computador em questão. Como o arquivo foi aberto no modo leitura (ios::in), observe que não há nenhuma chamada ao método seekg para posicionamento do ponteiro de arquivo. Ao ler um registro, o ponteiro de arquivo é automaticamente incrementado pela quantidade de bytes lidos, posicionando o ponteiro de arquivo no próximo registro do arquivo. Assim, mesmo o arquivo sendo de acesso aleatório, os dados podem ser lidos seqüencialmente. O laço na linha 25 while (incredito &&! incredito.eof()) utiliza o método eof para determinar quando o final-de-arquivo é atingido e termina a execução do laço. Além disso, se houver um erro de leitura do arquivo, o laço termina uma vez que InCredito será false. 1 // cliente3.cpp 2 // Lendo Dados Sequencialmente a partir de um Arquivo de Acesso Aleatório 3 #include <iostream> 4 #include <iomanip> 5 #include <fstream> 6 #include <cstdlib> 7 using namespace std; 8 #include "cliente.h" 9 int main() 10 { cliente c; 11 ifstream incredito("credito.dat", ios::in); if(! incredito) 14 { cerr << "Arquivo credito.dat nao pode ser aberto." << endl; 3
4 15 exit( 1 ); 16 } cout << setiosflags(ios::left) 19 << setw(10) << "Conta" 20 << setw(30) << "Nome" 21 << resetiosflags(ios::left) 22 << setw(10) << "Saldo" << endl; incredito.read((char *)(&c),sizeof(cliente)); 25 while (incredito &&! incredito.eof()) 26 { if(c.numero!= 0) 27 cout << setiosflags( ios::left ) 28 << setw(10) << c.numero 29 << setw(30) << c.nome 30 << setw(10) << setprecision( 2 ) << resetiosflags(ios::left) 31 << setiosflags(ios::fixed ios::showpoint) << c.saldo << '\n'; 32 incredito.read((char *)(&c),sizeof(cliente)); 33 } 34 return 0; 35 } Exemplo de Programa de Processamento de Transações O programa seguinte utiliza um arquivo de acesso aleatório para obter acesso instantâneo aos registros de um arquivo, simulando contas de clientes em um banco. A opção número 1 deve ser utilizada somente uma única vez, já que ela cria o arquivo com 100 registros em branco ou sobrepõe os 100 registros existentes com valores que consideramos como registros vazios. Note que, embora interpretemos os registros como vazios, eles contêm dados, ou seja, zero para o número de conta e saldo e um vetor de caracteres de tamanho zero para o nome. 1 #include <iostream> 2 #include <fstream> 3 #include <iomanip> 4 #include <cstdlib> 5 #include <string> 6 using namespace std; 7 #include "cliente.h" 8 enum Escolhas {CRIAR=1, TELA, ARQUIVOTEXTO, ATUALIZAR, NOVO, APAGAR, FIM}; 9 // Escolhas enterchoice() 11 // pre: nenhuma 12 // pos: exibe menu na tela e solicita acao a ser tomada ao usuario 13 { int menuchoice; 14 cout << "\nmenu:" << endl 15 << "1 - cria registros vazios no arquivo\n" 16 << "2 - lista os dados na tela\n" 17 << "3 - armazena os dados no arquivo texto \"print.txt\"\n" 18 << "4 - atualiza uma conta que ja contenha informacoes\n" 19 << "5 - insere informacoes em uma nova conta\n" 20 << "6 - apaga informacoes de uma conta\n" 21 << "7 fim do programa\n" 22 << "Opcao: "; 23 cin >> menuchoice; 24 return (Escolhas) menuchoice; 25 } 26 // void create(fstream &f) 28 // pre: arquivo f aberto 29 // pos: insere/sobrepoe 100 registros no arquivo, destruindo 30 // qualquer informacao anterior 31 { cliente clientevazio = {0, "", 0.0}; f.seekg(0); 34 for (int i = 0; i < 100; i++) 35 f.write((const char *)(&clientevazio),sizeof(cliente)); 36 } 37 // void outputline(ostream &output, const cliente &c) 39 // pre: arquivo output aberto para escrita, cliente c contendo dados de cliente 40 // pos: escreve dados do cliente c no arquivo output 41 { output << setiosflags(ios::left) 42 << setw(10) << c.numero 4
5 43 << setw(30) << c.nome 44 << setw(10) << setprecision(2) << resetiosflags(ios::left) 45 << setiosflags(ios::fixed ios::showpoint) << c.saldo << '\n'; 46 } 47 // void screen(fstream &f) 49 // pre: Arquivo f contendo dados de clientes aberto 50 // pos: Cria um arquivo texto formatado para impressao 51 { cliente c; cout << setiosflags(ios::left) 54 << setw(10) << "Conta" 55 << setw(30) << "Nome" 56 << resetiosflags(ios::left) << setw(10) << "Saldo" << endl; f.seekg(0); 59 f.read((char *)(&c),sizeof(cliente)); 60 while(! F.eof()) 61 { if(c.numero!= 0) 62 outputline(cout,c); 63 f.read((char *)(&c),sizeof(cliente)); 64 } 65 } 66 // void textfile(fstream &f) 68 // pre: Arquivo f contendo dados de clientes aberto 69 // pos: Cria um arquivo texto formatado para impressao 70 { cliente c; 71 ofstream outprintfile("print.txt",ios::out); if(! outprintfile) 74 { cerr << "Arquivo print.txt nao pode ser aberto." << endl; 75 exit(1); 76 } outprintfile << setiosflags(ios::left) 79 << setw(10) << "Conta" 80 << setw(30) << "Nome" 81 << resetiosflags(ios::left) << setw(10) << "Saldo" << endl; f.seekg(0); 84 f.read((char *)(&c),sizeof(cliente)); 85 while(! f.eof()) 86 { if(c.numero!= 0) 87 outputline(outprintfile,c); 88 f.read((char *)(&c),sizeof(cliente)); 89 } 90 outprintfile.close(); 91 } 92 // int getaccount(string msg) 94 // pre: nenhuma 95 // pos: imprime msg, obtem do teclado um numero de conta entre 1 e 100 e retorna-o 96 { int conta; do 99 { cout << msg << " (1-100): "; 100 cin >> conta; 101 } while (conta < 1 conta > 100); return conta; 104 } 105 // void updaterecord(fstream &f) 107 // pre: Arquivo f aberto 108 // pos: Atualiza o saldo de uma conta 109 { int conta; 110 cliente c; 111 float transacao; conta = getaccount("conta a ser atualizada"); 114 f.seekg((conta 1) * sizeof(cliente)); // posicionar na conta desejada 115 f.read((char *)(&c),sizeof(cliente)); // ler dados da conta 116 if(c.numero!= 0) // conta contem informacao? 117 { outputline(cout,c); 118 cout << "\nentre deposito (+) ou retirada (-): "; 119 cin >> transacao; 120 c.saldo += transacao; 121 outputline(cout,c); 122 f.seekp((conta - 1) * sizeof(cliente)); // posicionar na conta desejada 5
6 123 f.write((const char *)(&c),sizeof(cliente)); // atualizar 124 } 125 else 126 cerr << "Conta #" << conta << " nao possui informacao." << endl; 127 } 128 // void newrecord(fstream &f) 130 // pre: arquivo f aberto 131 // pos: insere informacao em um registro de conta que esteja vazio (sem informacao) 132 { int conta; 133 cliente c; conta = getaccount("numero da nova conta"); 136 f.seekg((conta-1) * sizeof(cliente)); // posicionar na conta desejada 137 f.read((char *)(&c),sizeof(cliente)); // ler dados da conta 138 if(c.numero == 0) 139 { cout << "Entre nome, saldo\n? "; 140 cin >> c.nome >> c.saldo; 141 c.numero = conta; 142 f.seekp((conta - 1) * sizeof(cliente)); // posicionar na conta desejada 143 f.write((const char *)(&c),sizeof(cliente)); // atualizar 144 } 145 else 146 cerr << "Conta #" << conta << " ja possui informacao." << endl; 147 } 148 // void deleterecord(fstream &f) 150 // pre: arquivo f aberto 151 // pos: conta fornecida pelo usuario e apagada 152 // (informação em branco) 153 { int conta; 154 cliente c, clientevazio = {0, "", 0.0}; conta = getaccount("conta a ser apagada"); 157 f.seekg((conta-1) * sizeof(cliente)); 158 f.read((char *)(&c),sizeof(cliente)); 159 if(c.numero!= 0) 160 { f.seekp((conta - 1) * sizeof(cliente)); 161 f.write((const char *)(&clientevazio), sizeof(cliente)); 162 cout << "Conta #" << conta << " apagada." << endl; 163 } 164 else 165 cerr << "Conta #" << conta << " ja esta apagada." << endl; 166 } 167 // void main() 169 { Escolhas opcao; 170 fstream inoutcredito("credito.dat", ios::in ios::out); // leitura e escrita if(! inoutcredito) 173 { cerr << "Arquivo credito.dat nao pode ser aberto." << endl; 174 exit (1); 175 } while ((opcao = enterchoice())!= FIM) 178 { switch (opcao) 179 { case CRIAR: 180 create(inoutcredito); 181 break; 182 case TELA: 183 screen(inoutcredito); 184 break; 185 case ARQUIVOTEXTO: 186 textfile(inoutcredito); 187 break; 188 case ATUALIZAR: 189 updaterecord(inoutcredito); 190 break; 191 case NOVO: 192 newrecord(inoutcredito); 193 break; 194 case APAGAR: 195 deleterecord(inoutcredito); 196 break; 197 default: 198 cerr << "Opcao incorreta\n"; 199 break; 200 } 201 inoutcredito.clear(); // limpa o indicador de final-de arquivo 202 } 6
7 203 return 0; 204 } 7
Operações com Arquivos
Operações com Arquivos Programação de Computadores I Emiliana Mara Lopes Simões [email protected] Universidade Federal de Ouro Preto dezembro 2009 Arquivos Os arquivos são utilizados para armazenamento
Aula 28: Arquivos de texto
Aula 28: Arquivos de texto Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Baseado nos slides de Guillermo Cámara-Chávez Aulas anteriores Memória Ponteiro Utilização
Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença
C++ Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença Primeiro Programa //Primeiro Programa C++ #include int main() { std::cout
ESTRUTURA COM DECISÃO COMPOSTA
LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA ESTRUTURA COM DECISÃO COMPOSTA Prof. Dr. Daniel Caetano 2018-1 Objetivos Entender o que são decisões compostas Compreender como implementar decisões compostas Capacitar
INFORMÁTICA APLICADA AULA 05 LINGUAGEM DE PROGRAMAÇÃO C++
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: Bacharelado em Ciências e Tecnologia INFORMÁTICA APLICADA AULA 05 LINGUAGEM DE PROGRAMAÇÃO C++ Profª ª Danielle Casillo LAÇOS Laços são comandos da linguagem
Linguagem C++ Estruturas de controle Parte II Estruturas de repetição
Fundamentos de Programação Linguagem C++ Estruturas de controle Parte II Estruturas de repetição Prof. Bruno E. G. Gomes IFRN 1 Estruturas de Controle Permitem o controle da sequência de execução de um
LISTA DE EXERCÍCIOS 2
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO DE CIÊNCIA DA COMPUTAÇÃO PROGRAMAÇÃO DE COMPUTADORES 1. TIPOS COMPOSTOS DE DADOS LISTA DE EXERCÍCIOS 2 1. Considerando as declarações abaixo, responda dizendo
Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.
Computação L2 Linguagem C++ [email protected] Observação: Material Baseado na Disciplina Computação Eletrônica. Alfabeto São os símbolos ( caracteres ) permitidos na linguagem: Letras (maiúsculas e minúsculas);
Aula 11: Laços e exercícios
Aula 11: Laços e exercícios Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula Anterior Manipulação de laços Exercício 2 /
Aula 10: Manipulação do fluxo de laços
Aula 10: Manipulação do fluxo de laços Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula Anterior Laços aninhados Exemplos
Instituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I
LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I Prof. Bruno E. G. Gomes Uma variável em um algoritmo pode ser vista como uma gaveta. A declaração de uma variável reserva uma gaveta (posição) de um certo
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
Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira Anilton Joaquim da Silva
Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira [email protected] Anilton Joaquim da Silva [email protected] Matrizes Uma matriz é uma variável capaz de armazenar vários dados de
Manipulação de Arquivos
1 Manipulação de Arquivos Para realizar E/S em arquivo, você precisa incluir o arquivo-cabeçalho fstream.h nos programas. Esse arquivo define muitas classes e valores importantes. Abrindo e fechando um
Fundamentos de Programação Linguagem C++ Entrada e saída com arquivos
Fundamentos de Programação Linguagem C++ Entrada e saída com arquivos Prof.: Bruno E. G. Gomes IFRN 1 Introdução Entrada e saída de dados pode ser feita: Para dispositivo de entrada/saída (monitor, impressora,
//conteúdo do arquivo Matriz.h class Matriz { private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void
//conteúdo do arquivo Matriz.h class Matriz private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void setnumerodecolunas(int); int getnumerodelinhas(); int getnumerodecolunas();
Computação 2. Aula 8. Profª. Fabiany Arquivos
Computação 2 Aula 8 Arquivos Profª. Fabiany [email protected] E/S com Arquivos A linguagem C não possui nenhum comando de E/S. Todas as operações de E/S ocorrem mediante chamadas a funções de biblioteca
Aula 05: Condicionais (Parte 2)
Aula 05: Condicionais (Parte 2) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula Anterior Breve Revisão Comandos de Decisão
UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2007/2008
UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2007/2008 Introdução à Programação em C 28/01/2008 Leia com atenção as perguntas e justifique cuidadosamente todas as respostas 1. Descreva,
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
Estruturas de Dados. Módulo 15 - Arquivos. 2/6/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 15 - Arquivos 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
PCS Laboratório de Programação Orientada a Objetos 1a. Prova. 02 de Setembro de 2015
PCS - 3111 Laboratório de Programação Orientada a Objetos 1a. Prova 02 de Setembro de 2015 Questão 1 (2,6) Deseja-se implementar um programa que recebe um mês e um dia atual de um ano e o mês e o dia de
Structs, Ponteiros e Arquivos. Prof. Maurício Dias
Structs, Ponteiros e Arquivos Prof. Maurício Dias Registros e structs Um registro (= record) é uma coleção de várias variáveis, possivelmente de tipos diferentes. Na linguagem C, registros são conhecidos
Aula 01 Algoritmos e lógica de programação e introdução ao C++
Aula 01 Algoritmos e lógica de programação e introdução ao C++ Autor: José Martins de Castro Neto Carga Horária: 2h 21 de julho de 2015 1 Algoritmo e lógica de programação Ementa do curso 1. Definições
LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA
LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA OUTRAS ESTRUTURAS DE REPETIÇÃO Prof. Dr. Daniel Caetano 2013-1 Objetivos Conhecer outras estruturas de repetição da linguagem C/C++ Compreender o uso de cada uma delas
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
Computação Eletrônica. Aula 12 Arquivos Texto e Binário. Prof: Luciano Barbosa. CIn.ufpe.br
Computação Eletrônica Aula 12 Arquivos Texto e Binário Prof: Luciano Barbosa Relembrando a Arquitetura Básica de um Computador Até agora, toda a informação armazenada por nossos programas estava na memória
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
Arquivos em C Parte 2
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Arquivos em C Parte 2 Profa Rosana Braga Material preparado pela profa Silvana Maria Affonso de Lara 1º semestre de
ITENS FUNDAMENTAIS Programando em C++
INFORMÁTICA E COMPUTAÇÃO - CMP 1060 AULA 3 ITENS FUNDAMENTAIS Programando em C++ 1. Constantes São valores que são mantidos fixos pelo compilador. Tipo de Dado Exemplos de Constantes char b \n \0 int 2
Programação científica C++
Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 2 Expressões Combinação de dados e operadores que resulta em um valor. expressão x = 2 * y + 4; variável operador constante Memória do computador
Módulo 2. Acesso a Arquivos. Métodos e Algoritmos Computacionais C++ (Rone Ilídio)
Módulo 2 Acesso a Arquivos Métodos e Algoritmos Computacionais C++ (Rone Ilídio) Manipulação de Objetos iostream Bytes armazenados na memória Tipos: Arquivos com caracteres: textos Arquivos binários: programas,
Pilhas. Profa Morganna Diniz
Pilhas Profa Morganna Diniz Pilhas Geralmente pilhas são úteis em situações em que dados devem ser recuperados em ordem inversa a do armazenamento É uma estrutura de dados linear que permite acesso por
Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza
Introdução Manipulação de arquivos em C Estrutura de Dados II Prof Jairo Francisco de Souza Manipulação de Arquivo em C Existem dois tipos possíveis de acesso a arquivos na linguagem C : sequencial (lendo
Aula 27: Estruturas heterogêneas e alocação dinâmica
Aula 27: Estruturas heterogêneas e alocação dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória
Módulo 5. Instruções if e switch. Algoritmos e Estruturas de Dados I C++ (Rone Ilídio)
Módulo 5 Instruções if e switch Algoritmos e Estruturas de Dados I C++ (Rone Ilídio) Comando de decisão if Executa uma determinada seqüência de comandos se sua condição for verdadeira Sintaxe if (condição)
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 Principais Tópicos 3.2. Estrutura de Programas e Representação
Linguagem C: if-else e operadores lógicos
switch-case-default Exercícios Linguagem C: if-else e operadores lógicos Introdução à linguagem C(++) Profs. Anilton, Lasaro e Paulo Coelho Faculdade de Computação Universidade Federal de Uberlândia Profs.
Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2015 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] icmc. usp. br, gmail. com Página Pessoal: http://www.icmc.usp.br/~fosorio/
Variáveis, Comandos de Atribuição e Comando de Entrada e Saída
BCC 201 - Introdução à Programação Variáveis, Comandos de Atribuição e Comando de Entrada e Saída Guillermo Cámara-Chávez UFOP 1/63 Estrutura Básica de um programa C I < d i r e t i v a s do pre p r o
Acesso Aleatório em Arquivos
Acesso Aleatório em Arquivos INF01202 Prof. Lucas Mello Schnorr 1 / 17 Sumário Em C (lidar com o conteúdo de arquivos) Habituais funções de abertura, leitura, escrita, fechamento Retornar rewind Reposicionar
Capítulo 6: Arquivos
Capítulo 6: Arquivos Waldemar Celes e Roberto Ierusalimschy 29 de Fevereiro de 2012 1 Funções de entrada e saída em arquivos Nos capítulos anteriores, desenvolvemos programas que capturam seus dados de
CHAPTER ONE. Elementos de organização de arquivos. Histórico
/ EDOA / 1 CHAPTER ONE Elementos de organização de arquivos Histórico Os primeiros projetos de arquivos assumiam que os arquivos estariam em fitas, o acesso era sequencial e o custo do acesso era diretamente
Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.
Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto de
Linguagem de Programação C. Arquivos
Arquivos Cristiano Lehrer Introdução Em C um arquivo é apenas um conjunto de bytes colocados uns após os outros de forma sequencial: Utilização de arquivos: Fonte de dados para o programa: Trata-se de
Arquivos em C. Notas de Aula. Prof. Francisco Rapchan
Arquivos em C Notas de Aula Prof. Francisco Rapchan www.geocities.com/chicorapchan Há várias definições para arquivos em computação. Uma das mais usadas é a de que um arquivo é um conjunto de registros
