1ª versão. #include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000



Documentos relacionados
Linguagem C Ficheiros Compilação Separada

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Fundamentos de Arquivos. SCC203 Algoritmos e Estruturas de Dados II

Manipulação de Arquivos

struct Nodo { int struct Nodo struct Nodo typedef struct Nodo *PNodo; int ConstruirLista (PNodo *H, PNodo *T) { int Criar

Exercício 1. Tabela 1: Cadastro de usuários, senhas e privilégios (exemplo). Login Senha Privilégio Armamento

PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS

Sumário. Ficheiros. Ficheiros

Linguagem C: agregados heterogêneos, arquivos binários, recursividade. Prof. Críston Algoritmos e Programação

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

MC-102 Aula 19 Registros

Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza

Estruturas (Registros)

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

imprimir seus quadrados.

Operaçõe õ s c om o Strings Intr oduç ão a o Ponte iros o e Funçõe õ s

Aula 03 -Introdução àlinguagc Programação: Estrutura-Repetição. OPL e IC1 Prof: Anilton Joaquim da Silva

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

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Linguagem C: Arquivo-Texto

Rotinas, Modos e Tipos de Passagem de Parâmetros

UFSM Introdução ao Dev-C++ Profa. Patrícia Pitthan. Introdução ao Dev-C++

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org

Fundamentos de Programação

Listas ligadas/listas encadeadas

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

Métodos Computacionais. Arquivos

Algoritmos e Estruturas de dados

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

Listas Encadeadas. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

INF 1620 P1-11/04/08 Questão 1 Nome:

OProtocolo RPC é um dos protocolos de aplicação mais utilizados, pois permite

14. Arquivos. W. Celes e J. L. Rangel. Estruturas de Dados PUC-Rio 13-1

Ponteiros e Tabelas. K&R: Capítulo 5

Computação I - C Prova /10/ Profs. Adriano Cruz e Valeria Bastos

Lista de Exercícios para P1 INF1007 (Prog2) 15/04/2013. ATENÇÃO: O material a seguir não sofreu revisão e pode conter erros.

Analise o código abaixo:

Árvores Binárias - continuação

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

struct LISTA item quant

Atividade de laboratório listas encadeadas simples

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

PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008

Estruturas de Dados. Módulo 15 - Arquivos. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

Instituto Superior Técnico Introdução aos Algoritmos e Estruturas de Dados

Registros. Técnicas de Programação. Rafael Silva Guimarães

Introdução a Computação

Comunicação entre pai e filho

INF 1620 P3-21/06/08 Questão 1 Nome:

Linguagem C: Ponteiros - Alocação Dinâmica

Estruturas de Dados Aula 10: Listas (parte 2) 19/04/2011

Transcrição:

#include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000 typedef struct { char nomeautor[80]; char nomedisco[100]; int numdiscosvendidos; DISCO; 1ª versão int main() { DISCO listadiscos[maxdiscos]; int i, N = 0, K; char st[10]; FILE *f; // 1ª fase: copiar os dados do ficheiro para o vetor/lista de discos f = fopen("discos.txt", "r"); if (f == NULL) while (!feof(f)) { // while (fgets(listadiscos[n].nomeautor, 80, f)!= NULL) { fgets(listadiscos[n].nomeautor, 80, f); // fscanf apenas lê a 1ª palavra fgets(listadiscos[n].nomedisco, 100, f); // listadiscos[n].nomedisco é uma string com '\n' no fim fgets(st, 10, f); listadiscos[n].numdiscosvendidos = atoi(st); // fscan(f, %d\n, &listadiscos[n].numdiscosvendidos) N++; fclose(f);

// 2ª fase: determinar e mostrar os discos (nome de autor, nome do disco, nº de discos vendidos) printf("indique o valor a partir do qual quer verificar que discos tem vendas superiores: "); scanf("%d", &K); for (i = 0; i < N; i++) if (listadiscos[i].numdiscosvendidos >= K) { puts(listadiscos[i].nomeautor); // puts escreve a string, que já tem '\n', e ainda acrescenta um '\n' printf(" --> "); puts(listadiscos[i].nomedisco); printf(" --> "); // o printf permite anular o 2º '\n' printf("%d\n", listadiscos[i].numdiscosvendidos); return 1;

#include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000 typedef struct { char nomeautor[80]; char nomedisco[100]; int numdiscosvendidos; DISCO; 2ª versão int main() { DISCO listadiscos[maxdiscos]; int i, N = 0, K; char st[10]; FILE *f; // 1ª fase: copiar os dados do ficheiro para o vetor/lista de discos f = fopen("discos.txt", "r"); if (f == NULL) while (fgets(listadiscos[n].nomeautor, 80, f)!= NULL) { fgets(listadiscos[n].nomedisco, 100, f); fgets(st, 10, f); listadiscos[n].numdiscosvendidos = atoi(st); // fscan(f, %d\n, &listadiscos[n].numdiscosvendidos) N++; fclose(f);

// 2ª fase: determinar e mostrar os discos com vendas superiores a um valor printf("indique um valor para determinar os discos com vendas superiores: "); scanf("%d", &K); for (i = 0; i < N; i++) if (listadiscos[i].numdiscosvendidos >= K) { printf("%s", listadiscos[i].nomeautor); printf(" --> %s", listadiscos[i].nomedisco); printf(" --> %d\n", listadiscos[i].numdiscosvendidos); return 1;

#include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000 typedef struct { char nomeautor[80]; char nomedisco[100]; int numdiscosvendidos; DISCO; 3ª versão int main() { DISCO listadiscos[maxdiscos]; int i, N = 0, K; char st[10]; FILE *f, *g; // 1ª fase: copiar os dados do ficheiro para o vetor/lista de discos f = fopen("discos.txt", "r"); if (f == NULL) while (!feof(f)) { // while (fgets(listadiscos[n].nomeautor, 80, f)!= NULL) { fgets(listadiscos[n].nomeautor, 80, f); // fscanf apenas lê a 1ª palavra fgets(listadiscos[n].nomedisco, 100, f); // listadiscos[n].nomedisco é uma string com '\n' no fim fgets(st, 10, f); listadiscos[n].numdiscosvendidos = atoi(st); // fscan(f, %d\n, &listadiscos[n].numdiscosvendidos) N++; fclose(f);

// 2ª fase: determinar e mostrar os discos (nome de autor, nome do disco, nº de discos vendidos) printf("indique o valor a partir do qual quer verificar que discos tem vendas superiores: "); scanf("%d", &K); g = fopen("maisvendidos.txt", "w"); if (g == NULL) for (i = 0; i < N; i++) if (listadiscos[i].numdiscosvendidos >= K) { fputs(listadiscos[i].nomeautor, g); // puts escreve a string, que já tem '\n', e ainda acrescenta um '\n' fprintf(g, " --> "); fputs(listadiscos[i].nomedisco, g); fprintf(g, " --> "); // o printf permite anular o 2º '\n' fprintf(g, "%d\n", listadiscos[i].numdiscosvendidos); fclose(g); return 1;

#include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000 typedef struct { char nomeautor[80]; char nomedisco[100]; int numdiscosvendidos; DISCO; 4ª versão int main() { DISCO listadiscos[maxdiscos]; int i, N = 0, K; char st[10]; FILE *f, *g; // 1ª fase: copiar os dados do ficheiro para o vetor/lista de discos f = fopen("discos.txt", "r"); if (f == NULL) while (fgets(listadiscos[n].nomeautor, 80, f)!= NULL) { fgets(listadiscos[n].nomedisco, 100, f); fgets(st, 10, f); listadiscos[n].numdiscosvendidos = atoi(st); // fscan(f, %d\n, &listadiscos[n].numdiscosvendidos) N++; fclose(f);

// 2ª fase: determinar e mostrar os discos com vendas superiores a um valor e guardar num ficheiro printf("indique um valor para determinar os discos com vendas superiores: "); scanf("%d", &K); g = fopen("maisvendidos2.txt", "w"); if (g == NULL) for (i = 0; i < N; i++) if (listadiscos[i].numdiscosvendidos >= K) { fprintf(g, "%s", listadiscos[i].nomeautor); fprintf(g, " --> %s", listadiscos[i].nomedisco); fprintf(g, " --> %d\n", listadiscos[i].numdiscosvendidos); fclose(g); return 1;

#include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000 typedef struct { char nomeautor[80]; char nomedisco[100]; int numdiscosvendidos; DISCO; 5ª versão int main() { DISCO listadiscos[maxdiscos]; int i, N = 0, K; char st[10]; FILE *f; // 1ª fase: copiar os dados do ficheiro para o vetor/lista de discos f = fopen("discos.txt", "r"); if (f == NULL) while (!feof(f)) { // while (fgets(listadiscos[n].nomeautor, 80, f)!= NULL) { fgets(listadiscos[n].nomeautor, 80, f); // fscanf apenas lê a 1ª palavra fgets(listadiscos[n].nomedisco, 100, f); // listadiscos[n].nomedisco é uma string com '\n' no fim fgets(st, 10, f); listadiscos[n].numdiscosvendidos = atoi(st); // fscan(f, %d\n, &listadiscos[n].numdiscosvendidos) N++; fclose(f);

// 2ª fase: determinar e mostrar os discos (nome de autor, nome do disco, nº de discos vendidos) printf("indique o valor a partir do qual quer verificar que discos tem vendas superiores: "); scanf("%d", &K); for (i = 0; i < N; i++) if (listadiscos[i].numdiscosvendidos >= K) { fputs(listadiscos[i].nomeautor, stdout); fprintf(stdout, " --> "); fputs(listadiscos[i].nomedisco, stdout); fprintf(stdout, " --> "); fprintf(stdout, "%d\n", listadiscos[i].numdiscosvendidos); return 1;