Trabalho_Implementacao
4 pág.

Trabalho_Implementacao


DisciplinaMecânica Geral14.020 materiais505.398 seguidores
Pré-visualização2 páginas
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: 
 
\uf0b7 Pegue os 2 últimos dígitos do ano e divida-lo por 4, ficando com a parte inteira 
como resultado; 
\uf0b7 Some ao resultado anterior o dia informado; 
\uf0b7 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 
\uf0b7 Subtrair 1 se o mês informado é janeiro ou fevereiro e o ano informado é bissexto. 
\uf0b7 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 \u2013 1799 4 
o Para os anos entre 1800 \u2013 1899 2 
o Para os anos entre 1900 \u2013 1999 0 
o Para os anos entre 2000 \u2013 2099 6 
\uf0b7 Adicione ao resultado os últimos 2 dígitos do ano; 
\uf0b7 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: 
\uf0b7 É divisível por 4 ou é divisível por 400; 
e 
\uf0b7 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 \uf0b4 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 \u201cordenadas\u201d por \u201cabscissas\u201d, e desprezando-se o 
segundo número das coordenadas de cada poço. 
Observação: 
\u2212 O programa deverá pedir ao usuário ingressar o número de poços bem como suas 
coordenadas. 
\u2212 Também deverá ser perguntado ao usuário se o duto mestre sempre será 
instalado no sentido NORTE-SUL ou no LESTE-OESTE. 
\u2212 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) \u2013 lembrar que o terreno é de tamanho 100\uf0b4100). 
 
 
 
 
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 \u20131 ficar 
o valor de , melhor terá sido o ajustamento da reta. 
Usando as informações acima