Capitolo 1 Fondamenti di Informatica - Esercizi

Размер: px
Начинать показ со страницы:

Download "Capitolo 1 Fondamenti di Informatica - Esercizi"

Транскрипт

1 Capitolo 1 Fondamenti di Informatica - Esercizi Vengono proposti alcuni esercizi relativi alla parte introduttiva della programmazione in C (Struttura ed elementi base di un programma, Ingresso e uscita dei dati (Input/output) e Strutture di controllo) e vengono presentate le relative soluzioni. 1

2 2 CAPITOLO 1. FONDAMENTI DI INFORMATICA - ESERCIZI 1.1 INTRODUZIONE AL C Esercizio 1 Descrivere l output del seguente programma #define Saluto "salve!" printf("saluto"); printf("\n"); printf(saluto); printf("\n"); printf("%s",saluto); printf("\n"); printf("%s","saluto"); printf("\n"); printf("%c",saluto); Esercizio 2 Sia data la seguente espressione logica: (A==B)&&(B!=0)&&(10/A>2) Discuterne la sua valutazione (stabilire, in particolare, se ci sono errori in esecuzione) sia con la tecnica della valutazione in corto circuito che senza. Esercizio 3 Sia data la seguente espressione logica:!(((a<10)&&(b>=20)) (C==12)) Applicando le leggi di De Morgan, indicare quali delle seguenti espressioni è equivalente alla espressione logica data: 1. ((A>=10)&&(B<20))&&(C!=12) 2. ((A>=10) (B<20)) (C!=12) 3. ((A>=10) (B<20))&&(C!=12) Esercizio 4 Scrivere un programma che acquisisca da input tre numeri interi, usando tre separate istruzioni di scanf, e, utilizzando un unica funzione printf, li stampi in output secondo i seguenti formati a) su un unica riga, separati dal carattere - ; b) su tre righe differenti; c) su tre righe differenti, ma con spaziatura doppia, cioè lasciando una riga vuota tra un numero e l altro.

3 1.1. INTRODUZIONE AL C 3 Esercizio 5 Scrivere un programma che acquisisca da input tre numeri interi e stampi in output la loro somma. Esercizio 6 Scrivere un programma che calcola l espressione X=(C-B)/A, dove A, B e C sono costanti di valore 4, 6 e 16 rispettivamente. Esercizio 7 Scrivere un programma che calcoli l orario di arrivo di un treno. Il programma deve leggere da input ora e minuto di partenza di un treno e ore e minuti di percorrenza prevista. Si visualizzerà in output ora e minuto di arrivo. Esercizio 8 Scrivere un programma che deve da input caratteri fino a quando si digita # ; per ogni carattere letto il programma dice se si tratta di una lettera, oppure di una cifra, oppure di un segno di punteggiatura (specificando quale). Esercizio 9 Descrivere un algoritmo che acquisisce tre numeri interi e determina il numero più grande; tradurre quindi l algoritmo in un programma. Esercizio 10 Descrivere un algoritmo e quindi tradurlo in un programma che risolve equazioni di primo grado della forma: a*x+b=0. Il programma deve essere in grado di accettare qualsiasi valore per i coefficienti a e b e di fornire un risultato corretto per ogni valore ricevuto. Esercizio 11 Scrivere un programma che accetti l immissione da tastiera di caratteri, fino all immissione di un asterisco, e ne stampi il numero totale. Esercizio 12 Scrivere un programma che accetti l immissione di caratteri da tastiera, fino all immissione di due asterischi consecutivi, e ne stampi il numero totale. Esercizio 13 Che differenza c è tra i seguenti frammenti di programma? Quali sono quelli sintatticamente corretti? Quali potrebbero essere quelli semanticamente corretti? Frammento A: if(a!=0) if(a<0) printf("a e negativo"); else printf("a e zero");

