Exemplo de input e output do trabalho

quinta-feira, 29/03/2012 Deixe um comentário

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
4
Saí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
CategoriasProgramação 2

Notas Prova 2 de Prog2 2011/2

quarta-feira, 28/03/2012 Deixe um comentário

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

CategoriasProgramação 2 Tags:

Datas de entrega do Trabalho

domingo, 11/03/2012 Deixe um comentário

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.

CategoriasProgramação 2 Tags:

Provas da Primeira Fase da Maratona de Programação

quinta-feira, 01/03/2012 Deixe um comentário

Os enunciados das provas das primeiras fases da Maratona de Programação a partir de 2006 podem ser encontrados no links a seguir:

 

Trabalho de Programação 2 – 2011/2

domingo, 26/02/2012 Deixe um comentário

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

CategoriasProgramação 2 Tags:

Começando a agenda telefônica

quarta-feira, 21/12/2011 Deixe um comentário
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ário

Có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;
}
}
}
}

CategoriasProgramação 2 Tags:

Provas passadas de Prog2

terça-feira, 20/12/2011 Deixe um comentário
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.