Banco de Dados Alimentos SA

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

Download "Banco de Dados Alimentos SA"

Transcrição

1 1 Universidade Estadual de Feira de Santana Departamento de Ciências Exatas Banco de Dados Alimentos SA João Carlos Nunes Bittencourt Feira de Santana, 2008

2 2 SUMÁRIO 1 Introdução Fundamentação Teórica Alocação Dinâmica - Função malloc() Arquivo Abrindo um Arquivo - Função fopen() Fechando um Arquivo - Função fclose() Gravando Estruturas - Função fwrite() Lendo Estruturas - Função fread() Função fseek() Função ftell() RESULTADOS Declaração das Estruturas Função cadastro() Função atualizabanco() Função ordenaindicenm() e ordenaindicept() Função liberalistanm() e liberalistapt() Função ordena() e consulta() Função imprime(), imprimenm() e imprimecg() Função excluir() e excluinm() Função alteradados() Conclusão Referências... 39

3 3 1. INTRODUÇÃO Um banco de dados sempre foi um recurso muito utilizado por empresas, por exemplo, para armazenar dados de clientes, funcionários, estoque, dentre outros. O presente projeto apresenta uma solução para armazenamento de dados de candidatos a vagas de emprego nas empresas. Trata-se de um sistema de banco de dados que permite o cadastramento de candidatos a vagas de emprego e possibilita que o setor de RH da empresa visualize os dados a qualquer momento. O acesso aos dados traz uma grande facilidade no processo de seleção, considerando que filtros podem ser criados para listagem de candidatos por cargo, por exemplo. Tal software deve também permitir que o cadastro de cada pessoa seja constantemente atualizado, tornando o banco de dados um conteúdo dinâmico e muito mais eficiente. Diante disso os próximos itens irão fundamentar e em seguida tratar da metodologia para o desenvolvimento de um aplicativo deste tipo. Tal software, mesmo tendo algumas limitações, didaticamente será capaz de permitir um futuro incremento de recursos.

4 4 2. FUNDAMENTAÇÃO TEÓRICA Para o desenvolvimento do aplicativo solicitado foi feito uso de funções utilizadas em aplicativos com banco de dados integrado. Neste caso utilizou-se de alguns comandos para tratamento de arquivos e alocação dinâmica além dos recursos anteriormente estudados como estruturas, ponteiros etc. A seguir uma breve apresentação de cada uma delas. 2.1 Alocação Dinâmica: Função malloc() Ao imaginar um programa interativo onde não seja conhecida a quantidade dados que serão fornecidas tende-se ao uso de vetor, que reserva um determinado espaço na memória para a utilização da uma variável. Entretanto não pode-se considerá-lo eficiente, pois existirão casos em que não serão utilizados todos os espaços ocorrendo desperdício de de memória e isso não é interessante para o desenvolvimento de aplicativos onde tem-se um grande número de estruturas que necessitam de espaço para serem alocadas (MIZRAHI, 1990). Uma solução para este tipo de problema é a de solicitar memória toda vez que se faça necessário. O mecanismo para aquisição de memória é a função malloc(). Ela toma um inteiro sem sinal como argumento. Este número representa a quantidade em bytes de memória requerida. A função retorna um ponteiro para o primeiro byte do novo bloco de memória que foi alocado (MIZRAHI, 1990). Ao chamar a função malloc() deve-se informar o tamanho da estrutura que se deseja guardar. Podese conhecer este tamanho adicionando os bytes usados por cada membro da estrutura, ou através do uso do operador sizeof(). Este produz um inteiro correspondente ao tamanho, em bytes, da variável ou do tipo de dado que está em seu operando (MIZRAHI, 1990). A função malloc() retorna um ponteiro para void. Portanto é preciso indicar ao compilador que o valor retornado pela função é do tipo desejado. Para tal faz-se uso do chamado operador de molde. Vale ressaltar que ponteiro para void nada tem a ver com o tipo void para funções (MIZRAHI, 1990).

5 5 Como complemento à função malloc() tem-se a free(). Esta aceita como argumento um ponteiro para uma área da memória previamente alocada e então a libera para uma possível reutilização (MIZRAHI, 1990). Uma das principais aplicabilidades da alocação dinâmica é na criação de listas encadeadas. Esta pode ser associada a uma corrente onde as estruturas estão penduradas seqüencialmente. Ou seja, a corrente é acessada através de um ponteiro para a primeira estrutura, chamado cabeça, e cada estrutura contem um ponteiro para sua sucessora, e o ponteiro da última estrutura tem valor NULL que indicará o fim da lista (MIZRAHI, 1990). Abaixo um exemplo genérico da utilização da função malloc(): ponteiro=(struct estrutura*) malloc(sizeof(struct estrutura)); 2.2 Arquivo Nos tópicos que se seguem serão apresentadas as funções utilizadas para tratar os arquivos durante o desenvolvimento do software. Serão apresentadas funções para abertura, leitura e escrita. Vale ressaltar que o presente relatório limitar-se-á apenas utilização de arquivos do tipo binário, portanto fundamentações referentes a arquivos tipo texto serão omitidas (MIZRAHI, 1990). A escolha da utilização de arquivos do tipo binário foi definida pela facilidade com que se dá a inserção de uma estrutura dentro de um arquivo deste tipo, onde esta pode ser escrita ou lida de uma única vez, tornando o processo descomplicado e consideravelmente eficiente Abrindo um Arquivo Função fopen() Quando solicitada a abertura de um arquivo, a informação que se recebe é um ponteiro para a estrutura FILE para cada arquivo. Para gerar um código que abre um arquivo, o compilador deve