4 4 CAPITOLO 1. FONDAMENTI DI INFORMATICA - ESERCIZI Frammento B: if(a!=0){ if (a<0) printf("a e negativo"); else printf("a e zero"); Frammento C: if(a!=0) if (a<0) { printf("a e negativo"); else printf("a e zero"); Esercizio 14 Scrivere un programma che accetti da tastiera numeri relativi, fermandosi all immissione di uno 0, e stampi separatamente le somme dei numeri positivi e di quelli negativi. Esercizio 15 Scrivere un programma che acquisisca da input un numero intero N, controlli che sia non negativo e ne stampi in output il suo fattoriale. Esercizio 16 Scrivere un programma per stampare la tabellina Pitagorica 10*10. Esercizio 17 Il programma deve stampare una piramide (formata da caratteri * ) di altezza NR acquisita da input. Esempio con NR=4 * * * * * * * * * * * * * * * * Esercizio 18 Scrivere un programma C che legge da input numeri interi positivi (fino a quando non legge zero) e determina la lunghezza della massima sequenza di numeri crescenti. Esercizio 19 Scrivere un programma C che legge N interi da input (con N costante maggiore di 3) e verifica se esistono 3 interi n1, n2, e n3, letti di seguito, tali che n3=n2+1, n2= n1+1 en2>0.

5 1.1. INTRODUZIONE AL C 5 Esercizio 20 Realizzare un programma che, acquisita da tastiera una frase su una riga, sia in grado di: 1. contare il numero di parole (NPAR) contenute nella frase; 2. determinare la lunghezza (MAXLUNG) della parola più lunga contenuta nella frase. Si suppone che la frase inserita da tastiera sia priva di punteggiatura: pertanto le parole nella frase sono separate solo tramite uno o più caratteri spazio bianco. Esempio: Frase acquisita da tastiera : "Questa è una prova" NPAR=4 MAXLUNG=6

6 6 CAPITOLO 1. FONDAMENTI DI INFORMATICA - ESERCIZI 1.2 SOLUZIONI Soluzione Esercizio 1 L output che si ottiene è il seguente Saluto salve! salve! Saluto e l ultima printf("%c",saluto); riporta un carattere non significativo, in quanto viene specificata la stampa di un carattere (%c) ma l argomento corrispondente non è un carattere ma una stringa Soluzione Esercizio 2 Il problema è stabilire se tale espressione è valutabile o meno con il valore di A pari a zero: infatti tale valore di A causerebbe un errore di esecuzione nel valutare (10/A>2). È facile verificare che con A uguale a zero l espressione (A==B)&&(B!=0) è falsa per ogni valore di B. Senza la valutazione in corto circuito tutta l espressione viene valutata quindi (10/A>2) genera un errore in esecuzione quando A ha valore zero. Con la valutazione in corto circuito quando A ha valore zero: ffl se B è zero allora (A==B) è vero ma (B!=0) non è vero quindi la valutazione termina senza considerare (10/A>2) e pertanto si ottiene correttamente il valore falso. ffl se B non è zero allora (A==B) è falso quindi la valutazione termina senza considerare (10/A>2) e pertanto si ottiene correttamente il valore falso. Soluzione Esercizio 3 L espressione equivalente è la numero 3. Infatti: ffl partendo da:!(((a<10)&&(b>=20)) (C==12)) ffl e applicando alle due espressioni in or la legge di De Morgan!(P Q) equivalente a!p &&!Q si ottiene:!((a<10)&&(b>=20))&&!(c==12) ffl ora si applica alle due espressioni in and (cioè a!((a<10)&&(b>=20))) la legge di De Morgan!(P && Q) equivalente a!p!q si ottiene: (!(A<10)!(B>=20))&&!(C==12)

7 1.2. SOLUZIONI 7 ffl che è equivalente a: ((A>=10) (B<20))&&(C!=12) Soluzione Esercizio 4 Per risolvere questo esercizio è importante osservare che, per acquisire e, successivamente, riportare in output, tre valori distinti occorrono tre diverse variabili di tipo intero. int X, Y, Z; printf("inserire tre numeri interi"); scanf("%d", &X); scanf("%d", &Y); scanf("%d", &Z); printf("formato a) \n"); printf("%d-%d-%d ",X,Y,Z); printf("formato b) \n"); printf("%d\n%d\n%d ",X,Y,Z); printf("formato c) \n"); printf("%d\n\n%d\n\n%d \n",x,y,z); 2 Modificare il precedente programma in modo da utilizzare un unica funzione scanf per acquisire i tre valori interi e un unica funzione printf per stampare tutti e tre i formati richiesti, ottenendo lo stesso output ottenuto con il precedente programma. Soluzione Esercizio 5 A differenza del precedente esercizio, ora sono sufficienti due sole variabili: una, diciamo X, per acquisire il valore da input e l altra, diciamo Somma, per calcolare la somma. int X; int Somma=0; printf("inserire il primo numero intero"); scanf("%d", &X);

8 8 CAPITOLO 1. FONDAMENTI DI INFORMATICA - ESERCIZI Somma=Somma+X; printf("inserire il secondo numero intero"); scanf("%d", &X); Somma=Somma+X; printf("inserire il terzo numero intero"); scanf("%d", &X); Somma=Somma+X; printf("la somma vale %d", Somma); Soluzione Esercizio 6 Il valore di X è dato da X=(C-B)/A e quindi vogliamo ottenere 2.5: occorre quindi definire X come float; ma questo non è ancora sufficiente per otterere 2,5, in quanto nell espressione (C-B)/A viene applicata la divisione tra interi (essendo sia il dividendo che il divisore numeri interi) che fornisce come risultato 2, che viene quindi assegnato alla variabile X. Per forzare nell espressione (C-B)/A la divisione tra reali, occorre effettuare su uno dei due operandi il casting a float. const int A=4; const int B=6; const int C=16; float X; X=(C-B)/(float)A; printf("risultato : %f ",X); Soluzione Esercizio 7 Descrizione informale dell algoritmo: legge e stampa i dati di ingresso calcola l ora di arrivo i minuti obbediscono ad una aritmetica modulo 60, quindi quando si sommano minuti occorre calcolare quante ore sono contenute nel totale, tramite una divisione tra interi, e quanti sono i minuti residui, tramite l operatore mod discorso analogo per le ore modulo 24 stampa i dati di uscita

9 1.2. SOLUZIONI 9 Il programma risultante è quindi il seguente: /* legge due numeri che rappresentano l orario di partenza in ore e minuti; legge il tempo di percorrenza in ore e minuti e stampa l orario di arrivo */ int Ore, Minuti; /* orario di partenza */ int OreViaggio, MinutiViaggio; /* tempo di percorrenza */ printf("fornire l orario di partenza (oo mm) "); scanf("%d %d", &Ore, &Minuti); printf("\n L orario di partenza \ e Ore:%d" "Minuti:%d\n",Ore,Minuti); printf("fornire il tempo di viaggio (oo mm) "); scanf("%d %d", &OreViaggio, &MinutiViaggio); printf("\nil tempo di viaggio \ e Ore:%d" "Minuti:%d\n",OreViaggio,MinutiViaggio); Minuti = Minuti + MinutiViaggio; Ore = Ore + OreViaggio + (Minuti / 60); Ore = Ore % 24; Minuti = Minuti % 60; printf("\norario di arrivo previsto \ e Ore:%d" "Minuti:%d\n",Ore,Minuti); Soluzione Esercizio 8 main() { char Ch; do { printf("digita un carattere : "); /* legge il successivo carattere stampabile */ do scanf("%c", &Ch); while (!(Ch>=32 && Ch<=127)); if ((Ch>= A && Ch<= Z ) (Ch>= a && Ch<= z ))

10 10 CAPITOLO 1. FONDAMENTI DI INFORMATICA - ESERCIZI printf("%c e una lettera\n",ch); else if (Ch>= 0 && Ch<= 9 ) printf("%c e un numero\n",ch); else switch (Ch) { case, : printf("%c e una virgola\n",ch); break; case. : printf("%c e un punto\n",ch); break; case ; : printf("%c e un punto-virg.\n",ch); break; case : : printf("%c e un due-punti\n",ch); break; default:printf("non riconosciuto\n"); while (Ch!= # ); Soluzione Esercizio 9 Descrizione a parole dell algoritmo - leggi i numeri NUM1, NUM2 e NUM3 - se NUM1 > NUM2 allora - se NUM1 > NUM3 allora stampa altrimenti stampa altrimenti - se NUM2 > NUM3 allora stampa altrimenti stampa L algoritmo si traduce nel seguente programma: NUM1 NUM3 NUM2 NUM3 /* Calcolo del massimo tra tre numeri */ int NUM1, NUM2, NUM3; /* lettura dei tre numeri */ scanf("%d", &NUM1); scanf("%d", &NUM2); scanf("%d", &NUM3); /* confronto tra i numeri */

11 1.2. SOLUZIONI 11 if (NUM1>NUM2) if (NUM1>NUM3) printf("il piu grande e : %d", NUM1); else /* sicuramente NUM3 >= NUM2 */ printf("il piu grande e : %d", NUM3); else /* NUM1 <= NUM2 */ if (NUM2>NUM3) printf("il piu grande e : %d", NUM2); else /* sicuramente NUM3 >= NUM1 */ printf("il piu grande e : %d", NUM3); Soluzione Esercizio 10 Descrizione a parole dell algoritmo: - leggi i coefficienti A e B - se A e B sono entrambi zero - stampa "tutti i valori di X sono corretti" altrimenti - se A e zero e B non e zero stampa "equazione impossibile" altrimenti calcola e stampa X=-B/A L algoritmo si traduce nel seguente programma: /* Risoluzioni di equazioni di primo grado della forma: a*x+b=0. */ int A, B; /* coefficienti dell equazione */ float X; /* incognita dell equazione */ printf("risoluzioni di equazioni di primo grado"); printf("della forma:a*x+b=0\n"); printf("inserire il valore del coefficiente a: "); scanf("%d", &A); printf("inserire il valore del coefficiente b: "); scanf("%d", &B); if ((A==0) && (B==0)) printf("tutti i valori di X sono corretti \n");

12 12 CAPITOLO 1. FONDAMENTI DI INFORMATICA - ESERCIZI else if ((A==0) && (B!=0)) printf("equazione impossibile \n"); else /* A!=0 e B qualsiasi */ { X= - (float)b/ (float)a; printf("il valore di X e : %f\n", X); Soluzione Esercizio 11 main( ){ /* termina con un asterisco */ char CH; int COUNT; COUNT= 0; printf("inserisci una stringa di caratteri\n"); do { scanf("%c", &CH); COUNT++; while (CH!= * ); printf("caratteri contati : %5d\n", count-1); 2 Modificare il precedente programma utilizzando un istruzione while al posto dell istruzione do... while. Soluzione Esercizio 12 /* termina con due asterischi */ main( ){ char a1, a2; int trovato,count; count = 0; printf("inserisci stringa di caratteri \n"); scanf("%c", &a2);

13 1.2. SOLUZIONI 13 trovato = 0; while (trovato == 0) { a1 = a2; scanf("%c", &a2); count++; if (a1 == * && a2 == * ) trovato = 1; printf("caratteri contati : %5d\n",count-1); 2 Modificare il precedente programma in modo da risolvere il problema senza far uso della variabile trovato. Soluzione Esercizio 13 La differenza consiste nell uso delle parentesi graffe che modifica le associazioni tra la clausola else e le clausole if. I frammenti A e B sono sintatticamente corretti, mentre il frammento C non lo è in quanto, a causa delle parentesi graffe, la clausola else non è associata a nessuna clausola if. Il frammento A non è semanticamente corretto: infatti per un valore di a positivo produce come risultato a e zero mentre se a assume il valore zero non produce niente in output. Il frammento B è semanticamente corretto: infatti per un valore di a positivo non produce niente in output mentre se a assume il valore zero produce come risultato a e zero Soluzione Esercizio 14 /* Numeri Relativi */ main( ){ int totpos=0, totneg=0, a; printf("inserisci numero: "); scanf("%d", &a); while (a!= 0) { if (a > 0) totpos = totpos + a; else

14 14 CAPITOLO 1. FONDAMENTI DI INFORMATICA - ESERCIZI 2 totneg = totneg + a; printf("inserisci numero: "); scanf("%d", &a); printf("totale Numeri Positivi = %5d\n", totpos); printf("totale Numeri Negativi = %5d\n", totneg); Modificare il precedente programma utilizzando un istruzione do... posto dell istruzione while. Soluzione Esercizio 15 In base alla definizione di fattoriale di un numero N N! = ρ 1 se N =0oppure N =1 2 Λ :::(N 1) Λ N se N>1 while al il calcolo del fattoriale avviene utilizzando una variabile chiamata fattoriale inizializzata a uno e calcolando il prodotto fattoriale = fattoriale * I perichevada2an. /* Calcolo del fattoriale */ int N; /* numero da acquisire */ int fattoriale; int I; /* variabile di conteggio */ printf("inserire il valore N (non negativo) -->"); do scanf("%d",&n); while (N<0); /* controllo che N non sia negativo */ fattoriale = 1; for (I=2; I<=N; I++) fattoriale = fattoriale * I; printf("il fattoriale di %d vale %d", N,fattoriale);

15 1.2. SOLUZIONI 15 2 Considerando la definizione alternativa di fattoriale di un numero N: N! = ρ 1 se N =0 (N 1)! Λ N se N>0 risolvere il problema del calcolo del fattoriale senza far uso della variabile di conteggio I. Soluzione Esercizio 16 Per stampare la tabellina Pitagorica 10*10 si utilizzano due cicli innestati: quello interno serve per calcolare e stampare una riga, cioè per calcolare e stampare la tabellina di un cero numero R, e quello esterno per ripetere tale calcolo per R da 1 a 10. La struttura dell algoritmo sarà la seguente: - per tutti i valori di R da 1 a 10 - per tutti i valori di C da 1 a 10 - stampa R*C - vai a capo L algoritmo si traduce nel seguente programma: /* Calcolo e stampa della tabellina pitagorica */ int R,C; printf("tabellina Pitagorica 10*10:\n"); for (R=1; R<=10; R++){ for (C=1; C<=10; C++) printf("%5d", R*C); printf("\n"); Soluzione Esercizio 17 Descrizione informale: - acquisisci e controlla che il valore NR sia positivo - per tutti i valori di I da 1 a NR - stampa (NR - I) spazi bianchi - stampa (2*I - 1) caratteri * - vai a capo

16 16 CAPITOLO 1. FONDAMENTI DI INFORMATICA - ESERCIZI /* Stampa Piramide */ int I, J; int NR; printf("numero righe piramide (intero positivo) :"); scanf("%d", &NR); while (NR<=0) { printf("\n Il numero righe deve essere positivo :"); scanf("%d", &NR); for (I=1; I <= NR; I++) { /* ognuno di questi cicli equivale ad una riga */ for (J = 1; J <= NR-I; J++) /* stampa NR - I spazi bianchi /* printf(" "); for (J = 1; J<=2*I-1; J++) /* stampa 2I-1 asterischi /* printf("*"); printf("\n"); /* va a capo */ /* fine del ciclo for esterno con I */ 2 Modificare il precedente programma in modo da stampare una piramide vuota. Esempio con NR=4 * * * * * * * * * * * * Soluzione Esercizio 18 Una sequenza X 1 ;X 2 ;X 3 ;:::X n è crescente se X i <X i+1, per 1» i» n 1. Allora per controllare che una sequenza immessa da input sia crescente sono sufficienti solo due variabili, diciamo C e P (Corrente e Precedente) che rappresentano X i e X i+1, rispettivamente. Descrizione informale: - Inizializza P a zero - Inizializza Count a zero

17 1.2. SOLUZIONI 17 - Inizializza MaxLung a zero - Leggi C - Finche C e diverso da 0 - Se (C>P) - incrementa Count Altrimenti - Se (Count > MaxLung) - MaxLung=Count - Inizializza Count a uno - P=C - Leggi C - Se (Count > MaxLung) - MaxLung=Count - Stampa MaxLung int C,P=0; int Count=0; int MaxLung=0; scanf("%d",&c); while (C!=0) { if (C>P) Count++; else { if (Count>MaxLung) MaxLung=Count; Count=1; P=C; scanf("%d",&c); if (Count>MaxLung) MaxLung=Count; printf("massima Lunghezza %d", MaxLung); Soluzione Esercizio 19 #define N 10

18 18 CAPITOLO 1. FONDAMENTI DI INFORMATICA - ESERCIZI int n1,n2,n3; int I; int trovato=0; for(i=1;i<=n;i++){ scanf("%d",&n3); if ((I>=3) && (n3==n2+1) && (n2==n1+1) && (n2>0)) trovato=1; n1=n2; n2=n3; if (trovato) printf("ok"); 2 Modificare il precedente programma in modo tale che l acquisizione dei numeri termini non appena sia stata letta una sequenza con le caratteristiche richieste, senza arrivare necessariamente ad N acquisizioni. Soluzione Esercizio 20 Si legge la frase carattere per carattere e due caratteri consecutivi vengono memorizzati due variabili, Ch1 e Ch2: Q u e s t a è u n a p r o v a Ch1 Ch2 In questo modo è possibile individuare quando inizia e quando finisce una parola: Ch1 Ch2 Significato!= == è terminata la parola corrente: incrementare di uno il numero delle parole e controllare se la lunghezza della parola appena terminata è quella massima azzerare la lunghezza della parola corrente successiva!=!= continua la parola corrente: incrementare di uno la sua lunghezza ==!= è iniziata la parola corrente: incrementare di uno la sua lunghezza == == non ci sono parole: non fare nessuna azione Si noti che ffl All inizio della frase: il numero di parole e la lunghezza della parola corrente sono zero Ch2 è il primo carattere della frase, mentre Ch1 viene inizializzato a

19 1.2. SOLUZIONI 19 ffl Alla fine della frase: la parola corrente può terminare anche con Ch1!= e Ch2== \n Pertanto i casi da considerare sono sostanzialmente due: se (Ch2!= && Ch2!= \n ) la parola comincia (nel caso in cui Ch1== ) oppure continua (se Ch1!= ): in entrambi i casi occorre aumentare di uno la sua lunghezza altrimenti (cioè Ch2== Ch2== \n ) se (Ch1!= ) la parola è terminata - Inizializzare a zero NPAR e MAXLUNG - Inizializzare con il carattere spazio bianco Ch1 - Ripeti - leggi un carattere in Ch2 - effettua i controlli e le azioni riportate in precedenza - poni Ch1 uguale a Ch2 - Finche il carattere Ch2 e diverso dal fine riga \n - Stampa i risultati Il programma risultante sarà quindi il seguente: main() { char Ch1=,Ch2; int NPAR=0; /* numero parole */ int MAXLUNG=0; /* massima lunghezza di una parola */ int LUNG=0; /* lunghezza della parola corrente */ int i; printf("inserire la frase \n "); do { scanf("%c",&ch2); if (Ch2!= && Ch2!= \n ) /* la parola comincia o continua */ LUNG = LUNG +1; else if (Ch1!= ) /* e terminata una parola */ { NPAR = NPAR +1;

20 20 CAPITOLO 1. FONDAMENTI DI INFORMATICA - ESERCIZI Ch1=Ch2; while (Ch2!= \n ); if (LUNG>MAXLUNG) MAXLUNG=LUNG; LUNG=0; printf("\n Numero parole --> %d \n",npar); printf("\n Lunghezza parola piu lunga" "--> %d \n",maxlung);

1 Elementi base di un programma INTRODUZIONE AL C SOLUZIONI... 8

1 Elementi base di un programma INTRODUZIONE AL C SOLUZIONI... 8 Indice 1 Elementi base di un programma 3 1.1 INTRODUZIONE AL C....................... 4 1.2 SOLUZIONI............................. 8 2 Dato strutturato array 23 2.1 DATI STRUTTURATI........................

Подробнее

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

Подробнее

Lab 04 Programmazione Strutturata"

Lab 04 Programmazione Strutturata Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 04 Programmazione Strutturata" Lab04 1 Valutazione in cortocircuito (1)" In C, le espressioni booleane sono valutate

Подробнее

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

Подробнее

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

Подробнее

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:

Подробнее

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

Подробнее

Schemi ricorrenti nei cicli. Contatori Accumulatori Flag Esistenza e universalità

Schemi ricorrenti nei cicli. Contatori Accumulatori Flag Esistenza e universalità Cicli ed iterazioni Schemi ricorrenti nei cicli Contatori Accumulatori Flag Esistenza e universalità 2 Schemi ricorrenti nei cicli Contatori Spesso in un ciclo è utile sapere Quante iterazioni sono state

Подробнее

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

Подробнее

I cicli. Iterazioni Calcolo della media Istruzioni break e continue

I 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

Подробнее

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",

Подробнее

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

Подробнее

Lab 04 Istruzioni, cicli e array"

Lab 04 Istruzioni, cicli e array Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2009/2010 Lab 04 Istruzioni, cicli e array" Lab04 1 Esercizio 1" Si scriva un

Подробнее

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

Подробнее

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

Подробнее

do { printf("inserisci due numeri reali:"); scanf("%f %f", &a, &b); while(b!=0 && a/b<0);

do { printf(inserisci due numeri reali:); scanf(%f %f, &a, &b); while(b!=0 && a/b<0); Obiettivi di questa esercitazione Fondamenti di Informatica T-1 modulo 2 Laboratorio 02 1. Valutazione in cortocircuito i 2. If innestati 3. Switch 4. Cicli 5. Funzioni e Header File 1 2 Valutazione in

Подробнее

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

Подробнее

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

Подробнее

2 Operatori matematici e costrutto if

2 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

Подробнее

Fondamenti di Informatica e Laboratorio T-AB e Fondamenti di Informatica T1 Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione

Fondamenti di Informatica e Laboratorio T-AB e Fondamenti di Informatica T1 Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione Fondamenti di Informatica e Laboratorio T-AB e Fondamenti di Informatica T1 Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione Lab 03 Istruzioni" Lab03 1 Esercizio 1" n Realizzare

Подробнее

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

Подробнее

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

Подробнее

Fondamenti di Informatica

Fondamenti 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

Подробнее

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica (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

Подробнее

Esercitazione 3. Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf

Esercitazione 3. Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf Riassunto Esercitazione 3 Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf Sono state introdotte anche le seguenti relazioni: uguaglianza:

Подробнее

Linguaggio C++ 5. Strutture cicliche

Linguaggio C++ 5. Strutture cicliche 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) Linguaggio C++ 5 Strutture cicliche Linguaggio C++ 5 1 Strutture cicliche Utilizzate per ripetere un certo numero di volte

Подробнее

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

Подробнее