Buscar

Biblioteca 1085234

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

LISTA DE EXERCÍCIOS 03
PRÁTICOS
1) Escreva um programa em C que determine se um dado número inteiro é par ou ímpar.
Você deve usar a função parOuImpar, cujo protótipo a seguir é apresentado e que
escreve na tela “O número é par” ou “O número é ímpar” conforme o inteiro passado
como parâmetro seja par ou ímpar, respectivamente:
void parOuImpar (int);
Codifique também as funções par e impar e resolva o exercício com elas:
 int par (int);
o Retorna 1 se o inteiro passado como parâmetro for par e 0 caso
contrário.
 int impar (int);
o Retorna 1 se o inteiro passado como parâmetro for ímpar e 0 caso
contrário.
2) Escreva um programa em C que determine o maior de três números inteiros. Você deve
usar a função maiorDeTres, cujo protótipo a seguir é apresentado e que devolve o
maior dos inteiros passados como parâmetro.
int maiorDeTres (int, int, int);
3) Repita o exercício anterior usando simplesmente a função maior que retorna o maior
de dois números:
int maior (int, int);
4) Escreva um programa em C que determine a média de dois números inteiros. Você
deve usar a função media, cujo protótipo a seguir é apresentado e que devolve a
media dos inteiros passados como parâmetro.
float media (int, int);
5) Escreva um programa em C que permita determinar o maior e o menor número de
uma sequência de N números inteiros dados pelo utilizador. O valor de N deverá ser
superior ou igual a 2. Se não for, o seu valor deverá ser pedido novamente até obter
um valor válido. A inserção de números deverá terminar quando forem inseridos N
números. Nessa altura a aplicação deverá mostrar o valor máximo e mínimo dentre os
valores inseridos. Você deve usar as funções maximo e minimo, cujos protótipos a
seguir se apresentam:
 float maximo (float, float);
o Devolve o maior dos reais passados como parâmetros.
 float minimo (float, float);
o Devolve o maior dos reais passados como parâmetros.
6) Escreva um programa que leia uma sequência de reais a partir do teclado, os armazene
no array A, cujo tamanho é o valor especificado pela constante DIM e que, depois,
escreva na tela os valores guardados em A. Deve usar as funções:
 void lerArray (float[DIM]);
 void escreverArray(float[DIM]);
7) Escreva um programa que calcule a soma dos elementos de uma sequência de inteiros
cujo tamanho é o valor especificado pela constante DIM. Deve usar as funções:
 void lerArray (int[DIM]);
 int somaElementosArray(int[DIM]);
8) Escreva um programa que calcule o elemento máximo e o elemento mínimo de uma
sequência de inteiros cujo tamanho é o valor especificado pela constante DIM. Deve
usar as funções:
 void lerArray (int[DIM]);
 int maximo(int[DIM]);
 int minimo(int[DIM]);
9) Escreva um programa que calcule as posições dos elementos máximo e mínimo de
uma sequência de inteiros cujo tamanho é o valor especificado pela constante DIM.
Deve usar as funções:
 void lerArray (int[DIM]);
 int posicaoMaximo(int[DIM]);
 int posicaoMinimo(int[DIM]);
10) Escreva um programa que adicione duas sequências A e B de números reais, ou
seja, que crie uma nova sequência C em que cada elemento é o resultado da soma dos
elementos homólogos de A e B. O tamanho das sequências é o valor especificado pela
constante DIM. Deve usar as funções:
 void lerArray (float[DIM]);
 void soma(float[DIM], float[DIM], float[DIM]);
11) Escreva um programa que copie os elementos de uma sequência de inteiros para
outra sequência do mesmo tamanho. Deve usar as funções:
 void lerArray (int[DIM]);
 void copia(int[DIM], int[DIM]);
12) Escreva um programa que calcule a média aritmética dos elementos de uma
sequência de reais. Deve usar as funções:
 void lerArray (float[DIM]);
 float media (float[DIM]);
13) Escreva um programa que leia uma matriz de reais com L linhas e C colunas.
Escreva depois na tela os valores guardados na matriz. Deve usar as funções:
 void lerMatriz (float[L][C]);
 void escreverMatriz(float[L][C]);
14) Escreva um programa que calcule a soma dos elementos de uma matriz de reais
cujo número de linhas é especificado pela constante L e o número de colunas é
especificado pela constante C. Deve usar as funções:
 void lerMatriz (float[L][C]);
 float somaElementosMatriz(float[L][C]);
15) Escreva um programa que calcule o elemento máximo e o elemento mínimo de
uma matriz de reais cujo número de linhas é especificado pela constante L e o número
de colunas é especificado pela constante C. Deve usar as funções:
 void lerMatriz (float[L][C]);
 float maximo (float[L][C]);
 float minimo (float[L][C]);
16) Escreva um programa que escreva na tela a posição (linha e coluna) dos
elementos máximo e mínimo de uma matriz de reais, cujo número de linhas é
especificado pela constante L e o número de colunas é especificado pela constante C.
Deve usar as funções:
 void lerMatrix(float[L][C]);
 void posicaoMaximo(float[L][C]);
 void posicaoMinimo(float[L][C]);
