Fondamenti di Programmazione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Fondamenti di Programmazione"

Transcript

1 Fondamenti di Programmazione Ingegneria dell Automazione Industriale Ingegneria Elettronica e delle Comunicazioni Alessandro Saetti Marco Sechi e Andrea Bonisoli ( {alessandro.saetti,marco.sechi,andrea.bonisoli@unibs.it) Università degli Studi di Brescia 1

2 Esercizi sui cicli (1º parte) 1. Acquisisca da tastiera numeri interi fintantoché i numeri immessi sono positivi. Determini (stampando a video un messaggio) se i numeri immessi sono pari oppure dispari 2. Acquisisca da tastiera date fintantoché la data immessa è diversa da 0/0/0 Stampi a video la data che viene prima nel calendario 3. Acquisisca da tastiera 2 frazioni Stampi a video la somma delle frazioni ridotta ai minimi termini. (Suggerimento: Per ridurre una frazione ai minimi termini per prima cosa calcolare il MCD.) 2

3 Esercizio 1.1 Acquisisca da tastiera numeri interi fintantoché i numeri immessi sono positivi. Determini (stampando a video un messaggio) se i numeri immessi sono pari oppure dispari 3

4 Esercizi sui vettori 1 parte Esercizio 1.1 Acquisisca da tastiera numeri interi fintantoché i numeri immessi sono positivi. Determini (stampando a video un messaggio) se i numeri immessi sono pari oppure dispari Impostiamo la struttura iniziale del nostro programma C inserendo eventuali commenti Acquisisca da tastiera numeri interi fintantochéi numeri immessi sono positivi. Determini (stampando a video un messaggio) se i numeri immessi sono pari oppure dispari // Dichiarazione delle variabili... int n; #include <stdio.h> #include <stdlib.h> /* Nome: main * Scopo: Stampa numeri pari e dispari * Input: -- * Output: 0 se il programma termina correttamente */ int main() {... system("pause"); return(0); La funzione system esegue il comando passato come argomento. system()richiede <stdlib.h>. Implementiamo la prima parte della consegna printf(" DETERMINA I NUMERI PARI/DISPARI - \n"); // Titolo printf("inserisci numeri interi positivi (negativo o 0 per terminare):\n"); do { printf("==> "); scanf("%d", &n); // istruzioni per determinare se e pari o dispari... while(n > 0); Dichiariamo le variabili necessarie 4

5 Esercizi sui vettori 1 parte Esercizio 1.1 Verifichiamo la correttezza della parte appena scritta provando a compilarla ed eseguirla Proseguiamo con lo sviluppo, sicuri di ripartire da una situazione sintatticamente e semanticamente corretta. Acquisisca da tastiera numeri interi fintantochéi numeri immessi sono positivi. Determini (stampando a video un messaggio) se i numeri immessi sono pari oppure dispari... // se n <= 0 non valuto se pari o dispari if (n > 0) if (n % 2 == 0) printf("%d e' pari!\n", n); else printf("%d e' dispari!\n", n);... L espressione a % b fornisce il resto della divisione (quindi un intero!) tra a e b. Ad esempio 7 % 3 restituisce 1 Adesso compiliamo ed eseguiamo il nostro programma. Un esempio di output potrebbe essere il seguente: 5

6 Esercizi sui cicli 1 parte Esercizio 1.1 Soluzione completa: /************************************************************************** * Nome: lab1-pari_dispari.c * * Autore: Alessandro Saetti * * Data: 16/2/10 * **************************************************************************/ #include <stdio.h> #include <stdlib.h> /* Nome: main * Scopo: Stampa numeri pari e dispari * Input: -- * Output: 0 se il programma termina correttamente */ int main() { int n; printf(" DETERMINA I NUMERI PARI/DISPARI - \n"); printf("inserisci numeri interi positivi (negativoo 0 per terminare):\n"); do { printf("==> "); scanf("%d", &n); if (n > 0) if(n % 2 == 0) printf("%d e' pari!\n", n); else printf("%d e' dispari!\n", n); while(n > 0); INPUT VALUTO SE PARI OUTPUT system("pause"); return(0); 6

7 Esercizio 1.2 Acquisisca da tastiera date fintantoché la data immessa è diversa da 0/0/0 Stampi a video la data che viene prima nel calendario 7

8 Esercizi sui cicli 1 parte -Acquisisca da tastiera date fintantochéla data immessa è diversa da 0/0/0 -Stampi a video la data che viene prima nel calendario (quella più vecchia) Impostiamo la struttura di partenza del nostro programma C - Acquisisca da tastiera date fintantoché la data immessa è diversa da 0/0/0 -Stampi a video la data che viene prima nel calendario (quella piùvecchia) // Dichiarazione delle variabili... int aa,mm,gg; printf("immetti date (gg/mm/aa):\n"); do { printf("-->"); scanf("%d/%d/%d",&g,&m,&a); #include <stdio.h> #include <stdlib.h> /* Nome: main * Scopo: Calcola e stampa la data minima * Input: -- * Output: 0 se il programma termina correttamente */ int main() {... system("pause"); return(0); Dichiaro via via le variabili necessarie Spiego come immettere le date Leggo la data usando il carattere / come separatore Esercizio 1.2 // Determino se è la data minima while (gg!= 0 mm!= 0 aa!= 0); Lascio in sospeso la parte relativa alla determinazione della data minima Se non corrisponde alla data di stop 0/0/0 ripeto l operazione di lettura 8

9 Esercizi sui cicli 1 parte Esercizio Acquisisca da tastiera date fintantoché la data immessa è diversa da 0/0/0 -Stampi a video la data che viene prima nel calendario (quella piùvecchia) // Dichiarazione delle variabili... int aa,mm,gg; // Variabili per la data minima printf("immetti date (gg/mm/aa):\n"); do { printf("-->"); scanf("%d/%d/%d",&g,&m,&a); // Determino se è la minima Dichiaro ed inizializzo le variabili usate per memorizzare la data minima corrente L inizializzazione delle variabili relative alla data minima può essere fatta utilizzando i valori massimi che tali variabili possono assumere. // Dichiarazione variabili... int min_aa=100,min_mm=13, min_gg=32; while (gg!= 0 mm!= 0 aa!= 0); // OUTPUT Determinazione della data minima corrente if (aa > 0 && mm > 0 && gg > 0) { if (aa < min_aa) { min_aa = aa; min_mm = mm; min_gg = gg; else if (aa == min_aa && mm < min_mm) { min_mm = mm; min_gg = gg; else if (aa == min_aa && mm == min_mm && gg < min_gg) min_gg = gg; Mentre procediamo con la lettura valutiamo se la data appena letta gg/mm/aa (che deve essere diversa da 0/0/0!) risulta minore rispetto a quella minima attuale min_gg/min_mm/min_aa. Se così è aggiorno la data minima attuale con gg/mm/aa. printf("%d/%d/%d\n",min_gg,min_mm,min_aa); Stampo la data minima della sequenza letta 9

10 Esercizi sui cicli 1 parte Esercizio 1.2 Soluzione completa: /************************************************************************** * Nome: lab2-date.c * * Autore: Alessandro Saetti * * Data: 16/2/10 * **************************************************************************/ #include <stdio.h> #include <stdlib.h> /* Nome: main * Scopo: Calcola e stampa la data minima * Input: -- * Output: 0 se il programma termina correttamente */ int main() { int gg, mm, aa, min_aa = 100, min_mm = 13, min_gg= 32; printf("immetti date (gg/mm/aa):\n"); do { printf("-> "); scanf("%d/%d/%d", &gg, &mm, &aa); if (aa > 0 && mm > 0 && gg > 0) { if (aa < min_aa) { min_aa = aa; min_mm = mm; min_gg = gg; else if (aa == min_aa && mm < min_mm) { min_mm = mm; min_gg = gg; else if (aa == min_aa && mm == min_mm && gg < min_gg) min_gg = gg; while(gg!= 0 mm!= 0 aa!= 0); INPUT VALUTO LA DATA MINIMA printf("la data minima e': %d/%d/%d\n", min_gg, min_mm, min_aa); OUTPUT system("pause"); return(0); 10

11 Esercizio 1.3 Acquisisca da tastiera 2 frazioni Stampi a video la somma delle frazioni ridotta ai minimi termini. (Suggerimento: Per ridurre una frazione ai minimi termini per prima cosa calcolare il MCD.) 11

12 Esercizi sui cicli 1 parte Esercizio Acquisisca da tastiera 2 frazioni -Stampi a video la somma delle frazioni ridotta ai minimi termini. (Suggerimento: Per ridurre una frazione ai minimi termini per prima cosa calcolare il MCD.) Impostiamo la solita struttura di partenza di un programma C #include <stdio.h> #include <stdlib.h> /* * Nome : main * Scopo : Stampa la frazione somma * ridotta ai minimi termini * Input : -- * Output: 0 se il programma termina * correttamente */ int main() {... system("pause"); return(0); Implementiamo la prima parte della consegna (INPUT) - Acquisisca da tastiera 2 frazioni -Stampi a video la somma delle frazioni ridotta ai minimi termini. (Suggerimento: Per ridurre una frazione ai minimi termini per prima cosa calcolare il MCD.) Imposto le istruzioni di input... printf("digita la 1^ frazione (A/B): "); scanf("%d/%d", &num1, &den1); printf("digita la 2^ frazione (C/D): "); scanf("%d/%d", &num2, &den2); e dichiaro le variabili necessarie. // Dichiarazione delle variabili... int num1, num2, den1, den2; 12

13 Esercizi sui cicli 1 parte - Acquisisca da tastiera 2 frazioni - Stampi a video la somma delle frazioni ridotta ai minimi termini. (Suggerimento: Per ridurre una frazione ai minimi termini per prima cosa calcolare il MCD.) num 1 + den 1 num 2 den 2 num 1* den 2 + num 2 * den1 = = den1* den 2 num den - Acquisisca da tastiera 2 frazioni - Stampi a video la somma delle frazioni ridotta ai minimi termini. (Suggerimento: Per ridurre una frazione ai minimi termini per prima cosa calcolare il MCD.) Per determinare il MCD tra num e den posso seguire questa procedura: Memorizzo nella variabile min il valore più basso tra il numeratore e denominatore della frazione somma. Partendo da 1 fino a minestraggo tutti i divisori sia di numche di den. L ultimo divisoretrovatoèil MCD. ALGORITMO ALTERNATIVO PER DETERMINARE IL MCD: a) imposto mcd=minimo(num,den) b) Se mcd==1 allora termino saltando allo step d) c) Se num e den sono divisibili per mcd allora mcd è il MCD e termino saltando a d) altrimenti decremento mcd e ripeto lo step corrente c) d) Fine. Calcolo la frazione somma... num = num1 * den2 + num2 * den1; den = den1 * den2; e aggiungo le nuove variabili utilizzate. // Dichiarazione delle variabili... int num, den; Per ridurre ai minimi termini basta dividere il numeratore e il denominatore per il massimo comune divisore tra num e den. if (num > den) min = den; else min = num; for (i = 1; i <= min ; i++) if ( num % i == 0 && den %i == 0) mcd = i; Esercizio 1.3 Quindi aggiungo le variabili appena utilizzate. // Dichiarazione delle variabili... int min, mcd, i; printf ("Frazione somma ridotta: %d/%d\n\n", num/mcd, den/mcd); Stampo la frazione somma ridotta 13