6 6 conhecer o nome deste, o tipo de abertura e onde serão armazenadas as informações sobre ele. Por exemplo: fptr = fopen( arqivo.bin, wb ); O caminho também pode ser escrito de forma completa ou com o drive desejado. O wb é um dos três tipo os quais pode-se definir para a abertura de um arquivo. A Tabela 1 contém os tipos utilizados no presente projeto com suas respectivas funções (MIZRAHI, 1990). Tabela 1 Tipos de abertura de arquivo. rb wb ab rb+ wb+ ab+ Abrir um arquivo binário para leitura. O arquivo deve estar presente no disco. Abrir um arquivo binário para gravação. Se o arquivo estiver presente ele será destruído e reinicializado. Se não existir ele será criado. Abrir um arquivo binário para gravação. Os dados serão adicionados ao fim do arquivo existente ou um novo arquivo será criado. Abrir um arquivo binário para leitura e gravação. O arquivo deve existir e pode ser atualizado. Abrir um arquivo binário para leitura e gravação. Se o arquivo existir ele será destruído e reinicializado. Se não existir, será criado. Abrir um arquivo binário para atualizações e para adicionar dados ao fim do arquivo existente ou um novo arquivo será criado Fechando um Arquivo Função fclose() Quando terminada a gravação do arquivo é preciso fechá-lo. A função que fecha os arquivos é chamada fclose() que recebe como argumento apenas o ponteiro FILE associado ao arquivo e pode ser representada da seguinte forma: fclose(fptr); Esta função força a gravação no arquivo do conteúdo armazenado no buffer. Uma razão para fechar o arquivo é a de liberar as áreas de comunicação usadas, para que sejam disponíveis a outros arquivos. Estas áreas incluem a estrutura FILE e o buffer (MIZRAHI, 1990).

7 Gravando Estruturas Função fwrite() A função fwrite() toma quatro argumentos. O primeiro é um ponteiro do tipo void que aponta para a localização na memória do dado a ser gravado. O segundo é um número inteiro que indica o tamanho do tipo de dado a ser gravado, para tal pode-se fazer uso da função sizeof(). O terceiro é um número inteiro que informa a fwrite() quantos itens do mesmo tipo serão gravados. O quarto é um ponteiro para a estrutura FILE do arquivo onde se deseja gravar o conteúdo (MIZRAHI, 1990). fwrite(&ponteiro,sizeof(estrutura),1,arqponteiro); Lendo Estruturas Função fread() A função fread() toma quatro argumentos. O primeiro é um ponteiro void para a localização da memória onde serão armazenados os dados lidos. O segundo indica a quantidade de bytes do tipo de dados a ser lido. O terceiro informa a quantidade de itens a serem lidos a cada chamada, e o quarto é um ponteiro para a estrutura FILE do arquivo. fread(&ponteiro,sizeof(estrutura),1,arqponteiro); Esta função também retorna o número de itens lidos. Normalmente este número deve ser igual ao terceiro argumento (MIZRAHI, 1990) Função fseek() O ponteiro para o arquivo aponta para o byte do próximo acesso. A função fseek() permite a movimentação deste ponteiro. Ela aceita três argumentos. O primeiro é o ponteiro para a estrutura FILE do arquivo. Após a chamada a fseek(), este ponteiro será movimentado para a posição

8 8 desejada. O segundo é chamado de offset e consiste no número de bytes a partir da posição especificada pelo terceiro argumento, do deslocamento para o ponteiro. O último é o chamado modo. Existem três possibilidades: 0 para o começo do arquivo; 1 para a posição corrente do ponteiro; 2 para o fim do arquivo (MIZRAHI, 1990). fseek(arqponteiro,offset,0); Função ftell() A função ftell() retorna a posição do ponteiro de um arquivo binário em relação ao seu começo. Esta função aceita apenas um argumento, que é o ponteiro para a estrutura FILE do arquivo e retorna um valor do tipo long que representa o número de bytes do começo do arquivo até a posição atual (MIZRAHI, 1990).

9 9 3 RESULTADOS A seguir serão apresentados os resultados do desenvolvimento do algoritmo para o software de cadastro, armazenamento e consulta de currículos. Esta seção está dividida em tópicos para cada função e estas organizadas de forma a facilitar um melhor encadeamento de idéias. 3.1 Declaração das Estruturas Fez-se necessária a criação de três estruturas distintas. A primeira do tipo candidato foi usada para armazenar as informações do arquivo de banco de dados, a segunda do tipo indicenm e a terceira do tipo indicept foram utilizadas para armazenar informações dos arquivos de índice. Empregaram-se duas estruturas por estar-se trabalhando com variáveis do tipo caractere e inteiro, para que não houvesse conflitos entre variáveis do tipo char e int. 3.2 Função cadastro() Esta função possui todas as características do software que fazia apenas a classificação dos candidatos. Nela foi declarada uma variável struct do tipo candidato para o armazenamento dos dados do currículo. Em seguida é feita uma seqüência de perguntas às quais irão além de coletar informações importantes do candidato, somar pontos que irão classificá-lo durante o processo. Ao fim do cadastro faz-se uma chamada à função atualizabanco() que receberá como argumento a estrutura que contém os dados do candidato.

