MAGAZZINO.CPP January 2, 2008 Page 1

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "MAGAZZINO.CPP January 2, 2008 Page 1"

Transcript

1 MAGAZZINO.CPP January 2, 2008 Page 1 1 #include <conio.h> 2 #include <stdio.h> 3 #include <string.h> 4 // ==================================================================== 5 // Versione 1.1 1/1/2008 Autore prof. Vicenzi G. 6 // 7 // aggiornamenti dalla versione // lettura e scrittura su file di tutti gli articoli a magazzino 9 // ======================================================================= // Semplice programma per la gestione di un magazzino 13 // per componenti elettronici 14 // 15 // Analisi di massima: 16 // occorre per ogni componente 17 // - Descrizione, Es: Resistore a strato di carbone 18 // - Valore, Es: // - Unita di misura, Es: Ohm 20 // - quantita disponibile in magazzino 21 // - quantita minima di riordino 22 // - prezzo unitario #define MAXARTICOLI struct ArticoloMag { 27 char Desc[40]; // descrizone del componente 28 float Valore; // valore del comp. 29 char Unita[5]; // unità di misura max 4 char 30 int Quantita; // num. di componenti in magazzino 31 int QtaRio; // num. di comp. minimi al di sotto del quale si riordina 32 float Prezzo; 33 char Attivo; //'S' se attivo, 'N' se "cancellato" 34 }; // funzione per l'inserimento dei dati di ogni singolo articolo Roncadi + Incerti +Piccinn i 38 struct ArticoloMag InputArticolo( ); // // funzione per ricalcolare la quantità di riordino.. D'IORIO +Ferrari + D'Ambrosio 41 struct ArticoloMag RicalcoloRiordino(struct ArticoloMag Art ); // funzione per stampare a video in modo ordinato l' articolo e gli altri suoi dati 44 void StampaArticolo(struct ArticoloMag Art ); // LAI + Carlotta + Venosino // funzione per stampare a video TUTTO IL MAGAZzINO 47 void StampaMag( struct ArticoloMag *PtrArt ); // Polelli + Vannini // funzione per aggiornare (modificare) un articolo 50 struct ArticoloMag AggiornaArticolo(struct ArticoloMag Art ); // Crocettti+Gozzi + Lape ruta // funzione per aggiornare solo la quantità di un articolo // Flagiello +DAmoia + Mil ani 53 struct ArticoloMag AggiornaQtaArticolo(struct ArticoloMag Art,int NQuantita ); // funzione di cancellazione articolo... // Zaccariello, Salata, Gaddi 56 struct ArticoloMag CancellaArticolo(struct ArticoloMag Art ); //cerca una stringa in una altra 59 int StrFind( char *PtrDescrizione, char *PtrPezzo); // stampa un messaggio a video e attende la pressione di un tasto 62 void StampaMessaggio(char *PtrS); // legge da file tutto il magazzino 65 int LeggeDaFile (struct ArticoloMag *PtrArt ); // salva su file tutto il magazzino

2 MAGAZZINO.CPP January 2, 2008 Page 2 68 int SalvaSuFile (struct ArticoloMag *PtrArt ); // funzione che si occuperà di riordinare il magazzino 72 // void main () 76 { 77 struct ArticoloMag Magazzino[MAXARTICOLI]; // vettore di 100 elementi di dati 78 // di tipo struct ArticoloMag 79 int Ch; // tasto per scelta del comando 80 int i; // indice per ircerca all'interno del magazzino 81 int NArticolo; // n. dell'articolo 82 int QuantitaNew; //nuova quantità di una articolo di magazzino 83 char StrPezzo[200]; struct ArticoloMag ArtLetto; LeggeDaFile (Magazzino ); // menu' principale del programma 90 do { 91 clrscr(); 92 printf("programma SEMPLIFICATO PER LA GESTIONE DI MAGAZZINO"); 93 printf("\n scegli la voce che ti interessa"); 94 printf("\n 1) - inserisci un articolo "); 95 printf("\n 2) - modifica un articolo "); 96 printf("\n 3) - modifica quantità di un articolo "); 97 printf("\n 4) - cerca un articolo in base a parte descrizione"); 98 printf("\n 5) - Cancella un articolo "); 99 printf("\n 6) - Calcola quantità di riordino "); 100 printf("\n 7) - Stampa un articolo "); 101 printf("\n 8) - Stampa tutti gli articoli "); 102 printf("\n 9) - Stampa elenco articoli da riordinare"); printf("\n W) - scrivi tutto il magazzino su disco"); 105 printf("\n batti ESC per uscire "); Ch=getch(); 109 switch (Ch) { 110 case '1' : // inserimento di un articolo 111 ArtLetto=InputArticolo( ); 112 // cerca un elemento del vettore in cui mettere l'articolo inserito 113 for (i=0; i <MAXARTICOLI; i++ ) { 114 if (Magazzino[i].Attivo!='S' ) { 115 Magazzino[i]=ArtLetto; 116 i=maxarticoli; 117 } 118 } if (i==maxarticoli) StampaMessaggio("\nERRORE!! magazzino pieno"); break; case '2' : // MODIFICARE di un art. di magazzino 125 printf ("\ndigita il numero dell'articolo da modificare"); 126 fflush(stdin); 127 scanf ("%d", &NArticolo); 128 printf ("\n stai per modificare: \n"); 129 StampaArticolo(Magazzino[NArticolo]); // se articolo attivo lo modifica, altrimenti segnala errore 132 if (Magazzino[NArticolo].Attivo=='S' ) { 133 Magazzino[NArticolo]=AggiornaArticolo(Magazzino[NArticolo]); 134 StampaMessaggio("Articolo modificato "); 135 } 136 else 137 StampaMessaggio("Articolo inesistente");

