04.06.2008 | 22:12:22
immagine
Ing. Emanuele Scapin

3 C, a.s. 2012/2013

  • Compiti svolti

    3C 2012-2013 ITIS "G. Chilesotti" Thiene 2012-10-06 Sistemi
    3C 2012-2013 ITIS "G. Chilesotti" Thiene 2012-11-07 Sistemi
    3C 2012-2013 ITIS "G. Chilesotti" Thiene 2012-11-19 TPSIT
    3C 2012-2013 ITIS "G. Chilesotti" Thiene 2012-12-12 Sistemi
    3C 2012-2013 ITIS "G. Chilesotti" Thiene 2012-12-12 TPSIT
    3C 2012-2013 ITIS "G. Chilesotti" Thiene 2013-03-01 TPSIT RD
    3C 2012-2013 ITIS "G. Chilesotti" Thiene 2013-03-15 Sistemi RD
    3C 2012-2013 ITIS "G. Chilesotti" Thiene 2013-03-26 Sistemi
    3C 2012-2013 ITIS "G. Chilesotti" Thiene 2013-04-16 TPSIT
    3C 2012-2013 ITIS "G. Chilesotti" Thiene 2013-05-08 TPSIT
    3C 2012-2013 ITIS "G. Chilesotti" Thiene 2013-05-15 Sistemi
    3C 2012-2013 ITIS "G. Chilesotti" Thiene 2013-05-29 TPSIT
    3C 2012-2013 ITIS "G. Chilesotti" Thiene 2013-05-29 Sistemi

     


  • TPSIT

     

  • Materiale linguaggio C

    html.it, sito con esempi.

    Programmazione di sistema in linguaggio C, dispensa in formato pdf.

     


  • Compito del 16/04/2013, esercizio 1, correzione.

    int n, i;
    int contp=0, contz=0, contn=0;
    int pari=0, disp=0;
    int crescenza = 0; 
    int pre;
    
    printf("introdurre N\r\n");
    scanf("%d", &n);
    
    for(i = 0; i < n; i++) {
      printf("introdurre numero %d-esimo\r\n", i);
      int val;
      scanf("%d", &val);  
      if (val > 0) contp++;
      else if(val == 0) contz++;
      else contn++;
      
      if (val % 2 == 0) pari++;
      else disp++;
      
      if (i > 0) {
          if (val > pre) crescenza++;
          else if (val < pre) crescenza--;
          else crescenza = 0;
          printf("crescenza %d\r\n", crescenza); // debug
          pre = val;
      }
      else pre = val;
    }
    
    printf("numeri positivi = %d, nulli = %d, negativi = %d\r\n", contp, contz, contn);
    printf("numeri pari = %d, dispari = %d\r\n", pari, disp);
    if (crescenza == n-1) printf("crescente\r\n");
    else if (crescenza == -(n-1)) printf("decrescente\r\n");
    else printf("nè crescente nè decrescente\r\n");
            

     

  • Compito del 16/04/2013, esercizio 2, correzione senza array.

    int n;
    int a=1,b=1,c, i;
    
    printf("introdurre N\r\n");
    scanf("%d", &n);
    for (i = 2; i < n; i++) {
        c = a + b;
        b = a;
        a = c;
        printf("termine %d-esimo: %d\r\n", i, c);
    }
            

     

  • Compito del 16/04/2013, esercizio 2, correzione con array.

    int n,i;
    
    printf("introdurre N\r\n");
    scanf("%d", &n);
    
    int array[n];
    array[0] = 1;
    array[1] = 1;
    for (i = 2; i < n; i++) {
        array[i] = array[i-1] + array[i-2];
        printf("termine %d-esimo: %d\r\n", i, array[i]);
    }
            

     

  • Compito del 16/04/2013, esercizio 3, correzione.

    int x = 23;
    int *y = &x;
    int *z = y;
    
    *y = 10;
    printf("%d\r\n", (*z));
    
    risultato: 10
            

     

  • Compito del 16/04/2013, esercizio 4, correzione.

    int x = 23, y =10, *p, *q;
    p = &x;
    q = &y;
    
    *p = *p + y;
    y = x*x;
    printf("%d, %d\r\n", (*p), (*q));
    
    risultato: 33, 1089
            

     

  • Compito del 16/04/2013, esercizio 5, correzione.

    int x = 3, y =2, *p, *q;
    p = &x;
    q = p;
    
    *p = *p + *q;
    y = x*x;
    printf("%d, %d, %d, %d\r\n", x, y, (*p), (*q));
    
    risultato: 6, 36, 6, 6
            

     

  • Compito del 29/05/2013, completo con consumer.

    #include <stdio.h>
    #include <stdlib.h>
    
    struct Movimento {
        float importo;
        char  data[14];
        int   tipo;
    };
    
    int import(char *namefile) {
        int iret = -1;
        
        int tipo;
        char dat[14];
        float imp;
        FILE *f;
        
        if (strlen(namefile) > 0) {
           f = fopen(namefile, "wb");
           if (f != NULL) {
               do {
                   printf("introdurre tipo\r\n");
                   scanf("%d", &tipo);
                   if (tipo != 0) {
                       struct Movimento mov;
                       mov.tipo = tipo;
                       printf("introdurre data, formato YYYYMMDDHHNNSS\r\n");
                       scanf("%s", &dat); 
                       //mov.data = dat; // non funziona così il passaggio tra stringhe
                       // si deve usare strcpy
                       strcpy(mov.data, dat);
                       printf("introdurre importo\r\n");
                       scanf("%f", &imp);  
                       mov.importo = imp;
                       int fr = fwrite(&mov, sizeof(mov), 1, f);
                   }
               } while (tipo != 0);
               iret = 0;
           }
           else printf("import, errore: file non  aperto\r\n");
           fclose(f);
        }
        
        return iret;
    }
    
    int export(char *filein, char *fileout, char *dat) {
        int iret = -1;
        
        if ((strlen(filein) > 0) && (strlen(fileout) > 0) && (strlen(dat) > 0)) {
           FILE *fin = fopen(filein, "rb");
           FILE *fou = fopen(fileout, "w");
           if (fin != NULL && fou != NULL) {         
               while (!feof(fin)) {
                 struct Movimento mov;
                 fread(&mov, sizeof(mov), 1, fin);
                 if (strcmp(mov.data, dat) == 0) {
                     fprintf(fou, "%c;%f;%d\r\n", mov.data, mov.importo, mov.tipo);
                 }
               }
               iret = 0;
           }
           fclose(fou);
           fclose(fin);
        }
        
        return iret;
    }
    
    int main(int argc, char** argv) {
        char *f;
        f = "mov.scp";
        char *f1;
        f1 = "mov.csv";
        char *d;
        d = "2013";
        int ret = import(f);
        int ret1 = export(f, f1, d);
        return (EXIT_SUCCESS);
    }
            

     


© Emanuele Scapin 2009-2013

 

Valid HTML 4.01! Valid CSS!