10 Função atualizabanco() Esta função é responsável por escrever os dados no arquivo de banco de fazer chamadas às funções de ordenação dos arquivos de índice nome, idade e pontos. Depois de declaradas as estruturas do tipo indicenm e indicept, faz-se a cópia dos dados provenientes da estrutura recebida como parâmetro para as estruturas de índice. Concluído o processo inicia-se a escrita no arquivo do banco de dados (os dados serão escritos sempre no final do arquivo). Iniciando o trabalho com os arquivos de índice localiza-se a posição onde os dados serão armazenados na estrutura e em seguida determina-se o ID do candidato. A lógica para o ID funciona da seguinte forma: divide-se a posição atual do ponteiro pelo tamanho da estrutura candidato (52bytes) e soma um a este valor. Por exemplo, digamos que o ponteiro aponte para a posição 156, dividindo esse valor por 52 obtêm-se 3, somando-se um concluímos que o ID encontrado é 4. Em seguida é feita a chamada para as funções de ordenação e escrita dos arquivos de índice. 3.4 Função ordenaindicenm() e ordenaindicept() As duas funções, por serem semelhantes foram unidas em um único tópico. A justificativa é a mesma dada pela criação de estruturas diferentes para arquivos de índice que armazenam char e int. A diferença primordial entre elas é o parâmetro extra recebido por ordenaindicept(), que servirá para identificar qual arquivo de índice trabalhar (w = 2, índice idade; w = 3, índice pontos). A função que ordena e escreve o arquivo de índice nome recebe como parâmetro apenas a estrutura que contêm os dados a serem escritos. Em suas variáveis devemos considerar as estruturas que irão auxiliar na criação da lista encadeada. Dentre elas tem-se a variável cabeca que armazenará sempre os dados do primeiro registro, outras chamadas prtatual, ptrnovo e prtprev. Estas serão responsáveis por armazenar os registros atual, novo e anterior, respectivamente.

11 11 Após a abertura do arquivo fez-se uso da função rewind() para apontar para o início do arquivo. Essa função foi requerida, pois o modo de abertura ab aponta sempre para o fim do arquivo. Antes do estabelecimento da lista, define-se que cabeca será sempre o primeiro registro da estrutura. Dado início ao laço aloca-se o valor de ptrnovo até que não haja mais registros a serem alocados. Terminado o procedimento inicia-se um while() que contém três condições para ordenação dos arquivos. A primeira refere-se à condição para quando o registro encontrar-se no início da lista e o valor nela for maior que o novo valor a ser inserido. Sendo assim posiciona-se o mesmo após o primeiro. A segunda condição refere-se a quando o valor a ser inserido é menor que o atual da lista e quando ainda não houve passagem pela condição anterior ou quando o ponteiro atual não possuir dados. Com isso o registro anterior recebe a nova estrutura e aponta para o ponteiro atual. Ao fim desta condição existe um break; que irá finalizar o laço. A terceira condição é executada quando nenhuma outra foi satisfeita. Ela desloca todas as estruturas para a direita e reinicia o laço. Ao fim do procedimento retorna-se para o início da lista, fecha-se o arquivo e abe-o novamente, agora em modo wb. Escreve-se os dados, já ordenados, no arquivo de índice correspondente, fecha o arquivo e libera o espaço alocado na memória. 3.5 Função liberalistanm() e liberalistapt() Mais uma vez, utiliza-se da mesma justificativa dada no tópico anterior para a criação de duas funções para executar o mesmo procedimento. Esta função recebe como argumento a estrutura atual para o arquivo de índice, que permitirá a liberação do espaço na memória utilizado pela variável. Nela foi declarada uma variável auxiliar que armazenará a estrutura atual para que ela não se perca durante o processo. Um laço desloca a estrutura para a direita, liberando o registro atual até que se chegue a NULL. 3.6 Função ordena() e consulta()

12 12 Apesar de possuir uma estrutura bastante simples, optou-se por explicá-la para auxiliar no entendimento das funções de impressão na tela. A função consulta() é utilizada para fazer uma chamada às funções de impressão em tela de modo que esta permita realizar pesquisas simples, enquanto a ordena() apenas lista os dados desejados de forma ordenada. A diferença entre as duas está no parâmetro que é enviado durante a chamada. switch(x) { case 1: imprimenm(1); break; case 2: imprime(1,2); break; case 3: imprimecg(); break; case 4: imprime(2,1); break; case 0: return; default: printf("\n\n OPCAO INVALIDA, Pressione uma tecla"); getch(); break; } A função imprimenm() recebe apenas um parâmetro. O valor 1 indica consulta ou pesquisa simples, o 2 refere-se à listagem ordenada. A função imprime() recebe além do parâmetro que indica se deseja-se pesquisar ou listar, um outro que identificará o arquivo a ser aberto 1 para o índice pontos e 2 para o índice idade. A função imprimecg() é responsável apenas pela listagem ordenada dos dados divido por cargo e faz uso do arquivo de índice nome para realizar esta operação. 3.7 Função imprime(), imprimenm() e imprimecg() Baseado no que foi descrito no item anterior as três funções serão descritas de um único modo, considerando que o procedimento executado nelas é bastante semelhante. Para realizar a consulta e a ordenação dos dados é preciso fazer uma alocação dos registros provenientes do arquivo do banco de dados. Este procedimento difere-se dos anteriores quando nela fez-se necessária a utilização da função fseek() para deslocar o cursor no arquivo de acordo com o ponteiro de índice atual. Esta função recebe a posição do cursor do arquivo de índice e aponta para o seu correspondente no arquivo de banco. Dessa forma é possível coletar as informações do arquivo de banco. Durante o laço fazem-se as comparações correspondentes ao

