Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-10-2010, 13:15   #1
Sebilio89
Junior Member
 
Iscritto dal: Oct 2010
Messaggi: 10
[C++] Problema con funzioni ricerca(dicotomica) e modifica in database

Salve ragazzi, mi sn appena iscritto a questo sito, e sn un programmatore alle primissime armi, quindi mi scuso fin d'ora x tutti gli errori ke potrò commettere, e sn naturalmente disponibile ad accettare suggerimenti e critiche purché siano costruttive. Sto trovando alcuni problemi nella gestione di un database e x qst chiedo il vostro aiuto:
- il primo è la ricerca ke nn va(il prof vuole x forza la ricerca dicotomica, e la devo effettuare su almeno 2 campi )
Codice:
struct volontario
{
   char nome[30];
   char cognome[30];
   char indirizzo[40];
   int eta;
   char numero_cellulare[20];
};

class listavolontari
{
public:
   listavolontari(void);
   int addvolontario (volontario v);
   int rimuovivolontario (volontario* v);
   int modificavolontario (volontario* v);
   void scegli_visualizza(void);
   void scegli_cerca(void);
   void ordina_cognome(void);
   void ordina_eta(void);
   void visualizzalista (void);
   void ricerca_dicotomica_cognome(void); 
   void ricerca_dicotomica_eta(void);
   void modifica();
   char NomeComponente[30];
   private:
   int numerodeivolontari;
   volontario lista[Num_massimo_volontari];
};

void listavolontari:: scegli_visualizza(void)
{
     while (scelta != 3)
	 {
          system ("CLS");
          cout << " Se desideri visualizzare l'elenco ordinato per cognome premi 1: \n "; 
          cout << " Se desideri visualizzare l'elenco ordinato per età premi 2: \n";
          cout << " Se desideri tornare al menu di componente premi 3: \n";
          scelta = ReadNumber();
   	      switch (scelta)
	            {
   		           case 1:   
                   ordina_componente_cognome();
                   visualizzalista ();
                   system ("PAUSE");
                   break;
              
                   case 2:   
                   ordina_componente_eta();
                   visualizzalista ();
                   system ("PAUSE");
                   break;
              }
    }
}

void listavolontari :: ordina_cognome(void)
{
   int i,j;
   if(numerodeivolontari ==0){"Non ci sono volontari da ordinare \n";}
   else
   {
       for(i=0; i< numerodeivolontari-1; i++)
       {
          for(j=i+1; j< numerodeivolontari; j++)
          {
             if (strcmp(lista[i].cognome,lista[j].cognome)>= 1)
             {
                 strcpy(buffer,lista[j].nome);
                 strcpy(lista[j].nome,lista[i].nome);
                 strcpy(lista[i].nome,buffer);
                 strcpy(buffer,lista[j].cognome);
                 strcpy(lista[j].cognome,lista[i].cognome);
                 strcpy(lista[i].cognome,buffer);
                 strcpy(buffer,lista[j].indirizzo);
                 strcpy(lista[j].indirizzo,lista[i].indirizzo);
                 strcpy(lista[i].indirizzo,buffer);
                 buffer_eta = lista[j].eta;
                 lista[j].eta = lista[i].eta;
                 lista[i].eta = buffer_eta;
                 strcpy(buffer,lista[j].numero_cellulare);
                 strcpy(lista[j].numero_cellulare,lista[i].numero_cellulare);
                 strcpy(lista[i].numero_cellulare,buffer);
            }
         }
      }
   cout << " Ordinamento per cognome completato con successo \n";
   }
}

void listavolontari :: ordina_eta(void)
{
   int i,j;
   if(numerodeivolontari ==0){"Non ci sono volontari da ordinare \n";}
   else
   {
        for(i=0; i< numerodeivolontari-1; i++)
        {
           for(j=i+1; j< numerodeivolontari; j++)
           {
              if (lista[i].eta>lista[j].eta)
                {
                      strcpy(buffer,lista[j].nome);
                      strcpy(lista[j].nome,lista[i].nome);
                      strcpy(lista[i].nome,buffer);
                      strcpy(buffer,lista[j].cognome);
                      strcpy(lista[j].cognome,lista[i].cognome);
                      strcpy(lista[i].cognome,buffer);
                      strcpy(buffer,lista[j].indirizzo);
                      strcpy(lista[j].indirizzo,lista[i].indirizzo);
                      strcpy(lista[i].indirizzo,buffer);
                      buffer_eta = lista[j].eta;
                      lista[j].eta = lista[i].eta;
                      lista[i].eta = buffer_eta;
                      strcpy(buffer,lista[j].numero_cellulare);
                      strcpy(lista[j].numero_cellulare,lista[i].numero_cellulare);
                      strcpy(lista[i].numero_cellulare,buffer);
                 }
          }
    }
      cout << " Ordinamento per età completato con successo \n";
    }
}

