PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008
|
|
- Alexandre Sanches Bastos
- 5 Há anos
- Visualizações:
Transcrição
1 Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre Ficheiros e estruturas Luis Bernardo e Paulo Pinto
2 1 Introdução Nos capítulos 10 e 11 do livro Linguagem C de Luís Damas, recomendado para a disciplina de Programação de Microprocessadores, é feita a apresentação dos ficheiros e das estruturas. Esta aula visa consolidar estas matérias através de um conjunto de exercícios. Durante a aula vai ser desenvolvida em várias fases uma aplicação que mantém um ficheiro em modo binário com dados de alunos. As primeiras fases têm como objectivo complementar o estudo realizado na aula teórica. A última fase, que corresponde ao programa completo, é avaliada pelo docente. GUARDE O CÓDIGO desenvolvido na memória USB. Durante a aula seguinte o docente pode pedir-lhe para mostrar o código desenvolvido, e pode fazer-lhe algumas perguntas. O método de trabalho é semelhante ao das aulas anteriores: nas primeiras fases edita-se o ficheiro fonte alunos.c com o código fornecido junto do enunciado, e realizam-se as modificações pedidas. Na última fase o objectivo é resolver o problema proposto, aplicando os conceitos aprendidos nesta secção da matéria. 2 Exercícios de aprendizagem Pretende-se desenvolver uma aplicação que permite gerir um ficheiro com o nome, número e turno dos alunos de uma disciplina. A aplicação recebe o nome do ficheiro a partir de um argumento da linha de comando, parando caso o utilizador não introduza esse parâmetro. Depois, oferece um menu com as opções de acrescentar aluno, apagar aluno, listar alunos, e apagar todos os alunos. Este trabalho vai ser usado para aprender a trabalhar com estruturas e com ficheiros. Os dados são guardados no ficheiro em formato binário, e são acedidos no programa através de uma estrutura. Claro que o trabalho usa tudo o que foi aprendido nas aulas anteriores. 2.1 ESTRUTURAS DE DADOS O primeiro aspecto relevante é definir como se vão manipular os dados relativos a cada um dos alunos na memória do computador. As estruturas oferecem a maneira ideal para manipular um conjunto de campos inter-relacionados como uma variável única. Neste trabalho vai usar-se a estrutura struct Aluno para guardar os dados de cada aluno, e para ler e escrever no ficheiro. Define-se ainda o tipo bool (Booleano) como sendo igual a int, como exemplo de definição de um tipo novo. typedef int bool; #define TRUE 1 #define FALSE 0 #define MAX_STUDENTNAME_LENGTH 160 struct Aluno { char nome[max_studentname_length]; int numero; int turno; ; 2
3 Repare que com esta estrutura é possível ter uma variável que tem os três campos simultaneamente para se seleccionar um campo usa-se o ponto (. ) ou a seta ( -> ) respectivamente para uma variável ou para um apontador. Por exemplo: struct Aluno aluno; struct Aluno *aluno_ptr= &aluno; aluno.numero= 1; /* Usa o ponto "." */ strcpy(aluno_ptr->nome, "Paulo"); /* Usa a seta "->" */ 2.2 EXERCÍCIO DE APRENDIZAGEM: VERSÃO 1 DA APLICAÇÃO Tal como nos dois enunciados anteriores, neste trabalho são fornecidas várias funções que realizam no conjunto a aplicação pretendida: um sistema para manter uma lista de alunos. O PRIMEIRO EXERCÍCIO É CRIAR UM FICHEIRO alunos.c, e COPIAR TODAS AS FUNÇÕES FORNECIDAS NO ENUNCIADO PARA ESSE FICHEIRO. Não se esqueça que, tal como nos trabalhos anteriores, não deve colocar funções dentro de funções, e deve declarar uma função, ou um protótipo da função, antes de invocar a função no código. Vai desenvolver-se a aplicação a partir da função main. Neste trabalho, a função main está estruturada como um menu, que apresenta a lista de opções e em seguida corre uma função associada à opção escolhida. Este trabalho também tem a novidade de receber o nome do ficheiro pela linha de comando. Assim, a aplicação deve ser chamada com um parâmetro (por exemplo./alunos dados.dat ). Repare que a função main tem dois parâmetros: argc tem o número de palavras na linha de comando (2 no exemplo); argv tem um array de strings com cada uma das palavras (no exemplo, argv[0]== alunos e argv[1]== dados.dat ). Caso o utilizador não introduza o parâmetro, a aplicação termina com uma mensagem de erro. O programa fica no menu principal até que o utilizador introduza a opção 0 Sair. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> main(int argc, char *argv[]) { int opcao; printf("%s - Programa de gestão de alunos\n", argv[0]); if (argc!= 2) { printf(" Erro na invocação do programa\n"); printf(" Use %s nome_do_ficheiro\n", argv[0]); exit(1); do { /* CICLO PRINCIPAL DO MENU */ printf("programa de gestão de alunos\n ); printf(" Escolha uma opção:\n"); printf(" 0: Sair\n"); printf(" 1: Listar alunos\n"); printf(" 2: Acrescentar aluno\n"); printf(" 3: Apagar aluno\n"); printf(" 4: Apagar ficheiro\n"); 3
4 /* LÊ OPÇÃO */ if (scanf(" %d", &opcao)!= 1) { // Foi introduzido um carácter que não é um número getchar(); // Remove carácter do buffer continue; // Volta ao início do ciclo principal getchar(); // Remove '\n' após número /* EXECUTA OPÇÃO */ switch (opcao) { case 0: break; case 1: listar_alunos(argv[1]); break; case 2: adicionar_aluno(argv[1]); break; case 3: apagar_aluno(argv[1]); break; case 4: remove(argv[1]); break; default: printf("%d: opção inválida\n", opcao); while (opcao!= 0); Cada opção é realizada numa função diferente. A opção 4 chama uma função do sistema que apaga um ficheiro. As restantes opções são realizadas com as funções apresentadas nas subsecções seguintes Opção Acrescentar aluno A operação de adicionar um aluno obriga a ler do utilizador dois campos numéricos e um nome. Assim, definem-se duas funções auxiliares, que realizam estas operações. A função ler_nome recebe um array de bytes (nome) e uma variável inteira com a dimensão do array (max_len) e lê uma string com até esse número de bytes, terminada com o terminador de string ( \0 ). A função ler_numero recebe um apontador para um inteiro e modifica o seu valor. Lembre-se que na linguagem C, o nome do array já é um apontador. bool ler_nome(char nome[], int max_len) { nome[0]= '\0'; fgets(nome, max_len, stdin); if (strlen((char *)nome) <= 2) { printf("nome demasiado curto\n"); return FALSE; nome[strlen(nome)-1]= '\0'; // Remove o '\n' do buffer return TRUE; bool ler_numero(int *number_ptr) { return (scanf("%d", /* Já é apontador */number_ptr) == 1); A partir destas funções é possível realizar a função ler_aluno que lê os três campos da variável aluno, um de cada vez. Repare que esta função recebe um apontador para a 4
5 estrutura a preencher, permitindo-lhe modificar o conteúdo da variável aluno. A função funciona integralmente, mas não verifica o valor inteiro do campo turno, que apenas pode ter um valor entre 1 e o valor de MAX_TURNO. #define MAX_TURNO 10 /* Lê os dados referentes a um novo aluno */ bool ler_aluno(struct Aluno *aluno) { printf("nome: "); if (!ler_nome(aluno->nome, MAX_STUDENTNAME_LENGTH)) return FALSE; printf("número: "); if (!ler_numero(&aluno->numero)) return FALSE; printf("número de turno: "); if (!ler_numero(&aluno->turno)) return FALSE; return TRUE; EXERCÍCIO 2: Modifique a função ler_aluno de maneira a passar a retornar FALSE quando o valor do campo turno for inferior a 1 ou superior a MAX_TURNO. Utilizando esta função, pode realizar-se a função adicionar_aluno com o código representado abaixo. Repare que a variável aluno é preenchida dentro da função ler_aluno, e caso esta retorne TRUE (um valor diferente de 0), acrescenta a entrada ao ficheiro. O ficheiro é aberto no modo ab (append, acrescentar no fim e b de binário), e os dados são escritos em formato binário, com a representação que têm na memória na variável aluno, do tipo estrutura struct Aluno. Repare que a escrita é feita passando um apontador para o primeiro byte da variável aluno, indicando o tamanho em bytes ocupado pela variável aluno (sizeof (aluno) ), e o número de alunos que se pretendem escrever (1). O ficheiro é fechado no final, para garantir que os dados estão escritos quando a função termina. void adicionar_aluno(const char *filename) { FILE *fp; struct Aluno aluno; if (ler_aluno(&aluno)) { fp= fopen(filename, "ab"); // "ab" == 'acrescentar' if (fp == NULL) { perror("erro a abrir ficheiro"); return; if (fwrite(&aluno, sizeof(aluno), 1, fp)!= 1) { perror("erro a escrever ficheiro"); fclose(fp); 5
6 2.2.2 Opção Listar alunos A função listar_alunos percorre todos os elementos do ficheiro mostrando-os, um a um. Assim, começa-se por definir a função mostrar_um_aluno que mostra apenas um aluno, escrevendo os seus dados na consola. void mostrar_um_aluno(struct Aluno *aluno) { printf("aluno '%s' no. %d Turno %d\n", aluno->nome, aluno->numero, aluno->turno); A função listar_alunos começa por abrir o ficheiro em modo leitura ( rb de read e binário). Depois, se conseguiu abrir, vai ler entrada a entrada para a variável aluno, escrevendo o seu conteúdo. Repare que a função fread lê directamente 1*sizeof(aluno) bytes para a variável aluno. No final, escreve uma linha em branco e fecha o ficheiro. No entanto, se o ficheiro tem muitos elementos torna-se muito difícil de ler, pois esta função despeja todos os nomes sem nunca parar. #define MAX_LINES 20 void listar_alunos(const char *filename) { struct Aluno aluno; FILE *fp; fp= fopen(filename, "rb"); if (fp == NULL) { perror("erro a abrir ficheiro"); return; while (fread(&aluno, sizeof(aluno), 1, fp)) { mostrar_um_aluno(&aluno); putchar('\n'); fclose(fp); EXERCÍCIO 3: Modifique a função listar_alunos de maneira a que após escrever MAX_LINES linhas, a função pare à espera do utilizador carregar uma tecla. Relembrase que para ler uma tecla pode usar a função getchar() Opção Apagar aluno A função apagar_aluno começa por pedir um número de aluno ao utilizador. Depois, inicia um processo de cópia do ficheiro original para um novo ficheiro temporário, que é igual ao original excepto que não tem o elemento a excluir. A função usa duas variáveis do tipo apontador para FILE em simultâneo: fp_in é usada para ler a partir do ficheiro original; fp_out é usada para escrever no ficheiro temporário. Falta programar uma rotina que leia os alunos, um a um. Deve escrever os alunos em fp_out se tiverem o número de aluno com um valor diferente da variável numero. Caso consiga retirar um aluno, deve modificar o valor da variável Booleana apagou para TRUE. 6
7 void apagar_aluno(const char *filename) { FILE *fp_in, *fp_out; struct Aluno aluno; char temp_outfilename[100]; int numero; bool apagou= FALSE; printf("qual é o número do aluno a apagar? "); ler_numero(&numero); /* Ficheiro original modo leitura */ fp_in= fopen(filename, "rb"); /* Ficheiro temporário com nome único modo escrita */ sprintf(temp_outfilename, "%sxxxxxx", filename); mkstemp(temp_outfilename); // Cria nome único fp_out= fopen(temp_outfilename, "wb"); /* Testa se operações de abertura tiveram sucesso */ if ((fp_in == NULL) (fp_out == NULL)) { perror("erro a abrir um dos ficheiros"); if (fp_in!= NULL) fclose(fp_in); if (fp_out!= NULL) fclose(fp_out); return; // Sai da função /* EXERCÍCIO 4: COMPLETE O CÓDIGO DESTA FUNÇÃO REALIZANDO UMA FUNÇÃO QUE COPIA TUDO O QUE LÊ DE fp_in para fp_out, EXCEPTO QUANDO ENCONTRA O ALUNO COM O NÚMERO IGUAL A numero. SE ENCONTRAR, DEVE COLOCAR A VARIÁVEL apagou COM O VALOR TRUE */ fclose(fp_in); fclose(fp_out); if (apagou) { remove(filename); // Apaga ficheiro original rename(temp_outfilename,filename); //Muda nome de ficheiro else remove(temp_outfilename); // Apaga ficheiro temporário Para facilitar a vida na introdução de um número elevado de alunos foi criado um ficheiro com as opções do menu, os nomes, números e turnos de cada aluno. O Linux permite que se use um ficheiro de entrada em vez do teclado (stdin) se redireccionarmos esse ficheiro para o nosso programa. O ficheiro de texto com os alunos chama-se dados.in e é fornecido com o enunciado. Copie-o para a pasta onde tem o ficheiro executável e corra a seguinte linha de comando que redirecciona o ficheiro dados.in para o programa como se do stdin se tratasse:./alunos alunos.dat < dados.in Quando corre o programa com esta linha, as mensagens escritas em stdout são ainda escritas no ecrã. Se não as quiser ver pode também redireccioná-las para um ficheiro, ou para nada. Um comando para as redireccionar para nada é o seguinte:./alunos alunos.dat < dados.in > /dev/null 7
8 3 Exercício final: Opção Listar por turno Pretende-se neste exercício final, estender o programa desenvolvido anteriormente acrescentando a opção de listar os alunos por turno. Assim, deve acrescentar a opção 5 (Listar por turno), criando uma nova função para tratar a opção. Essa função deve começar por pedir ao utilizador para introduzir um número de turno, e depois listar apenas os alunos que pertencem a esse turno. Este exercício vai ser avaliado pelo docente durante a aula. Caso tenha conseguido terminar durante a aula chame o docente e mostre o trabalho a funcionar. Senão, complete o trabalho após o fim da aula, e traga-o completo para a próxima aula. 8
PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre Estruturação de código e outros
Leia maisPROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre Funções e Vectores http://tele1.dee.fct.unl.pt
Leia maisPROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre Testes, condições e ciclos http://tele1.dee.fct.unl.pt
Leia maisSumário. Ficheiros. Ficheiros
Sumário Ficheiros Motivação Operações Ficheiros de texto e binários Manipulação de ficheiros de texto Abertura Encerramento Descritores de ficheiros: stdin, stdout, stderr Escrita Leitura Outras funções
Leia maisProgramação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre
Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Manipulação de ficheiros de texto Programação 2010/2011 IST-DEEC Manipulação de Ficheiros 1 Sumário Ficheiros
Leia maisPROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 2º semestre Trabalho nº 5 Funções e Vectores
Leia maisComputaçã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 maisDisciplina 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/
Leia maisPROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre Trabalho nº 5 Funções http://tele1.dee.fct.unl.pt/pm
Leia maisUSP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2011 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/
Leia maisFundamentos 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 maisPROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 2º semestre Trabalho nº 6 Strings e Apontadores
Leia maisDepartamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 13 Arquivos
Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I Aula 13 Arquivos Responsável Seiji Isotani, Rafaela V. Rocha sisotani@icmc.usp.br rafaela.vilela@gmail.com
Leia mais1/24 FICHEIROS DE TEXTO
1/24 FICHEIROS DE TEXTO Hardware de entrada/saída 2/24 Hardware de entrada/saída Grande variedade de dispositivos de E/S (Input/Output) - de memória: disco interno e externo, DVD, pen, CD,... - de transmissão:
Leia maisLinguagem C Ficheiros Compilação Separada
Linguagem C Ficheiros Compilação Separada typedef definição de tipos Apontadores para estruturas Ficheiros na bibiloteca standard do C Compilação Separada Definição de novos tipos em C É possível definir
Leia maisAula 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 maisUSP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental
USP - ICMC - SSC SSC 0301-2o. Semestre 2013 Disciplina de Introdução à Computação para Engenharia Ambiental 1 Prof. Dr. Fernando Santos Osório / Prof. Artur Lovato Cunha LRM - Laboratório de Robótica Móvel
Leia maisProgramaçã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 mais1º Exame 14 de Junho de Duração: 2h30 (+15 min) Número: Nome: Notas
Exame A Programação MEEC 2º Semestre 2017/18 1º Exame 14 de Junho de 2018. Duração: 2h30 (+15 min) Número: Nome: Notas Composição do teste: 4 folhas com problemas para resolver. Existem 9 problemas para
Leia maisDisciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]
USP - ICMC - SSC SSC 0300-2o. Semestre 2013 Disciplina de [ Eng. Elétrica / Automação ] Prof. Dr. Fernando Santos Osório / PAE: Rafael Klaser (LRM / ICMC) LRM - Laboratório de Robótica Móvel do ICMC /
Leia maisUNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014
UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014 Programação em C 30/06/2014 Leia com atenção as perguntas e justifique cuidadosamente todas as respostas 1. Qual o objetivo de um
Leia maisUSP - ICMC - SSC SSC o. Semestre Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]
USP - ICMC - SSC SSC 0300-2o. Semestre 2013 Disciplina de [ Eng. Elétrica / Automação ] Prof. Dr. Fernando Santos Osório / PAE: Rafael Klaser (LRM / ICMC) LRM - Laboratório de Robótica Móvel do ICMC /
Leia maisComputação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas
Computação 2 Aula 10.1 Listas Duplamente Encadeadas Profª. Fabiany fabianyl@utfpr.edu.br ListaEncadeada.h #ifndef _LISTAENCADEADA_H_ #define _LISTAENCADEADA_H_ #include #include #include
Leia maisComputaçã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 maisArquivos. INF1005 Programação I Profa. Simone D.J. Barbosa sala 410 RDC
Arquivos INF1005 Programação I Profa. Simone D.J. Barbosa simone@inf.puc-rio.br sala 410 RDC 1 arquivos tópicos por que usar arquivos manipulação de arquivos lendo dados de arquivos (modo texto) escrevendo
Leia maisSSC 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 maisPROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 2º semestre Trabalho nº 3 Testes, condições
Leia maisCAP. 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 maisListas (cont.) K&R: Capitulo 6. Lista Simplesmente Ligada IAED, 2012/2013. Conjunto de nós. Cada nó contém. head NULL. typedef struct node {
Listas (cont.) K&R: Capitulo 6 Lista Simplesmente Ligada Conjunto de nós head NULL Cada nó contém Informação útil Ponteiro para o próimo nó typedef struct node Item item; struct node *net; *link; Item
Leia maisINSTITUTO 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 mais1ª versão. #include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000
#include #include #include #define maxdiscos 1000 typedef struct { char nomeautor[80]; char nomedisco[100]; int numdiscosvendidos; DISCO; 1ª versão int main() { DISCO listadiscos[maxdiscos];
Leia mais13a. 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 maisComputadores 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 maisFicheiros. IPC2 1999/2000 F. Nunes Ferreira
Ficheiros IPC2 1999/2000 F. Nunes Ferreira Acetatos baseados no livro C: How to Program (second edition) H. M. Deitel P. J. Deitel Prentice Hall, 1994 Ficheiros Introdução 2 Os ficheiros são utilizados
Leia maisInstituto Superior Técnico Introdução aos Algoritmos e Estruturas de Dados
Instituto Superior Técnico Introdução aos Algoritmos e Estruturas de Dados Ano Lectivo de 2006/2007 2 o Semestre 1 o Teste A - 12 de Abril de 2007 Duração: 2h - O teste é sem consulta. - Para cada questão
Leia maisLinguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux
Linguagem C Introdução Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux Porquê C em AC? A linguagem C fornece um modelo de programação próximo da máquina física
Leia maisLeitura de Arquivos. Prof. Fabrício Olivetti de França
Leitura de Arquivos Prof. Fabrício Olivetti de França Leitura de Arquivos Na linguagem C temos um tipo especial chamado FILE para trabalhar com arquivos. Abrindo e fechando um arquivo Para abrir um arquivo
Leia maisIntrodução à Computação II AULA 08 BCC Noturno - EMA896115B
Introdução à Computação II AULA 08 BCC Noturno - EMA896115B Prof. Rafael Oliveira olivrap@gmail.com Universidade Estadual Paulista Júlio de Mesquita Filho UNESP Rio Claro 2014 (Sem 2) O ambiente de execução
Leia maisPonteiros e Tabelas. K&R: Capítulo 5
Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Leia maisESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza
ESTRUTURAS CONDICIONAIS Introdução à Ciência da ComputaçãoI Simone Senger de Souza Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURA CONDICIONAL ESTRUTURA DE REPETIÇÃO 2 Estruturas Condicionais Estrutura
Leia maisOutline. 33. Manipulação de arquivos DIM
Outline 33. Manipulação de arquivos DIM031 015.1 Leitura e escrita 3 s DIM031 33. Manipulação de arquivos 015.1 1 / 4 DIM031 33. Manipulação de arquivos 015.1 / 4 Arquivo = entidade de armazenamento de
Leia maisLaboratório 3 Comandos de repetição while, do-while e for
Laboratório 3 Comandos de repetição while, do-while e for Computação I (MAB-120) Prof. Silvana Rossetto 1 DCC/IM/UFRJ 29 de março de 2019 O objetivo desta aula de laboratório é praticar o uso dos comandos
Leia maisEXERCÍCIO DE SONDAGEM TURMA 01 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Prof.: José Eustáquio Rangel de Queiroz EXERCÍCIO
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;
Leia maisSistemas Operacionais e Introdução à Programação. Programação com linguagem C
Sistemas Operacionais e Introdução à Programação Programação com linguagem C 1 Entrada e saída: escrevendo na tela Veja uma comparação entre um programa Portugol e seu equivalente em C: Inicio Inteiro
Leia maisA linguagem C (visão histórica)
A linguagem C (visão histórica) A linguagem C é uma linguagem de programação desenvolvida no ínício dos anos 70 por Dennis Ritchie, que trabalhava nos laboratórios Bell e que também inciou em paralelo,
Leia maisProgramação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02
Programação 1 Atribuição, operadores aritméticos, entrada de dados Técnico em Eletrônica Semestre 5 02 Armazenando na memória tipo de variável #include #include main() { int ano; Declaração
Leia maisEXERCÍCIO DE SONDAGEM TURMA 02 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Prof.: José Eustáquio Rangel de Queiroz EXERCÍCIO
Leia maisINSTITUTO 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 - Introdução Copyright 2014 IFRN Agenda Conceitos básicos ANSI C Hello World Funções em C Exercícios 2 /26 A linguagem
Leia maisTÉ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 maisAula 26: Arquivos de texto
Aula 26: Arquivos de texto Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aulas anteriores Estruturas heterogêneas Alocação
Leia maisNoção de estrutura de dados
Sumário Estruturas de dados Noção Declaração Operações sobre estruturas Estruturas como argumento de funções Passagem por valor Passagem por referência Programação 2007/2008 DEEC-IST 1 Noção de estrutura
Leia maisSSC304 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 maisProgramação. MEAer e LEE. Bertinho Andrade da Costa. Instituto Superior Técnico. Argumentos da linha de comando Funções recursivas
Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Argumentos da linha de comando Funções recursivas Programação 2010/2011 DEEC-IST Arg. da linha de comando;
Leia maisEstruturas 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 maisALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal
ALGORITMOS AULA 01 Baseado nas aulas do Prof. Jorgiano Vidal LINGUAGEM C Uma das grandes vantagens do C é que ele possui tanto caracterìsticas de "alto nìvel" quanto de "baixo nìvel". Linguagem de propósito
Leia mais1/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 maisMétodos Computacionais. Tipos Estruturados
Métodos Computacionais Tipos Estruturados Tipos Estruturados C oferece tipos primitivos que servem para representar valores simples Reais (float, double), inteiros (int), caracter (char) C oferece também
Leia maisLógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo
Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo Este documento explica como transformar um algoritmo escrito na forma pseudocódigo
Leia maisInstituto Superior Técnico Algoritmos e Estruturas de Dados
Instituto Superior Técnico Algoritmos e Estruturas de Dados Ano Lectivo de 2005/2006 2 o Semestre 1 o Teste A - 8 de Abril de 2006 Duração: 2h - O teste é sem consulta. - Para cada questão com escolha
Leia maisAula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU
Aula 6 Oficina de Programação Estruturas Condicionais no C Profa. Elaine Faria UFU - 2017 Estrutura Condicional Simples Algoritmo se () entao instrução fimse A instrução só será executada se
Leia maisIntroduçã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 maisLinguagens de Programação I
Linguagens de Programação I Tema # 4 Operadores em C Susana M Iglesias FUNÇÕES ENTRADA-SAÍDA I/O printf(), utilizada para enviar dados ao dispositivo de saída padrão (stdout), scanf(), utilizada para ler
Leia maisBásico: estrutura de programa, sintaxe Interface com linha de comando
Programação em C Sintaxe Básico: estrutura de programa, sintaxe Interface com linha de comando Preprocessamento e compilação Makefiles Ponteiros e estruturas Bibliotecas, ficheiros include e funções Referências
Leia maisArquivos. 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 maisMódulo 7 Cadeias de Caracteres
Estruturas de Dados Módulo 7 Cadeias de Caracteres 9/8/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 maisAula 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 maisAula 16. Ficheiros de texto
Aula 16 Aprender Empreender 1 Ficheiros de texto Ficheiros de texto Nos ficheiros de texto a informação é guardada sob a forma de linhas de texto, separadas por um carácter terminador de linha, '\n' (
Leia maisLinguagens de programação. Introdução ao C (continuação)
Linguagens de programação Introdução ao C (continuação) M@nso 2003 Sumário Introdução à programação Linguagem C Repetição de instruções Ciclos com controlo inicial ciclo While ciclo For Ciclos com controlo
Leia maisINF 1005 Programação I - Prof. Hélio Lopes 24/04/2012
Vetores (Arrays) IF1005 Programação I Prof. Hélio Lopes lopes@inf.puc-rio.br sala 408 RDC 1 vetores tópicos definição declaração e inicialização vetores locais a funções passagem de vetores como parâmetros
Leia maisUniversidade 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 maisIntroduçã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 maisLinguagem C (repetição)
Linguagem C (repetição) André Tavares da Silva andre.silva@udesc.br Exercício Escrever um programa que conte (mostre na tela) os números de 1 a 100. Comandos aprendidos até o momento: printf, scanf, getchar,
Leia maisManipulação de Arquivos Exercício/Exemplo:
Manipulação de Arquivos Exercício/Exemplo: Com o que vimos até o momento sobre manipulação de arquivos. Construa um função em C que possua a capacidade de escrever um inteiro em um arquivo binário. Escreva
Leia maisEstruturas. K&R: Capitulo 6. Estruturas IAED, 2014/2015. Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo
Estruturas K&R: Capitulo 6 Estruturas Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo 2 1 Motivação Definir uma representação agregada na linguagem C para manipular
Leia maisIntrodução à Programação Aula 07. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Introdução à Programação Aula 07 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação ARGUMENTOS POR LINHA DE COMANDO 2 Argumento por linha de comando Na
Leia maisProgramaçã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 maisUniversidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Profa Rosana Braga
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Profa Rosana Braga 1º semestre de 2010 1 Arquivo-FONTE /*******************************/ /* Primeiro exemplo arq exemplo1.c
Leia mais1 Exercícios com ponteiros
Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática
Leia maisIntrodução à Programação em C
Introdução à Programação em C Funções Resumo Aula Anterior Tabelas Strings (Tabelas de Caracteres) 2 1 Resumo Funções Definição Protótipo e implementação return e void Passagem por valor Exemplos 3 Funções
Leia maisIntrodução à Programação em C Input / Output
Introdução à Programação em C Input / Output Resumo Aula Anterior Programa começa com função main() Sintaxe para definição de funções Definição de variáveis e atribuições Estruturas de controlo if-then
Leia maisCaracteres e Cadeias de Caracteres
Caracteres e Cadeias de Caracteres INF1005 Programação I Prof. Hélio Lopes lopes@inf.puc-rio.br sala 408 RDC 1 caracteres e cadeias de caracteres tópicos caracteres cadeias de caracteres (strings) vetor
Leia maisArquivos 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 mais5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios.
3636363636363636363636363636363636363636363636363636 5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios. 5.1 - Comandos
Leia maisIntrodução à Programação. Strings
Introdução à Programação Strings Sumário Caracteres (ASCII) Exercícios Vectores de caracteres Strings Exercícios Definição Uma string é um conjunto de caracteres armazenados num vector. Em C, o vector
Leia maisRelatório Trabalho Final Reservas de Viagens de Avião
Programação de Microprocessadores 2011/12 Sem. Par Aluno: 34086 Relatório Trabalho Final Reservas de Viagens de Avião Este relatório tem por base o trabalho realizado nesta disciplina sobre Reservas de
Leia maisLaboratório de Programação - Exercícios 9, 10 e 11
Laboratório de Programação - Exercícios 9, 10 e 11 Arrays e strings, Loops João Araujo Ribeiro jaraujo@uerj.br Universidade do Estado do Rio de Janeiro Departamento de Engenharia de Sistemas e Computação
Leia maisExiste 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 maisFUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara
Universidade do Estado de Minas Gerais - UEMG Curso de Engenharia da Computação FUNÇÕES EM C 1 Material adaptado da profa Silvana Maria Affonso de Lara ROTEIRO DA AULA Definição de Função Argumentos, retornos
Leia maisPROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre TRABALHO FINAL DE AVALIAÇÃO Gestão
Leia maisLINGUAGEM 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 maisAula: 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#include <stdio.h> #include <stdlib.h>
ÁREA II CCEN / UFPE Disciplina: IF 165 Computação Eletrônica 3º Exercício Escolar 2015.1 Data: 07/07/ 2015 Nome legível do aluno:... Turma... Observações gerais: 1) Preencher os dados do cabeçalho do bloco
Leia maisProgramação de Computadores II. Cap. 7 Cadeias de Caracteres
Programação de Computadores II Cap. 7 Cadeias de Caracteres Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais
Leia maisTAD: Tipo Abstrato de Dados (parte 2)
TAD: Tipo Abstrato de Dados (parte 2) SCC0502 Algoritmos e Estruturas de Dados I Programa em C pode ser dividido em vários arquivos Arquivos fonte com extensão.c Denominados de módulos Cada módulo deve
Leia maisEPs 1 e 2. EP2: veja. EP1: veja
1 EPs 1 e 2 EP2: veja http://www.ime.usp.br/~fabricio/ep2/ep2.pdf EP1: veja http://www.ime.usp.br/~yoshi/2006ii/mac122a/eps/ep1/wc.pdf http://www.ime.usp.br/~pf/cweb/ http://www.ime.usp.br/~pf/algoritmos/apend/util.html
Leia maisAula 14: Estruturas de Seleção e Controle em C
Aula 14: Estruturas de Seleção e Controle em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Estruturas de Seleção e Controle Programação de Computadores
Leia maisLinguagem 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
Leia maisArgumentos da linha de comando Exemplos Recursividade de funções Exemplos
Sumário Argumentos da linha de comando Exemplos Recursividade de funções Exemplos Programação 2007/2008 DEEC-IST 1 Argumentos da linha de comando Motivação: Nas aulas de laboratório foi utilizado o compilador
Leia maisARQUIVOS DE DADOS EM C: UMA INTRODUÇÃO
ARQUIVOS DE DADOS EM C: UMA INTRODUÇÃO 1 2 3 4 // Programa p32.c // com alocacao estatica #include #include int main(int args, char * arg[]) int i,j,nl,nc; int ma[10][10], mb[10][10],
Leia mais