13 13 que se deseja exibir (exibição de candidatos por cargo, pesquisar um ou listar todos os candidatos, pesquisar por idade, listar ordenado por pontos etc.). Para comparação de strings fez-se uso da função strcoll() 1 da biblioteca string.h. Nos casos onde houve pesquisa utilizou-se um contador apenas para identificar se houve ou não sucesso durante a busca. Finalizado os processos os arquivos são fechados e a memória liberada. 3.8 Função excluir() e excluinm() Estas funções são responsáveis pela eliminação do conteúdo dos arquivos de índice. Recebem como parâmetro o ID do candidato e para a função excluir() uma variável que indicará qual arquivo de índice tratar (pontos ou idade). As duas funções diferem apenas pela variável da estrutura, como nos anteriores. O processo iniciase a partir da leitura do arquivo de índice correspondente. Em seguida determina-se uma estrutura representando sempre o primeiro registro e em seguida inicia-se o laço para alocação dos dados na memória. Mais uma vez o laço será executado enquanto a leitura do arquivo não retornar zero. Ao fim do laço retorna-se um ponteiro para o início da lista e dá-se partida ao laço responsável pela verificação das condições para eliminação do registro. Tal laço inicia com uma comparação onde é verificado se o ID da lista corresponde ao ID enviado como parâmetro. Se sim, verificam-se as comparações para exclusão, caso contrário a checagem será feita com o próximo registro da lista. A primeira condição para eliminação do registro é para quando o primeiro da lista apontar para NULL, ou seja, existe apenas um candidato cadastrado, sendo verificada esta condição, todos os ponteiros irão agora apontar para NULL. A segunda condição será para o caso de o registro com que se está comparando apontar para NULL. Dessa forma o registro anterior apontará para NULL e 1 Esta função inicia comparando o primeiro caractere de cada string, se elas forem iguais, compara-se os próximos e assim sucessivamente até que se encontre um caractere diferente ou que se chegue ao fim da string. Retorna zero se as strings forem iguais; um valor maior que zero se o caractere diferente do primeiro é maior que o segundo e um valor menor que zero quando contrário (THE C++ RESOURCES NETWORK, 2008).

14 14 o espaço alocado pelo registro atual será liberado. Uma terceira condição foi desenvolvida para quando o laço tenha sido executado pela primeira vez e o primeiro registro não apontar para NULL. Sendo assim o primeiro registro receberá o valor do seu posterior, o qual deverá apontar para NULL, como o primeiro passará a ter as mesmas características do seu conseguinte o valor deste poderá ser liberado da memória. Uma quarta e última condição refere-se aos casos onde o ponteiro atual não aponta para NULL. Conferindo-se esta condição o ponteiro prévio do atual apontará para o seu posterior, em seguida o registro atual aponta para NULL e seu valor é liberado da memória. Ao fim de cada comparação existe um break; que fará com que o laço termine e no fim deste atribuise um contador para verificar quantas vezes o laço foi executado. Terminado o laço retorna-se para o início da lista, quando dar-se-á início à escrita no arquivo de índice. Finalizado este procedimento o arquivo é fechado e o espaço de memória utilizado é liberado. 3.8 Função alteradados() Esta função é responsável pela manutenção dos dados dos candidatos no banco de dados do programa. Tem como ponto de partida uma pesquisa simples por nome do qual deseja-se alterar os dados. Tal pesquisa inicia-se com a leitura do arquivo de índice nome, apontando um ponteiro para o início da lista e fazendo uma alocação dos dados nele armazenados. Neste laço posiciona-se o ponteiro do arquivo de índice na posição correspondente do arquivo de banco para que seja possível a correta alteração dos dados usando a função fseek(). Durante o processo o arquivo de banco é aberto e um if é convocado a verificar se a string nome do registro atual corresponde ao nome indicado pelo usuário, mais uma vez fazendo uso da função strcoll(). Se o resultado da comparação for igual a zero uma seqüência de perguntas será feita ao usuário, requisitando os novos dados do candidato. Em seguida o arquivo de banco é aberto para atualização, onde os dados alterados serão sobrescritos. Faz-se uma chamada à função excuinm() para eliminar o valor alterado do arquivo de índice e em seguida é feita uma nova ordenação deste arquivo, agora com a estrutura do novo registro a ser

15 15 adicionado. A alteração nos outros arquivos de índice não se fez necessária, pois os dados destes apenas apontam para uma posição no arquivo de banco e todo o seu conteúdo pode ser lidos por meio deste. Finalizando as funções, os arquivos são fechados e o espaço de memória utilizado é liberado para uma posterior utilização.

16 16 4 CONCLUSÃO Após a realização deste estudo fez-se possível a obtenção de novas habilidades na utilização da linguagem C. Foi possível aprender como manipular estruturas com arquivos, fazendo uso de funções para abertura, escrita, leitura, posicionamento, dentre outras e determinar qual a maneira mais eficiente de se trabalhar com este tipo de recurso. Durante todo o desenvolvimento do código fez-se necessário o aprendizado da manipulação dos registros armazenados em um arquivo para a formação de listas encadeadas, permitindo a sua completa manipulação por meio do desenvolvimento de lógicas para atender aos requisitos solicitados. Por meio desta foi possível ordenar, listar, pesquisar, excluir e alterar dados específicos dentro de uma estrutura armazenada em um banco de dados. Dentre outros, este projeto permitiu um grande avanço no aprendizado da linguagem C, tal qual será de suma importância quando houver a necessidade de se trabalhar com outro tipo de programação.

17 17 REFERÊNCIAS MIZRAHI, Victorine Viviane. Treinamento em linguagem C: Módulo 2. São Paulo: Makron Books, THE C++ RESOURCES NETWORK; Disponível em: < Data de acesso: 17 de Fevereiro de 2008.

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

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

Arquivos em C. Material da Prof. Ana Eliza

Arquivos em C. Material da Prof. Ana Eliza em C Material da Prof. Ana Eliza Definição Um arquivo é uma estrutura de dados linear ( lista ) que é mantida fora da memória principal, em um dispositivo de armazenamento (memória secundária). Um arquivo

Leia mais

Programação Computacional Aula 17: Manipulação de arquivos

Programação Computacional Aula 17: Manipulação de arquivos Programação Computacional Aula 17: Manipulação de arquivos Profa. Madeleine Medrano madeleine@icte.uftm.edu.br Arquivos de registros Os dados manipulados pelos nossos programas (dados de entrada, dados

Leia mais

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. 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

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

LINGUAGEM C: ARQUIVOS

LINGUAGEM C: ARQUIVOS LINGUAGEM C: ARQUIVOS Prof. André Backes Arquivos 2 Por que usar arquivos? Permitem armazenar grande quantidade de informação; Persistência dos dados (disco); Acesso aos dados poder ser não seqüencial;

Leia mais

TÉCNICAS DE PROGRAMAÇÃO

TÉCNICAS DE PROGRAMAÇÃO TÉCNICAS DE PROGRAMAÇÃO Arquivo Conceitos Arquivo Fluxo de bytes stream Linguagem C Estrutura do tipo FILE FILE contém informações do arquivo Tamanho Ponteiro para buffer dados Atual operação sobre o arquivo

Leia mais

Introdução a Programação. Arquivos

Introdução a Programação. Arquivos Introdução a Programação Arquivos Tópicos da Aula Hoje aprenderemos a persistir dados Conceito de arquivos Importância de persistência Modos de acesso de arquivos em C Operações em arquivos Funções de

Leia mais

Aula: ARQUIVOS. Introdução à Ciência da Computação I Simone Senger Souza. ICMC/USP São Carlos

Aula: ARQUIVOS. Introdução à Ciência da Computação I Simone Senger Souza. ICMC/USP São Carlos Aula: ARQUIVOS Introdução à Ciência da Computação I Simone Senger Souza ICMC/USP São Carlos Introdução As estruturas vistas anteriormente armazenam as informações na memória principal do computador. Nem

Leia mais

Computação 2. Aula 8. Profª. Fabiany Arquivos

Computação 2. Aula 8. Profª. Fabiany Arquivos Computação 2 Aula 8 Arquivos Profª. Fabiany fabianyl@utfpr.edu.br 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

Leia mais

Programação para Computação 13ª Aula

Programação para Computação 13ª Aula Programação para Computação 13ª Aula Arquivos em C O sistema de E/S da linguagem C utiliza o conceito de streams e arquivos, como um nível de abstração entre o programador e o dispositivo utilizado. Uma

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Arquivos Funções para abrir e fechar arquivos Arquivos em modo texto Arquivos em modo binário ATENÇÃO

Leia mais

Algoritmos e Estruturas de Dados II IEC013

Algoritmos e Estruturas de Dados II IEC013 Algoritmos e Estruturas de Dados II IEC013 Linguagem C - Arquivos - Prof. César Melo cavmelo@dcc.ufam.edu.br Slides preparados pelo Prof. Leandro Galvão galvao@dcc.ufam.edu.br Conceitos iniciais Um arquivo

Leia mais

Algoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta

Algoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta Algoritmos e Estruturas de Dados Prof. Marcelo Zorzan Profa. Melissa Zanatta Assuntos da Aula Alocação de Memória Alocação estática de memória Alocação dinâmica de memória Malloc, Calloc, Free, Realloc

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Manipulação de arquivos

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Manipulação de arquivos Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: Manipulação de arquivos Prof. Renato Pimentel 1 Introdução Até o momento, trabalhamos com programas que utilizam apenas a memória

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

Capítulo 6: Arquivos

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

Leia mais

9/24/2014. Prof. André Backes

9/24/2014. Prof. André Backes Prof. André Backes 1 Arquivos Por que usar arquivos? Permitem armazenar grande quantidade de informação; Persistência dos dados (disco); Acesso aos dados poder ser não sequencial; Acesso concorrente aos

Leia mais

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica Introdução a Programação Ponteiros e Strings, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos a relação entre ponteiros e strings Ponteiros para strings X Vetores de Caracteres Vetores de ponteiros

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

Programação de Computadores I Arquivos na Linguagem C PROFESSORA CINTIA CAETANO

Programação de Computadores I Arquivos na Linguagem C PROFESSORA CINTIA CAETANO Programação de Computadores I Arquivos na Linguagem C PROFESSORA CINTIA CAETANO Introdução As informações que os programas utilizam são perdidas quando eles são finalizados ou quando o computador é desligado.

Leia mais

Ponteiros e Alocação Dinâmica. Prof. Péricles Miranda

Ponteiros e Alocação Dinâmica. Prof. Péricles Miranda Ponteiros e Alocação Dinâmica Prof. Péricles Miranda pbcm@cin.ufpe.br Memória A memória é formada por várias células. Cada célula contém um endereço e um valor. Memória Endereço Ao declararmos uma variável

Leia mais

Universidade Estadual de Feira de Santana Departamento de Ciências Exatas. Clone do MatLab. João Carlos Nunes Bittencourt. Feira de Santana, 2008

Universidade Estadual de Feira de Santana Departamento de Ciências Exatas. Clone do MatLab. João Carlos Nunes Bittencourt. Feira de Santana, 2008 1 Universidade Estadual de Feira de Santana Departamento de Ciências Exatas Clone do MatLab João Carlos Nunes Bittencourt Feira de Santana, 2008 2 SUMÁRIO 1 Introdução... 6 2 Desenvolvimento... 7 2.1 Rotina

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Arquivos Prof. Fabio Henrique N. Abe fabio.henrique.abe@gmail.com 99642-5002 http://www.comp.uems.br/~fhna/ Exercícios 1 de Agora valendo 2,0 dos trabalhos para a P4! Entrega

Leia mais

Programação Procedimental GBC /1 Prof. Renan Cattelan Prática 10. Estruturas e alocação dinâmica

Programação Procedimental GBC /1 Prof. Renan Cattelan  Prática 10. Estruturas e alocação dinâmica Programação Procedimental GBC014 2015/1 Prof. Renan Cattelan www.facom.ufu.br/~renan Prática 10 Estruturas e alocação dinâmica Exercício Crie um programa para armazenar uma agenda de contatos pessoais

Leia mais

Programação II. Arquivos - Conceito. Arquivos

Programação II. Arquivos - Conceito. Arquivos Programação II Arquivos Jocélio Passos joceliodpassos@bol.com.br C Comp Total, Cap 9 Espaço para armazenar dados em memória auxiliar (não volátil) Arquivos em C podem ser também terminais ou impressoras

Leia mais

Introdução a Programação. Ponteiros e Vetores, Alocação Dinâmica

Introdução a Programação. Ponteiros e Vetores, Alocação Dinâmica Introdução a Programação Ponteiros e Vetores, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos que existe uma forte relação entre ponteiros e vetores Associação entre ponteiros e vetores Ponteiros constantes

Leia mais

Programação I Ponteiros e alocação dinâmica de memória. Prof. Carlos Alberto

Programação I Ponteiros e alocação dinâmica de memória. Prof. Carlos Alberto Programação I Ponteiros e alocação dinâmica de memória Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Ponteiros O ponteiro é um tipo de dado como int, char ou float; Variáveis

Leia mais

LINGUAGEM C: ARQUIVOS

LINGUAGEM C: ARQUIVOS LINGUAGEM C: ARQUIVOS Prof. André Backes ARQUIVOS Por que usar arquivos? Permitem armazenar grande quantidade de informação; Persistência dos dados (disco); Acesso aos dados poder ser não seqüencial; Acesso

Leia mais

Programação Estruturada II

Programação Estruturada II Programação Estruturada II Arquivos I/O Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa Depuração e Documentação

Leia mais

Métodos Computacionais. Arquivos

Métodos Computacionais. Arquivos Métodos Computacionais Arquivos Arquivos Um arquivo representa um elemento de informação armazenado em memória secundária (disco) Características: Informações são persistidas Atribui-se nomes aos elementos

Leia mais

Structs, Ponteiros e Arquivos. Prof. Maurício Dias

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

Leia mais

Computação 2. Aula 9. Diego Addan Arquivos

Computação 2. Aula 9. Diego Addan Arquivos Computação 2 Aula 9 Arquivos Diego Addan diegoaddan@gmail.com 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

Leia mais

Linguagem de Programação

Linguagem de Programação Linguagem de Programação Estruturas e Arquivos Binários (struct / FILE) Gil Eduardo de Andrade Introdução Nas duas últimas aulas foram apresentados os conceitos sobre: arquivos: recurso computacional estruturado

Leia mais

Arquivos. Programação de Computadores I. Natália Batista.

Arquivos. Programação de Computadores I. Natália Batista. Arquivos Programação de Computadores I Natália Batista nataliabatista@decom.cefetmg.br 1. Arquivos Estruturas de dados armazenadas fora da memória principal do computador, por exemplo em discos. Usados

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: ponteiros e alocação dinâmica Prof. Renato Pimentel 1 Ponteiros 2 Prof. Renato Pimentel 1 Ponteiros: introdução Toda a informação

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

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Arquivos Copyright 2014 IFRN Agenda Conceito Tipos de arquivos Texto Binário Stream Principais funções Exemplos

Leia mais

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 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)