14 Esercizi sui cicli 1 parte Soluzione completa: /************************************************************************** * Nome: lab4-frazioni.c * * Autore: Alessandro Saetti * * Data: 16/2/10 * **************************************************************************/ #include <stdio.h> #include <stdlib.h> /* * Nome: main * Scopo: Stampa la frazione somma ridotta ai minimi termini * Input: -- * Output: 0 se il programma termina correttamente */ int main() { int num1, num2, den1, den2, num, den, min, mcd, i; printf("digita la 1^ frazione (A/B): "); scanf("%d/%d", &num1, &den1); printf("digita la 2^ frazione (C/D): "); scanf("%d/%d", &num2, &den2); num = num1 * den2 + num2 * den1; den = den1 * den2; if (num > den) min = den; else min = num; for (i = 1; i <= min ; i++) if ( num % i == 0 && den %i == 0) mcd = i; INPUT CALCOLO LA FRAZIONE SOMMA E LA RIDUCO AI MINIMI TERMINI printf ("Frazione somma ridotta: %d/%d\n\n", num/mcd, den/mcd); system("pause"); return(0); OUTPUT Esercizio

15 Esercizi sui vettori (2º parte) 4. Inizializzi un vettore di 1000 elementi con numeri casuali compresi tra 1 e 100 (estremi inclusi). Calcoli la media dei numeri presenti nel vettore. 5. Acquisisca da tastiera un numero intero positivo n, ripetendo l acquisizione qualora il numero fosse negativo o superiore a Stampi a video la conversione di n in base 2. (Suggerimento: Utilizzare un vettore per memorizzare i resti delle divisioni.) 6. Inizializzi e stampi a video una matrice M di 10 righe e 20 colonne con numeri casuali interi compresi tra 0 ed 1; Inizializzi e stampi un vettore di 10 elementi con i numeri interi corrispondenti alla rappresentazione decimale dei numeri binari che compaiono (con notazione posizionale) sulle righe della matrice M. 15

16 Esercizio 1.4 Inizializzi un vettore di 1000 elementi con numeri casuali compresi tra 1 e 100 (estremi inclusi). Calcoli la media dei numeri presenti nel vettore. 16

17 Esercizi sui vettori 2 parte -Inizializzi un vettore di 1000 elementi con numeri casuali compresi tra 1 e 100 (estremi inclusi). -Calcoli la media dei numeri presenti nel vettore. Impostiamo la solita struttura di partenza di un programma C - Inizializzi un vettore di 1000 elementi con numeri casuali compresi tra 1 e 100 (estremi inclusi). - Calcoli la media dei numeri presenti nel vettore. Ricordiamoci di dichiarare le variabili utilizzate // Dichiarazione delle variabili... #define DIM 1000; int i, vet[dim]; Aggiungiamo a S in successione i valori che vengono via generati Esercizio 1.4 #include <stdio.h> #include <stdlib.h> /* * Nome: main * Scopo: Stampa la media dei numeri in un vettore * Input: -- * Output: 0 se il programma termina correttamente */ int main() {... system("pause"); return(0); Per generare i numeri casuali sfruttiamo la funzione rand() for (i=0; i < DIM; i++) vet[i] = rand() % 100+1; 17

18 Esercizi sui vettori 2 parte -Inizializzi un vettore di 1000 elementi con numeri casuali compresi tra 1 e 100 (estremi inclusi). - Calcoli la media dei numeri presenti nel vettore. Calcoliamo la somma totale dei valori generati casualmente. Per ottenere la media divido la somma totale per il numero DIM di valori generati. Dichiariamo le variabili #include <stdio.h>... // Dichiarazione variabili... int somma; float media;... Nel ciclo for aggiungiamo le istruzioni che ci consentono di calcolare la somma totale dei valori generati somma=0; for (i=0; i < DIM; i++) { vet[i] = rand() % ; somma += vet[i]; Poiché la variabile somma è un int, per evitare di perdere nella divisione tra interi la parte decimale, effettuo un cast (conversione di tipo) a float della variabile somma media = (float)somma / DIM; printf("media: %.2f\n\n", media); Esercizio 1.4 Per evitare che rand() generi sempre la stessa sequenza inizializzo il generatore dei numeri casuali con la funzione srand() #include <time.h> srand(time(null)); 18

19 Esercizi sui vettori 2 parte Soluzione completa: /************************************************************************** * Nome: lab1-media.c * * Autore: Alessandro Saetti * * Data: 23/2/10 * **************************************************************************/ #include <stdio.h> #include <stdlib.h> #include <time.h> #define DIM 1000 /* * Nome: main * Scopo: Stampa la media dei numeri in un vettore * Input: -- * Output: 0 se il programma termina correttamente */ int main() { int i, vet[dim], somma = 0; float media; srand(time(null)); for (i=0; i < DIM; i++) { vet[i] = rand() % ; somma += vet[i]; media = (float)somma / DIM; printf("media: %.2f\n\n", media); Esercizio 1.4 system("pause"); return 0; 19

20 Esercizio 1.5 Acquisisca da tastiera un numero intero positivo n, ripetendo l acquisizione qualora il numero fosse negativo o superiore a Stampi a video la conversione di n in base 2. (Suggerimento: Utilizzare un vettore per memorizzare i resti delle divisioni.) 20

21 Esercizi sui vettori 2 parte -Acquisisca da tastiera un numero intero positivo n, ripetendo l acquisizione qualora il numero fosse negativo o superiore a Stampi a video la conversione di n in base 2. (Suggerimento: Utilizzare un vettore per memorizzare i resti delle divisioni.). Impostiamo la struttura di partenza di un programma C Esercizio 1.5 #include <stdio.h> #include <stdlib.h> /* * Nome: main * Scopo: Stampa conversione base 2 * Input: -- * Output: 0 se il programma termina correttamente */ int main() {... system("pause"); return(0); - Acquisisca da tastiera un numero intero positivo n, ripetendo l acquisizione qualora il numero fosse negativo o superiore a Stampi a video la conversione di n in base 2. (Suggerimento: Utilizzare un vettore per memorizzare i resti delle divisioni.). Ripeto finché i valori digitati sono fuori dall intervallo [0,1023] // Dichiarazione variabili... int dec; printf("immetti un intero (<1024 e >=0)):\n"); do { printf("-> "); scanf("%d", &dec); while (dec<0 dec>1023); Dichiarazione variabili Spiego cosa voglio Leggo il numero Se non appartiene a [0,1023] ripeto la lettura 21

