Exemplo de input e output do trabalho
Oi,
Para quem quiser conferir, lá vai um exemplo de input e output do trabalho:
Entrada:1 Joao da Silva 123 1 Jose da Silva 234 1 Marcos Souza 345 1 Hilario Junior 456 1 Seu Madruga 567 1 Cristovao Colombo 678 1 Pedro Alvares Cabral 789 2 7 2 6 10 13 21 35 44 3 10 09 2010 20 30 123 333 345 456 2 8 2 9 10 13 21 35 44 51 1 06 09 2010 12 15 789 2 6 2 10 13 21 35 44 2 16 09 2010 10 10 345 678 2 6 1 10 13 21 35 44 2 07 09 2010 10 10 456 234 3 12 09 2010 1000000 2 10 13 21 35 44 2 7 2 6 10 13 21 35 44 3 26 12 2010 20 30 123 333 345 456 2 8 2 9 10 13 21 35 44 51 1 26 12 2010 12 15 789 2 6 2 10 13 21 35 44 2 02 01 2011 10 10 345 678 2 6 1 10 13 21 35 44 2 28 12 2010 10 10 456 234 3 02 01 2011 2500000 2 10 13 21 35 44 4Saída:2 3 R$ 166666.67 123 345 456 1 R$ 500000.00 789 2 3 R$ 416666.67 123 345 456 2 R$ 625000.00 345 678
Notas Prova 2 de Prog2 2011/2
|
Aluno |
Nota |
| Alessandro Littig |
35 |
| André Vargas |
15 |
| Daiene |
15 |
| Diego de Deus |
35 |
| Diego Gava |
35 |
| Edvaldo |
35 |
| Fabianne |
30 |
| Johnson |
35 |
| Giovani Balarini |
35 |
| Hygo |
35 |
| João H. Capucho |
40 |
| José Martins |
35 |
| Letícia |
30 |
| Luan |
25 |
| Maria Luiza |
35 |
| Rodrigo |
45 |
| Rômulo |
30 |
| Tiago Bassini |
35 |
Datas de entrega do Trabalho
Olá,
Segue cronograma com possíveis datas de entrega do trabalho:
|
Data limite de entrega |
Valor máximo do trabalho |
|
11/03/2012 |
30 |
|
12/03/2012 |
29 |
|
13/03/2012 |
28 |
|
14/03/2012 |
27 |
|
15/03/2012 |
25 |
|
17/03/2012 |
20 |
|
19/03/2012 |
10 |
Será considerada apenas a última versão entregue.
Provas da Primeira Fase da Maratona de Programação
Os enunciados das provas das primeiras fases da Maratona de Programação a partir de 2006 podem ser encontrados no links a seguir:
- Aquecimento 2006
- Prova 2006
- Aquecimento 2007
- Prova 2007
- Aquecimento 2008
- Prova 2008
- Aquecimento 2009
- Prova 2009
- Aquecimento 2010
- Prova 2010
- Aquecimento 2011
- Prova 2011
Trabalho de Programação 2 – 2011/2
Especificação do trabalho de Programação 2 (2011/2): Trabalho de Programação 2 (2011/2).
Data limite para envio: 11/março/2012
Enviar para hsjunior@ifes.edu.br
Assunto: Prog2:trab:Nome Completo do Primeiro Integrante:Nome Completo do Segundo Integrante
Começando a agenda telefônica
Para armazenar os dados de uma agenda telefônica, defina as estruturas a seguir:typedef struct {
char nome[30];
char tel1[14];
char tel2[14];
char email[50];
int cod;
} Contato;typedef struct {
Contato **ag;
int tam; // tamanho maximo da agenda
int n; // numero de contatos inseridos na agenda
}0) Função para alocar uma agenda de tamanho tam.
1) Função para alocar um vetor de ponteiros para contatos, ler os dados do vetor e salvá-lo na agenda.
2) Função para liberar da memória os dados da agenda.
3) Função para colocar a agenda em ordem alfabética.
4) Insira na estrutura Agenda um outro vetor de ponteiros para contatos de tamanho 10, chamado favoritos. Peça para o usuário digitar o código de seus 10 contatos favoritos e armazene esses contatos no novo vetor.
5) Dado um nome e uma agenda, encontre o contato e imprima seus dados.
Extra:
- Main utilizando as funcões acima
- Inserir novo contato
- Excluir contato (DUVIDO)
- Novo main, criando uma agenda vazia e dando opções ao usuário:
a) Insira um novo contato.
b) Exclua um contato.
c) Consulte um contato.
d) Limpe a agenda.
e) Sair.
O programa ficará rodando até que o usuárioCódigo até agora:
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { char nome[30]; char tel1[14]; char tel2[14]; char email[50]; int cod; } Contato; typedef struct { Contato **ag; int tam; // tamanho maximo da agenda int n; // numero de contatos inseridos na agenda } void erro () { prinf ("Erro de memoria.\n"); exit (1); } Agenda *alocaAgenda (int tam) { Agenda *a = (Agenda *)malloc (sizeof (Agenda)); if (a == NULL) erro (); a->tam = tam; a->n = 0; return a; } void alocaContatos (Agenda *a) { int i; a->ag = (Contato **)malloc (a->tam * sizeof (Contato *)); if (a->ag == NULL) erro (); for (i = 0; i < a-> tam; i++) { a->ag[i] = (Contato *)malloc (sizeof (Contato)); if (a->ag[i] == NULL) erro (); } } void leContatos (Agenda *a, int x) { // x eh o numero de contatos a serem lidos int i; for (i = 0; i < x; i++) { scanf ("%s %s %s %s %d", a->ag[i]->nome, a->ag[i]->tel1, a->ag[i]->tel2, a->ag[i]->email, &a->ag[i]->cod); } } void liberaMemoria (Agenda *a) { int i; for (i = 0; i < a->tam; i++) free (a->ag[i]); free (a->ag); free (a); } void ordena (Agenda *a) { int i, j; for (i = 0; i < a->n; i++) { for (j = i+1; j < a->n; j++) { if ( strcmp ( a->ag[i]->nome , a->ag[j]->nome ) > 0 ) { // trocando os elementos de posicao Contato *aux = a->ag[i]; a->ag[i] = a->ag[j]; a->ag[j] = aux; } } } }
Provas passadas de Prog2
2010/2:
2009/2 (Programação 1 – Disciplina era dada em Portugol + C):