INFORMATICA. Dati sulla linea di comando. Dati sulla linea di comando. Dati sulla linea di comando. Dati sulla linea di comando
|
|
- Artemisia Montanari
- 5 anni fa
- Visualizzazioni
Transcript
1 INFORMATICA Abbiamo già avuto occasione di osservare come il main sia in realtà una funzione. Come le altre funzioni il main è in grado di ricevere dei parametri che devono essere indicati tra le parentesi tonde che devono seguire la parola chiave main. Questi parametri vanno scritti di seguito al nome del programma sulla linea di comando e separati tra loro dallo spazio. Si tratta evidentemente di un utile alternativa all introduzione dei dati da tastiera. Esempio: bmi Piero Demichelis 2 I parametri così indicati vengono passati dal sistema operativo al main tramite la seguente coppia di parametri: int argc char *argv[] argument counter argument vector argc è una variabile intera che contiene il numero di parametri contenuti nel vettore di stringhe argv. argv è un vettore di stringhe. Queste due variabili devono essere dichiarate come parametri della funzione main: int main (int argc, char *argv[]) Piero Demichelis 3 argc indica il numero di parametri presenti sulla riga di comando, incluso il nome del programma (pertanto vale sempre almeno 1). il vettore argv[ ] (in realtà è una matrice di caratteri) contiene i parametri veri e propri sottoforma di stringhe di caratteri secondo il seguente formato: - argv[0] è il nome del programma; - argv[n] è la stringa che rappresenta l ennesimo parametro dopo il nome del programma. I parametri pertanto sono sempre delle stringhe: per trasformarli in rappresentazioni numeriche occorre usare le funzioni approppriate (atoi, atol, atof) o la sscanf. Piero Demichelis 4
2 Struttura - Esempio: c:\> programma.exe 3 pippo.dat 3.2 argc = 4 argv[0] programma.exe\0 Scrivere un programma che legga sulla linea di comando due interi N e D, e visualizzi tutti i numeri minori di N che sono divisibili per D. Il programma dovrà pertanto essere eseguito con il seguente comando: argv[1] argv[2] argv[3] 3\0 pippo.dat\0 3.2\0 myprog N D dove myprog è il nome del programma, N e D sono i due valori richiesti per il funzionamento del programma. Piero Demichelis 5 Piero Demichelis 6 #include <stdio.h> int main(int argc, char *argv[]) int N, D, i; Test per verificare che l utente abbia introdotto il numero esatto di dati if (argc!= 3) printf ( \nnumero argomenti errato\nsintassi: myprog N D ); return 1; N = atoi (argv[1]); /* oppure: sscanf (argv[1], %d, &N); converte N */ D = atoi (argv[2]); /* oppure: sscanf (argv[2], %d, &D); converte D */ for (i = 1; i < N; i++) if ((i % D) == 0) printf ( \n%d, i); INFORMATICA typedef Piero Demichelis 7
3 Ridefinizione dei tipi: typedef E possibile ridefinire un tipo già esistente mediante la parola chiave typedef, cosicché si può utilizzare un nuovo identificatore (sinonimo) al posto del precedente. INFORMATICA Formato: typedef tipo_esistente nuovo_nome; Esempio: typedef long int interolungo; /* ridefinizione di tipo */ interolungo dato_int; /* dato_int e' un intero lungo */ Mediante typedef si possono definire, ad esempio, tipi astratti, integer8, integer16 e integer32, dall'ovvio significato, per poi ridefinirli in funzione del compilatore effettivamente usati. Il tipo enumerazione Piero Demichelis 9 Nei problemi reali può succedere di dover trattare colori, categorie, dimensioni, ecc., per i quali non esiste un tipo predefinito che si adatti opportunamente alla loro rappresentazione. In questi casi il C permette di definire le entità su cui il programma deve operare: questa possibilità è data dalla definizione dei tipi enumerati. La forma generale è: enum [identif_tipo] identif. [, identif.] [variabile]; enum identif_tipo variabile; dove le parti opzionali sono tra parentesi quadra. Piero Demichelis 11 Esempio: enum colore bianco, rosso, blu, giallo, verde, nero; enum week lunedi, martedi, mercoledi, giovedi, venerdi, sabato, domenica;... enum colore col_parete; enum week giorno; La variabile col_parete, di tipo colore, potrà assumere i valori bianco, rosso, blu, ecc. La variabile giorno di tipo week i valori lunedi, martedi, ecc. Piero Demichelis 12
4 La definizione può apparire in varie forme: a) enum identif. [, identif.] variabili ; variabile può assumere uno dei valori della lista (espressi in modo simbolico); esempio: enum colore bianco, rosso, blu, giallo, verde, nero col_parete; b) enum nome_tipo identif. [, identif.];... enum nome_tipo variabili ; In questo modo si identifica con nome_tipo la lista dei valori assunti, successivamente si definisce variabile di quel tipo enumerativo che potrà assumere soltanto i valori indicati nella lista precedente. Piero Demichelis 13 Ad esempio: enum colore bianco, rosso, blu, giallo, verde, nero;... enum colore col_parete; c) enum nome_tipo ident. [, ident.] variabile_1;... enum nome_tipo variabile_2,..., variabile_n ; è una combinazione delle precedenti; esempio: enum colore bianco, rosso, blu, giallo, verde, nero parete_a;... enum colore parete_b; Piero Demichelis 14 In un programma si possono pertanto avere istruzioni del tipo: col_parete = verde; giorno = mercoledi; Nella definizione di tipo si evidenziano due elementi: l identificatore di tipo, detto tag, e gli identificatori che verranno usati per esprimere i valori assunti da quel tipo. I valori assunti da quel tipo corrispondono a delle costanti intere definite in modo automatico dal compilatore, che pertanto devono essere uniche nel programma. Ad esempio, enum festivo sabato, domenica; enum feriale lunedi, martedi, mercoledi, giovedi, venerdi, sabato; La lista degli identificatori che denotano i valori assunti da un tipo enumerato forma un insieme ordinato che il compilatore codifica con valori interi crescenti a partire da 0. Nella definizione del tipo colore, l'identificatore bianco viene codificato con 0, rosso con 1, blu con 2, ecc. Si possono modificare questi valori, assegnati automaticamente, imponendo i valori interi che si vogliono assegnare direttamente nella definizione. Si fa seguire al nome dell'identificatore il segno uguale e il valore che si intende assegnare. Il compilatore assumerà questo numero come nuovo valore di partenza per le assegnazioni successive. è errato perché sabato è presente in due tipi; analogamente è illecito usare, per esempio, l'identificatore domenica come nome di una variabile. Piero Demichelis 15 Piero Demichelis 16
5 Esempi: enum colore bianco, rosso, giallo, verde, nero; bianco vale 0, rosso vale 1, blu vale 2, giallo vale 3, ecc. enum colore bianco, rosso, blu = 20, giallo, verde, nero; In questo caso bianco vale 0, rosso vale 1, blu vale 20, giallo vale 21, ecc. E possibile attribuire a più identificatori valori identici, o esplicitamente (ad esempio, blu = 20, giallo = 20), o implicitamente: se, ad esempio, si pone blu = 0 (lo stesso valore di bianco che a questo punto è già stato codificato), giallo assumerà lo stesso valore di rosso, cioé 1). In generale quindi questi identificatori agiscono come costanti intere e possono essere usati dovunque è appropriata una costante. Un'applicazione interessante è la definizione del tipo logico (assente in C) ottenuta combinando la definizione di tipo enumerato con la creazione di un tipo simbolico mediante typedef: typedef enum FALSO, VERO boolean; /*boolean è definito come sinonimo di un tipo enumerato a due valori*/ boolean finito, trovato; /* definizione di due variabili logiche */ Si noti che FALSO e VERO sono definite in un modo implicito e assumono rispettivamente i valori 0 e 1. Piero Demichelis 17 Piero Demichelis 18 Il linguaggio C definisce gli enumerati come una forma particolare del tipo intero: ne consegue che i valori definiti in tipi enumerati differenti sono a tutti gli effetti dei valori interi. Sono pertanto lecite (sintatticamente, non semanticamente!) assegnazioni di valori di un tipo enumerato a una variabile di un altro tipo enumerato. Un'altra conseguenza è che per le operazioni di I/O dei dati di tipo enumerato non sono previsti specificatori ad hoc, in quanto sono a tutti gli effetti degli interi. Esempio: enum materia italiano, latino, storia, geografia; enum giorni lunedi, martedi; enum materia corso; enum giorni domani; main() corso = storia; /* corso assume il valore 2 */ corso = 3; /* corso assume il valore 3 */ domani = latino; /* domani assume il valore 1 */ Piero Demichelis 19 Piero Demichelis 20
6 enum: esempio Esempio: programma per introdurre da terminale i voti acquisiti in ogni materia di insegnamento e calcolo della media. #include <stdio.h> main() /* definizioni */ enum materia italiano, latino, storia, geografia; double sommavoti, voto, numvoti; enum materia corso; numvoti = 0; sommavoti = 0; printf ( \ncalcola la media dei voti. Introdurre i voti.\n"); Piero Demichelis 21 enum: esempio for (corso = italiano; corso <= geografia; corso++) printf ( \nvoto di "); /* costruisce il messaggio di richiesta voto */ switch (corso) case italiano: printf ("italiano: "); break; case latino: printf ("latino: "); break; case storia: printf ("storia: "); break; case geografia: printf ("geografia: "); scanf ("%lf ", &voto); sommavoti += voto; /* accumula in sommavoti (per la media) */ numvoti++; /* incrementa numvoti (per la media) */ printf ("Media dei voti: %5.2f\n", sommavoti/numvoti); Piero Demichelis 22 INFORMATICA Supponiamo di dover realizzare una base dati contenente i nomi e l anno di nascita di una popolazione studentesca. Non si può ricorrere a una matrice bidimensionale con una dimensione per le variabili di tipo carattere (per i nomi) e l'altra per la variabile intera (anno di nascita): le matrici possono essere di dimensioni qualsiasi ma il tipo-base deve essere unico! Occorrerebbe definire una matrice (vettore di vettori) di caratteri per i nomi e un vettore di interi per l'anno di nascita: due strutture separate tra loro. Pertanto l'allineamento dei dati inerenti la stessa persona dovrà essere garantito dal programmatore. Piero Demichelis 24
7 La difficoltà è superata da un altro tipo di dato strutturato, molto più flessibile: il tipo struct. Si tratta di una collezione di dati, anche di caratteristiche molto diverse tra loro, che però sono identificati dallo stesso nome. Una struttura è formata da membri o campi. I campi di un record possono essere di tipo diverso, scalari, vettori o, a loro volta, altre struct. Sono numerose le informazioni che intrinsecamente possono accordarsi con questo tipo di dato, ad esempio: - una data è composta da giorno (int), mese (char) e anno (int) e quindi si può definire una struttura composta da questi tre campi; - una persona è identificata da nome, cognome, data di nascita, codice fiscale, stato civile, indirizzo, ecc., quindi si può definire una struttura composta da tutti questi campi; - la classifica di una manifestazione sportiva è composta da nome e cognome degli atleti a cui è associata la prestazione (tempo impiegato, punti, ecc.). Piero Demichelis 25 Piero Demichelis 26 Una struct viene definita elencando i nomi che si intendono attribuire ai singoli campi (identificatori di campo). Per ogni identificatore di campo poi, occorre specificare il tipo. struct [nome_struct ] tipo_1 variabile_1; /* campo 1 */ tipo_2 variabile_2; /* campo 2 */... tipo_n variabile_n; /* campo n */ [variabile] [,variabile]...; dove le parti opzionali sono tra parentesi quadra. nome_struct costituisce il tag, cioè il nome che identifica quel particolare tipo di struttura in successive dichiarazioni di variabili. Piero Demichelis 27 : esempi definizione di una variabile di tipo record una_persona: struct char nome[20]; char cognome[20]; int giorno_nascita; int mese_nascita; int anno_nascita; float peso; int altezza; una_persona; Piero Demichelis 28
8 : esempi definizione di un record denominato data: struct data int giorno; enum gennaio, febbraio, marzo, aprile, maggio, giugno, int anno; ; luglio, agosto, settembre, ottobre, novembre, dicembre mese; : esempi definizione di numero complesso dato come x + iy, dove x e y sono numeri reali e i = 1: vengono definiti la struct denominata complesso e la variabile val_complex di quel tipo record. struct complesso double reale; double immaginario; val_complex; Piero Demichelis 29 Piero Demichelis 30 Le variabili possono essere dichiarate nell ambito della stessa struttura, come succede per la variabile val_complex, oppure esternamente: ad esempio, dopo le dichiarazioni precedenti, sarebbero lecite le seguenti: struct complesso num_complesso; struct data giorno; I campi di una struct sono racchiusi in un blocco e quindi il loro campo di esistenza è limitato: è per questo che è lecita la definizione della variabile giorno nell esempio precedente, pur esistendo un campo con lo stesso nome. Anche una funzione può essere definita di tipo struct e pertanto può restituire un valore di questo tipo. Piero Demichelis 31 Un campo di una struct può essere un vettore, una matrice o un altra struct. Inoltre le struct possono costituire il tipo base per la definizione di vettori. Nel corso del programma si può far riferimento ad uno specifico campo di una struct indicando l'identificatore della variabile seguito da un punto e dal nome del campo. Il campo di una struct deve essere trattato come una qualsiasi altra variabile. Sul tipo struct nel suo complesso non agisce alcun operatore, ma è lecita l'assegnazione di un intera struct a un altra struct dello stesso tipo. I campi delle struct mantengono invece le proprietà, e quindi gli operatori, del tipo a cui appartengono. Piero Demichelis 32
9 Esempio: /* uso della struttura complesso */ struct complesso double reale; double immaginario; ; struct complesso x;... x.reale = 12.5; x.immaginario = 0.7; struct: esempio Esempio: programma che riceve in input da tastiera delle sequenze di caratteri (parole) e calcola il numero di volte che è presente ciascun carattere (frequenza statistica). La fine dell'introduzione delle parole sia segnalata da EOF (<CTRL>+Z). Il programma dovrà visualizzare tutti i caratteri diversi introdotti e la loro frequenza statistica. La base dati può essere costituita da un vettore di struct avente due campi: un campo carattere, di tipo char, e un campo presenze, di tipo int. Per ogni carattere letto da tastiera, si controlla se è già presente: se presente, si incrementa il campo presenze di quel carattere, altrimenti lo si memorizza nel campo carattere e si pone il valore 1 nel campo presenze. Piero Demichelis 33 Piero Demichelis 34 #include <stdio.h> #define NUM_MAX_CAR 100 struct: esempio main() typedef enum FALSO, VERO boolean; struct memoria char carattere; int presenze; ; int indice, num_car_pres; struct memoria vett_car[num_max_car]; int carat; char car_letto; boolean trovato; Piero Demichelis 35 struct: esempio num_car_pres = 0; printf ("Introduci le sequenze di caratteri.\n "); printf (" Usa <CR> per andare a capo e <EOF> per finire:\n"); while ((( carat = getchar())!= EOF) && (num_car_pres < NUM_MAX_CAR)) /* finché non si arriva a EOF */ if (carat!= '\n') /* carat è diverso da new-line */ car_letto = (char) carat; /* trasforma in char */ /* cerca nella struct memoria se il carattere è già presente */ trovato = FALSO; indice = 0; Piero Demichelis 36
10 struct: esempio while ((!trovato) && (indice < num_car_pres)) if (vett_car[indice].carattere == car_letto) /* il carattere introdotto esiste già */ trovato = VERO; vett_car[indice].presenze++; /* incr. campo presenze */ else indice++; /* increm. indice per scansione */ /* while not trovato... */ if (!trovato) /* il carattere non c è ancora nel vettore di struct: lo inserisce */ vett_car[num_car_pres].carattere = car_letto; vett_car[num_car_pres].presenze = 1; num_car_pres++; /* incr. numero di caratteri inseriti nella struct*/ /* if not trovato */ /* if carat!= eoln */ /* while not eof... */ struct: esempio /* stampa i risultati */ printf ("Carattere Presenze\n"); for (indice = 0; indice < num_car_pres; indice++) printf (" %c ", vett_car[indice].carattere); printf ("%6d\n", vett_car[indice].presenze); Piero Demichelis 37 Piero Demichelis 38 struct come parametro di funzioni Le struct si comportano a tutti gli effetti come variabili di tipo semplice, con la particolarità che possono essere viste sia come un insieme aggregato, ad esempio nell'assegnazione di un record ad un altro, sia come singoli elementi (campi ). In quest'ultimo caso, l'identificatore dell'elemento è costituito dal nome dell'intera struttura seguito dal punto e dal nome del campo stesso. Anche una funzione può essere definita di tipo struct e pertanto può restituire un valore di questo tipo. struct come parametro di funzioni Esempio: somma di due numeri complessi. #include <stdio.h> #include <math.h> typedef struct double reale; double immagin; complesso; /* prototipo */ complesso somma_cmplx (complesso dato1, complesso dato2); Piero Demichelis 39 Piero Demichelis 40
11 struct come parametro di funzioni main() complesso x, y, total; printf ("x.reale = "); scanf ("%lf", &x.reale); printf ("x.immaginario = "); scanf ("%lf", &x.immagin); printf ("y.reale = "); scanf ("%lf", &y.reale); printf ("y.immaginario = "); scanf ("%lf", &y.immagin); total = somma_cmplx (x, y); printf ("La somma vale: %lf", total.reale); /* stampa della parte intera */ if (total.immagin < 0.0) printf (" - i"); /* stampa l operatore i */ else printf (" + i"); printf ("%lf\n", fabs (total.immagin)); /* stampa parte immaginaria */ struct come parametro di funzioni complesso somma_cmplx (complesso dato1, complesso dato2) complesso somma; somma.reale = dato1.reale + dato2.reale; somma.immagin = dato1.immagin + dato2.immagin; return (somma); Piero Demichelis 41 Piero Demichelis 42 struct come parametro di funzioni Osservazioni: - nel programma principale, i dati di tipo struct vengono usati come parametri di scanf e printf con le stesse modalità delle variabili di tipo semplice; - nella chiamata della funzione di tipo complesso somma_cmplx, i dati di tipo struct vengono passati by value : pertanto quando il controllo dell'esecuzione è passato alla funzione, verrà effettuata una copia delle variabili esterne nelle variabili locali della funzione dato1 e dato2; - la funzione è definita di tipo struct e restituisce un valore di tipo struct, il quale viene assegnato alla variabile total; - mediante typedef si è ridefinito il nome della struct, semplificando l'intestazione della funzione. Piero Demichelis 43
Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C
Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che
DettagliLezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit
Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione
DettagliTIPI DI DATO. e quasi sempre anche collezioni di oggetti, mediante la definizione di tipi strutturati
Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe di caratteri e quasi sempre anche collezioni di oggetti, mediante la
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
DettagliIl linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
DettagliLinguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin
Linguaggio C tipi di dati definiti dall utente Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Tipi di dati in C Predefiniti
DettagliTIPI DI DATO TIPI DEFINITI DALL UTENTE
Ogni elaboratore è intrinsecamente capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe di caratteri e quasi sempre anche collezioni di oggetti, mediante
DettagliElementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I
Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave
DettagliStrutture dati. Operatori di incremento e decremento. Strutture di dati. Strutture di dati. ++ e -- Esempi. Vettori e matrici.
Operatori di incremento e decremento ++ e -- Esempi y=x++ il contenuto della variabile x viene inizialmente usata per l assegnazione y, e solo dopo incrementata y=--x il contenuto della variabile x viene
DettagliIntroduzione al linguaggio C Dati aggregati
Introduzione al linguaggio C Dati aggregati Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 5 ottobre
DettagliELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del
Dettagli2 Operatori matematici e costrutto if
Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione delle operazioni tra numeri e del costrutto condizionale if. Si introducono anche le due funzioni
DettagliI/O da tastiera + Alessandra Giordani Lunedì 2 maggio
I/O da tastiera + costrutti while e if Alessandra Giordani agiordani@disi.unitn.it Lunedì 2 maggio 2011 http://disi.unitn.it/~agiordani/ Ripasso funzione printf() Usata per stampare il contenuto di una
DettagliStruttura di un. Struttura dei programmi C
Parte 4 Struttura di un Programma Struttura dei programmi C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume in un file): 1. Una parte contenente direttive
DettagliINFORMATICA. Strutture condizionali
INFORMATICA Strutture condizionali Strutture condizionali Sono le istruzioni che rappresentano il ben noto costrutto IF THEN ELSE della programmazione strutturata. In C, come peraltro in tutti gli altri
DettagliIntroduzione al C. Lez. 1 Elementi. Rossano Venturini
Introduzione al C Lez. 1 Elementi Rossano Venturini rossano@di.unipi.it Pagine del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start http://algoritmica.spox.spoj.pl/alglab2013 Lezioni
DettagliTutorato Elementi di Informatica 2018
Università degli Studi di Cagliari Pattern Recognition & Application Lab Dipartimento di Ingegneria Elettrica ed Elettronica Tutorato Elementi di Informatica 2018 Esercitazione 2 Introduzione e Tipi di
DettagliC: panoramica. Violetta Lonati
C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati
DettagliTipi elementari. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico
Tipi elementari Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2017 2018 Tipi di dato Ogni variabile (e ogni costante) è associata a un tipo, che
DettagliINFORMATICA. Strutture iterative
INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale
DettagliCorso di Fondamenti di Programmazione canale E-O. Strutture. Strutture. Definizione di strutture (2) Definizione di strutture (1)
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Strutture e Unioni DD Cap. 10, pp. 379-391, 405-406 KP Cap. 9, pp. 361-379 Strutture Strutture Collezioni di variabili correlate (aggregati)
DettagliEsercizio 1: media di numeri reali (uso funzioni e struct)
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 5 Esercitazione: 2 novembre 2005 Esercizi sulle funzioni Esercizio 1: media di numeri reali (uso funzioni e struct) Le
DettagliC array. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso.
Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso. Non sappiamo a priori quante variabili dobbiamo definire per contenere gli interi.
DettagliTipi definiti dall'utente
Tipi definiti dall'utente Tipi definiti Il C mette a disposizione un insieme di tipi di dato predefiniti (tipi built-in) e dei meccanismi per denire nuovi tipi (tipi user-defined) Possiamo: Ridenominare
Dettagli#include <stdio.h> main() { - 1 -
Un primo esempio di programma Ogni programma C deve contenere una funzione speciale chiamata main che indica il punto in cui inizia l esecuzione del programma. La funzione main è unica all interno di ogni
DettagliStrutture Dati. Luca Abeni
Strutture Dati Luca Abeni Dati e Tipi di Dati Una variabile è caratterizzata dal suo Tipo Specifica i valori che può assumere (Insieme di Definizione) Specifica a quanti byte di memoria la variabile è
DettagliPassaggio dei parametri Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei paramet
Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sull environment esterno Per riferimento
DettagliDati aggregati. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture
DettagliFondamenti di Informatica T-1
Fondamenti di Informatica T-1 Istruzioni di selezione e tipi enumerativi Tutor: Angelo Feraudo angelo.feraudo2@unibo.it a.a. 2017/2018 Fondamenti di Informatica T-1 Angelo Feraudo 1 / 27 SELEZIONE Permette
Dettagli1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio
soluzione di un problema 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio rappresentazioni disponibili in C++:
DettagliEsercizi. Filtraggio
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia Filtraggio L utente inserisce un array di numeri reali non negativi (un numero negativo indica la fine della fase di inserimento)
DettagliFondamenti di Informatica T-1
Fondamenti di Informatica T-1 Selezione e Tipi Enumerativi Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2016/2017 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 19 SELEZIONE Permette
DettagliCorso sul linguaggio C
Corso sul linguaggio C Modulo 1 1.1 Istruzioni semplici 1 Prerequisiti Saper progettare algoritmi Saper descrivere algoritmi (NLS, ddf) Conoscere il concetto di espressione 2 1 Introduzione In questa lezione
DettagliStruttura dei programmi e Variabili
Linguaggio C Struttura dei programmi e Variabili 1 La struttura generale dei programmi! Struttura del programma: Direttive Funzioni Dichiarazioni Istruzioni Di assegnamento direttive Di ingresso e uscita
DettagliT = { D, {F 1,...,F n }, {P 1,...,P m } }
TIPI DI DATO Un tipo di dato T è definito come: un dominio di valori, D un insieme di funzioni F 1,..,F n sul dominio D un insieme i di predicati P 1,..,P m sul ldominio i D T = { D, {F 1,...,F n }, {P
DettagliEsercizi. La funzione swapint() primo tentativo
Politecnico di Milano Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio di array. #include
DettagliStrutture, Unioni, Enumerazioni in C. Emilio Di Giacomo
Strutture, Unioni, Enumerazioni in C Emilio Di Giacomo Strutture Una struttura è una collezione di variabili raggruppate sotto uno stesso nome da questo punto di vista è simile a un array Le variabili
DettagliTipi di Dati Stutturati
Tipi di Dati Stutturati Politecnico di Milano Sommario Introduzione Scalari definiti dall utente Tipi di dato strutturati Costruttori predefiniti Definiti dall utente Esempi 1 Tipi di Dati Tipi di Dato
DettagliI Dati Strutturati ed il Linguaggio C
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Dati Strutturati Esigenze Vettori
DettagliFunzioni e. Alessandra Giordani Mercoledì 16 maggio 2012
Funzioni e passaggio parametri Alessandra Giordani agiordani@disi.unitn.it Mercoledì 16 maggio 2012 http://disi.unitn.it/~agiordani/ Cosa vedremo oggi Le funzioni Il passaggio dei parametri Le dichiarazioni
DettagliVariabili e Funzioni. Informatica 1 / 19
Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:
DettagliTipi di dato semplici
Tipi di dato semplici Perché dichiarare una variabile? 2 Una variabile rappresenta uno spazio di memoria centrale Prima dell esecuzione del programma deve essere chiaro quanto spazio serve al programma
Dettagli1
Manuali di C Linguaggio C B. W. Kernigan, D. M. Ritchie Jackson La guida completa al C H. Schildt McGraw-Hill Fondamenti di Informatica 1 Linguaggio C Creato nei primi anni 70 per sviluppare il S.O. Unix
DettagliTipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010
Tipi di dati scalari (casting e puntatori) Alessandra Giordani agiordani@disi.unitn.it Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi
DettagliEsercizi C sui tipi definiti dall utente
Politecnico di Milano Esercizi C sui tipi definiti dall utente Typedef,, tipi enumerativi e strutturati Sinonimi: typedef int Intero; Intero a; int b; Definire un nuovo tipo typedef char Stringa[10]; Stringa
DettagliArray n-dimensionali e tipi di dati strutturati
Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 8 Aprile 2016 Logistica Laboratori Lunedì (3.30pm 6pm) EG7 (No portatili e basta) L26.1.3
DettagliCorso di Informatica A.A
Corso di Informatica A.A. 2009-2010 Lezione 11 Corso di Informatica 2009-2010 Lezione 11 1 Utilizzo dei puntatori Funzioni Perche i Puntatori? I puntatori hanno tre importanti applicazioni: 1. Passaggio
DettagliEsercitazione 2. Espressioni booleane Il comando if-else
Esercitazione 2 Espressioni booleane Il comando if- Espressioni booleane L espressione (i==100) è un espressione booleana. La sua valutazione può restituire solo uno dei due valori booleani true = 1 (in
DettagliTIPI DI DATO. T = { D, {F 1,...,F n }, {P 1,...,P m } } Un tipo di dato T è definito come:
TIPI DI DATO Un tipo di dato T è definito come: un dominio di valori, D un insieme di funzioni F 1,..,F n sul dominio D un insieme di predicati P 1,..,P m sul dominio D T = { D, {F 1,...,F n }, {P 1,...,P
DettagliTipi di dato semplici
Tipi di dato semplici Informatica B Tipi di dati q In C esistono diversi tipi di dato built-in, tra cui int: numeri interi float: numeri con virgola (singola precisione) double : numeri con virgola (doppia
DettagliIntroduzione al C. Lez. 1 Elementi. Rossano Venturini
Introduzione al C Lez. 1 Elementi Rossano Venturini rossano.venturini@isti.cnr.it URL del corso http://www.cli.di.unipi.it/doku/doku.php/informatica/all-b/start Lezioni - Lunedì 16-18 Aula M - Martedì
DettagliIntroduzione alla programmazione. Alice Pavarani
Introduzione alla programmazione Alice Pavarani Il linguaggio C Creato da Dennis Ritchie nel 1972 presso i Bell Laboratories Linguaggio di programmazione procedurale, strutturato Linguaggio ad alto livello
DettagliPolitecnico di Torino
Politecnico di Torino INFORMATICA II Esame del 29 Novembre 2008 Un file di testo di lunghezza ignota contiene le misure delle potenze di segnale radio di vari Access Point [AP] (l apparecchiatura che viene
DettagliI tipi strutturati e i record in C++
I tipi strutturati e i record in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi
DettagliArray n-dimensionali e tipi di dati strutturati
Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 5 Novembre 2013 Info di servizio Demo 1mo compitino In LM5 @ 12pm - venerdì 8 Nov In
DettagliTipi definiti dall'utente
Tipi definiti dall'utente Tipi definiti Il C mette a disposizione un insieme di tipi di dato predefiniti (tipi built-in) e dei meccanismi per denire nuovi tipi (tipi user-defined) Possiamo: Ridenominare
DettagliInformatica A (per gestionali) A.A. 2004/2005. Esercizi C. Funzioni: variabili e tipi locali e globali, passaggio parametri per valore, prototipo
Informatica A (per gestionali) A.A. 2004/2005 Esercizi C Funzioni: variabili e tipi locali e globali, passaggio parametri per valore, prototipo Indice 1 Funzioni: passaggio di parametri per valore, variabili
DettagliIstruzioni di controllo
Istruzioni di controllo Le istruzioni in C Assegnazione Sequenza I/O Test Cicli Controllo = che cosa è la prossima cosa da fare La prossima cosa da fare è quella che segue La prossima cosa da fare dipende
DettagliQualsiasi programma in C++ segue lo schema:
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
DettagliFondamenti di Informatica T-1
Fondamenti di Informatica T-1 Selezione e Tipi Enumerativi Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 20 SELEZIONE Permette
DettagliFondamenti di Informatica
Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile
DettagliParte Input e output in linguaggio i C. 3. Programmazione strutturata 1 (if, switch, comunque segnalare dei warning
Obiettivi di questa esercitazione Fondamenti di Informatica T-1 Parte 2 Laboratorio 01 1. Input e output in linguaggio i C 2. Espressioni 3. Programmazione strutturata 1 (if, switch, do while) 1 2 Warning
DettagliInformatica (A-K) 5. Algoritmi e pseudocodifica
Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
DettagliFondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
Dettagliparte dichiarativa globale: dichiarazioni di costanti dichiarazioni di tipi dichiarazioni di variabili prototipi di funzioni/procedure
Tipi user-defined Il C mette a disposizione un insieme di tipi di dato predefiniti (tipi built-in) e dei meccanismi per definire nuovi tipi (tipi user-defined) Vediamo le regole generali che governano
DettagliTipi user-defined. parte dichiarativa globale:
Il C mette a disposizione un insieme di tipi di dato predefiniti (tipi built-in) e dei meccanismi per definire nuovi tipi (tipi user-defined) Vediamo le regole generali che governano la definizione di
DettagliFondamenti di Informatica 12. Linguaggio C -4
Strutture Dati in C Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Fondamenti di Informatica 12. Linguaggio C -4 Strutture Dati
DettagliRELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA
RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA Anno scolastico Lab informatica AULA n 35 Data inizio svolgimento Progr. relazione primo trimestre secondo pentamestre Cognome e Nome DATI DELLO STUDENTE
DettagliCostanti e Variabili
Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli
DettagliIntroduzione al C. Lez. 1 Elementi
Introduzione al C Lez. 1 Elementi Introduzione al C Strumento che adotteremo in queste esercitazioni per implementare e testare gli algoritmi visti a lezione Configurazione minimale suggerita: Editing
DettagliEsercitazione 11. Liste semplici
Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene
DettagliInput/Output di numeri
Input/Output di numeri I/O di numeri Per utilizzare le funzioni di I/O occorre include il file di intestazione (o file header) stdio.h utilizzando all inizio del sorgente la direttiva #include
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 2
DettagliInformatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter
Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Funzionamento macchina di von Neumann clock Memoria Centrale: Tutta l informazione prima di essere
DettagliStruttura dei programmi C
Programmi C Struttura dei Programmi C Dichiarazione delle variabili Operazioni di Ingresso/Uscita Fondamenti di Informatica 1 Struttura dei programmi C Un programma C deve contenere, nell'ordine: una parte
DettagliL assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Abbiamo visto È conveniente definire una macchina astratta C Lo stato della macchina ci
DettagliEsercitazione 2. Variabili e Tipi Input e Output Assegnamenti Il comando if-else
Esercitazione 2 Variabili e Tipi Input e Output Assegnamenti Il comando if-else Espressioni aritmetiche /* Scrivere un programma che calcola l area e la circonferenza di un cerchio di raggio 20 cm */ #include
DettagliSunto della scorsa lezione Il linguaggio C. Un Programma con Errori. Il preprocessore. Linguaggi di Programmazione I.
Sunto della scorsa lezione 06-10-2003 Il linguaggio C Matricole 2-3 Un programma C è un insieme di funzioni. La funzione è sempre presente Una funzione è un insieme di istruzioni racchiuse tra ogni istruzione
DettagliIntroduzione alla programmazione in linguaggio C
Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008
DettagliStrutture Dati. Nicu Sebe. Informatica Nicu Sebe 1 / 27
Strutture Dati Nicu Sebe Informatica Nicu Sebe 1 / 27 Dati e Tipi di Dati e Spazi Una variabile è caratterizzata dal suo Tipo Specifica i valori che può assumere (Insieme di Definizione) Specifica a quanti
DettagliInformatica 7. appunti dalle lezioni del 20 e 22/10/2010
Informatica 7 appunti dalle lezioni del 20 e 22/10/2010 Tipi di dato Nelle celle di memoria di un calcolatore ci sono solo 0 e 1, fisicamente realizzati tramite due diversi livelli di tensione elettrica
DettagliProgrammare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi
MASTER Information Technology Excellence Road (I.T.E.R.) Programmare in C Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di Dati Valori Un insieme
Dettagliparte dichiarativa globale: dichiarazioni di costanti dichiarazioni di tipi dichiarazioni di variabili prototipi di funzioni/procedure
Tipi user-defined Il C mette a disposizione un insieme di tipi di dato predefiniti (tipi built-in) e dei meccanismi per definire nuovi tipi (tipi user-defined) Vediamo le regole generali che governano
DettagliESERCIZIO: SHIFT ARRAY (1)
ARRAY E STRINGHE ARRAY ESERCIZIO: SHIFT ARRAY (1) Utilizzando le funzioni scrivere un programma che: genera una sequenza di N = 20 numeri interi e li memorizza in un array ( riempi_array( )) visualizza
Dettagli#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()
Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine
DettagliI cicli. Iterazioni Calcolo della media Istruzioni break e continue
I cicli Iterazioni Calcolo della media Istruzioni break e continue Ciclo while p Vero A while() ; Falso Esegue una istruzione mentre una condizione è verificata Programmazione
DettagliTipi di dato, Alessandra Giordani Lunedì 7 maggio 2011
Tipi di dato, memoria e conversioni Alessandra Giordani agiordani@disi.unitn.it Lunedì 7 maggio 2011 http://disi.unitn.it/~agiordani/ Il linguaggio C è esplicitamente tipato: occorre esplicitamente associare
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliStringhe e tipi di dati strutturati
Stringhe e tipi di dati strutturati Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 21 Marzo 2013 Info sui Labs http://tinyurl.com/ieimlabextra Ricordate di portare un adattatore!
DettagliFondamenti di Informatica T-1. Selezione
Selezione 2 Selezione Permette di differenziare il flusso di controllo a seconda che sia verificata o meno una condizione. Il flusso di controllo si ramifica in due (o più) sequenze di istruzioni alternative.
DettagliRealizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media.
Esercizio 1 Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media. #include Esercizio 1 - Soluzione int main() int num1, num2, num3, somma; float
DettagliBreve 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...
DettagliAssegnazione di una variabile
Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 2: Elementi lessicali, casting e while Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Soluzione agli esercizi
DettagliComplementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -
Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin
Dettagli