Buscar

Trabalho_Implementacao

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

Programação de Computadores I (Equipe de no máximo 2 alunos ) 
Prof. Edwin B. Mitacc Meza 
 
Disciplina: Programação de Computadores I 
Avaliação: Implementar os problemas propostos na Linguagem C. 
Data de Entrega: 21/06 
 
Leia com atenção: 
Um bom programador deve ter em mente que não está escrevendo o código para si mesmo, e sim está 
escrevendo um código que deve ser entendível a qualquer outro programador que por um acaso precisará 
ter que mexer no sistema, e para isso acontecer é muito importante seguir algumas boas práticas de 
programação, por exemplo: 
 
Nomenclatura das variáveis: Tente sempre manter um padrão de nomes em suas variáveis e lembre-se 
sempre de colocar nomes que realmente condizem com o que a variável faz. 
Comentários: Lembre-se sempre de comentar seu código, pois provavelmente outro programador ou até 
mesmo você no futuro irá precisar fazer alguma manutenção em seu código, e comentários vão economizar 
um bom tempo do seu trabalho. 
Identação: Um código bem identado facilita a leitura e já é meio caminho andado para o entendimento do 
código, por isso, dê bastante atenção a esse quesito. 
 
Para concluir, antes de começar a escrever seu código leve esses tópicos em consideração, pois isso 
fundamental para definir se seu algoritmo é ou não bem documentado e bem escrito. 
 
Lista de problemas para serem implementados na Linguagem C 
 
 
1. [Determinar dia da semana] Um método para determinar que dia da semana 
corresponde a um dia, mês e ano determinado é descrito como: 
 
 Pegue os 2 últimos dígitos do ano e divida-lo por 4, ficando com a parte inteira 
como resultado; 
 Some ao resultado anterior o dia informado; 
 Logo, adicione um dos seguintes valores, de acordo com o mês informado: 
o Abril e Julho: 0 
o Janeiro e Outubro: 1 
o Maio: 2 
o Agosto: 3 
o Fevereiro, Março e Novembro: 4 
o Junho: 5 
o Setembro, Dezembro : 6 
 Subtrair 1 se o mês informado é janeiro ou fevereiro e o ano informado é bissexto. 
 De acordo com o ano informado (assuma que o ano informado se encontre em 
algum dos intervalos a seguir), adicione: 
o Para os anos entre 1700 – 1799 4 
o Para os anos entre 1800 – 1899 2 
o Para os anos entre 1900 – 1999 0 
o Para os anos entre 2000 – 2099 6 
 Adicione ao resultado os últimos 2 dígitos do ano; 
 Por último, divida entre 7 e pegue o resto da divisão. 
 
O resultado será um número entre 0 e 6, que corresponderá a um dia da semana: 0 
sábado, 1 domingo, 2 segunda-feira, 3 terça-feira, 4 quarta-feira, 5 quinta-feira, 6 
sexta-feira. 
 
Observação: Um ano é bissexto se ocorre que: 
 É divisível por 4 ou é divisível por 400; 
e 
 Não é divisível por 100. 
 
Implementar um algoritmo que informe o dia da semana que corresponde a uma data 
ingressada (dia, mês e ano). 
Tabela - Exemplo 
Dia Mês Ano Dia da semana 
08 04 1975 Terça-Feira 
 
2. [Localização de Oleoduto] Suponha que você tem um terreno de 100 km  100 km 
contendo um certo número de poços de petróleo. O terreno irá ser atravessado 
integralmente por um duto mestre, ao qual irão se ligar (sempre de maneira 
transversal, isto é, fazendo 90 graus) ramais auxiliares que conectarão cada um dos 
poços ao duto mestre. 
 
 
 
O objetivo do exercício é descobrir por onde deverá passar o duto mestre, de maneira 
a minimizar a quantidade de duto auxiliar necessário. O duto mestre sempre será 
instalado no sentido NORTE-SUL ou no LESTE-OESTE, conforme explicitado a 
seguir. Outra coisa que você deve calcular é a quantidade de duto auxiliar necessário 
(medido em quilômetros). 
Os poços serão identificados pelas suas coordenadas (x, y), sendo que a origem dos 
índices, o ponto (0,0), estará localizado no canto inferior esquerdo do terreno. A 
primeira medida de cada poço (o eixo x) indicará a distância no sentido leste-oeste e 
o segundo número (o eixo y) indicará a distância no norte-sul. 
Assim, se um poço estiver nas coordenadas (12,78), ele se encontrará 12 metros à 
direita da origem e 78 metros acima da mesma origem. 
 
 
 
