Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-02-2011, 18:39   #1
Vincenzoflaminio
Member
 
Iscritto dal: Jul 2006
Messaggi: 96
[C]sistema per determinare codice segreto

Salve devo scrivere un programma che simuli un sistema per determinare un codice segreto. Il programmatore de nisce un codice di 5 lettere dell'alfabeto e in maniera casuale simula dei codici fi no a che non trova quello esatto. Visualizzare il numero di prove e ffettuate.

Codice:
int confronto_stringhe (char s[],char t[])
{
    int i;
    for (i=0; i<5 ; i++){
    if (s[i] != t[i])
    return 0;
    else
    return 1;
    }

}
int main()
{
  char codice[6];
  char pass[5];
  char alfabeto[]={'a','b','c','d','e','f','g','h','i','l','m','n','o','p','q','r','s','t','u','v','z'};
  int lungalfabeto=21;
  int i,nc;
   printf("inserisci il codice a tastiera di 5 caratteri e termina la stringa \n");
  gets(codice);

  for (i=0;i<5;i++)
    {
           nc= rand()%lungalfabeto;
           pass[i]=alfabeto[nc];
           }
  confronto_stringhe(codice,pass);
          
           
  system("PAUSE");	
  return 0;
}
Qui sopra ho scritto la parte che determina un codice casuale di 5 lettere prese dall'alfabeto , e la function per il confronto stringhe .
Non mi è chiaro però come far riprovare a determinare 5 lettere casuali quando non sono ugali.
Vincenzoflaminio è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2011, 22:40   #2
malocchio
Senior Member
 
L'Avatar di malocchio
 
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
Io invece non ho capito cosa non ti è chiaro
__________________
malocchio è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2011, 01:14   #3
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Una cosa posso dirtela al volo... Non funzionerà mai.. C'è un erroraccio nella funzione di confronto delle stringhe! Inoltre nella funzione main il valore di ritorno della funzione di confronto non lo utilizzi!
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2011, 20:42   #4
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
se sai a priori che il codice è di 5 lettere

puoi fare banalmente cosi:

Codice PHP:
int i,j,k,l,m;
char *s1
chat *s2
int counter 0;

// ... fai quello che devi fare prima ...

// cerca il codice
for(i='a';i<'z';i++)
{
    for(
j='a';j<'z';j++)
    {
        for(
k='a';k<'z';k++)
        {
            for(
l='a';l<'z';l++)
            {
                for(
m='a';m<'z';m++)
                {
                    
sprintf(s1,"%c%c%c%c%c",i,j,k,l,m);
                    if( ! 
strcmp(s1,s2) )
                    {
                        
printf("Trovato !!!");
                        
printf("Tentativi : %d\n",counter);
                        exit();
                    }
                    
counter++;
                }
            }
        }
    }

__________________
I robot hanno scintillanti fondoschiena metallici che non dovrebbero essere baciati.
bobbytre è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2011, 23:17   #5
Vincenzoflaminio
Member
 
Iscritto dal: Jul 2006
Messaggi: 96
Codice:
#include <stdio.h>
#include <stdlib.h>

int main()
{
  srand(time(NULL));
  char codice[6];
  char pass[5];
  char alfabeto[]={'a','b','c','d','e','f','g','h','i','l','m','n','o','p','q','r','s','t','u','v','z'};
  int lungalfabeto=21;
  int i,nc,j,k,l,m,contatore;
   printf("inserisci il codice a tastiera di 5 caratteri e termina la stringa \n");
  gets(codice);

  for (i=0;i<5;i++)
    {
           nc= rand()%lungalfabeto;
           pass[i]=alfabeto[nc];
           }
           printf("pass = %c %c %c" ,pass[0],pass[1],pass[2]); 
  
  for(i='a';i<'z';i++)
{
    for(j='a';j<'z';j++)
    {
        for(k='a';k<'z';k++)
        {
            for(l='a';l<'z';l++)
            {
                for(m='a';m<'z';m++)
                {
                    printf(pass,"%c%c%c%c%c",i,j,k,l,m);
                    if( ! strcmp(codice,pass) )
                    {
                        printf("Trovato !!!");
                        printf("Tentativi : %d\n",contatore);
                        exit();
                    }
                    contatore++;
                }
            }
        }
    }
} 
           
           
  system("PAUSE");	
  return 0;
}
Clockover anche se ho risolto il problema utilizzando la funzione strcmp() posso chiederti di spiegarmi l'errorraccio nella mia sono uno studente e te ne sarai grato
Grazie anche bobbytre per la cortese risposta ... solo un errore :
"too few arguments to function `exit' " non ho mai studiato questa funzione ma mi sembra di capire che mi permette di uscire dai for .. quale argomento devo mettere tra le parentesi?
Vincenzoflaminio è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2011, 23:35   #6
malocchio
Senior Member
 
L'Avatar di malocchio
 
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
Quote:
Originariamente inviato da Vincenzoflaminio Guarda i messaggi
Clockover anche se ho risolto il problema utilizzando la funzione strcmp() posso chiederti di spiegarmi l'errorraccio nella mia sono uno studente e te ne sarai grato
Codice:
int confronto_stringhe (char s[],char t[])
{
    int i;
    for (i=0; i<5 ; i++){
        if (s[i] != t[i])
            return 0;
        else
            return 1;
    }
}
In questa funzione viene controllato solo il primo carattere della stringa: infatti già al primo ciclo vengono eseguite le istruzioni return 0 oppure return 1, ignorando gli altri caratteri. La versione corretta sarebbe questa (ipotizzando che la funzione restituisca 0 se le stringhe sono diverse o 1 se sono uguali:
Codice:
int confronto_stringhe (char s[],char t[])
{
    int i;
    for (i=0; i<5 ; i++){
        if (s[i] != t[i])
            return 0;
    }
    return 1;
}
Quote:
Originariamente inviato da Vincenzoflaminio Guarda i messaggi
Grazie anche bobbytre per la cortese risposta ... solo un errore :
"too few arguments to function `exit' " non ho mai studiato questa funzione ma mi sembra di capire che mi permette di uscire dai for .. quale argomento devo mettere tra le parentesi?
exit() prende come unico argomento un intero che rappresenta il valore restituito dal processo terminato. Le convenzioni prevedono che sia 0 se l'esecuzione ha avuto esito positivo o diverso da 0 altrimenti. Nel tuo caso robabilmente vorrai richiamare exit(0) visto che il programma è riuscito a trovare la parola segreta.
__________________
malocchio è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Primo test con Dacia Spring 2026: motore...
Italia sempre più digitale, anche...
Tutte le offerte Amazon di oggi: 13 novi...
CD Projekt RED punta sull'Intelligenza A...
Offerte Oral-B iO su Amazon: spazzolini ...
Consegne sempre più rapide: Amazo...
Epic introduce l'anticheat di livello ke...
Google Gemini sfruttato da hacker di Sta...
Braun taglia i prezzi su Amazon: dai ras...
Helldivers al cinema: Jason Momoa nel ca...
Gli occhiali AI fanno volare EssilorLuxo...
Elon Musk riorganizza xAI dopo l'addio d...
Upgrade del PC al prezzo giusto: su Amaz...
Anthropic, si dimette il leader della si...
Applied Materials patteggia con gli USA:...
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: 13:29.


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