PROG1 1415 P12 Registos

  • Published on
    25-Dec-2015

  • View
    221

  • Download
    1

Embed Size (px)

Transcript

<ul><li><p>MIEEC / Programao 1 2013 / 2014 </p><p>Aula prtica 12 </p><p>1 Escreva e teste uma biblioteca de rotinas chamada polinomios para operar com polinmios. Considere que os coeficientes dos polinmios so inteiros e que o grau mximo 10. </p><p>1.1 - Implemente uma funo de leitura de polinmios com a seguinte assinatura: int ler_poli(int * poli); 1.2 - Implemente uma funo de escrita de polinmios com a seguinte assinatura: void escreve_poli(int * poli, int grau); 1.3 - Implemente uma funo que adicione 2 polinmios com a seguinte assinatura: void adiciona_poli(int * p1, int * p2, int *pRes, int maior_grau); 1.4 - Implemente uma funo que calcule o valor do polinmios para um certo valor da varivel independente com a seguinte assinatura: float calc(int * poli, int grau, float x); 1.5 - Implemente um programa que permita testar a biblioteca desenvolvida. </p><p>2 Escreva e teste um programa que para uma data completa de um certo dia (guardada num registo), fornea a data de k dias frente ou atrs do dia especificado. Utilize a biblioteca datas e a estrutura sugerida para o programa disponvel no arquivo prob2_12.zip. </p><p>Contedo do ficheiro "prob2_12.zip": datas.h: Cabealho (header file) com prottipo de todas as funes necessrias para </p><p>este exerccio. datas.c: Implementao de grande parte das funes da biblioteca. Dever </p><p>implementar as funes diaSeguinte, diaAnterior e somaDias. programa.c: Ficheiro onde reside o programa principal (funo main()), que deve ser </p><p>completado para resoluo do exerccio. Makefile: ficheiro que permite compilar automaticamente todos os ficheiros no </p><p>programa final. Como compilar: </p><p> Opo 1: clang datas.c programa.c -o programa Opo 2 (usando o ficheiro Makefile): make </p><p>3 Os nmeros complexos so representados por pontos no plano, designando-se uma componente (normalmente segundo a coordenada horizontal) por parte real, e a outra componente por parte imaginria do complexo. </p><p>Escreva uma biblioteca de rotinas chamada complexos para operar com complexos. </p><p>Um complexo z com componentes x (parte real) e y (parte imaginria) escreve-se z = x + iy; dados os complexos u = a + ib e v = c + id a soma u + v = (a + c) + i(b + d); o mdulo e argumento angular de z correspondem ao mdulo e argumento angular do vector da origem a (x, y). </p></li><li><p>3.1 - Defina um registo que permita guardar um numero complexo. 3.2 - Implemente uma funo de leitura de nmeros complexos: complexo le_complexo(); 3.3 - Implemente uma funo de escrita de nmeros complexos: void escreve_complexo(complexo c); 3.4 - Implemente uma funo que adicione 2 nmeros complexos: complexo soma_complexo(complexo c1, complexo c2); 3.5 - Implemente uma funo que calcule o modulo de um numero complexo: double mod_complexo(complexo c); 3.6 - Implemente uma funo que calcule o argumento angular de um numero complexo: double arg_complexo(complexo c); 3.7 - Escreva um programa que permita testar a biblioteca que desenvolveu. </p><p>4 Uma empresa de electrodomsticos pretende informatizar os dados relativos aos artigos de que dispe para venda. </p><p>4.1 Defina um registo, artigo, adequado representao de um artigo, contendo a seguinte informao: designao do artigo (televisor, rdio, mquina de lavar roupa, etc.), marca (por exemplo, Blabla), modelo (por exemplo, S-30), preo e quantidade disponvel em armazm. </p><p>4.2 Escreva uma funo que leia um elemento do tipo artigo, passado por parmetro. Os dados do artigo so lidos a partir da informao introduzida pelo utilizador. </p><p>void le_artigo(artigo *item) 4.3 Considere que a informao sobre os artigos da empresa, em nmero n &lt; 10000, foi lida para um vetor (armazem) de elementos do tipo artigo. Escreva uma funo que retorne o nmero total de artigos de uma certa marca e modelo a especificar. </p><p>int total_artigos(artigo armazem[], int n, char marca[], char modelo[]); </p><p>4.4 Implemente um procedimento que liste todos os produtos cuja existncia em stock inferior a 10 unidades </p><p>void alerta_artigos(artigo armazem[], int n); 4.5 Implemente um procedimento que ordene todos os produtos em stock pela sua quantidade. </p><p>void ordena_artigos(artigo armazem[], int n); 4.6 - Implemente um programa que permita testar a biblioteca que desenvolveu. </p><p>Outros exerccios recomendados do livro C How To Program: 10.5, 10.6 Pode aceder verso electrnica atravs da rede da FEUP (link no Moodle) </p></li></ul>