22 Esercizi sui vettori 2 parte Esercizio Acquisisca da tastiera un numero intero positivo n, ripetendo l acquisizione qualora il numero fosse negativo o superiore a Stampi a video la conversione di n in base 2. (Suggerimento: Utilizzare un vettore per memorizzare i resti delle divisioni.). Per ottenere la rappresentazione in base 2 estraggo la sequenza dei resti della divisione per 2 e li memorizzo in un array. Stampo poi in ordine inverso tale sequenza. Dichiarazione e inizializzazione variabili -Calcolo il resto della divisione per 2 e lo aggiungo nell array bin - Determino il nuovo quoziente dec Se il nuovo quoziente decnon èzero calcolo il resto successivo Stampo in ordine inverso la sequenza dei resti int n=0, bin[10], i; printf("conversione in base 2 di %d: ", dec); do { bin[n] = dec % 2; dec = dec /2; n++; while (dec!= 0); for (i = n-1; i >=0; i--) printf("%d", bin[i]); printf("\n\n"); 22

23 Esercizi sui vettori 2 parte Soluzione completa: /************************************************************************** * Nome: lab2-dectobin.c * * Autore: Alessandro Saetti * * Data: 23/2/10 * **************************************************************************/ #include <stdio.h> #include <stdlib.h> /* * Nome: main * Scopo: Stampa conversione base 2 * Input: -- * Output: 0 se il programma termina correttamente */ int main() { int dec, bin[10], i, n = 0; printf("immetti un intero (positivo minore di 1024):\n"); do { printf("-> "); scanf("%d", &dec); while(dec < 0 dec > 1023); printf("conversione in base 2 di %d: ", dec); do { bin[n] = dec % 2; dec = dec /2; n++; while (dec!= 0); for (i = n-1; i >=0; i--) printf("%d", bin[i]); printf("\n\n"); Esercizio 1.5 system("pause"); return 0; 23

24 Esercizio 1.6 Inizializzi e stampi a video una matrice M di 10 righe e 20 colonne con numeri casuali interi compresi tra 0 ed 1; Inizializzi e stampi un vettore di 10 elementi con i numeri interi corrispondenti alla rappresentazione decimale dei numeri binari che compaiono (con notazione posizionale) sulle righe della matrice M. 24

25 Esercizi sui vettori 2 parte -Inizializzi e stampi a video una matrice M di 10 righe e 20 colonne con numeri casuali interi compresi tra 0 ed 1; -Inizializzi e stampi un vettore di 10 elementi con i numeri interi corrispondenti alla rappresentazione decimale dei numeri binari che compaiono (con notazione posizionale) sulle righe della matrice M Impostiamo la struttura di partenza del nostro programma -Inizializzi e stampi a video una matrice M di 10 righe e 20 colonne con numeri casuali interi compresi tra 0 ed 1; -Inizializzi e stampi un vettore di 10 elementi con i numeri interi corrispondenti alla rappresentazione decimale dei numeri binari che compaiono (con notazione posizionale) sulle righe della matrice M Genero dei numeri casuali 0 o 1, li stampo per controllo e li memorizzo nella matrice M. Se inizializzo la sequenza casuale con srand(time(null)) posso ottenere, per ogni esecuzione, delle sequenze di bit sempre differenti. Esercizio 1.6 #include <stdio.h> #include <stdlib.h> /* Nome : main * Scopo : Stampa conversioni in base 10 di numeri * binari su righe di matrice * Input : -- * Output: 0 se il programma termina correttamente */ int main() {... system("pause"); return(0); #define DIM1 10 #define DIM2 20 Ricordiamoci di dichiarare le variabili utilizzate int M[DIM1][DIM2], i, j; Memorizziamo i valori generati in una matrice DIM1xDIM2 for (i=0; i < DIM1; i++) { for (j=0; j < DIM2; j++) { M[i][j]=rand()%2; printf("%2d",m[i][j]); printf("\n"); 25

26 Esercizi sui vettori 2 parte Esercizio 1.6 -Inizializzi e stampi a video una matrice M di 10 righe e 20 colonne con numeri casuali interi compresi tra 0 ed 1; -Inizializzi e stampi un vettore di 10 elementi con i numeri interi corrispondenti alla rappresentazione decimale dei numeri binari che compaiono (con notazione posizionale) sulle righe della matrice M float powf(float b, float x) => richiede #include <math.h> #include <math.h>... for (i=0; i < DIM1; i++) { for (j=0; j < DIM2; j++) V[i]+=M[i][j]*powf(2,DIM2-j-1); printf("conversione decimale per riga #%d: %d\n", i+1, V[i]); Per evitare che durante la compilazione appaia l avvertimento: [Warning] converting to `int' from `float mettiamo un cast a int prima della funzione powf() Per ogni riga i-esima della matrice M calcolo la somma di potenze (decrescente!) di 2 dove i coefficienti sono costituiti dagli elementi sulla riga i-esima della matrice. Tale valore viene poi memorizzato in V[i]. 26

27 Esercizi sui vettori 2 parte Soluzione completa: /************************************************************************** * Nome: lab4-bintodec.c * * Autore: Alessandro Saetti * * Data: 23/2/10 * **************************************************************************/ #include <stdio.h> #include <stdlib.h> #include <math.h> #define DIM1 10 #define DIM2 20 /* Nome: main * Scopo: Stampa conversioni in base 10 di numeri binari su righe di matrice * Input: -- * Output: 0 se il programma termina correttamente */ int main() { int M[DIM1][DIM2], i, j, V[DIM1]={0; for (i=0; i < DIM1; i++) { for (j=0; j < DIM2; j++) { M[i][j]=rand()%2; printf("%2d",m[i][j]); printf("\n"); for (i=0; i < DIM1; i++) { for (j=0; j < DIM2; j++) { V[i]+=M[i][j]*powf(2,DIM2-j-1); printf("conversione decimale per riga #%d: %d\n", i+1, V[i]); system("pause"); return(0); Esercizio

28 Esercizi sui cicli (per casa) 1. : Acquisisca da tastiera numeri interi fintantoché il numero immesso è negativo. Stampi a video i primi 5 anni bisestili superiori al numero acquisito. (Suggerimento: Un anno è bisestile se è divisibile per 4 ma non per 100 eccetto per quegli anni divisibili per 400). 2. : Acquisire da tastiera la lunghezza dei tre lati di un triangolo fintantoché le lunghezze acquisite non sono positive e non soddisfano la disuguaglianza triangolare (la somma del lato maggiore è inferiore alla somma degli altri lati) Stampi il perimetro del triangolo. (Suggerimento: Ad ogni iterazione calcolare il massimo lato acquisito e la somma degli altri due dati) 28

29 Esercizi sui cicli (per casa) 3. Acquisire da tastiera un numero intero n (ripetendo l acquisizione finché vengono immessi numeri negativi) Acquisire successivamente da tastiera n numeri interi Stampare a video la media degli n numeri acquisiti 4. Acquisisca da tastiera due numeri interi corrispondenti al numero di giorni in un mese ed al giorno della settimana in cui il mese inizia. Stampi a video il calendario del mese. Ad esempio: Inserire il numero di giorni del mese: 31 Inserire il giorno della settimana in cui il mese inizia (1=Domenica, 7=Sabato): 3 D L M M G V S

30 Esercizi sui vettori (per casa) 5. : Inizializzi un vettore di 100 elementi con numeri casuali compresi tra -50 e 50 Stampi a video il minimo numero n nel vettore per il quale esista un solo numero nel vettore più piccolo di n 6. Acquisisca da tastiera un numero intero n maggiore di 10 e minore di 100, ripetendo l acquisizione qualora il numero non rispettasse i requisiti richiesti. Inizializzi un vettore di 20 elementi con numeri casuali compresi tra 10 ed n. Stampi a video il numero contenuto nel vettore con il maggior numero di divisori. 30

31 Esercizi sui vettori (per casa) 7. Inizializzi e stampi a video una matrice M di 4 righe e 3 colonne con numeri casuali interi compresi tra 1 e 9; Stampi a video la somma delle righe e la somma delle colonne di M 8. Inizializzi e stampi a video una matrice M di 4 righe e 5 colonne con numeri casuali interi compresi tra 1 e 9; Inizializzi un vettore V con 5 numeri interi acquisiti da tastiera; Stampi a video il prodotto (righe per colonne) tra la matrice M e il vettore V. 31

Cicli annidati e matrici di variabili

Cicli annidati e matrici di variabili Linguaggio C Cicli annidati e matrici di variabili 1 Cicli annidati! 2 cicli FOR annidati richiedono 2 differenti variabili contatori! Il contatore del ciclo interno può dipendere dal contatore del ciclo

Dettagli

Università degli Studi di Brescia. Vettori di variabili. ! Sono variabili aggregate in grado di memorizzare una collezione (organizzata) di oggetti

Università degli Studi di Brescia. Vettori di variabili. ! Sono variabili aggregate in grado di memorizzare una collezione (organizzata) di oggetti Linguaggio C 1! Sono variabili aggregate in grado di memorizzare una collezione (organizzata) di oggetti Oggetti dello stesso tipo Identificazione univoca degli oggetti! Il tipo più semplice ha una sola

Dettagli

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica Corso di Fondamenti di Informatica Ingegneria Clinica Esercitazione 6 Raffaele Nicolussi Esercizio 1 Si scriva una funzione in linguaggio C che riceve in ingresso un numero intero A letto da tastiera,

Dettagli

Esercitazione 2. Corso di Fondamenti di Informatica

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

Dettagli

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C strutture di controllo: strutture iterative Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Strutture iterative

Dettagli

3 Costrutti while, for e switch

3 Costrutti while, for e switch Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione dei costrutti while, for e switch. I costrutti per costruire cicli in C sono il while, la variante

Dettagli

Programmazione I - Laboratorio

Programmazione I - Laboratorio Programmazione I - Laboratorio Esercitazione 3 - Array Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2. Dipartimento

Dettagli

ESERCIZI DI PROGRAMMAZIONE. - condizionali e cicli -

ESERCIZI DI PROGRAMMAZIONE. - condizionali e cicli - ESERCIZI DI PROGRAMMAZIONE - condizionali e cicli - Elementi di Informatica e Programmazione Università di Brescia 1 Esercizio 1: dal tema d esame ING-INF del 28 gennaio 2009 Si sviluppi un programma in

Dettagli

Alcuni esercizi. 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli

Alcuni esercizi. 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Alcuni esercizi 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Stampa di voti Esempio 1 (switch) Realizzare un programma che legge da input un voto (carattere tra A ed E ) e ne

Dettagli

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Dettagli

Esercitazione 6. Array

Esercitazione 6. Array Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione

Dettagli

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 Obiettivi di questa lezione 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Valutazione in cortocircuito In C, le espressioni booleane sono

Dettagli

Esercizio 1. Esercizio 1 Soluzione

Esercizio 1. Esercizio 1 Soluzione Esercizio 1 I numeri complessi Data la notazione cartesiana di un numero complesso (in parte reale ed immaginaria), Realizzare una procedura che ne restituisca la notazione polare (tramite parametri passati

Dettagli

sum = 0; positivenumbers = 0; /* Passo 1 */ printf("introduci i numeri (0 per finire): "); scanf("%d", &number);

sum = 0; positivenumbers = 0; /* Passo 1 */ printf(introduci i numeri (0 per finire): ); scanf(%d, &number); / Questo programma legge numeri interi, positivi e negativi, finche' l'utente non digita il valore 0 (valore di terminazione). Quando l'utente ha finito di immettere gli interi, il programma stampa la

Dettagli

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Array 2 Esercizio 1 Creare un programma che legga da input un numero non noto a priori di interi (al più 10) terminati da 0.

Dettagli

Cicli annidati ed Array multidimensionali

Cicli annidati ed Array multidimensionali Linguaggio C Cicli annidati ed Array multidimensionali Cicli Annidati In C abbiamo 3 tipi di cicli: while(exp) { do { while(exp); for(exp;exp;exp3) { Cicli annidati: un ciclo all interno del corpo di un

Dettagli

Istruzioni iterative (o cicliche)

Istruzioni iterative (o cicliche) Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Istruzioni iterative (o cicliche) Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria

Dettagli

Esercitazione 7. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008

Esercitazione 7. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008 Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 7 Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

- Dispensa III - PROGRAMMAZIONE C (Parte I)

- Dispensa III - PROGRAMMAZIONE C (Parte I) Elementi di Informatica e Programmazione - Dispensa III - PROGRAMMAZIONE C (Parte I) Alessandro Saetti (email: alessandro.saetti@unibs.it) Università degli Studi di Brescia 1 Linguaggi di Programmazione

Dettagli

PROGRAMMAZIONE: ESERCITAZIONE N. 6

PROGRAMMAZIONE: ESERCITAZIONE N. 6 PROGRAMMAZIONE: ESERCITAZIONE N. 6 Esercizi su stru+ure condizionali e itera1ve Conoscenze richieste: LC1+LC2+LC3+LC4+LC5+LC6 Esercizio 1 Acquisire un numero positivo N e calcolarne la radice quadrata

Dettagli

1 (4) 2 (4) 3 (12) 4 (6) 5 (6)

1 (4) 2 (4) 3 (12) 4 (6) 5 (6) CORSO DI LAUREA IN INGEGNERIA ELETTRICA, CHIMICA e MATERIALI Informatica B, C Anno Accademico 2016-2017 Proff. Danilo ARDAGNA Prima Prova in Itinere 4.5.2017 Cognome Nome Matricola Firma Durata: 2h Valutazioni

Dettagli

Fondamenti di Programmazione

Fondamenti di Programmazione Fondamenti di Programmazione Ingegneria dell Automazione Industriale Ingegneria Elettronica e delle Comunicazioni Alessandro Saetti Marco Sechi e Andrea Bonisoli (email: {alessandro.saetti,marco.sechi,andrea.bonisoli}@unibs.it)

Dettagli

Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch

Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch Esercitazione 5 Procedure e Funzioni Il comando condizionale: switch Comando: switch-case switch (espressione) { /* espressione deve essere case costante1: istruzione1 di tipo int o char */ [break]; case

Dettagli

ESERCIZI DI PROGRAMMAZIONE DA SVOLGERE INDIVIDUALMENTE - parte 1 -

ESERCIZI DI PROGRAMMAZIONE DA SVOLGERE INDIVIDUALMENTE - parte 1 - ESERCIZI DI PROGRAMMAZIONE DA SVOLGERE INDIVIDUALMENTE - parte 1 - Elementi di Informatica e Programmazione Università di Brescia 1 1: ESERCIZI DI BASE - di livello di difficoltà inferiore rispetto all

Dettagli

Esercizio 1: calcolo insieme intersezione

Esercizio 1: calcolo insieme intersezione Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 3 Esercitazione: 19 ottobre 2005 Esercizi su array e matrici Esercizio 1: calcolo insieme intersezione Problema: *******************************************************************

Dettagli

ESERCIZI DI PROGRAMMAZIONE DA TEMI D ESAME - vettori -

ESERCIZI DI PROGRAMMAZIONE DA TEMI D ESAME - vettori - ESERCIZI DI PROGRAMMAZIONE DA TEMI D ESAME - vettori - Elementi di Informatica e Programmazione Università di Brescia 1 Esercizio 1 Sviluppare un programma che acquisisce dall utente al massimo 50 numeri

Dettagli

Gli Operatori. Università degli Studi di Brescia

Gli Operatori. Università degli Studi di Brescia Linguaggio C Gli Operatori 1 Gli operatori! Costruiscono le espressioni del C! Specificano come devono essere manipolati gli operandi dell espressione! Il C definisce una moltitudine di operatori, quali

Dettagli

Corso di Informatica 1 Esercitazione n. 4

Corso di Informatica 1 Esercitazione n. 4 Corso di Informatica 1 Esercitazione n. 4 Marco Liverani Esercizio n. 1 Letti in input due numeri interi n > 0 e k > 1 costruire un array A di n numeri interi casuali minori di 100 che non siano multipli

Dettagli

Istruzioni iterative. Istruzioni iterative

Istruzioni iterative. Istruzioni iterative Istruzioni iterative Esempio: Leggere 5 interi, calcolarne la somma e stamparli. Variante non accettabile: 5 variabili, 5 istruzioni di lettura, 5... int i1, i2, i3, i4, i5; scanf("%d", &i1):... scanf("%d",

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti 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

Dettagli

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione Array Tipi di dato semplici e strutturati i tipi di dato visti finora erano tutti semplici: int, char, float,... i dati manipolati sono spesso complessi (o strutturati) con componenti elementari o strutturate

Dettagli

Input / Output, Espressioni Condizionali e Cicli

Input / Output, Espressioni Condizionali e Cicli LIA - DEIS - Facoltà di Ingegneria - Università di Bologna Laboratorio di informatica LA Corso di laurea in Ingegneria Informatica - Anno Accademico 2007-2008 Input / Output, Espressioni Condizionali e

Dettagli

giapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL

giapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL 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

Gli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento

Gli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento Linguaggio C Gli Operatori Gli Operatori Gli operatori sono simboli (sia singoli caratteri che loro combinazioni) specificano come devono essere manipolati gli operandi dell espressione Operatori aritmetici

Dettagli

while Istruzione while Cicli ed iterazioni Istruzioni di ripetizione in C Comportamento del while

while Istruzione while Cicli ed iterazioni Istruzioni di ripetizione in C Comportamento del while icli ed iterazioni Sintassi dell istruzione Esercizio Media aritmetica Esecuzione del programma icli while annidati Esercizio Quadrato 2 Istruzioni di ripetizione in Nel linguaggio esistono tre distinte

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI 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

Dettagli

Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media.

Realizzare 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

Dettagli

Scelte ed alternative. Esercizi risolti

Scelte ed alternative. Esercizi risolti 1 Esercizio Indovina cosa... Esercizi risolti Determinare che cosa fa il seguente frammento di programma in linguaggio C: int a, b, c; scanf("%d", &a); scanf("%d", &b); if(a>b) { c = a ; a = b ; b = c

Dettagli

Programmi su più moduli - Esempio

Programmi su più moduli - Esempio Programmi su più moduli - Esempio Calcolo del logaritmo in base qualunque Incapsulare la logica di calcolo in una funzione PASSO 1: definisco la dichiarazione della funzione (nome, parametri di input e

Dettagli

Linguaggio C. Condizioni composte (operatori logici)

Linguaggio C. Condizioni composte (operatori logici) Linguaggio C Condizioni composte (operatori logici) Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Condizioni composte Talvolta

Dettagli

Esercizio 1. Esercizio 1 - Soluzione

Esercizio 1. Esercizio 1 - Soluzione Esercizio 1 Progettare e Codificare in C un programma che permetta di Chiedere all utente quanti numeri vuole inserire Leggere i numeri inseriti dall utente e calcolare la somma dei fattoriali Esempio:

Dettagli

INFORMATICA. Strutture iterative

INFORMATICA. 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

Dettagli

Esercitazione 5. Corso di Fondamenti di Informatica. Laurea in Ingegneria Informatica

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

Dettagli

Linguaggio 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 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

Dettagli

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 06 Array" Lab06 1

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 06 Array Lab06 1 Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 06 Array" Lab06 1 Esercizio 1" n Creare un programma che legga da input un numero non noto a priori di interi

Dettagli

Strutture di iterazione

Strutture di iterazione Strutture di iterazione 1. Leggi i programmi qui sotto e disegna le tabelle di traccia nelle situazioni seguenti: a. Nel primo e nel secondo programma viene inserito da tastiera il valore 2; b. Nel primo

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

Esercizio 1 - cicli. Esercizio 1 cicli - Soluzione

Esercizio 1 - cicli. Esercizio 1 cicli - Soluzione Sequenze di cifre Esercizio 1 - cicli Realizzare un programma che prende in input una sequenza di cifre (tra 1 e 9) e calcola la somma massima fra le sotto- sequenze di cifre non decrescente Il programma

Dettagli

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A Esercizi di MatLab Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, AA 2017 2018 Gli esercizi sono divisi in due gruppi: fondamentali ed avanzati I primi sono

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E04 Esempi di algoritmi e programmi C. Limongelli - A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi

Dettagli

Esercizio 1: calcolo del massimo di una sequenza (versione 1)

Esercizio 1: calcolo del massimo di una sequenza (versione 1) Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 2 Esercitazione: 12 ottobre 2005 Primi esercizi in C Esercizio 1: calcolo del massimo di una sequenza (versione 1) Si legga

Dettagli

Laboratorio di Programmazione Laurea in Bioinformatica

Laboratorio di Programmazione Laurea in Bioinformatica Laboratorio di Programmazione Laurea in Bioinformatica 15 dicembre 2008 1 Programmazione strutturata 1.1 Esercizio 1 Si scriva lo pseudocodice di un programma che calcola la media di due numeri reali.

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 07/02/07 Nota Questi lucidi sono tratti

Dettagli

Corso di Fondamenti di Programmazione canale E-O ... Un esempio per iniziare. printf) Altri cenni su printf() Esercizi 8. (printf(

Corso di Fondamenti di Programmazione canale E-O ... Un esempio per iniziare. printf) Altri cenni su printf() Esercizi 8. (printf( Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Il controllo del programma in C DD Cap. 3, pp.91-130 Un esempio per iniziare /* calcolo di 8!*/ #define C 8 int i=1; int fatt=1; while

Dettagli

Programmazione di base

Programmazione di base Fondamenti di Informatica Primo Appello 01-17 8 febbraio 017 Rispondi alle domande negli appositi spazi. I punti assegnati per ogni domanda sono indicati nel riquadro a lato. L'esame contiene 10 domande,

Dettagli

Esercitazione 4. Comandi iterativi for, while, do-while

Esercitazione 4. Comandi iterativi for, while, do-while Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti

Dettagli

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length); Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di

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

# include<stdio.h> int main() { // Dichiarazioni int n; int i;

# include<stdio.h> int main() { // Dichiarazioni int n; int i; /* CALCOLIAMO I DIVISORI DI UN NUMERO. INSERIAMO UN CONTROLLO CHE IL NUMERO SIA EFFETTIVAMENTE POSITIVO UTILIZZIAMO IL DO...WHILE PER SEMPLIFICARE IL CODICE # include int main() // Dichiarazioni

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Università degli Studi di Brescia Elementi di Informatica e Programmazione ESERCITAZIONE Docente: A. Saetti Esercitatori: M. Sechi, A. Bonisoli Vers. 04/10/2017 Docente: Alessandro Saetti Elementi di informatica

Dettagli

Funzioni di libreria. KP pp , , , 589, DD pp , , ,

Funzioni di libreria. KP pp , , , 589, DD pp , , , Funzioni di libreria KP pp.112-115, 471-474, 573-575, 589, 598-601 DD pp.144-153, 307-313, 563-565, 588-591 Funzioni matematiche (1) KP p. 112,573 Il linguaggio C non contiene funzioni matematiche predefinite.

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

Esercitazione 11. Liste semplici

Esercitazione 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

Dettagli

Introduzione a. Funzioni di Ingresso e Uscita. Compilazione

Introduzione a. Funzioni di Ingresso e Uscita. Compilazione Introduzione a Funzioni di Ingresso e Uscita Compilazione 2 Come si termina...... un programma in esecuzione (processo)? Ctrl + C In UNIX ci si basa sul concetto di terminale Anche da GUI, quello che si

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

Esercizi di programmazione in linguaggio C - Costrutto iterazione

Esercizi di programmazione in linguaggio C - Costrutto iterazione Esercizi di programmazione in linguaggio C - Costrutto iterazione prof. Roberto uligni 1. [potenze1] Scrivere un programma che visualizzi il valore di tutte le prime n potenze di 2 con n richiesto all'utente

Dettagli

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm

Dettagli

Fondamenti di Programmazione

Fondamenti di Programmazione Fondamenti di Programmazione Ingegneria dell Automazione Industriale Ingegneria Elettronica e delle Comunicazioni Alessandro Saetti Marco Sechi e Andrea Bonisoli (email: {alessandro.saetti,marco.sechi,andrea.bonisoli}@unibs.it)

Dettagli

Alcuni esercizi. 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli

Alcuni esercizi. 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Alcuni esercizi 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Esercizio 1 (valutazione in cortocircuito) int main() int a=5, b=5, c=5; if (a>0 (a=a+1) ) printf( %d, a); if (b>0

Dettagli

Programmazione di base

Programmazione di base Fondamenti di Informatica Testo A Secondo Appello 016-17 febbraio 017 Rispondi alle domande negli appositi spazi. I punti assegnati per ogni domanda sono indicati nel riquadro a lato. L'esame contiene

Dettagli

Linguaggio C - Array. Array: tipo nome_array[num_elementi]

Linguaggio C - Array. Array: tipo nome_array[num_elementi] Linguaggio C - Array Array: Gli array o vettori sono delle strutture dati in grado di contenere un insieme di valori tutti dello stesso tipo. Un array lo possiamo immaginare come un contenitore suddiviso

Dettagli

LABORATORIO DI FONDAMENTI DI INFORMATICA DIAGRAMMI DI FLUSSO E CODIFICA IN C DEGLI ALGORITMI

LABORATORIO DI FONDAMENTI DI INFORMATICA DIAGRAMMI DI FLUSSO E CODIFICA IN C DEGLI ALGORITMI LABORATORIO DI ONDAMENTI DI INORMATICA DIAGRAMMI DI LUSSO E CODIICA IN C DEGLI ALGORITMI 1.INGEGNERIA ELETTRICA A.A. 2004-005 COPIA CONTROLLATA N 1 ING. G. GIORDANO INIZIO Inserire il numero N N

Dettagli

LIA. LIA - DEIS - Facoltà di Ingegneria - Università di Bologna Elementi di informatica L

LIA. LIA - DEIS - Facoltà di Ingegneria - Università di Bologna Elementi di informatica L LIA - DEIS - Facoltà di Ingegneria - Università di Bologna Elementi di informatica L Corso di laurea in Ingegneria Chimica - Anno Accademico 2007-2008 Funzioni Esercizio 3.3 Si scriva un programma in linguaggio

Dettagli

- Esercitazione IV Programmazione C Funzioni Alessandro Saetti

- Esercitazione IV Programmazione C Funzioni Alessandro Saetti Elementi di Informatica e Programmazione - Esercitazione IV Programmazione C Funzioni Alessandro Saetti (email: alessandro.saetti@unibs.it) Università degli Studi di Brescia 1 Esercizio 1 Riempire una

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

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente. HOMEWORKS Questi esercizi saranno proposti di tanto in tanto e forniti sempre SENZA soluzioni. Come materiale complementare ai libri di testo e alle lezioni frontali e di esercitazione, si consiglia di

Dettagli

Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04)

Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04) Problemi e algoritmi Il che cosa e il come Il che cosa ed il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come

Dettagli

Strutture di iterazione

Strutture di iterazione Strutture di iterazione 1. Leggi i programmi qui sotto e disegna le tabelle di traccia nelle situazioni seguenti: a. Nel primo e nel secondo programma viene inserito da tastiera il valore 2; b. Nel primo

Dettagli

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come Problemi e algoritmi Il che cosa e il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come effettuare un calcolo

Dettagli

Istruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi

Istruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm

Dettagli

Lab 10 Passaggio per riferimento

Lab 10 Passaggio per riferimento Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2009/2010 Lab 10 Passaggio per riferimento Lab10 1 Esercizio 1 I numeri complessi

Dettagli

il precedente programma dichiara un vettore di interi di dimensione 10 e successivamente inserisce il valore 4 nel secondo elemento del vettore.

il precedente programma dichiara un vettore di interi di dimensione 10 e successivamente inserisce il valore 4 nel secondo elemento del vettore. Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione dei vettori (ingl., array). La dichiarazione di un vettore di elementi omogenei in C avviene grazie

Dettagli

a.a Codice corso: 21012, HOMEWORKS

a.a Codice corso: 21012, HOMEWORKS HOMEWORKS Questi esercizi saranno proposti ogni 2 settimane e forniti sempre SENZA soluzioni. Come materiale complementare ai libri di testo e alle lezioni frontali e di esercitazione, si consiglia di

Dettagli

Laboratorio 1. 2) All interno della directory c:\temp\cognome\codici creare il file sorgente hello.c contenente il seguente codice:

Laboratorio 1. 2) All interno della directory c:\temp\cognome\codici creare il file sorgente hello.c contenente il seguente codice: Corso di Ingegneria Biomedica Corso di Ingegneria Elettronica Insegnamento di Informatica I a.a. 2007-08 Laboratorio 1 Durante le esercitazioni verra utilizzato il compilatore a riga di comando DJGPP,,

Dettagli

Esercizi Programmazione I

Esercizi Programmazione I Esercizi Programmazione I 9 Novembre 201 Esercizio 1 Valutare e dare il tipo delle seguenti espressioni condizionali. 1 char a= a, b= b ; // a ha v a l o r e decimale 97 2 i n t i= 1, j= 2 ; 3 double x=

Dettagli

Primo programma in C

Primo programma in C Primo programma in C Compilare il primo programma Un semplice programma L ambiente di sviluppo Dev-C++ Codifica del programma Compilazione e correzione errori Esecuzione e verifica 2 Compilare il primo

Dettagli

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna: Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione

Dettagli

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Dettagli

Problemi, algoritmi e oggetti

Problemi, algoritmi e oggetti Fondamenti di informatica Oggetti e Java Luca Cabibbo Capitolo 5 Marzo 2007 1 Fondamenti di informatica: Oggetti e Jav Contenuti... Problemi e algoritmi comprensione del problema identificazione di un

Dettagli

A lezione sono stati presentati i seguenti passi per risolvere un problema:

A lezione sono stati presentati i seguenti passi per risolvere un problema: Calcolo delle radici di un polinomio Problema: Dati i coefficienti a,b,c di un polinomio di 2 grado della forma: ax^2 + bx + c = 0, calcolare le radici. A lezione sono stati presentati i seguenti passi

Dettagli

Stringhe di caratteri

Stringhe di caratteri Linguaggio C Stringhe di caratteri 1 Variabili e costanti stringa! Una stringa letterale è una sequenza di caratteri racchiusa tra doppi apici! Può essere scritta su più righe utilizzando il backslash

Dettagli

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l

Dettagli

Esercitazione 8. Array multidimensionali

Esercitazione 8. Array multidimensionali Esercitazione 8 Array multidimensionali Prodotto di due matrici Una matrice può essere rappresentata in C con un array bidimensionale. Consideriamo il seguente problema: date due matrici mat1[n] [P] mat2[p]

Dettagli

acquisizione numero elementi del primo insieme e del secondo insieme, finché elprimoinsieme oppure elsecondoinsieme > EL_INS

acquisizione numero elementi del primo insieme e del secondo insieme, finché elprimoinsieme oppure elsecondoinsieme > EL_INS Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 3 Esercitazione: 20 ottobre 2004 Esercizi su array e applicazione delle regole di conversione di tipo Esercizi presenti:

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

Elementi di C++ di base

Elementi di C++ di base Elementi di C++ di base Corso di Programmazione 3 - Ingegneria dell Informazione e dell Organizzazione 10 ottobre, 2001 Gino Perna Esempi di semplici programmi in C++ Il programma più semplice consiste

Dettagli

Esercizio 1 - Soluzione

Esercizio 1 - Soluzione Esercizio 1 Realizzare un programma che provveda a leggere da input delle parole separate da spazi (stringhe di al più 63 caratteri) e le ripeta su standard output (servizio di echo ). Il programma deve

Dettagli

Esercitazione 3. Espressioni booleane I comandi if-else e while

Esercitazione 3. Espressioni booleane I comandi if-else e while Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Prima prova intermedia - 11 Novembre 2009 Si risolvano i seguenti esercizi. Il compitino prevede un punteggio massimo di 15/14-esimi, cui andranno sommati i punti ottenuti nel

Dettagli

Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013

Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013 Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013 Damiano Macedonio Giochi d Azzardo Note Iniziali Per generare un numero casuale basta includere la libreria stdlib.h e utilizzare

Dettagli