3 MAGAZZINO.CPP January 2, 2008 Page break; case '3' : // modifica la quantita'a magazzino di un articolo 142 printf ("\ndigita il numero dell'articolo di cui modificare la quan tita"); 143 fflush(stdin); 144 scanf ("%d", &NArticolo); 145 if (Magazzino[NArticolo].Attivo=='S' ) { 146 printf ("\ninserire la nuova quantita'per l'articolo:\n"); 147 StampaArticolo(Magazzino[NArticolo]); 148 scanf ("%d", &QuantitaNew); 149 Magazzino[NArticolo]=AggiornaQtaArticolo(Magazzino[NArticolo], Q uantitanew ); 150 } 151 else 152 StampaMessaggio("Errore!!, articolo non attivo"); break; case '4' : // ricerca e Stampa tutti gli articoli in base a parte della descrizi one 157 printf ("\n Digita parte della descrizione in base alla quale esegui re la ricerca \n>"); 158 gets(strpezzo); 159 printf ("\n"); 160 printf (" Descrizione... Valore Unit Qta Q.Rio Prezzo ID\n"); 161 for (i=0; i <MAXARTICOLI; i++ ) { 162 if (Magazzino[i].Attivo=='S' ) { 163 //cerca se StrPezzo è contenuto in Magazzino[i] 164 if ( StrFind(Magazzino[i].Desc, StrPezzo)!=0 ) { 165 StampaArticolo(Magazzino[i]); 166 printf ("%3d\n", i); 167 } 168 } 169 } //fine for 170 StampaMessaggio("Fine elenco degli articoli trovati"); 171 break; case '5' : // cancella un articolo 174 printf ("\ndigita il numero dell'articolo da cancellare"); 175 fflush(stdin); 176 scanf ("%d", &NArticolo); 177 Magazzino[NArticolo]= CancellaArticolo(Magazzino[NArticolo] ); 178 break; case '6' : // calcola qtaà di riordino 181 for (i=0; i <MAXARTICOLI; i++ ) { 182 if (Magazzino[i].Attivo=='S' ) { 183 Magazzino[i]=RicalcoloRiordino( Magazzino[i] ); 184 } 185 } 186 StampaMessaggio("ricalcolo quantita'di riordino effettuato"); 187 break; case '7' : // Stampa un articolo 190 printf ("\ndigita il numero dell'articolo da stampare"); 191 fflush(stdin); 192 scanf ("%d", &NArticolo); 193 StampaArticolo(Magazzino[NArticolo]); 194 printf ("ID=%3d", NArticolo); 195 StampaMessaggio("... "); 196 break; case '8' : // Stampa di tutti gli articoli 199 printf ("\n"); 200 printf (" Descrizione... Valore Unit Qta Q.Rio Prezzo ID\n"); 201 for (i=0; i <MAXARTICOLI; i++ ) {

4 MAGAZZINO.CPP January 2, 2008 Page if (Magazzino[i].Attivo=='S' ) { 203 StampaArticolo(Magazzino[i]); 204 printf ("%3d\n", i); 205 } 206 } 207 StampaMessaggio("Fine elenco di tutti gli articoli "); 208 break; case '9' : // stampa elenco di tutti gli articoli con quantità minore di quella minima di riordino 211 printf ("\n"); 212 printf (" Descrizione... Valore Unit Qta Q.Rio Prezzo ID\n"); 213 for (i=0; i <MAXARTICOLI; i++ ) { 214 if (Magazzino[i].Attivo=='S' ) { 215 if (Magazzino[i].Quantita < Magazzino[i].QtaRio) { 216 // quantità bassa.. occorre riordinare 217 StampaArticolo(Magazzino[i]); 218 printf ("%3d\n", i); 219 } 220 } 221 } 222 StampaMessaggio("Fine elenco di tutti gli articoli "); break; case 'w' : 227 case 'W' : // salva su disco tutto il contenuto del magazzino 228 if (SalvaSuFile(&Magazzino[0])!=NULL) 229 StampaMessaggio("Salvataggio effettuato"); 230 else 231 StampaMessaggio("ERRORE Salvataggio FILE "); // } // fine switch } while (Ch!=27); // 27 e' il codice ascii del tasto ESC getch(); 239 } // fine main // funzione per l'inserimento dei dati di ogni singolo articolo 245 struct ArticoloMag InputArticolo( ) 246 { struct ArticoloMag Temp; printf ("\n digita la descrizione (max 40 char):"); 249 fflush(stdin); 250 gets (Temp.Desc); printf ("\n digita il valore del comp.:"); 253 fflush(stdin); 254 scanf("%f",&temp.valore); printf ("\n digita l'unita'di misura (max 4 char):"); 257 fflush(stdin); 258 gets (Temp.Unita); printf ("\n digita la quantità:"); 261 fflush(stdin); 262 scanf("%d",&temp.quantita); printf ("\n digita la quantità di riordino:"); 265 fflush(stdin); 266 scanf("%d",&temp.qtario); printf ("\n digita il prezzo :"); 269 fflush(stdin);