Leia mais

SSC INTRODUÇÃO À COMPUTAÇÃO PARA ENGENHARIA AMBIENTAL REGISTROS E ARQUIVOS. Profa. Dra. Milena Guessi Margarido

SSC INTRODUÇÃO À COMPUTAÇÃO PARA ENGENHARIA AMBIENTAL REGISTROS E ARQUIVOS. Profa. Dra. Milena Guessi Margarido SSC 301 - INTRODUÇÃO À COMPUTAÇÃO PARA ENGENHARIA AMBIENTAL REGISTROS E ARQUIVOS Profa. Dra. Milena Guessi Margarido (milena@icmc.usp.br) Número Bairro CEP Cidade Logradouro Endereço País REGISTRO Estrutura

Leia mais

Laboratório de Introdução à Ciência da Computação I

Laboratório de Introdução à Ciência da Computação I Laboratório de Introdução à Ciência da Computação I Aula 13 Arquivos Professores: Jó Ueyama 10/06/10 1 Stream de texto Arquivo: tipo texto Um arquivo texto é uma sequência de linhas, onde cada linha contém

Leia mais

Estrutura de dados 1. Ponteiros

Estrutura de dados 1. Ponteiros Estrutura de dados 1 Ponteiros Ponteiros Um ponteiro é um endereço de memória O valor de um ponteiro indica onde uma variável está armazenada Um ponteiro proporciona um modo de acesso a uma variável sem

Leia mais

Princípios de Desenvolvimento de Algoritmos MAC122

Princípios de Desenvolvimento de Algoritmos MAC122 Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Alocação Dinâmica de Memória Motivação: Nossos programas pré-fixavam o número de variáveis a serem utilizadas. No caso

Leia mais

Alocação Dinâmica em C

Alocação Dinâmica em C Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Alocação Dinâmica em C Profa Rosana Braga Adaptado de material preparado pela profa Silvana Maria Affonso de Lara

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

Arquivos em C. Notas de Aula. Prof. Francisco Rapchan

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

Leia mais

Ponteiros. Introdução e Alocação Dinâmica

Ponteiros. Introdução e Alocação Dinâmica Ponteiros Introdução e Alocação Dinâmica Conceito Um PONTEIRO ou APONTADOR é uma variável usada para armazenar um endereço de memória. Normalmente, o endereço armazenado em um PONTEIRO é a posição de uma

Leia mais

1 Escrita de Arquivos Binário

1 Escrita de Arquivos Binário Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula prática sobre arquivos binários 1 Escrita de Arquivos Binário Esta aula será sobre escrita e leitura de arquivos binários. Nesta

Leia mais

Faculdade de Computação

Faculdade de Computação Faculdade de Computação Programação Procedimental 13 Laboratório de Programação - Algoritmos Prof. Cláudio C. Rodrigues Prof. Fabíola Gonçalves I. Introdução a Arquivos A motivação para utilizar arquivos

Leia mais

Arquivos em C Parte 2

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

Leia mais

Depuração e Teste de programas C C Depuração e teste de programas C

Depuração e Teste de programas C C Depuração e teste de programas C Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Depuração e Teste de programas C C Depuração e teste de programas C Profa Rosana Braga (adaptado de material do prof.

Leia mais

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Arquivos em C

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Arquivos em C Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Arquivos em C 1 Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010 ROTEIRO DA AULA Arquivos

Leia mais

9. Arquivos em C. Prof. Renato Tinós. Departamento de Computação e Matemática (FFCLRP/USP) Introdução à Computação II

9. Arquivos em C. Prof. Renato Tinós. Departamento de Computação e Matemática (FFCLRP/USP) Introdução à Computação II Introdução à Computação II 5952011 9. Arquivos em C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 9. Arquivos em C 9.1. Introdução 9.2. Escrita 9.3. Leitura

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

Introdução a Programação. Ponteiros e Passagem de Argumentos por Referência

Introdução a Programação. Ponteiros e Passagem de Argumentos por Referência Introdução a Programação Ponteiros e Passagem de Argumentos por Referência Tópicos da Aula Hoje aprenderemos a manipular endereços de memória ou ponteiros Variáveis e Endereços Conceito de Ponteiro Operadores

Leia mais

Manipulação de Arquivos. Técnicas de Programação

Manipulação de Arquivos. Técnicas de Programação Manipulação de Arquivos Técnicas de Programação Agenda do Dia Noções de Manipulação de Arquivos Ponteiros para Arquivos Abrindo Arquivos Fechando Arquivos Exercícios Lendo e Escrevendo em Arquivos Noções

Leia mais

Exercícios. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal

Exercícios. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal Exercícios 1) Crie uma função que recebe os coeficientes de uma função do 2o. grau e retorna as raízes sem usar vetor. 2) Faça um programa que acha o maior e o menor inteiro dentro de um vetor de 10 inteiros,

Leia mais

Aula 16: Manipulação de Arquivos em C

Aula 16: Manipulação de Arquivos em C Aula 16: Manipulação de Arquivos em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Manipulação de Arquivos Programação de Computadores IV 1 / 33

Leia mais

Métodos Computacionais. Vetores e Matrizes Dinâmicas

Métodos Computacionais. Vetores e Matrizes Dinâmicas Métodos Computacionais Vetores e Matrizes Dinâmicas Vetores Um programa para o cálculo da média Média m n i= = 1 n x i Variância v n i= = 1 ( x i n m) 2 A forma mais simples de estruturar um conjunto de

Leia mais

1/22 FICHEIROS BINÁRIOS

1/22 FICHEIROS BINÁRIOS 1/22 FICHEIROS BINÁRIOS Funções para manipulação de ficheiros 2/22 Funções para manipulação de ficheiros fopen abertura de um ficheiro para leitura/entrada e escrita/saída fclose fecho de um ficheiro fwrite

Leia mais

Fundamentos de Programação 1