17) Escreva um programa que adicione duas matrizes de reais, em que o número de
linhas é especificado pela constante L e o número de colunas é especificado pela
constante C. Deve usar as funções:
 void lerMatriz(float[L][C]);
 void somaMatrizes(float[L][C], float[L][C], float[L][C]);
18) Um treinador de atletismo treina 5 atletas e faz 12 sessões de treino por semana.
Em cada sessão, cada atleta percorre uma distância que é cronometrada. Os valores
dos tempos, em segundos, são registados sob a forma de uma matriz T(5x12), onde
cada linha diz respeito a um atleta e cada coluna a uma sessão de treino. Supondo já
feita a leitura da matriz, escreva um programa, usando funções, para:
a) calcular e escrever a média dos tempos realizados em cada sessão de treinos;
b) determinar e escrever o melhor tempo realizado por cada um dos atletas nas
12 sessões.
19) Numa matriz M(35x12) de elementos inteiros, encontram-se registadas as notas
dos 35 alunos de cada uma das 12 turmas da disciplina de Álgebra. Sabendo que todos
os elementos de M são valores entre 0 e 20, escreva um programa, usando funções,
que:
a) determine e escreva o número de alunos aprovados (nota >= 10);
b) determine e escreva a melhor nota em cada uma das turmas;
c) identifique a turma com maior número de alunos aprovados.
20) Tendo em conta a seguinte estrutura, bem como o respectivo tipo de dados, que
permite cadastrar os registos de alunos em residências universitárias:
#define MAX 20
typedef struct
{
char nome[MAX];
char sobrenome[MAX];
char residencia[MAX];
int telefone;
} ESTUDANTE;
1) Escreva a função equalEntry que toma dois registos de alunos como argumentos,
devolvendo depois o valor 1 (verdade) se os dois registos são idênticos ou o valor 0
(falso) no caso contrário.
2) Escreva uma função comesFirst que toma dois registos de alunos como
argumentos, devolvendo depois o valor 1 (verdade) se o primeiro registo tem
precedência alfabética sobre o segundo registo ou o valor 0 (falso) no caso contrário.
A comparação alfabética decorre pela comparação inicial dos nomes e só depois se
compara os sobrenomes. 
3) Escreva um programa que leia do teclado dois registos, que escreva na tela se são
idênticos (usando a função equalEntry), e que escreva ainda na tela qual deles vem
em primeiro lugar (usando a função comesFirst).
21) Tendo em conta a seguinte estrutura, bem como o respectivo tipo de dados, que
permite representar o tempo no formato de horas (hh), minutos (mm) e segundos
(ss.sss). Um exemplo de tempo neste formato é, por exemplo, 12:34:56.123.
typedef struct
{
int hh;
int mm;
double seconds;
} TIME;
1) Escreva a função convertTime que converta o tempo que lhe é passado em
segundos no formato ss.sss para o tempo no formato hh:mm.ss.sss. O tempo neste
formato deverá ser devolvido pela função como uma structdo tipo TIME. Escreva
depois um pequeno programa para testar a conversão. O protótipo da função anterior
é o seguinte:
TIME convertTime(double secs);
2) Escreva a função addTime que toma dois tempos do tipo TIME como argumentos,
e que depois devolve a soma dos tempos numa estrutura do tipo TIME. Escreva depois
um pequeno programa para testar a conversão. O protótipo da função anterior é o
seguinte:
TIME addTime(TIME a, TIME b);
22) APLICAÇÃO INTERACTIVA PARA GESTÃO DE LIVROS
Considere o tipo struct LIVRO e um array de structs do tipo LIVRO com tamanho 100
identificado por biblioteca:
typedef struct
{
char titulo[40];
char autor[20];
float numeroDoCatalogo;
int anoDePublicacao;
int numeroDaCopia;
} LIVRO;
#define numeroLivros 100
LIVRO biblioteca [numeroLivros];
As tarefas principais a desenvolver nesta aplicação são as seguintes:
1. Altere a estrutura LIVRO por forma a incluir dois campos adicionais: dataEmprestimo
(tipo DATE a definir) e dataRetorno (tipo DATE).
2. Escreva uma função de saída do seguinte menu:
BIBLIOTECA DA IES
1 – Inserir novo livro
2 – Procurar livro por título.
3 – Procurar livro por autor.
4 – Alterar nome do livro
5 – Apagar livro
6 – Registar data de empréstimo de um livro.
7 – Registar data de retorno de um livro.
8 – Listar livros existentes na biblioteca.
9 - Sair
3. Coloque todas as opções do menu a funcionar (o programa só deverá terminar
quando o utilizador selecionar a opção “Sair”).
Para isso escreva funções para:
• Ler um livro.
• Mostrar os dados de um livro.
• Inserir um livro.
• Procurar um livro através do seu título.
• Procurar um livro através do nome do seu autor.
• Alterar o título de um livro.
• Eliminar um livro dos registos da biblioteca.
• Registar a data de empréstimo de um livro.
• Registar a data de retorno de um livro.
• Listar todos os livros existentes.

Continue navegando

Outros materiais