Veja-se o seguinte exemplo: Suponha-se a seguinte distribuição de poços: 
 
x 11 10 17 5 16 13 1 26 15 
y 9 26 19 14 22 20 12 4 25 
 
Supondo que o duto principal deva ser estendido no sentido leste-oeste, em qual 
ordenada ele deveria estar? 
Proposta de solução: 
1.- Como o sentido é leste-oeste, podem-se desprezar as abscissas. 
2.- Ficando apenas com as ordenadas, têm-se: 9, 26, 19, 14, 22, 20, 12, 4, 25. 
3.- Deslocando a origem dos índices, a fim de diminuir o trabalho braçal por meio de 
uma translação, fica: 5, 22, 15, 10, 18, 16, 8, 0, 21 
4.- É razoável se supor que o duto esteja entre o ponto 0 e o ponto 22. Na realidade, 
entre 4 e 26, antes da translação. 
5.- Para descobrir onde deve passar suponha-o localizado em cada um dos 9 poços 
e meça a quantidade de duto auxiliar necessário. Neste caso temos: 80, 83, 54, 
59, 61, 55, 65, 115, 76. 
6.- Como se pode ver o menor valor é de 54 km, correspondendo à ordenada 19, do 
terceiro poço. 
7.- A resposta esperada, portanto é 54,19, significando que são necessários 54m de 
duto auxiliar e que o duto principal deve estar entre os pontos (0,19) e (100,19). 
 
Se o mesmo valor mínimo for encontrado para 2 poços, a resposta deverá ser a 
média entre as duas ordenadas. Por exemplo, no problema: 
 
x 19 10 4 1 7 18 8 21 
y 13 12 17 5 23 20 16 11 
 
Percebe-se que as distâncias mínimas são: 35, 37, 37, 77, 67, 49, 35, 41 que 
correspondem aos poços 1 e 7. Com isso, a ordenada do duto principal deve ser a 
média das duas ordenadas dos poços: 13 + 16 = 29 ÷ 2 = 14.5 km. A resposta 
deveria ser 35, 14.5. Lembrando, o valor 35 corresponde à quantidade de duto 
auxiliar necessária. 
Lembre que se o duto principal estiver na direção norte-sul, vale o mesmo raciocínio 
visto acima, apenas mudando “ordenadas” por “abscissas”, e desprezando-se o 
segundo número das coordenadas de cada poço. 
Observação: 
− O programa deverá pedir ao usuário ingressar o número de poços bem como suas 
coordenadas. 
− Também deverá ser perguntado ao usuário se o duto mestre sempre será 
instalado no sentido NORTE-SUL ou no LESTE-OESTE. 
− A resposta do programa deverá ser clara indicando a quantidade de duto auxiliar 
necessário bem como os pontos inicio e fim que representa o duto mestre 
(exemplo (0,19) e (100,19) – lembrar que o terreno é de tamanho 100100). 
 
 
 
 
3. [Empresa de Serviços] Regressão linear é uma técnica de estatística que ajusta 
uma equação linear (da forma ) a um conjunto de pontos dados. O 
problema consiste em achar uma equação linear que melhor se ajuste a soma dos 
quadrados dos desvios verticais dos pontos para a linha reta (ver figura). 
 
As fórmulas para os coeficientes e , dado um conjunto de pares de pontos 
são: 
 
 
 
 
 
 
 
 
 
 
Sendo: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Uma vez achada a equação da reta, é importante determinara precisão de 
ajustamento dessa linha aos dados reais. Uma medida disso é o coeficiente de 
correlação dado pela fórmula: 
 
 
 
 
 
 
O intervalo de variação de é de . Quanto mais próximo de 1 ou –1 ficar 
o valor de , melhor terá sido o ajustamento da reta. 
Usando as informações acimadescritas, fazer um algoritmo usando a linguagem C, 
para ler e imprimir um conjunto de pares de pontos e calcular e escrever os 
valores de , e , e a equação do modelo obtido na forma: 
 
 
 
y = ax + b

Outros materiais