Fundamentos de Programação 1 Fundamentos de Programação 1 Linguagem C Arquivos Seqüências ou de Texto. Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO 1 Arquivo de Escrita 1 fopen ( nome.txt", "w" ); fputc ( caracter, arquivo); 2 #include

Leia mais

Ponteiro. Ponteiro. Objetivo. Compreender a definição e dominar a implementação de ponteiros em C.

Ponteiro. Ponteiro. Objetivo. Compreender a definição e dominar a implementação de ponteiros em C. Ponteiro Definição de variável apontadora Aritmética de ponteiros Ponteiros e vetores Funções e passagem por referência Structs e ponteiros Alocação dinâmica de memória Objetivo Ponteiro Ponteiro Compreender

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação CP41F Operações de abertura, leitura e finalização de arquivos. Aula 32 Prof. Daniel Cavalcanti Jeronymo Universidade Tecnológica Federal do Paraná (UTFPR) Engenharia de Computação

Leia mais

Módulo 5 Vetores e Alocação Dinâmica

Módulo 5 Vetores e Alocação Dinâmica Estruturas de Dados Módulo 5 Vetores e Alocação Dinâmica 1/9/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora

Leia mais

SSC304 Introdução à Programação Para Engenharias. Arquivos. GE4 Bio

SSC304 Introdução à Programação Para Engenharias. Arquivos. GE4 Bio Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias Arquivos GE4 Bio GE4Bio Grupo de Estudos em Sinais Biológicos

Leia mais

Ponteiros. Introdução

Ponteiros. Introdução Ponteiros Introdução Conceito Um PONTEIRO ou APONTADOR é uma variável usada para armazenar um endereço de memória. Normalmente, o endereço armazenado em um PONTEIRO é a posição de uma outra variável na

Leia mais

Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II. Ponteiros

Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II. Ponteiros Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II Ponteiros Profa.: Simone Ceolin Slides (Prof.Tiago Rios da Rocha) Primeiro Semestre 2011 Sumário

Leia mais

Linguagem C. Armazenamento de Dados em Arquivos - Continuação

Linguagem C. Armazenamento de Dados em Arquivos - Continuação Linguagem C Armazenamento de Dados em Arquivos - Continuação Arquivos Binários Comandos para gravação e leitura de arquivos (revisão): FILE *arquivo; arquivo = fopen( nome, modo ); fwrite (&variavel, sizeof

Leia mais

Arquivos. Introdução à Programação SI1

Arquivos. Introdução à Programação SI1 Arquivos Introdução à Programação SI1 1 Conteúdo Arquivos Conceitos Operações Métodos Exercícios 2 Arquivos Entrada e saída são operações de comunicação de um programa com o mundo externo Essa comunicação

Leia mais

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Estruturas de Dados Revisão de Ponteiros Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros e Arranjos

Leia mais

Modulo 12: alocação dinâmica de memória

Modulo 12: alocação dinâmica de memória PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 12: alocação dinâmica de memória Aura - Erick aconci@ic.uff.br, erickr@id.uff.br Roteiro porque e como utilizar a alocação dinâmica funções: malloc (

Leia mais

Objetivo. Compreender a definição e dominar a implementação de ponteiros em C. Dominar a manipulação de arquivos

Objetivo. Compreender a definição e dominar a implementação de ponteiros em C. Dominar a manipulação de arquivos Objetivo Compreender a definição e dominar a implementação de ponteiros em C. Dominar a manipulação de arquivos Motivação para a utilização de ponteiros O que precisamos para fazer para que uma função

Leia mais

Professora Jeane Melo

Professora Jeane Melo Professora Jeane Melo Roteiro Lista Encadeada Alocação: Estática x Dinâmica O que são Ponteiros? Ponteiros Variáveis que Armazenam Endereços de Memória Mas, toda variável não é armazenada na memória? Ponteiros

Leia mais

INF 1620 P3-02/07/02 Questão 1 Nome:

INF 1620 P3-02/07/02 Questão 1 Nome: INF 1620 P3-02/07/02 Questão 1 Considere um arquivo texto que contém os nomes e as notas dos alunos de uma disciplina. As informações de cada aluno ocupam duas linhas do arquivo: a primeira linha contém

Leia mais

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador; 1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e

Leia mais

Ponteiros. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista

Ponteiros. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista Ponteiros SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências

Leia mais

INF 1620 P3-29/06/04 Questão 1 Nome:

INF 1620 P3-29/06/04 Questão 1 Nome: INF 1620 P3-29/06/04 Questão 1 Considere um arquivo texto que descreve um conjunto de retângulos e círculos. Cada linha do arquivo contém a descrição de uma figura. O primeiro caractere da linha indica

Leia mais

Algoritmos e Estruturas de dados

Algoritmos e Estruturas de dados Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores

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

PONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco

PONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco PONTEIROS E LISTAS Kalinka Regina Lucas Jaquie Castelo Branco kalinka@icmc.usp.br ALOCAÇÃO DINÂMICA DE MEMÓRIA Pode-se assumir que as variáveis declaradas na cláusula variável do pseudo-código do algoritmo

Leia mais

Reinaldo Gomes Alocação Dinâmica

Reinaldo Gomes Alocação Dinâmica Algoritmos e Lógica de Programação Linguagem C Alocação Dinâmica i de Memória Reinaldo Gomes reinaldo@cefet-al.br Alocação Dinâmica Quando declaramos uma variável ou um arranjo, o compilador automaticamente

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

Linguagem C: Ponteiros. Prof. Tiago Alves de Oliveira

Linguagem C: Ponteiros. Prof. Tiago Alves de Oliveira Linguagem C: Ponteiros 1 Sumário Ponteiros; Variáveis ponteiros; Operadores de ponteiros; Expressões com ponteiros; Atribuição de ponteiros; Aritmética de ponteiros; Comparação de ponteiros; Ponteiros

Leia mais

Arrays, Criação de Funções, Estruturas e Manipulação de Arquivos.

Arrays, Criação de Funções, Estruturas e Manipulação de Arquivos. Faculdade de Engenharia da Computação Disciplina: Lógica de Programação Arrays, Criação de Funções, Estruturas e Manipulação de Arquivos. Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis

Leia mais

Manipulação de Arquivos

Manipulação de Arquivos Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná Manipulação de Arquivos Linguagem de Programação Estruturado Sumário Introdução; E/S ANSI Versus E/S UNIX; E/S em C Versus E/S

Leia mais

Linguagem C: Ponteiros. Prof. Leonardo Barreto Campos 1

Linguagem C: Ponteiros. Prof. Leonardo Barreto Campos 1 Linguagem C: Ponteiros Prof. Leonardo Barreto Campos 1 Sumário Ponteiros; Variáveis ponteiros; Operadores de ponteiros; Expressões com ponteiros; Atribuição de ponteiros; Aritmética de ponteiros; Comparação

Leia mais

Referências. Arquivos. Tópicos Principais. Programação de Computadores II. Motivação. Motivação. Abertura de arquivo. Slides da profa.

Referências. Arquivos. Tópicos Principais. Programação de Computadores II. Motivação. Motivação. Abertura de arquivo. Slides da profa. Programação de Computadores II Arquivos Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004) Capítulo 15 Arquivos Slides da profa. Paula

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

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas) Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 Lista Obrigatória 02 - Prof. Rafael Oliveira (Deve ser entregue em PDF via Moodle: Escolha apenas 5 exercícios para entrega) Exercício 01

Leia mais

Professor: Jó Ueyama Estagiário PAE: Heitor Freitas

Professor: Jó Ueyama Estagiário PAE: Heitor Freitas Alocação Dinâmica de Memória Professor: Jó Ueyama Estagiário PAE: Heitor Freitas Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo SSC 300 - Linguagem de Programação e Aplicações

Leia mais

Variáveis primitivas e Controle de fluxo

Variáveis primitivas e Controle de fluxo Variáveis primitivas e Controle de fluxo Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/

Leia mais

Lista Encadeada (Linked List)

Lista Encadeada (Linked List) Lista Encadeada (Linked List) As listas ou listas encadeadas são a estrutura de dados mais simples concebível excetuando-se naturalmente os arrays. Listas encadeadas nada mais são que uma seqüência de

Leia mais

Tipos Abstratos de Dados. Estrutura de Dados

Tipos Abstratos de Dados. Estrutura de Dados Tipos Abstratos de Dados Tipo Abstrato de Dados ou TAD Idéia principal: desvincular o tipo de dado (valores e operações) de sua implementação: O que o tipo faz e não como ele faz! Vantagens da desvinculação:

Leia mais

Estrutura de Dados. Aula 07 Alocação Dinâmica

Estrutura de Dados. Aula 07 Alocação Dinâmica Estrutura de Dados Aula 07 Alocação Dinâmica 2 ALOCAÇÃO DINÂMICA Existem três modos de reservar espaço de memória para o armazenamento de informações: 1ª - através do uso de variáveis globais (e estáticas).

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