Pagina 2 di 2 PrimoPrimo 12
Visualizzazione risultati 31 fino 46 di 46

Discussione: Problemi in C/C++ & Matlab

  1. #31
    Guest

    Predefinito

    UN PO DI LINK IMPORTANTISSIMI LEGATI ALL'APPRENDIMENTO DEL C/C++
    http://web.tiscalinet.it/nunzio_brug
    http://digilander.libero.it/uzappi/C...oni/index.html

    /*Esercitazione n. 12
    Letto un intero n scrivere n volte il proprio nome, cambiando riga
    e allineando ogni volta.Ripetere sfalsando di una lettera*/

    #include <stdio.h>

    main() {

    int i,volte;
    //int j;

    printf("Inserire quante volte deve essere scritto: \n");
    scanf("%d", &volte);

    for (i=0; i<volte; i++)
    {
    /*for (j=0; j<i;j++) //la parte commentata è la sfalsatura.
    printf(" ");*/
    printf("Andrea");
    printf("\n");
    }

    fflush(stdin);
    getchar();

    }

    }

    AGENTI DI RICERCA GRATUITI AL 100% E NON SOLO
    http://www.copernic.com/en/products/agent/download.html
    http://www.velociraptus.com/haiti/in.../internet.html
    http://www.ferretsoft.com/netferret/download.ht

    TUTTO IL GRATIS CHE TROVATE IN RETE
    http://www.tuttogratis.it

    MANUALI GRATUITI AL 100%
    http://www.manuali.it
    http://www.manuali.net

    Un Salutone Maximvs


  2. #32
    Guest

    Predefinito

    UN PO DI LINK IMPORTANTISSIMI LEGATI ALL'APPRENDIMENTO DEL C/C++
    http://web.tiscalinet.it/nunzio_brug
    http://digilander.libero.it/uzappi/C...oni/index.html

    /*Esercitazione n. 3
    1) Utilizzando un ciclo while visualizzare gli interi da 1 a 20 in modo che
    compaiano 5 interi in ogni riga. Valutare inoltre la loro somma*/

    #include <stdio.h>

    main()
    {

    int i, somma; //Dichiarazione delle variabili

    i=1; //Inizializzazione
    somma = 0;

    while (i<=20)
    {
    printf("%3d",i);

    if (! (i%5) ) printf("\n");
    //Condizionde di ritorno a capo
    //il numero è divisibile per 5

    somma = somma +i; //Aggiornamento somma
    i++; //Aggiornamento contatore
    }

    printf("\n\nLa somma vale: %d", somma); //Stampa

    fflush(stdin);
    getchar();
    }


    Un Salutone Maximvs


  3. #33
    Guest

    Predefinito

    /* Programma che codifica e decodifica il contenuto di un file testo sostituendo ogni carattere con il suo complemento a uno */

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <conio.h>
    #include <dos.h>

    #define lung_riga 20

    char *riga[lung_riga]; /* il testo digitato conterrà al massimo 20 righe */

    FILE *fpo; /* definizione dell'area di buffer per il file fpo */
    FILE *fps; /* definizione dell'area di buffer per il file fps */

    /* funzioni prototipo */
    char menu(void);
    void digita(void);
    void apri(void);
    void codifica(void);
    void salva(void);
    void display(void);

    main()
    {
    char scelta;
    do
    {
    scelta=menu();

    switch (scelta)
    {
    case '1':
    digita();
    break;
    case '2':
    salva();
    break;
    case '3':
    apri();
    break;
    case '4':
    codifica();
    break;
    case '5':
    display();
    break;
    case '6':
    clrscr();
    textcolor(12);
    cprintf("\n\n\n\n\n\n\n\n\n\n\n\r ***** ARRIVEDERCI! ***** \n\n\n\n\n\n\n\n\n\n\n\n\n\r");
    sleep(1);
    break;
    }
    }
    while (scelta>='1'&& scelta<'6'); //controllo sull'opzione selezionata

    }

    char menu(void)
    {
    char scelta;

    do
    {
    clrscr();
    textcolor(12);
    cprintf("\n\n\r CODIFICA O DECODIFICA COL COMPLEMENTO A UNO \n\n\n\r");
    textcolor(11);
    cprintf(" 1. Battere dalla tastiera il contenuto di un file testo.\n\n\r");
    cprintf(" 2. Conservare nel suo stato attuale il file testo corrente (codificato o \n\r");
    cprintf(" decodificato).\n\n\r");
    cprintf(" 3. Recuperare un file testo salvato, codificato o decodificato.\n\n\r");
    cprintf(" 4. Codificare o decodificare il file testo corrente.\n\n\r");
    cprintf(" 5. Display del testo corrente nel suo stato attuale(codificato o decodificato).\n\r");
    cprintf(" 6. Esci\n\n\r");
    textcolor(14);
    cprintf("\n\r Scegli: ");
    fflush(stdin);
    scanf("%c", &scelta);
    }
    while (scelta<'1'|| scelta>'6');
    return(scelta);
    }

    void digita(void)
    {
    char *text; /* dichiarazione di un puntatore di carattere*/
    int i=0;

    clrscr();
    textcolor(12);
    cprintf("\n\n\r NUOVO TESTO (digitare al massimo 20 righe) \n\n\r");
    textcolor(10);

    while(1) /* l'espressione di while è un qualunque numero diverso da zero in modo che
    essa risulti vera; se ci fosse zero non eseguirebbe l'istruzione */
    {
    cprintf("\r riga %2d ",i+1);
    text=(char *)malloc(80*sizeof(char)); /* ciascuna riga contiene al massimo 80 caratteri */
    strcpy(text, ""); /* inizializza la riga con uno spazio */
    fflush(stdin);
    scanf("%[^\n]",text);
    riga[i]=(char *)malloc((strlen(text)+2)*sizeof(char)); /* assegna lo spazio per la riga */
    /* la funzione strlen conta il
    numero di caratteri di una stringa
    tranne il carattere nullo finale*/
    strcpy(riga[i],""); /* inizializza la riga */
    if(strcmp(text, "")) /* se text non è vuoto, cioè se
    l'utente ha premuto solo invio */
    riga[i++] = strcat(text,"\n\0"); /* accoda un newline alla stringa e
    fa avanzare l'indice di riga */
    else
    {
    free(text); /* libera la memoria */
    return;
    }
    }
    }

    void salva(void)
    {
    int i=0;
    char filename[13];

    while(!riga[0]) /* compare un messaggio se si tenta di savare il testo,ma
    non è stato ancora digitato nulla */
    {
    clrscr();
    textcolor(12);
    cprintf("\n\n\n\n\n\n\n\n\n\r TESTO VUOTO: impossibile salvarlo!");
    fflush(stdin);
    sleep(2);
    return;
    }
    clrscr();
    textcolor(12);
    cprintf("\n\n\r SALVATAGGIO DEL FILE \n\r");
    textcolor(11);
    cprintf("\n\r Nome del file: ");
    fflush(stdin);
    gets(filename);
    fps=fopen(filename,"w"); /* apre il file in modalità scrittura */

    while (*(riga[i])!='\0') //copia le stringhe nel file finchè queste non arrivano all'ultima stringa che contiene solo
    //il carattere nullo(strcat)
    {
    fprintf(fps,"%s",riga[i]); /* scrive l'i-esima riga nel file fps */
    ++i;
    }
    fclose(fps);
    clrscr();
    textcolor(12);
    cprintf("\n\n\n\r SALVATAGGIO DEL FILE \n\n\r");
    textcolor(13);
    cprintf("\n\r ...il file di nome '");
    textcolor(10);
    cprintf("%s", filename);
    textcolor(13);
    cprintf("' \212 stato salvato... ");
    sleep(2);
    return;
    }

    void apri(void)
    {
    int i=0;
    char filename[13];
    char *text;

    clrscr();
    textcolor(12);
    cprintf("\n\n\r APERTURA FILE \n\r");
    textcolor(11);
    cprintf("\n\r Nome del file: ");
    fflush(stdin);
    scanf("%[^\n]",filename);
    fpo=fopen(filename,"r"); /* apre il file in modalità lettura */
    if(!fpo) /* fa un controllo nel caso che il file non esista */
    {
    cprintf("\n\r ...file inesistente\n\r ");
    sleep(2);
    }
    else
    {
    while(1)
    {
    text=(char *)malloc(80*sizeof(char));
    strcpy(text, ""); /* inizializza la riga */
    fscanf(fpo," %[^\n]",text); /* ci deve essere lo spazio fra le " e [ altrimenti
    la funzione legge il newline della stringa precedente */
    riga[i]=(char *)malloc((strlen(text)+2)*sizeof(char));
    strcpy(riga[i],"");

    if(strcmp(text, "")) /* se text non è vuoto */
    riga[i++] = strcat(text,"\n\0"); /* accoda un newline alla stringa
    e fa avanzare l'indice di riga;
    la funzione di libreria strcat attacca
    una stringa alla fine dell'altra;la lunghezza
    della stringa risultante è data dalla somma
    delle lunghezze delle 2 stringhe */
    else
    {
    free(text); //libera la memoria
    textcolor(13);
    cprintf("\n\r apertura del file '");
    textcolor(10);
    cprintf("%s", filename);
    textcolor(13);
    cprintf("'... ");
    sleep(2);
    return;
    }
    }//chiude il while
    fclose(fpo);
    textcolor(13);
    cprintf("\n\r apertura del file '");
    textcolor(10);
    cprintf("%s", filename);
    textcolor(13);
    cprintf("'... ");
    sleep(2);
    return;
    }//chiude l'else
    }

    void codifica(void)
    {
    int i=0,j;
    clrscr();
    if(!riga[0]) /* compare un messaggio se si tenta di codificare un testo
    che non è stato ancora digitato */
    {
    textcolor(12);
    cprintf("\n\n\n\n\n\n\n\n\n\r ...ATTENZIONE, nessuna stringa da codificare inserita!\n\r ");
    sleep(2);
    return;
    }
    else
    {
    do
    {
    for (j=0;*(riga[i]+j)!='\0';++j) /* i 2 contatori i e j fanno elaborare i vari
    elementi del testo, sono come degli indici
    di riga e colonna */
    {
    if( *(riga[i]+j)!=10 && *(riga[i]+j)!=0) /* vengono esclusi dalla codifica il
    carattere newline(\n), il cui valore
    ASCII è 10, e il carattere di fine stringa
    (\0) il cui valore ASCII è 0 */
    {
    *(riga[i]+j)=~(*(riga[i]+j));
    }
    }//chiude il for
    ++i; //fa scorrere l'array di puntatori
    }
    while (*(riga[i])!='\0');
    textcolor(12);
    cprintf("\n\n\r CODIFICA/DECODIFICA\n\r ");
    textcolor(13);
    cprintf("\n\n\n\r ...codifica/decodifica eseguita\n\r ");
    sleep(2);
    return;
    }//chiude l'else
    }

    void display(void)
    {
    int i=0;

    while(!riga[0])
    {
    clrscr();
    textcolor(12);
    cprintf("\n\n\n\n\n\n\n\n\n\r TESTO VUOTO: impossibile visualizzarlo!\n\r");
    fflush(stdin);
    sleep(2);
    return;
    };

    clrscr();
    textcolor(12);
    cprintf("\n\r VISUALIZZA IL TESTO \n\n\r");
    textcolor(11);
    while(strcmp(riga[i],"")) /* finché non si trova la terminazione della stringa */
    {
    cprintf(" riga %2d %s\r" ,i, riga[i++]);
    }
    textcolor(13);
    cprintf("\n\r ...premi un tasto per tornare al men\243 principale ");
    fflush(stdin);
    getch();
    return;
    }


    AGENTI DI RICERCA GRATUITI AL 100% E NON SOLO
    http://www.copernic.com/en/products/agent/download.html
    http://www.velociraptus.com/haiti/in.../internet.html
    http://www.ferretsoft.com/netferret/download.ht

    TUTTO IL GRATIS CHE TROVATE IN RETE
    http://www.tuttogratis.it

    MANUALI GRATUITI AL 100%
    http://www.manuali.it
    http://www.manuali.net

    Un Salutone Maximvs


  4. #34
    Guest

    Predefinito

    Massimo posso dirti che sei un genio? bell'idea.

  5. #35
    Guest

    Predefinito

    Ah, dimenticavo, puoi dirmi qualche link dove poter scaricare guide complete al C++? ne ho trovata una di Claudio Cec... , è molto buona ma sono 600 pagine :) qualche altra alternativa valida? tnx

  6. #36
    Guest

    Predefinito

    Citazione Originalmente inviato da truncksz2
    Ah, dimenticavo, puoi dirmi qualche link dove poter scaricare guide complete al C++? ne ho trovata una di Claudio Cec... , è molto buona ma sono 600 pagine :) qualche altra alternativa valida? tnx
    Fai cosi sfrutta intanto questi link e scaricati l'agente di ricerca che preferisci installalo e comincia a cercare con le parole chiave a mo di frase esatta. Esempio Guida Completa C++ e cerca poi tu le combinazioni.
    Per quanto riguarda i manuali gratuiti italiani che stanno in rete i link sono questi: (intanto che procedi in questo modo io cerco il portale dei Manuali completi devo averlo da qualche parte posto dopo...)

    AGENTI DI RICERCA GRATUITI AL 100% E NON SOLO
    http://www.copernic.com/en/products/agent/download.html
    http://www.velociraptus.com/haiti/in.../internet.html
    http://www.ferretsoft.com/netferret/download.ht

    TUTTO IL GRATIS CHE TROVATE IN RETE
    http://www.tuttogratis.it

    MANUALI GRATUITI AL 100%
    http://www.manuali.it
    http://www.manuali.net

    Un Salutone Maximvs


  7. #37
    Guest

  8. #38
    Guest

    Predefinito

    Grazie infinite, tutti link estremamente interesanti :D

  9. #39
    Guest

    Predefinito

    Per le strutture autoriferenti un link IMPORTANTISSIMO
    http://informatica.uninav.it/htm/riz...gLab2_2003.pdf

    /* Questo progamma gestisce una lista di pazienti , gestendo i record formati
    da nome ,cognome, data di appuntamento,durata dell'analisi, ora dell'analisi e telefono */
    /* SI UTILIZZANO STRUTTURE AUTORIFERENTI */

    #include<conio.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h> /*per le funzioni stricmp e strlen*/
    #include <alloc.h> /*per la funzione malloc */

    #define ANNO 2002
    #define NMAX 20 /*al massimo si usano NMAX-1 caratteri perchè si usa il carattere nullo*/
    #define ARCHIVIO "Pazienti.dat" /*nome file dove sono conservati i dati dei pazientii*/

    /* Programma gestito a menu' per processare una lista concatenata
    di records */

    typedef struct {
    int giorno;
    int mese;
    int anno;
    }data;

    typedef struct elemento {
    char nome[NMAX];
    char cognome[NMAX];
    data app;
    int durata,orario;
    char telefono[NMAX];
    /*si può inserire char note[NMAX]*/
    struct elemento *dopo; /* pointer nodo successivo */
    }record;

    typedef record *pointer;

    int conta=0,tot,pieno; /*conta il numero di record */
    int disp[10]; /*serve per la disponibilita dell'ora*/
    record *punta,*indica,*start /* pointer d'inizio lista */;

    FILE *fpt;

    void main()

    {

    int c;
    int menu(void); /* dichiarazione di funzione */
    void crea(record *nodo); /* dichiarazione di funzione */
    void aggiungi(void); /* dichiarazione di funzione */
    void cancella(void); /* dichiarazione di funzione */
    void carica(void); /* dichiarazione di funzione */
    void display(void); /* dichiarazione di funzione */
    void displaydue(void); /* dichiarazione di funzione */
    void memorizza(void); /* dichiarazione di funzione */
    do {
    carica();
    c=menu();

    switch (c) {

    case 1: /* crea lista concatanata */
    conta=0;
    start=(pointer) malloc(sizeof(record)); /*assegna spazio al primo nodo */
    crea(start);
    break;

    case 2: /* aggiunge un componente */
    aggiungi();
    break;

    case 3: /* cancella un componente */
    cancella();
    break;
    case 4: /* manda in display */
    display();
    break;
    default: /* termina il calcolo */
    if(conta!=0) memorizza(); /* memorizza la lista sul file dati */
    else
    {
    clrscr();
    printf("\a \n\n A T T E N Z I O N E \n\n\n LA LISTA E' VUOTA");
    printf("\n\n\n \tNel MENU' principale digita '1' per creare la lista");
    printf("\n\n\n \tdei pazienti .");
    printf("\n\n\n\n\n\n\n\t\t\t\tPREMI INVIO PER TORNARE AL MENU'");
    getchar();
    }
    clrscr();
    printf("\n\n\n\n\n\t\t\tFine lavoro ARRIVEDERCI\n"); /* termine del lavoro */
    }
    }
    while (c != 0);
    }


    /************************************************** **************************/
    /************************************************** **************************/

    int menu(void) /* genera menu principale */

    {
    int c;
    do
    {
    clrscr();
    printf("\n __________________________________________________ _______________");
    printf("\n +---------------------------------------------------------------+");
    printf("\n | \t\t\t\t\t\t\t\t |");
    printf("\n | GESTIONE LISTA PAZIENTI |");
    printf("\n | \t\t\t\t\t\t\t\t |");
    printf("\n | \t\t\t\t\t\t\t\t |");
    printf("\n | Creazione nuova lista pazienti :................digita 1 |");
    printf("\n | \t\t\t\t\t\t\t\t |");
    printf("\n | Inserimento nuovo paziente :....................digita 2 |");
    printf("\n | \t\t\t\t\t\t\t\t |");
    printf("\n | Cancellazione di un paziente :..................digita 3 |");
    printf("\n | \t\t\t\t\t\t\t\t |");
    printf("\n | Visualizza appuntamenti :.......................digita 4 |");
    printf("\n | \t\t\t\t\t\t\t\t |");
    printf("\n | Fine lavoro : ..................................digita 0 |");
    printf("\n | \t\t\t\t\t\t\t\t |");
    printf("\n +---------------------------------------------------------------+");
    printf("\n\n Digita un numero tra 0 e 4 : ");
    scanf("%d",&c);
    getchar();
    }
    while ((c<0)||(c>4));
    return(c);
    }


    /************************************************** *********************/
    /************************************************** *********************/


    void crea(record *nodo) /* crea una lista concatenata */
    {
    char c;
    int lungo,h,m,n=0,i,ora; /*SERVE PER LA LUNGHEZZA DELLA STRINGA*/
    pointer ordina(pointer pun);
    int giorno_sett;
    static char *weekday[] = {"lun", "mar", "mer", "gio", "ven", "sab", "dom"};
    static char *mese[] = {"Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno",
    "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"};
    void memorizza(void);
    void aggiungi(void); /* dichiarazione di funzione */
    int disponibile(pointer pun); /* dichiarazione di funzione */
    int converte(int gg, int mm, int aa); /* fuori dalla main perchè non sono richiamate
    dentro la main, ma solo qui */
    do
    {
    clrscr();
    conta++;
    printf("\n\nInserimento dati paziente n. %d: ",conta);
    do
    {
    printf("\n\t\t\tCognome : ");
    scanf("%[^\n]",nodo->cognome);
    getchar();
    lungo=strlen(nodo->cognome);
    if (lungo>=NMAX) printf("\n\n\tInserire al massimo %d caratteri : ",NMAX-1);
    }
    while (lungo>=NMAX);
    do
    {
    printf("\n\t\t\tNome : ");
    scanf("%[^\n]",nodo->nome);
    getchar();
    lungo=strlen(nodo->nome);
    if (lungo>=NMAX) printf("\n\n\tInserire al massimo %d caratteri : ",NMAX-1);
    }
    while (lungo>=NMAX);
    printf("\n\n\t\tInserisci la durata della visita: ");
    do
    {
    printf("\n\t\t\tDurata analisi (minuti) : ");
    scanf("%d",&nodo->durata);
    getchar();
    }
    while ((nodo->durata<1)||(nodo->durata>40));
    do
    {
    printf("\n\t\t\t telefono : ");
    scanf("%[^\n]",nodo->telefono);
    getchar();
    lungo=strlen(nodo->telefono);
    if (lungo>=NMAX) printf("\n\n\t Inserire al massimo %d caratteri : ",NMAX-1);
    }
    while (lungo>=NMAX);
    do
    {
    printf("\n\n\t\tInserisci la data di appuntamento : ");
    do
    {
    do
    {
    printf("\n\t\t\tGiorno : ");
    scanf("%d",&nodo->app.giorno);
    getchar();
    }
    while ((nodo->app.giorno<1)||(nodo->app.giorno>31));
    do
    {
    printf("\n\t\t\t Mese : ");
    scanf("%d",&nodo->app.mese);
    getchar();
    }
    while ((nodo->app.mese<1)||(nodo->app.mese>12));
    do
    {
    printf("\n\t\t\t Anno : ");
    scanf("%d",&nodo->app.anno);
    getchar();
    }
    while (nodo->app.anno<ANNO);
    clrscr();
    giorno_sett= converte(nodo->app.giorno,nodo->app.mese,nodo->app.anno);
    textcolor(13);
    cprintf(" -> %s %d %s %4d", weekday[giorno_sett],nodo->app.giorno, mese[nodo->app.mese-1], nodo->app.anno);
    if ((giorno_sett== 5)||(giorno_sett==6)||((nodo->app.mese==12)&&(nodo->app.giorno==25))
    ||((nodo->app.mese==12)&&(nodo->app.giorno==26))||((nodo->app.mese==1)&&(nodo->app.giorno==1))
    ||((nodo->app.mese==1)&&(nodo->app.giorno==6))||((nodo->app.mese==4)&&(nodo->app.giorno==25))
    ||((nodo->app.mese==11)&&(nodo->app.giorno==2))) /*controlla varie festività*/
    { fflush(stdin);
    textcolor(10);
    cprintf("\n\r IMPOSSIBILE INSERIRE UN APPUNTAMENTO!\nIl laboratorio \212 chiuso!\n");
    printf("\n\n\t\tInserisci un'altra data per l'appuntamento : ");
    }
    fflush(stdin);
    }
    while ((giorno_sett== 5)||(giorno_sett==6)||((nodo->app.mese==12)&&(nodo->app.giorno==25))
    ||((nodo->app.mese==12)&&(nodo->app.giorno==26))||((nodo->app.mese==1)&&(nodo->app.giorno==1))
    ||((nodo->app.mese==1)&&(nodo->app.giorno==6))||((nodo->app.mese==4)&&(nodo->app.giorno==25))
    ||((nodo->app.mese==11)&&(nodo->app.giorno==2))); /*controlla varie festività*/
    if (conta>1)
    {
    n=disponibile(nodo);
    }
    }
    while (n==1);
    do
    {
    n=1;
    printf("\n\n\t\tInserisci l'ora della visita (h,m): ");
    do
    {
    printf("\n\t\t\tOra : ");
    scanf("%d",&h);
    getchar();
    }
    while ((h<8)||(h>11));
    do
    {
    printf("\n\t\t\tMinuti : ");
    scanf("%d",&m);
    getchar();
    }
    while ((m<0)||(m>59));
    ora=60*h+m;
    if (pieno!=0)
    {

    for(i=0;i<tot;i++)
    {
    if ((ora>=disp[i])&&(ora<disp[i+1]))
    {
    n=1;
    i=tot;
    }
    else
    {
    n=0;
    }
    i++;
    }
    }

    else if (ora>(720-(nodo->durata))) n=0;

    }
    while (n==0);
    nodo->orario=60*h+m;
    nodo->dopo=NULL;
    nodo=ordina(nodo);
    memorizza();
    printf("\n\n\t\tVuoi inserire un'altro paziente ? (s,n) : ");
    scanf("%c",&c);
    getchar();
    if((c=='s')||(c=='S'))
    { /*se digito s assegna spazio al nodo successivo */
    nodo->dopo = (pointer) malloc(sizeof(record));
    nodo=nodo->dopo;
    }
    }
    while((c=='s')||(c=='S'));
    return;
    }
    /* torna nel menu' principale */

    int converte(int gg, int mm, int aa)
    {
    long n_giorni;
    long n_cicli;
    int n_anni;
    int giorno;

    aa-=1900;
    n_giorni= (long)(30.28*(mm-1))+gg;

    if(mm==2)
    ++n_giorni;
    if((mm>2) && (mm<8))
    --n_giorni;
    if((aa%4==0) && (mm>2))
    ++n_giorni;

    n_cicli=aa/4;
    n_giorni+= n_cicli*1461;

    n_anni=aa%4;
    if(n_anni>0)
    n_giorni+=365*n_anni+1;
    if (n_giorni>59)
    --n_giorni;

    giorno=n_giorni%7;
    return(giorno);

    }







    int disponibile(pointer pun)
    {
    int time,tf=480,j,i=0;
    record *pt;
    pt=start;
    disp[0]=480;
    tot=0; pieno=0;
    disp[9]=720;
    for (j=0;j<conta-1;j++)
    {
    if (pt->app.anno==pun->app.anno)
    {
    if (pt->app.mese==pun->app.mese)
    {
    if (pt->app.giorno==pun->app.giorno)
    {
    pieno++;
    time=pt->orario-tf;

    if (time>=pun->durata)
    {
    disp[i]=tf;
    ++i;tot++;
    disp[i]=pt->orario;
    ++i;tot++;
    }
    tf=pt->orario+pt->durata;
    }
    }
    }
    if (pt->app.anno>pun->app.anno)
    {
    if (pt->app.mese>pun->app.mese)
    {
    if (pt->app.giorno>pun->app.giorno)
    { j=conta;}
    else pt=pt->dopo;
    }
    else pt=pt->dopo;
    }
    else pt=pt->dopo;

    }

    if (pieno==5)
    {
    printf("\n\n\t SONO GIA' STATI INSERITI 5 APPUNTAMENTI !");
    printf("\n\n\n\n\n\n\n\t\t\t\tPREMI INVIO PER INSERIRE NUOVA DATA");
    getchar();
    clrscr();
    return(1);
    }
    if (pieno==0)
    {
    printf("\n\n\t Giorno libero senza appuntamenti !");
    printf("\n\n\n\n\n\n\n\t\t\t\tPREMI INVIO PER INSERIRE L'0RA");
    getchar();
    clrscr();
    return(0);
    }
    if ((tot==0)&&(pieno!=0))
    {
    if ((720-tf)<pun->durata)
    {
    printf("\n\n Non \212 disponibile spazio per inserire l'appuntamento con quella durata!");
    printf("\n\n\n\n\n\n\n\t\t\t\tPREMI INVIO PER INSERIRE NUOVA DATA");
    getchar();
    clrscr();
    return(1);
    }
    else
    {

    disp[i]=tf;
    disp[i+1]=720;tot=tot+2;
    printf("\n\n\t E' possibile inserire l'appuntamento dalle ore %d:",
    tf/60);
    if (tf%60==0) printf("00");
    else printf("%d",tf%60);
    printf(" alle ore %d:",(720-pun->durata)/60);
    if ((720-pun->durata)%60==0) printf("00");
    else printf("%d ",(720-pun->durata)%60);
    printf("\n\n\n\n\n\n\n\t\t\t\tPREMI INVIO PER INSERIRE L'0RA");
    getchar();
    clrscr();
    return(0);
    }

    }


    for(i=0;i<tot;i++)
    {
    printf("\n\n\t E' possibile inserire l'appuntamento dalle ore %d:",
    disp[i]/60);
    if (disp[i]%60==0) printf("00");
    else printf("%d",disp[i]%60);
    ++i;
    printf(" alle ore %d:",(disp[i]-pun->durata)/60);
    if ((disp[i]-pun->durata)%60==0) printf("00");
    else printf("%d ",(disp[i]-pun->durata)%60);

    }
    if ((720-tf)>=pun->durata)
    {
    disp[i]=tf;
    disp[i+1]=720;tot=tot+2;
    printf("\n\n\t E' possibile inserire l'appuntamento dalle ore %d:",
    tf/60);
    if (tf%60==0) printf("00");
    else printf("%d",tf%60);
    printf(" alle ore %d:",(720-pun->durata)/60);
    if ((720-pun->durata)%60==0) printf("00");
    else printf("%d ",(720-pun->durata)%60);
    printf("\n\n\n\n\n\n\n\t\t\t\tPREMI INVIO PER INSERIRE L'0RA");
    getchar();
    clrscr();
    return(0);
    }

    return(0);

    }

    /************************************************** ****************************/
    /************************************************** ****************************/

    pointer ordina(pointer pun) /* mette in ordine alfabetico i pazienti */

    {
    int j,a=0;
    indica=punta=start;
    for(j=1;j<conta;j++) /* questo ciclo cotrolla se un paziente e' già stato inserito */
    {

    if(punta->app.anno<pun->app.anno) a=1;
    if(punta->app.anno>pun->app.anno) a=-1;
    if (a==0)
    {
    if(punta->app.mese<pun->app.mese) a=1;
    if(punta->app.mese>pun->app.mese) a=-1;
    if (a==0)
    {
    if(punta->app.giorno<pun->app.giorno) a=1;
    if(punta->app.giorno>pun->app.giorno) a=-1;
    if (a==0)
    {
    if(punta->orario<pun->orario) a=1;
    if(punta->orario>pun->orario) a=-1;
    }
    }
    }

    if (a>0)
    {
    indica=punta; /*conservo il pointer dell'ultimo confronto */
    punta=punta->dopo;
    a=0;
    }
    if (a<0)
    {
    if (j==1) /*nel caso il paziente vada inserito in cima alla lista*/
    {
    start=pun;
    pun->dopo=punta;
    while (punta->dopo!=pun)
    {
    punta=punta->dopo;
    }
    punta->dopo=NULL;
    return(punta);
    } /*del if j */
    indica->dopo=pun;
    pun->dopo=punta;
    while (punta->dopo!=pun)
    {
    punta=punta->dopo;
    }
    punta->dopo=NULL;
    return(punta);
    }


    } /*fine del for di j */
    return(pun);
    }


    /************************************************** **************************/
    /************************************************** **************************/

    void memorizza(void) /*funzione per registrare sul file dati*/

    {
    int j;

    {
    punta=start;
    fpt=fopen(ARCHIVIO,"w");
    fprintf(fpt,"%d",conta);
    for (j=0;j<conta;++j)
    {
    fprintf(fpt,"\n%10s",punta->cognome);
    fprintf(fpt,"%15s",punta->nome);
    fprintf(fpt,"%3d",punta->app.giorno);
    fprintf(fpt,"%3d",punta->app.mese);
    fprintf(fpt,"%5d",punta->app.anno);
    fprintf(fpt,"%3d",punta->durata);
    fprintf(fpt,"%4d",punta->orario);
    fprintf(fpt,"%12s",punta->telefono);
    punta=punta->dopo;
    }
    fclose(fpt);
    }
    return;
    }



    /************************************************** **************************/
    /************************************************** **************************/


    void carica(void) /* prende dati dal filedati esistente */

    {
    int i;
    fpt=fopen(ARCHIVIO,"r");
    if (fpt==NULL)
    {
    clrscr();
    printf("\a \n\n A T T E N Z I O N E \n\n\n IL FILEDATI E' VUOTO");
    printf("\n\n\n \tNel MENU' principale digita 1 per creare il registro");
    printf("\n\n\n \tdei pazienti .");
    printf("\n\n\n\n\n\n\n\t\t\t\tPREMI INVIO PER VISUALIZZARE IL MENU'");
    getchar();
    fclose(fpt);
    return;
    }
    fscanf(fpt,"%d",&conta);
    start = (pointer) malloc(conta*sizeof(record)); /*assegna spazio per tutta la lista */
    punta=start;
    for(i=0;i<conta;++i)
    {
    punta->dopo=punta+1;
    fscanf(fpt,"%s",&punta->cognome);
    fscanf(fpt,"%s",&punta->nome);
    fscanf(fpt,"%d",&punta->app.giorno);
    fscanf(fpt,"%d",&punta->app.mese);
    fscanf(fpt,"%d",&punta->app.anno);
    fscanf(fpt,"%d",&punta->durata);
    fscanf(fpt,"%d",&punta->orario);
    fscanf(fpt,"%s",&punta->telefono);
    if (i!=conta-1) punta=punta->dopo;
    else punta->dopo=NULL;
    }

    fclose(fpt);
    return;
    }


    /************************************************** ***************************/
    /************************************************** ***************************/

    void display(void) /* manda in display i pazienti in ordine alfabetico */

    {
    int j,c,ct;
    int giorno_sett,gg,mm,aa;
    static char *weekday[] = {"lun", "mar", "mer", "gio", "ven", "sab", "dom"};
    static char *mese[] = {"Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno",
    "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"};
    punta=start;
    if (conta!=0)
    {
    clrscr();
    do
    {
    clrscr();
    printf("\n __________________________________________________ _______________");
    printf("\n +---------------------------------------------------------------+");
    printf("\n | \t\t\t\t\t\t\t\t |");
    printf("\n | VISUALIZZAZIONE APPUNTAMENTI |");
    printf("\n | \t\t\t\t\t\t\t\t |");
    printf("\n | \t\t\t\t\t\t\t\t |");
    printf("\n | Tutti i pazienti in ordine cronologico :........digita 1 |");
    printf("\n | \t\t\t\t\t\t\t\t |");
    printf("\n | Una sola data :.................................digita 2 |");
    printf("\n | \t\t\t\t\t\t\t\t |");
    printf("\n +---------------------------------------------------------------+");
    printf("\n\n Digita 1 o 2 : ");
    scanf("%d",&c);
    getchar();
    }
    while ((c<1)||(c>2));
    if (c==1)
    { clrscr();
    printf("\n\n\n\t+-------------------------------------------------------+\n");
    printf("\t| Lista dei pazienti in ordine cronologico : |\n");
    printf("\t+-------------------------------------------------------+\n\n\n");
    printf("\nCOGNOME NOME \t DATA app durata orario telefono\n\n");
    for (j=0;j<conta;j++)
    {

    if (((j+1)%6)==0)
    {
    printf("\n\n\t\t\tpremi INVIO per continuare");
    getchar();
    clrscr();
    printf("\n\n\n\t+-------------------------------------------------------+\n");
    printf("\t| Lista dei pazienti in ordine cronologico : |\n");
    printf("\t+-------------------------------------------------------+\n\n\n");
    printf("\nCOGNOME NOME \t DATA app durata orario telefono\n\n");
    }

    printf("%-15s",punta->cognome);
    printf("%-15s",punta->nome);
    printf("%2d-",punta->app.giorno);
    printf("%2d-",punta->app.mese);
    printf("%4d ",punta->app.anno);
    printf(" %4d'",punta->durata);

    printf(" %2d:",punta->orario/60);
    if (punta->orario%60==0) printf("00");
    else printf("%2d",punta->orario%60);
    printf(" %-15s\n",punta->telefono);
    punta=punta->dopo; /* prende il prossimo dato */
    }
    printf("\n\n\npremi INVIO per tornare al MENU' ");
    getchar();


    return;
    }
    else
    {

    printf("\n\n\t\tInserisci la data da visualizzare : ");
    do
    {

    do
    {
    printf("\n\t\t\tGiorno : ");
    scanf("%d",&gg);
    getchar();
    }
    while ((gg<1)||(gg>31));
    do
    {
    printf("\n\t\t\t Mese : ");
    scanf("%d",&mm);
    getchar();
    }
    while ((mm<1)||(mm>12));
    do
    {
    printf("\n\t\t\t Anno : ");
    scanf("%d",&aa);
    getchar();
    }
    while (aa<ANNO);
    giorno_sett= converte(gg,mm,aa);

    if ((giorno_sett== 5)||(giorno_sett==6)||((mm==12)&&(gg==25))
    ||((mm==12)&&(gg==26))||((mm==1)&& (gg==1))
    ||((mm==1)&&(gg==6))||((mm==4)&&(g g==25))
    ||((mm==11)&&(gg==2))) /*controlla varie festività*/
    { fflush(stdin);
    textcolor(13);
    cprintf(" -> %s %d %s %4d", weekday[giorno_sett],gg, mese[mm-1], aa);
    textcolor(10);
    cprintf("\n\r IMPOSSIBILE VISUALIZZARE QUESTA DATA!\nIl laboratorio \212 chiuso!\n");
    printf("\n\n\t\tInserisci un'altra data : ");
    }


    fflush(stdin);
    }
    while ((giorno_sett== 5)||(giorno_sett==6)||((mm==12)&&(gg==25))
    ||((mm==12)&&(gg==26))||((mm==1)&& (gg==1))
    ||((mm==1)&&(gg==6))||((mm==4)&&(g g==25))
    ||((mm==11)&&(gg==2))); /*controlla varie festività*/
    clrscr();
    printf("\n\n\n\t+-------------------------------------------------------+\n");
    printf("\t| Lista dei pazienti del ");
    printf("%2d-",punta->app.giorno);
    printf("%2d-",punta->app.mese);
    printf("%4d ",punta->app.anno);
    printf("\t |\n");
    printf("\t+-------------------------------------------------------+\n\n\n");
    printf("\nCOGNOME NOME \t durata orario telefono\n\n");
    ct=0;
    for (j=0;j<conta;j++)
    {
    if ((punta->app.anno==aa)&& (punta->app.mese==mm)&&(punta->app.giorno==gg))
    {
    ct=1;
    printf("%-15s",punta->cognome);
    printf("%-15s",punta->nome);
    printf(" %4d'",punta->durata);
    printf(" %2d:",punta->orario/60);
    if (punta->orario%60==0) printf("00");
    else printf("%2d",punta->orario%60);
    printf(" %-15s\n",punta->telefono);

    }
    punta=punta->dopo; /* prende il prossimo dato */
    }
    if (ct==0) printf("\n\n\t NON c'\212 nessun appuntamento ");
    printf("\n\n\npremi INVIO per tornare al MENU' ");
    getchar();
    return;

    }
    }
    }


    /************************************************** ****************************/
    /************************************************** ****************************/


    void aggiungi(void) /* aggiunge un componente alla lista concatenata
    restituisce pointer a inizio lista modificata */


    {
    if (conta!=0)
    {
    punta=start;
    while (punta->dopo!=NULL)
    {
    punta=punta->dopo;
    }
    /*assegna spazio al nodo successivo */
    punta->dopo = (pointer) malloc(sizeof(record));
    /* crea il nodo successivo */
    crea(punta->dopo);
    return;
    }

    return;
    }



    /************************************************** ***************************/
    /************************************************** ***************************/


    void cancella(void) /* cancella un componente dalla lista concatenata
    restituisce pointer all'inizio lista modificata */

    {
    char c;
    int i,lungo,a;
    char paziente[NMAX];
    void memorizza(void);
    clrscr();
    if (conta!=0)
    {
    punta=start;
    printf("\n\n\tInserisci il cognome del paziente da eliminare : ");
    do
    {
    scanf("%[^\n]",paziente);
    getchar();
    lungo=strlen(paziente);
    if (lungo>=NMAX) printf("\n\n\tInserire al massimo %d caratteri : ",NMAX-1);
    }
    while (lungo>=NMAX);
    for(i=0;i<conta;++i)
    {
    a=stricmp(punta->cognome,paziente);
    if (a==0)
    {
    clrscr();
    printf("\n\n\n\tpaziente da ELIMINARE dalla lista :\n\n\n");
    printf("\nCOGNOME NOME\t\t\tDATA telefono\n\n");
    printf("%-15s ",punta->cognome);
    printf("%-15s ",punta->nome);
    printf("\t%-3d ",punta->app.giorno);
    printf("%-3d ",punta->app.mese);
    printf("%-5d ",punta->app.anno);
    printf("\t %-12s ",punta->telefono);
    printf("\n\n\n\tSi conferma ? (s,n) : ");
    scanf("%c",&c);
    getchar();
    if ((c=='s')||(c=='S'))
    {
    conta--;
    if (conta==0)
    {
    printf(" \n\n\t\t\a ATTENZIONE FILE VUOTO ");
    printf("\n\n\n\n\n\n\n\t\t\t\tPREMI INVIO PER TORNARE AL MENU' E POI DIGITA 1");
    getchar();
    }
    if(i==0) start=punta->dopo;
    else
    {
    if(punta->dopo==NULL) indica->dopo=NULL;
    else indica->dopo=punta->dopo;
    }

    memorizza();

    return;
    }

    }
    indica=punta;
    punta=punta->dopo;
    }
    printf("\n\n\n\t\t Il paziente non \212 nella lista . \n");
    printf("\n\n\n\n\n\n\n\t\t\t\tPREMI INVIO PER TORNARE AL MENU'");
    getchar();
    }

    return;
    }

    Un Salutone Maximvs


  10. #40
    Guest

    Predefinito

    X truncksz2
    Figurati e se ne trovi tu di link interessanti fammelo sapere postali qui!
    Ne sto cercando un'altro che non riesco a trovare. Ti faro' sapere. Un'altra cosa credo si possano scaricare i file source dei manuali dell'apogeo e non solo povra a cercare tu stesso con gli agenti di ricerca.

    Un Salutone Maximvs


  11. #41
    Guest

    Predefinito

    /* programma interattivo che determina se un numero è primo */

    #include <stdio.h>
    #include <math.h>
    #include <conio.h>

    int funct(int n); /*funzione prototipo*/
    main()
    {
    int n;
    textcolor(9);
    cprintf("\n\r*** PROGRAMMA CHE VERIFICA SE UN NUMERO INTERO E' PRIMO ***\n\r");
    textcolor(14);
    cprintf("*****ATTENZIONE*****\n\n\r");
    cprintf("Per uscire digita 0.\n\n\r");
    cprintf("INSERIRE UN VALORE PER n: ");
    scanf("%d", &n); /*legge il numero inserito dalla tastiera*/
    while (n!=0)
    {
    clrscr;
    if(funct(n)==0 && n!=2 && n!=3)
    {
    textcolor(12);
    cprintf("\n%d non e' un numero primo\n\n\r", n);
    }
    else
    {
    textcolor(10);
    cprintf("\n%d e' un numero primo\n\n\r", n);
    }
    cprintf("*****ATTENZIONE*****\n\n\r");
    cprintf("Per uscire digita 0.\n\n\r");
    textcolor(14);
    cprintf("INSERIRE UN VALORE PER n: ");
    scanf("%d", &n); /*legge il numero inserito dalla tastiera*/
    }
    fflush(stdin);
    getchar();
    }

    int funct(int n)

    {
    int r, x;
    for(x = 2; x <= int(sqrt(n)); ++x)
    {
    r = n % x; //controlla se x è multiplo di tutti i numeri più piccoli della sua radice quadrata
    if(r==0)
    break;
    }
    return(r);
    }


    AGENTI DI RICERCA GRATUITI AL 100% E NON SOLO
    http://www.copernic.com/en/products/agent/download.html
    http://www.velociraptus.com/haiti/in.../internet.html
    http://www.ferretsoft.com/netferret/download.ht

    TUTTO IL GRATIS CHE TROVATE IN RETE
    http://www.tuttogratis.it

    MANUALI GRATUITI AL 100%
    http://www.manuali.it
    http://www.manuali.net

    Un Salutone Maximvs


  12. #42
    Guest

    Predefinito

    /* INVENTA: gli autori di alcune celebri invenzioni */

    #include <stdio.h>

    main()
    {
    int n; /*numero scelto*/

    printf("\nChi inventò:\n\n" /*titolo e prompt <1>*/
    " 1) Il primo cannocchiale di uso pratico\n"
    " 2) La penna a sfera\n"
    " 3) La prima lampadina affidabile\n"
    " 4) Il telefono\n"
    " 5) Il fonografo, antenato del giradischi\n"
    " 6) La radio\n"
    " 7) Il linguaggio C\n\n"
    "Scegli (1-7): ");
    scanf("%d",&n); /*input scelta*/
    printf("\n"); /*va a capo <2>*/

    switch(n) { /*sceglie <3>*/
    case 1: /*primo caso <4>*/
    printf("Galileo Galilei, perfezionando studi precedenti.\n");
    break; /*fine primo caso <5>*/
    case 2:
    printf("L'ungherese Laszlo Biro, che le diede anche il nome.\n");
    break;
    case 3: /*due casi <6>*/
    case 5:
    printf("Thomas Alva Edison, il poliedrico inventore statunitense.\n");
    break;
    case 4:
    printf("Antonio Meucci (perfezionato in seguito da G.Bell).\n");
    break;
    case 6:
    printf("Guglielmo Marconi, che continuo' poi le"
    " ricerche in Inghilterra.\n");
    break;
    case 7:
    printf("Dennis Ritchie, nei Bell Laboratories della AT&T.\n");
    break;
    default: /*nessun caso <7>*/
    printf("Questa non e' una scelta valida.\n");
    break;
    }
    fflush(stdin);
    getchar();
    }

    MANUALI DA SCARICARE LI TROVATE ANCHE QUI - FREE 100%
    http://www.crackinguniversity2000.it/

    Un Salutone Maximvs


  13. #43
    Guest

    Predefinito

    non potresti pupplicare una paggina e poi linkarla sul forum invece di sparare 200 messaggi?

  14. #44
    Guest

    Predefinito

    1) Non sono 200 messaggi al minuto
    2) Alcuni hanno apprezzato questa impostazione
    3) Mi dica lei come preferisce fare (si spieghi meglio)
    4) Se preferisce che abbandoni questa idea non c'e' assolutamente problema puo' benissimo BLOCCARE la discussione e mi dedico esclusivamente ad altro.
    5) Tutto questo materiale che tra l'altro molto e' stato realizzato da me e' stato inserito per creare poi un Manuale sul C/C++ e Matlab per poi farlo pubblicare a nome di AV senza che io personalmente avessi nessun tipo di ritorno.

    Pensavo avreste potuto gradire ma non importa BLOCCHI pure.

    Un salutone Massimo

  15. #45
    Guest

    Predefinito

    I messaggi sono lunghi ma è comprensibile, sono sorgeti di codice che vengono pubblicati direttamente per comodità, un miglior metodo diretto e veloce come questo non ci sarebbe, almeno penso.

  16. #46
    Guest

    Predefinito

    Come avevo accennato in precedenza vi propongo questa ottima guida al C++, purtroppo non è del tutto completa ma i contenuti sono interessantissimi per chiunque voglia imparare il C++ partendo anche da zero (in programmazione), ecco i link:
    Link diretto alla guida: http://net.supereva.it/cicconettihom...bro/index.html

    Home Page dell'autore ovviamente (da visitare):
    http://cicconettihomepage.freeweb.supereva.it/


    Ciao! :D

Pagina 2 di 2 PrimoPrimo 12

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •