INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática

Documentos relacionados
INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática

INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática

Programação 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação. Cap. 7 Arrays. Arrays

Capítulo 06: Arquivos

Capítulo 4: Condicionais

ponteiros INF Programação I Prof. Roberto Azevedo

INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática

INF 1620 P1-13/09/02 Questão 1 Nome:

Arquivos. INF1005 Programação I Profa. Simone D.J. Barbosa sala 410 RDC

Capítulo 2: Condicionais. Pontifícia Universidade Católica Departamento de Informática

Introdução à Programação

INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática

INF 1620 P1-04/10/03 Questão 1 Nome:

INF 1620 P1-18/09/04 Questão 1 Nome:

Introdução a Computação

INF 1007 Simulado P2 Nome: Instruções

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

INF 1005 Programação I - Prof. Hélio Lopes 24/04/2012

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008

ARQUIVOS DE DADOS EM C: UMA INTRODUÇÃO

INF 1007 Programação II

Capítulo 08: Matrizes

Q1 Q2 Q3 Nota. Departamento de Informática - PUC-Rio INF 1005 Programação I P4 28/06/2011. Aluno: Matrícula: Turma: _

Introdução à Algoritmos INF 1005 e INF Programação I

#include <stdio.h> main() { int i; // Cabeçalho for (i = 1; i <=20; i++) putchar( * ); putchar( \n ); puts( Numeros entre 1 e 5 );

INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Prova - 14 de junho de 2017

Prova 2 - Computação

Linguagem C. André Tavares da Silva.

Computação 2. Aula 2. Profª. Fabiany Vetores e Matrizes

INF1007: Programação Funções Recursivas. 12/03/2014 (c) Dept. Informática - PUC-Rio 1

Acadêmico: Subprogramação (funções)

ECT1203 Linguagem de Programação

1ª Lista de Exercícios

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Algoritmos e Técnicas de Programação. Professora: Luciana Faria

Algoritmos e Programação

Programação II. Tipos Estruturados

Introdução à Programação

char* prefixo (char* str, int n);

Modulo 3: Else, Case, For...

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

Programação II. Tipos Estruturados. Bruno Feijó Dept. de Informática, PUC-Rio

INF 1620 P1-14/04/07 Questão 1 Nome:

Programação II. Vetor de Tipo Estruturado e Vetor de Ponteiros. Bruno Feijó Dept. de Informática, PUC-Rio

LINGUAGEM C Estrutura / Funções

Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 09 Estruturas

ALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P1 17/04/2010

Aluno: Matrícula: Turma:

Programação II. Files Read & Write. Bruno Feijó Dept. de Informática, PUC-Rio

SSC300- Linguagens de Programação e Aplicações Profa Vânia de Oliveira Neves. ICMC/USP São Carlos

Programação 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação. Cap. 11 Estruturas (Structs) Structs

Manipulação de Arquivos Exercício/Exemplo:

INF 1007 Programação II

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

ESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza

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

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO PRÉ AULA PRÉ AULA 18/09/ Considere o seguinte comando: if (partefracionada >= 0.5).

Fundamentos de Programação 1

Exercícios no papel... Computação I (CC)

Departamento de Informática PUC-Rio INF Estruturas de Dados Lista 2 Completa (Gerada em 8 de maio de 2006)

GABARITO EXERCÍCIOS ÁRVORES arv.h struct noarv { int info; struct noarv * esq; struct noarv * dir; }; typedef struct noarv NoArv;

INF1005: Programação 1. Arquivos. 02/05/10 (c) Paula Rodrigues 1

Grupo A Exercícios Básicos. 1. Comente o resultado de cada um dos programas abaixo:

Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira Anilton Joaquim da Silva

Apontadores/ponteiros

Declarações. Identificadores e Tipos de Dados Básicos

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

INF1005: Programação 1. Vetores. 02/05/10 (c) Paula Rodrigues 1

MAC-115 Introdução à Computação para Ciências Exatas e Tecnologia IO Terceiro Exercício-Programa Entregar até 09/11/2007