5 MAGAZZINO.CPP January 2, 2008 Page scanf("%f",&temp.prezzo); Temp.Attivo='S'; return Temp; 275 } // funzione per ricalcolare la quantità di riordino struct ArticoloMag RicalcoloRiordino(struct ArticoloMag Art ) 279 { // se l'articolo è attivo e la qta' di riordino è zero, 280 // assegna la qtà di riordino pari al 10% della quantità attuale 281 if (( Art.Attivo=='S') &&(Art.QtaRio==0) ) 282 Art.QtaRio= Art.Quantita / 10; 283 return Art; } //fine funzione // funzione per stampare a video in modo ordinato l' articolo e gli altri suoi dati 288 void StampaArticolo(struct ArticoloMag Art ) 289 { 290 if (Art.Attivo=='S') { 291 printf (" %-40s ", Art.Desc); 292 printf ("%6.2f ", Art.Valore); 293 printf ("%4s ", Art.Unita); 294 printf ("%5d ", Art.Quantita); 295 printf ("%5d ", Art.QtaRio); 296 printf ("%6.2f ", Art.Prezzo); 297 } 298 } //fine funzione // funzione per stampare a video TUTTO IL MAGAZzINO 303 void StampaMag( struct ArticoloMag *PtrArt ) 304 { } //fine funzione // funzione per aggiornare (modificare) un articolo 313 struct ArticoloMag AggiornaArticolo(struct ArticoloMag Art ) 314 { 315 struct ArticoloMag Temp; 316 int Ch; printf ("\ndescrizione:(%40s)",art.desc); 319 printf ("\nbatti M per modificare, qualsiasi altro tasto per confermare"); 320 fflush(stdin); 321 Ch=getche(); 322 if (Ch== 'M' Ch=='m') { 323 printf ("\n>"); 324 gets (Temp.Desc); 325 } 326 else 327 strcpy(temp.desc,art.desc); //copia stringhe printf ("\nvalore:(%f)",art.valore); 330 printf ("\nbatti M per modificare, qualsiasi altro tasto per confermare"); 331 fflush(stdin); 332 Ch=getche(); 333 if (Ch== 'M' Ch=='m') { 334 printf ("\n>"); 335 scanf("%f",&temp.valore); 336 } 337 else 338 Temp.Valore=Art.Valore; 339

6 MAGAZZINO.CPP January 2, 2008 Page printf ("\nunita di misura :(%5s)",Art.Unita); 342 printf ("\nbatti M per modificare, qualsiasi altro tasto per confermare"); 343 fflush(stdin); 344 Ch=getche(); 345 if (Ch== 'M' Ch=='m') { 346 printf ("\n>"); 347 gets (Temp.Unita); 348 } 349 else 350 strcpy(temp.unita,art.unita); //copia stringhe printf ("\nquantita:(%d)",art.quantita); 353 printf ("\nbatti M per modificare, qualsiasi altro tasto per confermare"); 354 fflush(stdin); 355 Ch=getche(); 356 if (Ch== 'M' Ch=='m') { 357 printf ("\n>"); 358 scanf("%d",&temp.quantita); 359 } 360 else 361 Temp.Quantita=Art.Quantita; printf ("\nquantita di riordino:(%d)",art.qtario); 364 printf ("\nbatti M per modificare, qualsiasi altro tasto per confermare"); 365 fflush(stdin); 366 Ch=getche(); 367 if (Ch== 'M' Ch=='m') { 368 printf ("\n>"); 369 scanf("%d",&temp.qtario); 370 } 371 else 372 Temp.QtaRio=Art.QtaRio; printf ("\nprezzo:(%f)",art.prezzo); 376 printf ("\nbatti M per modificare, qualsiasi altro tasto per confermare"); 377 fflush(stdin); 378 Ch=getche(); 379 if (Ch== 'M' Ch=='m') { 380 printf ("\n>"); 381 scanf("%f",&temp.prezzo); 382 } 383 else 384 Temp.Prezzo=Art.Prezzo; Temp.Attivo='S'; 388 return Temp; } //fine funzione // funzione per aggiornare solo la quantità di un articolo 395 struct ArticoloMag AggiornaQtaArticolo(struct ArticoloMag Art,int NQuantita ) 396 { // se l'articolo è attivo modifica solo la quantità attuale 397 if ( Art.Attivo=='S' ) 398 Art.Quantita= NQuantita; return Art; 401 } // funzione di cancellazione articolo struct ArticoloMag CancellaArticolo(struct ArticoloMag Art ) 406 { 407 Art.Attivo='N'; 408 return Art; 409 }

7 MAGAZZINO.CPP January 2, 2008 Page // cerca se una stringa è presente nell'altra 412 int StrFind( char *PtrDescrizione, char *PtrPezzo) 413 { 414 int Lung1, Lung2; //lunghezza delle due stringhe 415 int i; //contatore generico per ciclo for 416 char *OldPtr; // valore iniziale del puntatore 417 int NCar; // numero dei caratteri trovati uguali Lung2=strlen(PtrDescrizione); 420 Lung1=strlen(PtrPezzo); 421 // se il pezzo è più lungo.. è impossibile che sia contenuta in descrizione 422 if (Lung1 > Lung2) return 0; OldPtr=PtrPezzo; 425 NCar=0; for (i=0; i< Lung2; i++ ){ 428 if (*PtrPezzo == *PtrDescrizione) { 429 // trovato almeno un carattere corrispondente e confornta i rimanenti 430 NCar++; 431 if (NCar==Lung1) return 1; //trovato prima corrispondenza PtrPezzo++; 434 } 435 else { // diverso ricomincia confronto da capo 436 NCar=0; 437 PtrPezzo=OldPtr; // riparti con il puntatore dall'inizio stringa 438 } PtrDescrizione++; 441 } 442 return 0; // non trovato 443 } // fine funzione int LeggeDaFile (struct ArticoloMag *PtrArt ) 447 { 448 FILE *Fh; 449 int i; 450 struct ArticoloMag Art; if ((Fh =fopen ("Magazzino.txt", "rb")) == NULL) 453 { 454 printf("cannot open input file.\n"); 455 return NULL; 456 } for (i=0; i <MAXARTICOLI; i++ ) { 459 fread(ptrart, sizeof(art), 1, Fh); /* write struct s to file */ 460 PtrArt++; 461 } // for fclose(fh); 464 return 123; 465 } // fine funzione int SalvaSuFile (struct ArticoloMag *PtrArt ) 470 { 471 FILE *Fh; 472 int i; if ((Fh =fopen ("Magazzino.txt", "wb")) == NULL) 475 { 476 printf("cannot open output file.\n"); 477 return NULL; 478 } 479

8 MAGAZZINO.CPP January 2, 2008 Page for (i=0; i <MAXARTICOLI; i++ ) { 481 if (PtrArt->Attivo=='S' ) { 482 fwrite(ptrart, sizeof(*ptrart), 1, Fh); /* write struct s to file */ 483 PtrArt++; 484 } //if 485 } // for fclose(fh); 488 return 123; 489 } // fine funzione // stampa un messaggio a video e attende un tasto 493 void StampaMessaggio(char *PtrS) 494 { 495 printf("\n"); 496 puts (PtrS); 497 printf("\n \n batti un tasto per continuare"); 498 fflush(stdin); 499 getch(); 500 } /* Esempio di esecuzione 503 PROGRAMMA SEMPLIFICATO PER LA GESTIONE DI MAGAZZINO scegli la voce che ti interessa 505 1) - inserisci un articolo 506 2) - modifica un articolo 507 3) - modifica quantitó di un articolo 508 4) - cerca un articolo in base a parte descrizione 509 5) - Cancella un articolo 510 6) - Calcola quantitó di riordino 511 7) - Stampa un articolo 512 8) - Stampa tutti gli articoli 513 9) - Stampa elenco articoli da riordinare 514 W) - scrivi tutto il magazzino su disco 515 batti ESC per uscire 516 Descrizione... Valore Unit Qta Q.Rio Prezzo ID 517 aaaaa bbbbbbb condensatore elettrolitico uf con con con xx uf potenziometro ohm Fine elenco di tutti gli articoli batti un tasto per continuare */

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

1: /* Nome del programma: gestione_articoli_01.cpp 2: Realizzato da: Gaetano Della Cerra 3: Data: 06/02/2010 - III Informatica Serale I.T.I.S.

1: /* Nome del programma: gestione_articoli_01.cpp 2: Realizzato da: Gaetano Della Cerra 3: Data: 06/02/2010 - III Informatica Serale I.T.I.S. 1: /* Nome del programma: gestione_articoli_01.cpp 2: Realizzato da: Gaetano Della Cerra 3: Data: 06/02/2010 - III Informatica Serale I.T.I.S. Molinari 4: Il programma gestisce gli articoli di un negozio

Dettagli

Esercizi di programmazione in C

Esercizi di programmazione in C Esercizi di programmazione in C Esercizio 1 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a partire dal

Dettagli

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015. Indice

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015. Indice LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015 VINCENZO MARRA Indice Parte 1. Input/Output standard dalla console 2 Esercizio 1 2 Eco

Dettagli

Esercitazione 7. Procedure e Funzioni

Esercitazione 7. Procedure e Funzioni Esercitazione 7 Procedure e Funzioni Esercizio Scrivere un programma che memorizza in un array di elementi di tipo double le temperature relative al mese corrente e ne determina la temperatura massima,

Dettagli

Breve riepilogo della puntata precedente:

Breve riepilogo della puntata precedente: Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta

Dettagli

RICERCA DI UN ELEMENTO

RICERCA DI UN ELEMENTO RICERCA DI UN ELEMENTO Si legga da tastiera un array di N elementi (N stabilito dall utente) Si richieda un elemento x il programma deve cercare l elemento x nell array Se l elemento è presente, deve visualizzare

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

Gestione dei File. dischi nastri cd

Gestione dei File. dischi nastri cd Gestione dei File Per mantenere disponibili i dati tra le diverse esecuzioni di un programma, questi si devono archiviare in file su memoria di massa (dati persistenti): dischi nastri cd Un file è un astrazione

Dettagli

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2011-2012 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma OTTAVA ESPERIENZA DI LABORATORIO L elaborazione dei files

Dettagli

Compito di Fondamenti di Informatica

Compito di Fondamenti di Informatica Compito di Fondamenti di Informatica In un magazzino viene utilizzato un archivio informatico, nel quale vengono memorizzate le informazioni relative ai prodotti contenuti nel magazzino e che ne permette

Dettagli

PROGRAMMI LINGUAGGIO C

PROGRAMMI LINGUAGGIO C PROGRAMMI IN LINGUAGGIO C Corso di Programmazione Modulo B Prof. GIULIANO LACCETTI Studentessa Bellino Virginia Matr. 408466 Corso di Diploma in Informatica http://www.dicecca.net Indice 1. Package per

Dettagli

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni. Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni

Dettagli

Fondamenti di Informatica T. Linguaggio C: File

Fondamenti di Informatica T. Linguaggio C: File Linguaggio C: File I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa, che consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale.

Dettagli

Le system call: fork(), wait(), exit()

Le system call: fork(), wait(), exit() Le system call: fork(), wait(), exit() Di seguito viene mostrato un programma che fa uso di puntatori a funzione, nel quale si mette in evidenza il loro utilizzo. Programma A1 #include int add(a,b,c)

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Blocco Note Blocco Note

Blocco Note Blocco Note Blocco Note Blocco Note Che cos è? È un programma che appartiene alla famiglia dei text editor. A che cosa serve? A generare file di testo, ossia a scrivere testi Nota: nella versione inglese il programma

Dettagli

Linguaggio C - Funzioni

Linguaggio C - Funzioni Linguaggio C - Funzioni Funzioni: Il linguaggio C è di tipo procedurale; ogni programma viene suddiviso in sottoprogrammi, ognuno dei quali svolge un determinato compito. I sottoprogrammi si usano anche

Dettagli

---------------------------------------------------------------- Puntatori a funzione. In C è possibile utilizzare dei puntatori a funzioni, ovvero

---------------------------------------------------------------- Puntatori a funzione. In C è possibile utilizzare dei puntatori a funzioni, ovvero ---------------------------------------------------------------- Puntatori a funzione. In C è possibile utilizzare dei puntatori a funzioni, ovvero delle variabili a cui possono essere assegnati gli indirizzi

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 della prova scritta del 28 Febbraio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int min = 3; int i; Scrivere la porzione di codice

Dettagli

RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di

RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di esempio CERCA 90 NEL SACCHETTO = estrai num Casi num 90 Effetti CERCA 90 NEL

Dettagli

Esercitazione 3. Corso di Fondamenti di Informatica

Esercitazione 3. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 3 Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

puntatori Lab. Calc. AA 2007/08 1

puntatori Lab. Calc. AA 2007/08 1 puntatori Lab. Calc. AA 2007/08 1 parametri delle funzioni (dalla lezione scorsa) gli argomenti in C vengono passati by value dalla funzione chiamante alla funzione chiamata la lista degli argomenti viene

Dettagli

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...

Dettagli

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1) Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Struttura dati FILE. Concetto di FILE

Struttura dati FILE. Concetto di FILE Struttura dati FILE Concetto di FILE Per poter mantenere disponibili dei dati tra diverse esecuzioni di un programma (PERSISTENZA dei dati), è necessario poterli archiviare su memoria di massa. Un file

Dettagli

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio 1-La memoria dinamica La scrittura di un programma (indipendentemente dal linguaggio adottato) deve sempre tener conto

Dettagli

I puntatori e l allocazione dinamica di memoria

I puntatori e l allocazione dinamica di memoria I puntatori e l allocazione dinamica di memoria L allocazione delle variabili Allocazione e rilascio espliciti di memoria Le funzioni malloc e free 2 2006 Politecnico di Torino 1 Allocare = collocare in

Dettagli

Concetti chiave. Struct. Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture

Concetti chiave. Struct. Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture Concetti chiave Struct Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture Struct Per aggregare elementi di tipo diverso si utilizza una struttura. struct

Dettagli

Trattamento delle STRINGHE in C(++)

Trattamento delle STRINGHE in C(++) Trattamento delle STRINGHE in C(++) Le cose che qui vengono dette valgono sia per il linguaggio C che per il C++. Nel linguaggio C non esiste, a differenza di quel che avviene per altri linguaggi di programmazione

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Dettagli

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30' Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit5.zip contenente i file necessari (solution di VS2008 e progetto compresi). Avvertenze per la consegna: apporre all inizio di

Dettagli

Sistemi Operativi (M. Cesati)

Sistemi Operativi (M. Cesati) Sistemi Operativi (M. Cesati) Compito scritto del 16 luglio 2015 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare

Dettagli

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

Funzioni. Corso di Fondamenti di Informatica

Funzioni. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Funzioni Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti e dei

Dettagli

Prova Scritta del 19/07/10

Prova Scritta del 19/07/10 Avvertenze Usare ESCLUSIVAMENTE penne ad inchiostro nero o blu (NO MATITE). Consegnare solo fogli formato A4 scritti da un solo lato. In testa a ciascun foglio scrivere: cognome, nome, numero progressivo

Dettagli

Sincronizzazione e comunicazione tra processi in Unix. usati per trasferire ad un processo l indicazione che un determinato evento si è verificato.

Sincronizzazione e comunicazione tra processi in Unix. usati per trasferire ad un processo l indicazione che un determinato evento si è verificato. Processi parte III Sincronizzazione e comunicazione tra processi in Unix Segnali: usati per trasferire ad un processo l indicazione che un determinato evento si è verificato. Pipe: struttura dinamica,

Dettagli

ESERCIZI DI PROGRAMMAZIONE C IN AMBIENTE UNIX

ESERCIZI DI PROGRAMMAZIONE C IN AMBIENTE UNIX ESERCIZI DI PROGRAMMAZIONE C IN AMBIENTE UNIX Introduzione In questa dispensa sono stati raccolti alcuni esercizi di programmazione C in ambiente Unix, tratti dagli esami di Sistemi Operativi svoltisi

Dettagli

Scrittura formattata - printf

Scrittura formattata - printf Esercizi su Input/Output con formato FormattedIO 1 Scrittura formattata - printf Funzione printf int printf ( , ) La funzione restituisce un valore intero uguale ai caratteri

Dettagli

SOLUZIONE ESERCIZIO 1

SOLUZIONE ESERCIZIO 1 SOLUZIONE ESERCIZIO 1 Progettare un algoritmo che dati tre numeri (voti) a, b, c che possono assumere i valori interi da 18 a 30, calcoli la loro media. #include void main() { int a, b, c; float

Dettagli

Introduzione al linguaggio C Gli array

Introduzione al linguaggio C Gli array Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome

Dettagli

Problem solving elementare su dati vettoriali

Problem solving elementare su dati vettoriali Problem solving elementare su dati vettoriali Introduzione Verifiche su sequenze di dati Selezione o ricerca di dati 2 2006 Politecnico di Torino 1 Introduzione (1/2) I problemi di verifica consistono

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

Appello di Informatica B

Appello di Informatica B Politecnico di Milano Facoltà di Ingegneria Industriale 19 febbraio 2004 Appello di Informatica B Prof. Angelo Morzenti - Prof. Vincenzo Martena Cognome e nome: Matricola: Tipo di prova: recupero I prova

Dettagli

Gestione delle stringhe in C

Gestione delle stringhe in C Gestione delle stringhe in C 1 Generalità Una stringa è un vettore di caratteri il cui ultimo elemento è un carattere terminatore (o di fine stringa), codificato dal carattere di codice 0 e rappresentato

Dettagli

2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore.

2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore. 1 Esercizio 1 1. Immaginate di avere una calcolatore che invece che poter rappresentare i classici due valori per ogni bit (0/1) possa rappresentare 7 valori per ogni bit. (a) Quanti bit gli occorreranno

Dettagli

ESEMPI DI APPLICAZIONI ONC-RPC

ESEMPI DI APPLICAZIONI ONC-RPC ESEMPI DI APPLICAZIONI ONC-RPC Applicazione 1: Procedura remota per la somma di due numeri Applicazione 2: Procedura remota per la realizzazione di una chat Annarita Fierro matricola: 628404 Applicazione

Dettagli

/* esercizio 5. Memorizzare l elenco dei prodotti giacenti in un magazzino in modo da poter effettuare le seguenti operazioni :

/* esercizio 5. Memorizzare l elenco dei prodotti giacenti in un magazzino in modo da poter effettuare le seguenti operazioni : /* esercizio 5. Memorizzare l elenco dei prodotti giacenti in un magazzino in modo da poter effettuare le seguenti operazioni : Stampare le caratteristiche di un determinato prodotto (codice, descrizione,

Dettagli

Linguaggio C - Stringhe

Linguaggio C - Stringhe Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - Stringhe La presente dispensa e da utilizzarsi ai

Dettagli

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Cos è una stringa (1) Stringhe DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Una stringa è una serie di caratteri trattati come una singola unità. Essa potrà includere lettere, cifre, simboli e caratteri

Dettagli

Gestione dei file. File di testo e binari

Gestione dei file. File di testo e binari Gestione dei file Un file e definito come un oggetto, presente nel file system, costituito da una sequenza continua di bytes Un file, per poter essere utilizzato, deve essere aperto Successivamente e possibile

Dettagli

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia)

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia) ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia) Scrivere una funzione per definire se un numero è primo e un programma principale minimale che ne testa la funzionalità. #include

Dettagli

Esercizio 1. Esercizio 1

Esercizio 1. Esercizio 1 Esercizio 1 Un registratore di cassa registra su di un file binario alcuni dati relativi agli scontrini emessi. In particolare, tramite una struttura dati di nome scontrino, il registratore di cassa tiene

Dettagli

IEIM. Esercizio Gestione Automobili Strutture e Files 2014-2015. Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.it

IEIM. Esercizio Gestione Automobili Strutture e Files 2014-2015. Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.it IEIM Esercizio Gestione Automobili Strutture e Files 2014-2015 Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.it 1 2 Automobili Rappresentare in C una automobile. Nel nostro caso, una automobile

Dettagli

Linguaggio C. Esercizio 1

Linguaggio C. Esercizio 1 Linguaggio C Esercizi su puntatori e liste Walter Didimo (e-mail:didimo@dia.uniroma3.it) supplemento al Corso di Calcolatori Elettronici (Riccardo Torlone) 1 Esercizio 1 Siano p e q due puntatori a variabili

Dettagli

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it INTRODUZIONE, LINGUAGGIO, HANDS ON Giuseppe Cirillo g.cirillo@unina.it Il linguaggio C 1972-Dennis Ritchie 1978-Definizione 1990-ANSI C 1966 Martin Richars (MIT) Semplificando CPL usato per sviluppare

Dettagli

La selezione binaria

La selezione binaria Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per

Dettagli

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014 Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 18 31/03/2014 Funzioni: Dichiarazione e Definizione La dichiarazione di una funzione serve a comunicare al compilatore quali sono

Dettagli

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Primi programmi in C

Primi programmi in C Primi programmi in C Docente: Violetta Lonati PAS classe A042 Corso introduttivo pluridisciplinare in Informatica Nota: ricordate le opzioni principali del comando gcc (per eventuali dubbi, consultate

Dettagli

Bontà dei dati in ingresso

Bontà dei dati in ingresso COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Il costo puo' dipendere dal valore dei dati in ingresso Un tipico esempio è dato

Dettagli

Struttura a record. File ad accesso diretto. Modalità di apertura. Modalità di apertura

Struttura a record. File ad accesso diretto. Modalità di apertura. Modalità di apertura Struttura a record 2 File ad accesso diretto Il file è organizzato in record aventi tutti la stessa struttura e quindi dimensione record 0 record 1 record 2 Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione

Dettagli

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 08/03/07 Nota Questi lucidi sono tratti

Dettagli

Esercitazione 10. Strutture ed Enumerazioni. Allocazione dinamica di memoria

Esercitazione 10. Strutture ed Enumerazioni. Allocazione dinamica di memoria Esercitazione 10 Strutture ed Enumerazioni Allocazione dinamica di memoria ESERCIZIO Scrivere una funzione che, dato un array di interi bidimensionale di dimensione n n, calcoli e stampi la somma degli

Dettagli

Thread: sincronizzazione Esercitazioni del 09 Ottobre 2009

Thread: sincronizzazione Esercitazioni del 09 Ottobre 2009 Thread: sincronizzazione Esercitazioni del 09 Ottobre 2009 Luca Fossati, Fabrizio Castro, Vittorio Zaccaria October 10, 2009 Sincronizzazione - 1 1 Esercizio 1: Sincronizzazione - 1 Qual è il problema

Dettagli

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++ ISTITUTO TECNICO INDUSTRIALE STATALE G A L I L E O F E R R A R I S DIISPENSA DII IINFORMATIICA E SIISTEMII AUTOMATIICII LA GESTIONE DEI FILE DI TESTO IN C++ Le classi per la gestione dei file. Il C++ è

Dettagli

Laboratorio di Informatica Ingegneria Clinica Lezione 30/11/2011

Laboratorio di Informatica Ingegneria Clinica Lezione 30/11/2011 Laboratorio di Informatica Ingegneria Clinica Lezione 30/11/2011 Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147 00161 Roma I/O in C Il sistema di I/O del C è una interfaccia uniforme

Dettagli

(1) - - (4) R4 = R7 * R7 (4) (2) (3) 5 - (4) rinviata perché in WAW con (3) 6 (3) e (4) ritirabili ma attendono il completamento di (2) (2) (3) (4)

(1) - - (4) R4 = R7 * R7 (4) (2) (3) 5 - (4) rinviata perché in WAW con (3) 6 (3) e (4) ritirabili ma attendono il completamento di (2) (2) (3) (4) Esercizio 1 (20%) Si assuma di avere una macchina con 10 registri ufficiali (da R0 a R9) e sufficienti registri segreti in grado di avviare 2 istruzioni per ciclo di clock. Tale macchina richiede 2 cicli

Dettagli

Strutture dati e realizzazione in C. Componenti software:

Strutture dati e realizzazione in C. Componenti software: Strutture dati e realizzazione in C Strutture dati: Termine usato per indicare tipi con elementi del dominio compositi, ad esempio: vettori e matrici; tavole; liste; insiemi; pile e code; alberi e grafi.

Dettagli

Le funzioni, e le istruzioni di input/output

Le funzioni, e le istruzioni di input/output Linguaggio C Le funzioni, e le istruzioni di input/output 1 Funzioni! Sono sottoprogrammi per svolgere un particolare compito! Sequenze di istruzioni (raggruppate tramite le parentesi graffe) alle quali

Dettagli

OE-TL100 SOFTWARE PER RACCOLTA ORDINI MAGAZZINO

OE-TL100 SOFTWARE PER RACCOLTA ORDINI MAGAZZINO OE-TL100 SOFTWARE PER RACCOLTA ORDINI MAGAZZINO Il software OE-TL100 è un software per la raccolta ordini in magazzino creato dalla MC2 per il terminale batch TL100. Il software è composto da due parti,

Dettagli

Alfabeto ed elementi lessicali del linguaggio C

Alfabeto ed elementi lessicali del linguaggio C Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2015-2016 Alfabeto ed elementi lessicali del linguaggio C Pietro Di Lena - pietro.dilena@unibo.it s t a t i c s h o r t l e g s ; i n

Dettagli

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. www.dia.unisa.it/dottorandi/murano. Il linguaggio C II

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. www.dia.unisa.it/dottorandi/murano. Il linguaggio C II Laboratorio di Algoritmi e Strutture Dati Aniello Murano www.dia.unisa.it/dottorandi/murano 1 Il linguaggio C II 2 1 Indice (seconda parte) Funzioni Array Puntatori Preprocessore Storage Class Ricorsione

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 18 dicembre 2007 Esercizio 1: rappresentazione di una tabella di occorrenze L obiettivo è quello di rappresentare in modo efficiente

Dettagli

Esercizi svolti durante le ore di Informatica e Sistemi automatici nelle classi del Liceo Scientifico Tecnologico del Liceo Milli di Teramo

Esercizi svolti durante le ore di Informatica e Sistemi automatici nelle classi del Liceo Scientifico Tecnologico del Liceo Milli di Teramo Esercizi svolti durante le ore di Informatica e Sistemi automatici nelle classi del Liceo Scientifico Tecnologico del Liceo Milli di Teramo /*Caricare un vettore di n numeri float, ordinarlo e e stamparlo

Dettagli

Codifica: dal diagramma a blocchi al linguaggio C++

Codifica: dal diagramma a blocchi al linguaggio C++ Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU

Dettagli

Fondamenti di Informatica. Tecniche di input/output per l'accesso ai file

Fondamenti di Informatica. Tecniche di input/output per l'accesso ai file Corso di per il corso di Laurea di Ingegneria Meccanica Tecniche di input/output per l'accesso ai file Università degli Studi di Udine - A.A. 2010-2011 Docente Ing. Sandro Di Giusto Ph.D. 1 L'importanza

Dettagli

Esempio: Array di struct

Esempio: Array di struct Esempio: Array di struct Scrivere un programma C che definisca la struttura esame, composta dal nome dell esame (stringa) e dal voto (intero). Si leggano poi da terminale n esami, con n definito dall utente

Dettagli

Politecnico di Milano - Facoltà di Ingegneria INFORMATICA A - Corso per allievi GESTIONALI - Prof. C. SILVANO A. A. 2001/2002-5 febbraio 2003 -A

Politecnico di Milano - Facoltà di Ingegneria INFORMATICA A - Corso per allievi GESTIONALI - Prof. C. SILVANO A. A. 2001/2002-5 febbraio 2003 -A Politecnico di Milano - Facoltà di Ingegneria INFORMATICA A - Corso per allievi GESTIONALI - Prof. C. SILVANO A. A. 2001/2002-5 febbraio 2003 -A COGNOME: NOME: MATRICOLA: Istruzioni: Scrivere solo sui

Dettagli

Lab. di Sistemi Operativi - Esercitazione n 9- -Thread-

Lab. di Sistemi Operativi - Esercitazione n 9- -Thread- Lab. di Sistemi Operativi - Esercitazione n 9- -Thread- 1 Sommario Esercizi su: Comunicazione tra processi: la funzione pipe() Condivisione dati e codice tra due o più processi: concetto di Thread 2 -

Dettagli

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol. Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione prof. Lorenzo Porcelli e mail: genna18@iol.it sito: users.iol.it/genna18 Risoluzione di un problema Dato

Dettagli

File e puntatori a file

File e puntatori a file File e puntatori a file Vitoantonio Bevilacqua vitoantonio.bevilacqua@poliba.it La libreria stdio.h mette a disposizione delle funzioni che hanno la peculiarità di trattare con questa nuova tipologia di

Dettagli

Unità B3 Strutture di controllo

Unità B3 Strutture di controllo (A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: I/O su console Package Blocco di controllo Oggetto System.out Oggetto System.in Oggetto Tastiera Metodo readline() Strutture

Dettagli

http://esamix.labx Quotazione compareto( ) Quotazione piurecente( ) Quotazione Quotazione Quotazione non trovato count( )

http://esamix.labx Quotazione compareto( ) Quotazione piurecente( ) Quotazione Quotazione Quotazione non trovato count( ) Materiale di ausilio utilizzabile durante l appello: tutto il materiale è a disposizione, inclusi libri, lucidi, appunti, esercizi svolti e siti Web ad accesso consentito in Lab06. L utilizzo di meorie

Dettagli

Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix-

Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix- Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix- 1 Sommario Esercizi sulla gestione dei processi Creazione di un nuovo processo: fork Sincronizzazione tra processi: wait 2 -

Dettagli

Array. Maurizio Palesi Salvatore Serrano. In C si possono definire tipi strutturati Vi sono due costruttori fondamentali

Array. Maurizio Palesi Salvatore Serrano. In C si possono definire tipi strutturati Vi sono due costruttori fondamentali MASTER Information Technology Excellence Road (I.T.E.R.) Array Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di dato stutturati In C si possono

Dettagli

La struttura dati ad albero binario

La struttura dati ad albero binario La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,

Dettagli

Problem solving avanzato

Problem solving avanzato Problem solving avanzato Formulazione del problema Struttura dati e algoritmo Il programma 2 26 Politecnico di Torino 1 Dati in input (1/4) Sono dati due file di testo, contenenti le informazioni sulle

Dettagli

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31 Le Liste Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Le Liste 1 / 31 Cos è una Lista Una lista è una collezione di elementi omogenei che: potrebbero

Dettagli

Corso di Programmazione ad oggetti

Corso di Programmazione ad oggetti Corso di Programmazione ad oggetti Il sistema di I/O del C++ a.a. 2008/2009 Claudio De Stefano 1 Il Modello di Von Neumann Il Modello di Von Neumann prevede che la CPU carichi in maniera sequenziale i

Dettagli

File I/O. M. R. Guarracino: File I/O 1

File I/O. M. R. Guarracino: File I/O 1 File I/O M. R. Guarracino: File I/O 1 File I/O Gran parte delle operazioni su file in ambiente UNIX possono essere eseguite utilizzando solo cinque funzioni: open read write lseek close M. R. Guarracino:

Dettagli

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...

Dettagli

Linguaggio C Compilazione, linking e preprocessor

Linguaggio C Compilazione, linking e preprocessor FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Compilazione, linking e preprocessor 2001 Pier Luca Montessoro

Dettagli

Corso di Informatica Medica Esercitazione 1I 2013-2014.! Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.com

Corso di Informatica Medica Esercitazione 1I 2013-2014.! Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.com Corso di Informatica Medica Esercitazione 1I 2013-2014! Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.com 1 2 Esercizio 1 Scrivere un programma che legga due array di interi da tastiera dica

Dettagli