bunark Posted May 13, 2006 at 09:54 PM Report #27297 Posted May 13, 2006 at 09:54 PM Olá a todos 😉 apesar de me ter registado hoje ja vos acompanha á algum tempo mas agora decidi registar-me pk tenho ke fazer um trabalho semi final pra escola e preciso de ajuda pk é pra entragar na terça. :down: A pergunta do trabalho é a seguinte: Defina uma estrutura para descrever restaurantes. A estrutura deve armazenar o nome, endereço, preço médio(mas inteiro) e o tipo de comida. Elabore um programa que crie um vector de estruturas e as funções para: 1- Preencher o vector; 2- Mostrar todos os restaurantes de um certo tipo de comida; 3- Mostra qual é o restaurante mais barato de um certo tipo de comida; 4- Ordenar por ordem crescente de preço os restaurantes. Pf pessoal ajudem-me estou mesmo desesperado e ainda por cima conta para nota ajum-me :down: P.S. -> Estou a usar o TC
untouchables Posted May 13, 2006 at 10:45 PM Report #27300 Posted May 13, 2006 at 10:45 PM bem, obviamente nao te vou fazer o programa e dar-to assim, ate porque isso seria injusto, tanto para os teus amigos como para ti, pois so te estarias a enganar a ti mesmo. posso-te ajudar no problema. primeiro tens de fazer uma struct, com os campos: char nome[30], endereco[100], tipo_comida[50]; int preco_medio; depois vais ter um menu, para as varias opçoes, na main. tambem vais ter de declarar um array do tipo da struct, para os varios rastaurantes. logo na main, convem definir um caso de paragem, para que o programa saiba onde inserir o valor. poe por exemplo o preço do 1º restaurante a 0. quanto as funçoes, a primeira e para inserir os valores no array. essa funçao recebe apenas o array. em primeiro lugar, tem de verificar o indice onde pode inserir (o primeiro que tiver o preço ==0), e podes passar ja o seguinte para 0, para a proxima utilizaçao. para o primeiro dos indices a 0, o primeiro que encontraste, obviamente, tens de fazer o scan da informaçao, e coloca-la na struct. desta funçao, acho que ja expliquei o que precisas de saber. depois para mostrar, fazes um ciclo while. enquanto o preço do restaurante do indice dado nao for ==0, imprime a info, e aumenta o indice. o restaurante mais barato de um tipo de comida, defines uma variavel inteira com um numero exageradamente grande, tipo 2000000, e um char teste[30]. depois corres o array. se o nome do tipo de comida for o mesmo que queres encontrar, e se o preço for menor que o que tens na variavel, guardas esse preço na variavel, e copias o nome do restaurante para o array de chars. no fim, se o preço for != de 2000000, imprime o que esta no teste, senao imprime uma mensagem de erro, porque nao encontrou nada. ordenar, acho que e simples. encontras aqui no forum varios algoritmos de ordenaçao. acho que ja te dei toda a informaçao que precisas para fazer o teu trabalho
Guest id194 Posted May 14, 2006 at 03:54 AM Report #27318 Posted May 14, 2006 at 03:54 AM eu mt gosto de ver este pessoal atrapalhadinho para entregar trabalhos com um par de dias para o fazer e vêm aqui para os forums pedirem basicamente para lhes fazerem o trabalho... primeiro, ja devias ter pensado nisso ha mais tempo e ja devias tar a trabalhar nisso... e não vir para aqui ha ultima da hora pedir ajuda, ainda por cima, da maneira que o fazes, que da a entender que ainda não fizeste nada. segundo, não é dificil fazer o que tu pedes, mas se tas a iniciar em C e ainda nem se quer pegaste nisso, então esquece, porque duvido que tenhas tudo pronto ate terça... a não ser que alguem o faça por ti. sinceramente, aqui no forum, não vejo ninguem a dar-se ao trabalho porque é o teu TPC e não nosso... ajudar sim, fazer trabalhos pelos outros não. terceiro, untouchables, vai mase fazer o TP3... toda a info que deste, o bunark ja a devia saber, se n sabe, é porque aquilo anda muito mal... até porque pelo que foi dito, cheira-me que ainda nem se quer escreveu a assinatura da função main, ms posso tar errado. se ainda fossem dúvidas especificas, agora sim, lamento desiludir-te, mas vais ter pouca sorte.
dark_splinter Posted May 14, 2006 at 05:29 AM Report #27325 Posted May 14, 2006 at 05:29 AM bunark mostra-nos alguma coisa feita.... sempre te podemos dar sujestões e emendar uns erros.... 😁
bunark Posted May 14, 2006 at 11:37 AM Author Report #27344 Posted May 14, 2006 at 11:37 AM bunark mostra-nos alguma coisa feita.... sempre te podemos dar sujestões e emendar uns erros.... 😁 Bem até agora fiz isto: #include<stdio.h> #include<string.h> typedef struct dados //estrutura com os dados do restaurante { char nome[50], endereco[50], comida[50]; int preco; }rest; void ler(rest *ptr) //funcao para ler os dados do restaurante { clrscr(); printf("Imsira o seu nome:\n"); scanf("%s",ptr->nome); printf("Imsira o seu endere‡o:\n"); scanf("%s",ptr->endereco); printf("Imsira um tipo de comida:\n"); scanf("%s",ptr->comida); printf("Imsira o pre‡o medio:\n"); scanf("%d",&ptr->preco); } int m() //Menu para escolher a opcao pretendida { int n1; printf("MENU DE PESQUISA\n"); printf("1-> Mostrar todos os restaurantes de um certo tipo de comida\n"); printf("2-> Mostrar qual o restaurante mais barato de um certo tipo de comida\n"); printf("3-> Ordenar por ordem crescente de pre‡o os restaurantes\n"); printf("4-> Sair\n"); scanf("%d",&n1); return n1; } int sm() //Sub Menu para seleccionar o tipo de comida { int n2 printf("SUB MENU\n"); printf("1-> Carne\n"); printf("2-> Peixe\n"); printf("3-> Sopa\n"); scanf("%d",&n2); return n2; } void main() //funcao principal { int i,menu,subm; for(i=0;i<6;i++) { printf("Dados correspondentes a %d restaurante",i+1); ler(&ler[i]); } menu=m() switch(menu) case 1: subm=sm() if(subm=rest.comida) printf("%s",rest.nome); } P.S.-> o que ke sao arrays?????
brink@ero Posted May 14, 2006 at 12:05 PM Report #27348 Posted May 14, 2006 at 12:05 PM Bem vindo ao fórum bunark P.S.-> o que ke sao arrays????? Isto são arrays ou em português vectores: char nome[50], endereco[50], comida[50]; PS: Usa a ferramenta GeSHi para postares o código, assim este fica mais legível para os leitores 🙂 Cumpr. brink@ero 🙂
untouchables Posted May 14, 2006 at 12:09 PM Report #27349 Posted May 14, 2006 at 12:09 PM que sao arrays? ...tens arrays no teu trabalho. "int f[7];", isto é um array. vendo a tua funçao principal... onde vais guardar mais que um restaurante? (é aqui que entra o array). tens ai um ciclo for, que nao te vai fazer absolutamente nada, porque nao estas a atribuir os valores a nada. tambem se isso for a funçao principal, o programa nao te deixa continuar a nao ser que tenhas inserido os 6 restaurantes. foi para isso que me referi ao caso de paragem. não precisas de fazer "menu=m()", apenas "m()".
bunark Posted May 15, 2006 at 09:12 PM Author Report #27631 Posted May 15, 2006 at 09:12 PM pessoal eu agora só tenho uma duvida e é para amanha eu só nao sei como ordenar por ordem crescente de preço os restaurantes. podem-me ajudar
untouchables Posted May 15, 2006 at 09:28 PM Report #27635 Posted May 15, 2006 at 09:28 PM se fizeres isso ao inserir, e mais facil. vais comparando o preço do que queres inserir com o que tens num certo indice do array, isto se estiveres a trabalhar com arrays. se ele for mais barato,vais ter de descer todos do fim ate ao elemento que é mais caro que o que queres inserir. para isso, tens de saber o numero de posiçoes que tem informaçao, e descer desde o ultimo ate aquele. depois inseres o novo no sitio do que era mais caro que esse. se o que esta no indice for mais barato,continuas para cima, ate acabar o indice. se acabar o indice e continuar a ser mais caro, inseres na ultima posiçao disponivel
bunark Posted May 19, 2006 at 08:16 PM Author Report #28368 Posted May 19, 2006 at 08:16 PM pessoal podiam-me ajudar pf só nao sei fazer a ultima kestao ke é ordenar por ordem crescente de preço os restaurantes.
brink@ero Posted May 20, 2006 at 07:52 AM Report #28420 Posted May 20, 2006 at 07:52 AM pessoal podiam-me ajudar pf só nao sei fazer a ultima kestao ke é ordenar por ordem crescente de preço os restaurantes. Lé esta thread: http://www.portugal-a-programar.pt/index.php?showtopic=1743 E vé isto: http://math.hws.edu/TMCM/java/xSortLab/ Espero ter ajudado, cumpr. brink@ero :smoke:
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now