Linguagem C. Funções. Prof. Maurício Dias

PROGRAMAÇÃO E ALGORITMOS (LEI) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017

Introdução à Programação

Programação estruturada

ESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza

PROGRAMAÇÃO em C. Vitor Valerio de Souza Campos

Aula 10 Oficina de Programação Matrizes. Profa. Elaine Faria UFU

INF1005: Programação 1. Matrizes. 06/06/10 (c) Paula Rodrigues 1

Programação de Computadores II. Cap. 4 Funções

Linguagem C: Introdução

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO

Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados - Prof. Alessandro Zimmer Introdução à Linguagem C

Introdução a Programação. Tipos Estruturados de Dados

Computação 2. Diego Addan Aula 3. Funções

INF 1005 Programação I

LP II Estrutura de Dados

INF 1005 Programação I

Aula 07 Introdução à Programação Subprogramas

Introdução à Programação

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2002/ Valores

INF 1620 P1-16/09/06 Questão 1 Nome:

INF 1620 P4-09/07/03 Questão 1 Nome:

Introdução à Programação

Encapsulamento de Código: Funções e Procedimentos

EXERCÍCIO DE SONDAGEM TURMA 02 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota

Capítulo 3: Repetições. Pontifícia Universidade Católica Departamento de Informática

Prova de Programação (21090) Data: 31 de Janeiro de 2008

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Transcrição:

INF1005 Programação I Pontifícia Universidade Católica Departamento de Informática 1

INF1005 Exercício da Editora Pontifícia Universidade Católica Departamento de Informática 2

O Problema Uma editora fornece livros para 20 livrarias, cada uma delas identificadas unicamente por um código inteiro de 1 a 20. Semanalmente, algumas livrarias enviam a editora um ou mais pedidos de fornecimento de livros. Cada livro é identificado por um código inteiro. Para cada pedido, a editora registra cinco informações, a saber: o código da livraria solicitante, o código do livro, a quantidade de exemplares, o número de páginas por exemplar e o tipo de encadernação. Cada pedido gera um custo, calculado utilizando uma fórmula de cálculo, que descrevemos no item Fórmula de Preço. O gasto semanal de uma livraria corresponde a soma dos custos de todos os seus pedidos na semana. O objetivo deste problema é construir um programa que determine o gasto semanal de cada livraria que fez algum pedido na semana. Além disso, devem ser geradas algumas informações secundárias de controle de erros nos pedidos, conforme detalhado no item Relatório de Controle. 3

Custo de exemplar custo = custo de encadernação + 0.01 quantidade de páginas 4

Custo de encadernação D 18.00 25.00 30.00 35.00 45.00 B 22.00 30.00 37.00 42.00 48.00 L 11.00 13.90 17.00 19.35 23.00 I 22.50 31.00 38.00 43.20 48.80 E 22.80 32.00 39.50 44.00 50.00 K 7.00 10.00 14.00 16.00 19.00 P 9.00 13.00 16.00 18.40 21.30 5

Editora #include <stdio.h> int main(void) // le custos de encadernacao por tipo e volume // processa pedidos da semana // mostra na tela tipo de encadernacao mais cara // para livros de 300 a 399 paginas // gera arquivo de custos das livrarias return 0; 6

Pedidos 2 1013 10 120 B 3 2200 21 210 L 19 1456 2 65 I 5 4320 30 205 P 9 1013 10 120 E 5 4444 13 503 K 13 5555 5 342 D 20 1456 12 178 B 3 3321 19 296 E 1 1013 13 120 I 7

Pedidos 20 2200 22 60 K 15 9900 9 439 E 5 4320 18 205 K 17 2100 2 341 D 3 1341 15 94 P 20 8706 10 511 E 15 1119 5 346 K 17 2100 2 341 W 9 1456 11 178 E 10 4320 17 205 I 8

Pedidos 5 2200 12 60 P 4 7766 2 245 L 18 3030 8 164 K 3 4781 16 342 B 5 1013 15 120 P 3 3321 19 296 Y 9

Solução manual... 10

Pseudocódigo #include <stdio.h> int main(void) // ate 10 tipos diferentes de livros // valor = encadernacao + 0.1 * paginas // le custos de encadernacao por tipo e volume // processa pedidos da semana // gerando gastos por livraria no arquivo gastos.txt // e informando na tela pedidos com tipo invalido // mostra na tela tipo de encadernacao mais cara // para livros de 300 a 399 paginas return 0; 11

Custos de encadernação char float D 18.00 25.00 30.00 35.00 45.00 B 22.00 30.00 37.00 42.00 48.00 L 11.00 13.90 17.00 19.35 23.00 I 22.50 31.00 38.00 43.20 48.80 E 22.80 32.00 39.50 44.00 50.00 K 7.00 10.00 14.00 16.00 19.00 P 9.00 13.00 16.00 18.40 21.30 12

#include <stdio.h> int main(void) // ate 10 tipos diferentes de livros float precodeencadernacaoportipoquantidade[10][5]; char tipodeencadernacao[10]; float despesadalivraria[20]; // valor = encadernacao + 0.1 * paginas // le custos de encadernacao por tipo e volume // processa pedidos da semana // gerando gastos por livraria no arquivo gastos.txt // e informando na tela pedidos com tipo invalido // mostra na tela tipo de encadernacao mais cara // para livros de 300 a 399 paginas return 0; 13

#include <stdio.h> int le_precos_encadernacao(char *, float tabela[][5]); void processa_pedidos(int,char *, float tabela[][5]); int main(void) float precodeencadernacaoportipoquantidade[10][5]; char tipodeencadernacao[10]; float despesadalivraria[20]; int numerodetipos; // ate 10 tipos diferentes de livros // valor = encadernacao + 0.1 * paginas // le custos de encadernacao por tipo e volume numerodetipos = le_precos_encadernacao(tipodeencadernacao, precodeencadernacaoportipoquantidade); // processa pedidos da semana // gerando gastos por livraria no arquivo gastos.txt // e informando na tela pedidos com tipo invalido processa_pedidos(numerodetipos, tipodeencadernacao, precodeencadernacaoportipoquantidade); // mostra na tela tipo de encadernacao mais cara // para livros de 300 a 399 paginas return 0; 14

Le preços de encadernação int le_precos_encadernacao(char * tipo, float preco[][5]) FILE *ftabela; int i,j; ftabela = fopen("encadernacao.txt","r"); i=0; while(fscanf(ftabela," %c",&tipo[i])!=eof) for(j=0;j<5;j++) fscanf(ftabela,"%f",&preco[i][j]); i++; fclose(ftabela); return i; 15

Mostra preços de encadernação void mostra_encadernacao(int ntipos, char * tipo, float preco[][5]) int i,j; for(i=0;i<ntipos;i++) printf("\n%c",tipo[i]); for(j=0;j<5;j++) printf("\t%.2f",preco[i][j]); printf("\n\n"); 16

Processar pedido void processa_pedidos(int ntipos, char *tipos, float preco[][5], float *despesa) FILE *fpedidos; int livraria, livro, quantidade, paginas, i; char encadernacao; float despesadopedido, custodoexemplar, custodeencadernacao; for (i=0;i<20;i++) despesa[i] = 0.0; fpedidos = fopen("pedidos.txt","r"); i=0; while(fscanf(fpedidos,"%d%d%d%d %c", &livraria, &livro, &quantidade, &paginas,&encadernacao)==5) custodeencadernacao = custo(encadernacao,quantidade, ntipos, tipos, preco); custodoexemplar = custodeencadernacao + 0.01*paginas; despesadopedido = quantidade*custodoexemplar; despesa[livraria-1] += despesadopedido; fclose(fpedidos); 17

Custo do exemplar float custo(char encadernacao, int quantidade, int ntipos, char * tipo, float preco[][5]) return 0.0; 18