Baixe o app para aproveitar ainda mais
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 100100). 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
Compartilhar