I miei programmi in C

anche_per_il_direttore

Nuovo Utente
63
2
salve
il programma che mi appresto a postare riguarda un generatore di numeri interi pseudo-casuali.
il programma risulta funzionante sul mio laptop.
la prima cosa che vorrei fare in seguito e' creare un generatore di numeri interi memorizzati in un vettore, come nel programma postato che mi dia sequenze di numeri che non si ripetono. (non ci ho ancora pensato a fondo).
la seconda cosa e un programma come sopra ma che generi numeri reali.
come sempre aiuti e suggerimenti sono benvenuti (anche inerenti eventuali errori e/o omissioni e/o ottimizzazione del codice.
grazie a tutti. (segue il listato)
 
Ultima modifica:

Skills07

Head of Development
Staff Forum
Utente Èlite
35,417
11,496
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
usa il comando code per postare il codice, cosi mantiene l'indentazione perchè diventa difficile leggere sto codice cosi
 

anche_per_il_direttore

Nuovo Utente
63
2
non so usare il comando code ma posso allegare il file
il codice cosi effettivamente e difficile da leggere.
sto usando l editor KWrite
qui sono le 10.30 pm, vado a dormire e ci penso domani.
ciao
 
Ultima modifica:

Skills07

Head of Development
Staff Forum
Utente Èlite
35,417
11,496
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
qui nell'editor di testo c'è un tasto con un +
premi ti esce un menu a opzioni ed esce codice premi e poi inserisci il codice :)
Codice:
ciao io sono un codice
 

anche_per_il_direttore

Nuovo Utente
63
2
Codice:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<malloc.h>


int main()  {
   
    int *v;
    int d;
   
    v = malloc (d* sizeof(int));                     /*d in questo caso indica il numero di lanci del dado
                                                    in altre parole in numero dei valori casuali che mi aspetto nel range
                                                    definito da ampiezza ed offset*/
    int i, ampiezza, offset;
   
    srand(time(NULL));                              /*inizializzazione seme col clock*/
                                                    /*la generazione di numeri interi  pseudo-casuali puo avere uno stesso elemento anche piu volte
                                                    all interno del vettore,naturalmente quando il range e inferiore al numero dei valori casuali
                                                    che mi aspetto avro sicuramente numeri che si ripetono*/
                       
                       
    printf("inserisci la massima dimensione del vettore:");
    scanf("%d",&d);

    printf("inserisci l'ampiezza:");                    /*l ampiezza ci indica il range dentro il quale i numeri vengono generati
                                                        esempio se ampiezza=20 il range sara da 0 a 19*/
    scanf("%d", &ampiezza);
   
    printf("inserisci l'offset:");                      /*l offset indica di quanto spostare il range, esempio offset=10 significa che i numeri
                                                        interi verranno generati nell intervallo 0+50 e 19+50*/
    scanf("%d",&offset);
   
    printf("elementi del vettore v:\n");
   


    for (i=0;i<d;i++) {
   
            v[i]=(rand() % ampiezza) + offset;                  /*memorizzo i numeri interi generati in un vettore*/
   
            printf("%d\n",v[i]);
        }
   
   
    return 0;
   
    free (v);                                           /*libero lo spazio allocato nella memoria*/
   
    }
 

Skills07

Head of Development
Staff Forum
Utente Èlite
35,417
11,496
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
perfetto leggo e vedo se riesco a capire cosa fare
 

anche_per_il_direttore

Nuovo Utente
63
2
giocherellando col programma postato in precedenza, se inserisco un numero di estrazioni d "abbastanza piccolo" se confrontato con il numero di palline nell urna (nel programma e definito dall ampiezza ed eventualmente l offset) ottengo estrazioni diverse, l opposto se inverto la situazione.
 

anche_per_il_direttore

Nuovo Utente
63
2
Codice:
#include<stdio.h>
#include<stdlib.h>

#define NMAX 40
                       /*nel programma vengono estratte tutte le palline*/

  int  main()
{
    int i,j,d,estratto;
    int v[NMAX];
   
        /*inizializzo il vettore per la ricerca casuale*/
   
    for (i=0; i<NMAX; i++)
    {
    v[i]=i;                        /*la posizione della pallina nell urna coincide col numero che riporta, ossia
                        la pallina numero uno ha stampato sopra il numero uno e cosi via*/
   
                        /*cerco elemento casuale tra i valori NMAX di v*/
    d=NMAX;
     }
    
    printf("num pall num extr\n");
    
    for (i=0; i<NMAX; i++)
    {
    j= rand()%d;             /*scelgo elemento casuale del vettore, ossia il numero della pallina*/
    estratto = v[j];             /*ne estraggo il valore, questo e il risultato dell estrazione*/
   
    printf ("%d\t %d\n",i,estratto);
    v[j] = v[d-1];             /*sposto ultimo elemento al posto di quello estratto*/
    d--;                 /*non rimetto la pallina nel contenitore*/
   
    }

   
}
 

anche_per_il_direttore

Nuovo Utente
63
2
stavo pensando adesso di scrivere un codice in cui ad ogni estrazione rimetto la pallina nel contenitore, sempre rispettando il vincolo di ottenere diverse estrazioni,

idee sempre benvenute.
 

anche_per_il_direttore

Nuovo Utente
63
2
salve il programma di oggi riguarda la rappresentazione grafica di una retta di equazione y=2x+1, il programma crea un file di dati da passare a gnuplot e un secondo file che contiene i comandi di gnuplot, u "problema" che mi si e presentato e che la finestra del grafico scompare immediatamente subito dopo il lancio del programma, qualcuno sa come fare per mantenerla nel tempo?
ok il programma e' diviso in tre parti un file pr14.h che contiene la dichiarazione della funzione; un file pr14.c che contiene invece la definizione della funzione e un file pr15_main.c che contiene la main, oltre naturalmente ai due file generati dal codice stesso; gnuplot run in bach mode.
segue il codice, sempre benvenuti aiuti e commenti.
ciao
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili