Buscar

L2LPa15m

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 Nº 2 
Linguagem de Programação 1 de 4 
 
1) O dia da semana para uma data qualquer pode ser calculado pela seguinte fórmula: 
Dia da semana = RESTO(TRUNCA(2.6 * M – 0.1) + D + A + QUOCIENTE(A, 4) + 
QUOCIENTE(S, 4) – 2 * S, 7) 
onde: 
M representa o número do mês. Janeiro e fevereiro são os meses 11 e 12 do ano 
precedente, março é o mês 1 e dezembro é o mês 10. 
D representa o dia do mês. 
A representa o número formado pelos dois últimos algarismos do ano. 
S representa o número formado pelos dois primeiros algarismos do ano. 
Os dias da semana são numerados de zero a seis; domingo corresponde a 0, segunda a 1, 
e assim por diante. Faça então um programa que: 
- Leia um conjunto de datas (dia, mês, ano), conforme os exemplos apresentados a 
seguir. Assuma que todas as datas informadas serão datas válidas. Encerrar o 
processamento quando for informado a data dia 0 mês 0 ano 0, que não deverá ser 
processada. Usar uma struct para acomodar o dia, mês e ano da data. 
- Determine o dia da semana correspondente à data lida, segundo o método 
especificado anteriormente. Caso a fórmula apresentada anteriormente produza um 
valor negativo, some 7 a esse valor e prossiga normalmente com o processamento. 
- Escreva, para cada data lida, o dia, o mês, o ano e o nome do dia da semana 
calculado pelo seu programa, no formato indicado nos exemplos. Usar uma 
subrotina para determinar o número do dia da semana e outra para imprimir o 
nome do dia. 
Dicas: 
- O resto da divisão do número inteiro X pelo número inteiro Y é um inteiro dado, em 
linguagem C, por X%Y. 
- O quociente da divisão do número inteiro X pelo número inteiro Y é um inteiro 
dado, em linguagem C, por X/Y. Se um dos operandos (X ou Y ou ambos) for de 
tipo real (float ou double), então o resultado será um número real. 
- Para truncar um número real, descartando sua parte fracionária e convertendo o 
resultado para inteiro, basta colocar a expressão (int) antes do número ou 
variável real. Por exemplo, (int)3.1415 produz o valor 3; (int)vInfo produz o 
valor 10, caso a variável real vInfo possua o valor 10.424397. 
Exemplos: 
Valor informado Resultado a ser exibido 
31 3 1991 31/03/1991: Domingo 
5 12 1984 05/12/1984: Quarta-Feira 
8 5 1998 08/05/1998: Sexta-Feira 
2) Faça um programa que receberá os resultados dos alunos em uma disciplina, armazenando-os em 
um vetor. Para cada aluno deverão ser informados o seu RA (considerar os RAs do tipo utilizado 
na Fatec-SO), o nome do aluno (pode conter várias palavras, com tamanho total de até 40 
caracteres), a nota final (um real de 0 a 10) e a quantidade de faltas (um número inteiro). Imprimir 
na tela o conteúdo digitado. Em seguida, ordenar o vetor em ordem decrescente de nota e, para 
alunos que possuam a mesma nota, considerar então o nome, em ordem crescente, ou seja, alunos 
de mesma nota aparecem no resultado final pela ordem alfabética do nome. Imprimir o vetor 
ordenado. Considerar que serão informados sempre os dados de 20 alunos. 
3) Faça um programa que recebe o RA, a nota e o total de faltas de um aluno e os armazena 
em um arquivo. Em seguida o programa deverá solicitar ao usuário que informe o RA de 
um aluno. Se o aluno estiver cadastrado no arquivo, indicar se ele foi aprovado ou 
reprovado. Considere que o aluno é aprovado se a nota final é maior ou igual a 6.0 e o seu 
Lista de Exercícios Nº 2 
Linguagem de Programação 2 de 4 
 
