Escolar Documentos
Profissional Documentos
Cultura Documentos
2023/2024 Lab
09
Tipos Compostos e Modularidade
Objetivos do Laboratório
Nota
1. Cada exercício seguinte deverá ser desenvolvido a partir de uma instância original do
template de projeto CProject, disponível no Moodle;
2. Todos os dados solicitados ao utilizador deverão ser efetuados a partir das funções
disponibilizados no módulo input (já incluído no template).
Exercício 1
Crie um módulo arrays onde declara e implementa (no ficheiro apropriado) os seguintes tipos e
funções:
No programa principal main() faça uso deste módulo para apresentar as estatísticas de um
vetor de inteiros criado manualmente.
Com este programa pretende-se demonstrar a utilidade de utilização de tipos compostos para
agrupar informação que pode ser devolvida por uma função (efetivamente estamos a retornar
“múltiplos valores”)
1
CTSP – TPSI - Algoritmos e Fundamentos de Programação
2023/2024 Lab
09
Tipos Compostos e Modularidade
Exercício 2
a) Crie o módulo date, onde define, declara e/ou implementa (no ficheiro apropriado):
a. O tipo Date (day, month, year);
b. As funções (os seus nomes devem ser auto-explicativos):
i. Date dateCreate(int day, int month, int year);
ii. Date dateReadUser();
iii. void datePrint(Date date);
Exercício 3
2
CTSP – TPSI - Algoritmos e Fundamentos de Programação
2023/2024 Lab
09
Tipos Compostos e Modularidade
• Declara um array com 5 cartões e preencha as suas posições com cartões “fictícios”;
• Solicita ao utilizador um número de cartão e pesquise o mesmo no array de cartões:
a. Se o cartão existir, solicita o número CCV e verifica se coincide.
i. Se coincidir, apresenta a informação completa do cartão.
ii. Se não coincidir, apresenta uma mensagem “CCV incorreto”.
b. Se o cartão não existir, apresenta uma mensagem “Cartão não encontrado.”
Exercício 4
O objetivo será fazer com que o programa anterior trabalhe com esta informação importada
em vez de os cartões serem criados manualmente. Isto permitirá que o programa funcione
para um qualquer conjunto de cartões presentes num ficheiro CSV.
3
CTSP – TPSI - Algoritmos e Fundamentos de Programação
2023/2024 Lab
09
Tipos Compostos e Modularidade
Card cards[100];
int numberCards = importCards("cards.csv", cards, 100);
O programa deverá continuar a funcionar como antes, mas agora com a informação
obtida do ficheiro CSV.
4
CTSP – TPSI - Algoritmos e Fundamentos de Programação
2023/2024 Lab
09
Tipos Compostos e Modularidade
Exemplo de ficheiro CSV para importação. O mesmo deverá estar disponível junto com este
enunciado no Moodle.
• Note que a primeira linha identifica o que significa cada “coluna”. Todas as colunas são
separadas por um caractere específico (o separador), neste caso a vírgula “,”.
• Cada uma das linhas seguintes corresponde à informação de um dado cartão.
• Atenção que nenhum dos valores pode conter o caractere separador, senão isto dará
problemas. Se, noutra aplicação, necessitar de valores com vírgulas, opte por outro
caractere separador, e.g., “;”.
5
CTSP – TPSI - Algoritmos e Fundamentos de Programação
2023/2024 Lab
09
Tipos Compostos e Modularidade
int count = 0;
char line[1024];
free(tokens);
free(tmp);
}
fclose(stream);
return count;
}