Scan_Ferr
|
Posted: 23 Jan 2013, 01:54 |
|
Joined: 12 Jan 2009, 19:44 Posts: 6325 Location: Maceda
|
Entretanto consegui fazer...mas se quiserem fazer o teste por mim amanhã, é bem vindo  Mas tenho outro xD Esta merda é tão confusa, strings e o crl...  Segue aí: 2 – Desenvolva uma aplicação para gerir uma agenda de contactos. Para cada contacto pretende-se registar nome (nome e apelido), número de telemóvel, endereço de email e distrito de residência (apenas uma palavra). Estude o ficheiro prob2.c do programa e complete-o de acordo como o que é pedido. a) Desenvolva uma função que, garantindo que não são lidos mais do que NPRODUTOS, preencha o vetor loja com informação introduzida pelo utilizador; a função deve retornar o número de produtos lidos. A leitura deverá terminar quando não for possível ler todos os dados de um produto. Sugestão: verifique o valor de retorno da função scanf. int ler_produtos(produto *loja); O seu programa (comente as linhas 26, 28 e 29 da estrutura apresentada) pode ser testado com o ficheiro loja.txt [exemplo de utilização: ./prob2 < loja.txt]. Para esse ficheiro o resultado deverá ser: Lista de produtos carregada (54 produtos)
b) Desenvolva uma rotina que calcule o valor total dos produtos da loja e utilize-a no programa apresentado. float valor_loja (produto *loja, int n); O seu programa pode ser testado com o ficheiro loja.txt [exemplo de utilização: ./prob2 < loja.txt]. Para esse ficheiro o resultado deverá ser: Lista de produtos carregada (54 produtos) O valor dos produtos da loja e': 7626.00 c) Considere que o utilizador pretende adicionar mais do que NPRODUTOS. Altere o seu programa de modo a que seja possível ao utilizador introduzir qualquer número de produtos. Sugestão: utilize gestão dinâmica da memória. Comece por alterar o protótipo da função ler_produtos para: produto* ler_produtos(int *n); Não se esqueça de alterar no seu programa também as chamadas à função. O seu programa pode ser testado com o ficheiro loja2.txt [exemplo de utilização: ./prob2 < loja2.txt]. Para esse ficheiro o resultado deverá ser: Lista de produtos carregada (108 produtos) O valor dos produtos da loja e': 15253.76 d) Considere que o vetor de produtos (loja) está ordenado por ordem alfabética do nome de cada produto. Descreva um algoritmo eficiente que lhe permita procurar no vetor um determinado produto, sabendo o seu nome. Esqueçam o cabeçalho do exercício. Os fdp's não sabem fazer coisas em condições. Basicamente é completar as funções. Só que entra strings e já não percebo um cu, lol. Isto ainda faço bem #include <stdio.h> #define MAX 1440
int encontra_max(float *leituras, int n) {
float max=-100, imax; int i=0;
while (i < n) { //printf("Introduza as temperaturas.\n"); scanf("%f", &leituras[i]); if(leituras[i] > max) { max = leituras[i]; imax = i; } i++; } return imax; }
int encontra_min(float *leituras, int n) { float min=100, imin; int i=0; while (i < n) { //printf("Introduza as temperaturas.\n"); scanf("%f", &leituras[i]); if(leituras[i] < min) { min = leituras[i]; imin = i; } i++; } return imin; }
main () { float tmin, tmax, leituras[MAX]; int max, min, hmax, hmin, mmin, mmax; max = encontra_max(leituras, 1440); min = encontra_min(leituras, 1440); hmax = max / 60; mmax = max % 60; tmax = leituras[max]; hmin = min / 60; mmin = min % 60; tmin = leituras[min];
printf("mínima de %.2f às %d:%d; máxima de %.2f às %d:%d\n", tmin, hmin, mmin, tmax, hmax, mmax);
}
Attachments: |
loja.txt [1.09 KiB]
Downloaded 505 times
|
prob2.c [770 Bytes]
Downloaded 521 times
|
loja2.txt [2.18 KiB]
Downloaded 501 times
|
_________________

|
|