total de faltas é menor ou igual a 10. Ao cadastrar os alunos, permitir apenas a gravação 
de notas entre 0 e 10 e não permitir total de faltas menor que zero. Ao consultar os dados, 
permitir ao usuário informar vários RAs, encerrando o programa quando o RA 000 for 
informado. 
4) Faça um programa que lê o arquivo Triangulos.dat, onde cada registro contém 3 
números reais que seriam as medidas dos lados de um triângulo. O seu programa deverá 
determinar se, para cada registro lido aquele conjunto de medidas pode ou não constituir 
os lados de um triângulo. Caso não possa, imprimir a mensagem “f1, f2 e f3 não formam um 
triangulo”, onde f1 é a menor medida e f3 é a maior medida. Se, por outro lado, as medidas 
puderem formar um triângulo, imprimir a área desse triângulo e seu tipo, conforme os 
exemplos mostrados a seguir. Exibir as medidas e a área sempre com 3 casas depois da 
vírgula. 
Dicas: 
a) O comprimento de cada lado de um triângulo é menor do que a soma dos 
comprimentos dos outros dois lados. 
b) Um triângulo equilátero possui seus 3 lados iguais. 
c) Um triângulo isósceles possui 2 de seus lados iguais. 
d) Um triângulo escaleno possui seus 3 lados com tamanhos diferentes. 
e) Os triângulos devem possuir medidas de comprimento maior que zero. 
f) A área de um triângulo pode ser calculada a partir das medidas de seus lados por 
meio do método do semiperímetro, às vezes chamado de método de Heron. 
Exemplo de entrada 
1.0 1.0 1.0 
2.0 3.0 4.0 
3.0 4.0 5.0 
2.0 3.0 3.0 
4.0 3.0 2.0 
1.0 2.0 3.0 
4.5 3.82 6.97 
9.85 2.38 7.42 
0.00 -1.0 9.2 
3.33 4.25 4.27 
9.91 9.93 9.91 
152.33 100.25 118.82 
Saída esperada para o exemplo de entrada 
Tipo: Equilatero Area: 0.433 
Tipo: Escaleno Area: 2.905 
Tipo: Escaleno Area: 6.000 
Tipo: Isosceles Area: 2.828 
Tipo: Escaleno Area: 2.905 
1.000 2.000 3.000 nao formam um triangulo 
Tipo: Escaleno Area: 7.879 
2.380 7.420 9.850 nao formam um triangulo 
-1.000 0.000 9.200 nao formam um triangulo 
Tipo: Escaleno Area: 6.529 
Tipo: Isosceles Area: 42.582 
Tipo: Escaleno Area: 5950.976 
Lista de Exercícios Nº 2 
Linguagem de Programação 3 de 4 
 
5) Considere o arquivo Atendimentos.dat descrito a seguir. 
 
 
 
 
 
 
 
 
Fazer um programa que recebe duas datas delimitando um período e totaliza os atendimentos 
ocorridos nesse intervalo, conforme o exemplo a seguir. 
Exemplo de conteúdo do arquivo. 
1 18/02/2012 P 8 1 100 
2 18/02/2012 P 6 4 100 
3 18/02/2012 C 8 3 70 
4 20/02/2012 P 7 2 100 
5 20/02/2012 P 6 1 50 
6 21/02/2012 C 6 5 50 
7 22/02/2012 P 8 1 100 
8 22/02/2012 P 7 4 70 
9 22/02/2012 P 7 3 70 
10 24/02/2012 P 8 5 50 
11 26/02/2012 P 8 1 100 
12 26/02/2012 C 8 3 70 
13 28/02/2012 P 6 1 50 
14 28/02/2012 P 7 2 100 
15 28/02/2012 P 6 4 100 
16 01/03/2012 P 7 3 70 
17 01/03/2012 C 6 5 50 
18 03/03/2012 P 7 4 70 
19 03/03/2012 P 8 1 100 
20 05/03/2012 P 8 5 50 
Informe a data inicial do período: 19/02/2012 
Informe a data final do período: 02/03/2012 
Resultado (na tela): 
Data Particular Convênio Total 
19/02/2012 0.00 0.00 0.00 
20/02/2012 150.00 0.00 150.00 
21/02/2012 0.00 50.00 50.00 
22/02/2012 240.00 0.00 240.00 
23/02/2012 0.00 0.00 0.00 
24/02/2012 50.00 0.00 50.00 
25/02/2012 0.00 0.00 0.00 
Arquivo: Atendimentos.dat 
Estrutura 
 Número do atendimento: int 
 Data do atendimento: int/int/int 
 Tipo do atendimento: char 
 Código do médico: int 
 Código do paciente: int 
 Valor do atendimento: float 
Lista de Exercícios Nº 2 
Linguagem de Programação 4 de 4 
 
26/02/2012 100.00 70.00 170.00 
27/02/2012 0.00 0.00 0.00 
28/02/2012 250.00 0.00 250.00 
29/02/2012 0.00 0.00 0.00 
01/03/2012 70.00 50.00 120.00 
02/03/2012 0.00 0.00 0.00 
 
Totais => 860.00 170.00 1030.00

Outros materiais