void listavolontari:: scegli_cerca(void)
{
     while (scelta != 3)
	 {
          system ("CLS");
          cout << " Se si desidera cercare un volontario inserendo il suo cognome premi 1: \n "; 
          cout << " Se si desidera cercare un volontario inserendendo la sua età premi 2: \n "; 
          cout << " Se desideri tornare al menu di componente premi 3: \n";
          scelta = ReadNumber();
 	      switch (scelta)
	            {
   		            case 1: 
                    ordina_componente_cognome();
                    ricerca_dicotomica_cognome(); 
                    system ("PAUSE");
                    break;
              
                    case 2:   
                    ordina_componente_eta();
                    ricerca_dicotomica_eta();
                    system ("PAUSE");
                    break;
              }
   }
}      


void listavolontari :: ricerca_dicotmica_cognome(void) 
{	
   int basso=0, alto=numerodeivolontari-1, medio; 
   char cognome_trovare[30];
   system ("CLS");
   cout << " Scirivi il Cognome del volontario che stai cercando: \n";
   cin.getline(cognome_trovare, sizeof(cognome_trovare));
   
   while (basso <= alto) 
   {
           medio = (basso + alto)/2; 
           if(strcmp(lista[medio].cognome, cognome_trovare) == 0)
           { 
               cout << lista[medio].nome << "\n";
               cout << lista[medio].cognome << "\n"; 
               cout << lista[medio].indirizzo << "\n";
               cout << lista[medio].eta << "\n";
               cout << lista[medio].numero_cellulare << "\n"; 
           }  
           if (strcmp(lista[medio].cognome, cognome_trovare) < 0) basso = medio +1; 
              else 
              {
                  alto = medio -1; 
                  break;
             } 
   }
   cout << "Attualmente non c'è nessun volontario nella componente dei:" << NomeComponente << "\n";
   cout << "con il cognome " << cognome_trovare << "\n";
}


void listavolontari :: ricerca_dicotmica_eta(void) 
{
     int basso=0, alto=numerodeivolontari-1, medio=0; 
     system ("CLS");
     cout << " Scirivi l'eta del volontario che stai cercando: \n";
     buffer_eta= ReadNumber();
     while (basso <= alto) 
     {
          medio = (basso + alto)/2; 
          if(lista[medio].eta == buffer_eta)
          { 
             cout << lista[medio].nome << "\n";
             cout << lista[medio].cognome << "\n"; 
             cout << lista[medio].indirizzo << "\n";
             cout << lista[medio].eta << "\n";
             cout << lista[medio].numero_cellulare << "\n"; 
          } 
          if (buffer_eta > lista[medio].eta) basso = medio+1; 
             else 
             {
                 alto = medio -1; 
                 break;
            }
    cout << "Attualmente non c'è nessun volontario nella componente dei:" << NomeComponente << "\n";
    cout << "che abbia " << buffer_eta << " anni \n";
    }
}
Sebilio89 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
JBL a prezzi super: due modelli top tra ...
Sony e Bad Robot uniscono le forze: in a...
Il MIT rivela: l'IA può sostituir...
iPhone Air va in sconto: il nuovo iPhone...
Polaroid Now Gen 3 torna di moda: la fot...
Fallout 76: l'aggiornamento più g...
Prezzo folle per il top OLED da gaming: ...
Un nuovo processo antitrust per Apple in...
Amazon abbassa il prezzo delle AirPods 4...
Due super offerte Amazon: PC Desktop con...
Apple AirTag: il pacchetto da 4 ora a so...
La Cina senza NVIDIA: Moore Threads e Ca...
Un bel portatile potente in offerta: Ace...
Si mimetizza tra due altoparlanti, ma &e...
Clair Obscur Expedition 33: il lancio su...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:39.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v