Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    11

    struct

    ciao a tutti,sto facendo questo progetto:

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    struct locali {
           int codice;
           char nome[20];
           float prezzo;
           int posizione;
           };
    typedef struct locali Locali;
    void main()
    {
         Locali negozio[8]={{1111,"Pizzeria",15.50,1},
                              {1112,"Ristorante",19.90,2},
                              {1113,"Caffetteria",15.00,3},
                              {1114,"Ristorante cinese",29.90,4},
                              {1115,"Ristorante messicano",28.00,5},
                              {1116,"Caffetteria",17.50,6},
                              {1117,"Pub americano",13.90,7}};
    i primi numero sono i codici,il penultimo è il prezzo e l ultimo è la posizione.

    ora devo fare in modo che data una tipologia visualizzare tutti i negozi di quel tipo e la loro posizione.cioè se un utente inserisce ad esempio 'ristorante' il programma deve stampare solo i ristoranti...in che modo lo posso fare?

  2. #2
    usa un confronto tra stringhe per ogni cella del vettore, stampando solo quelle che hanno corrispondenza

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Prendi anche visione del Regolamento interno.

    Il linguaggio va obbligatoriamente indicato nel titolo.
    Il titolo deve dare un'informazione precisa del contenuto della discussione.
    Il codice va postato indentato usando gli appositi tag CODE.

    Correggo la discussione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Originariamente inviato da Celebron
    usa un confronto tra stringhe per ogni cella del vettore, stampando solo quelle che hanno corrispondenza
    Troppo lento.

    La struttura dati che a me pare più adatta se desideri mantenere la struttura locali inalterata e una tabella di hash a concatenazioni separate con funzione di hash universale per stringa a coefficienti pseudocasuali, in questo modo dovresti poter garantire un accesso ai dati con costo O(1).
    Fracty - The Fractal Generator



    If you cannot choose a concise name that expresses what the method does, it is possible that your method is attempting to perform too many diverse tasks.

  5. #5
    Originariamente inviato da GliderKite
    Troppo lento.

    La struttura dati che a me pare più adatta se desideri mantenere la struttura locali inalterata e una tabella di hash a concatenazioni separate con funzione di hash universale per stringa a coefficienti pseudocasuali, in questo modo dovresti poter garantire un accesso ai dati con costo O(1).

    E il costo di una tabella hash in memoria ?

    No vabbè tralasciando questi metodi, perchè non mi sembra che sia una struttura di tre miliardi di record da controllare su un 486 lol, dovrebbe andare bene anche un semplice strcmp, prima però usando tolower() per portare tutto in minuscolo.

  6. #6
    Originariamente inviato da lolide
    E il costo di una tabella hash in memoria ?

    No vabbè tralasciando questi metodi, perchè non mi sembra che sia una struttura di tre miliardi di record da controllare su un 486 lol, dovrebbe andare bene anche un semplice strcmp, prima però usando tolower() per portare tutto in minuscolo.
    Certo che dovrebbe andare bene, dipende sempre da cosa di deve fare. Io suggerivo semplicemente la soluzione migliore
    Fracty - The Fractal Generator



    If you cannot choose a concise name that expresses what the method does, it is possible that your method is attempting to perform too many diverse tasks.

  7. #7
    Originariamente inviato da GliderKite
    Troppo lento.

    La struttura dati che a me pare più adatta se desideri mantenere la struttura locali inalterata e una tabella di hash a concatenazioni separate con funzione di hash universale per stringa a coefficienti pseudocasuali, in questo modo dovresti poter garantire un accesso ai dati con costo O(1).
    certo che è lento però proponevo una struttura in relazione alla complessità di codice che ha postato (non mi sembra, ad occhio, che stia svolgendo un progetto che punta all'ottimizzazione)
    XD visto ciò che ha scritto non credo proprio che sappia fare quello che tu gli suggerisci

    a dirla tutta gli basterebbe sistemare in un altro modo la base dati per migliorare già enormemente le cose, ma anche per questo, non mi è sembrato il caso
    Credo stia semplicemente svolgendo un progetto universitario di base

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    11
    si infatti sto vacendo un progetto per l università! penso che usero la strcmp...ma potendo si potrebbe usare anche una ricerca sequenziale o binaria?

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    11
    scusate la lunga assenza...comunque sono riuscito a fare tutto il programma.ora vi chiedo una cosa,ho iniziato il programma cosi:

    codice:
    printf("Premere A per inserire un nuovo negozio in un locale  \n");   printf("premere B per cercare un negozio in base alla tipologia \n");   printf("Premere C per cercare un negozio in base al prezzo di un pasto completo \n");   printf("Premere D per uscire\n");
    Quando uno preme A,il programma va nella fuction inserire negozio.ora vorrei che quando finisce l'operazione inserire negozio il programma ritorni alla schermata iniziale ovvero quella che ho postato..mi hanno detto di mettere system("cls") ma m pulisce solo lo schermo non mi visualizza niente...ora o sbaglio la posizione di system("cls")....help!

  10. #10
    Originariamente inviato da the_game
    scusate la lunga assenza...comunque sono riuscito a fare tutto il programma.ora vi chiedo una cosa,ho iniziato il programma cosi:

    codice:
    printf("Premere A per inserire un nuovo negozio in un locale  \n");   printf("premere B per cercare un negozio in base alla tipologia \n");   printf("Premere C per cercare un negozio in base al prezzo di un pasto completo \n");   printf("Premere D per uscire\n");
    Quando uno preme A,il programma va nella fuction inserire negozio.ora vorrei che quando finisce l'operazione inserire negozio il programma ritorni alla schermata iniziale ovvero quella che ho postato..mi hanno detto di mettere system("cls") ma m pulisce solo lo schermo non mi visualizza niente...ora o sbaglio la posizione di system("cls")....help!
    Bè non ne sono sicuro, ma la system ("cls"), 'pulisce' la schermata in toto... dopo dovresti ristampare a video le istruzioni ecc ecc..
    Potresti studiare un ciclo, al termine del quale fai sempre una system ("cls"), seguita dalla stampa delle opzioni e dalla lettura delle scelta dell'utente... Il ciclo ovviamente andrà avanti ad eseguire le azioni richieste dall'utente fino a quando questo inserirà 'D'!
    Salute a voi, da Laikius!

    --> Faber est suae quisque fortunae <--

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.