Istruzioni Condizionali in C

Documenti analoghi
Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

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

Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch

Laboratorio di programmazione

SOLUZIONE ESERCIZIO 1

Istruzioni iterative (o cicliche)

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

5 - Istruzioni condizionali

PROGRAMMAZIONE: Le strutture di controllo

Linguaggio C. strutture di controllo: strutture sequenziali e condizionali. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Scelte ed alternative. Esercizi risolti

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

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

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

La sintassi del C APPENDICE H

Introduzione al linguaggio C

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

Espressione di chiamata di funzione

Programmazione strutturata

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Struttura dei programmi C

Introduzione alla programmazione in C(++)

Algoritmi e basi del C Struttura di un programma

linguaggio di programmazione e programma

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

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Esercizi di programmazione in linguaggio C - Costrutto iterazione

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

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

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

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

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test

Espressioni ed operatori in C

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

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI

Linguaggio C - sezione dichiarativa: costanti e variabili

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

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

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Costrutti condizionali e iterativi

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

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010

Introduzione alla programmazione in C

IL PRIMO PROGRAMMA IN C

Programmazione web lato client con JavaScript. Marco Camurri 1

Esercitazione 6. Array

ESEMPIO: le variabili LETTURA/SCRITTURA DI VARIABILI. Specifica Leggere da tastiera un intero, un carattere, un float e un double. Stamparli a video.

Linguaggio C - Funzioni

La gestione dei caratteri in C

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

Corso di Informatica 1 Esercitazione n. 4

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

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Programmazione in Python. Moreno Marzolla

Transcript:

Concetti chiave Istruzioni Condizionali in C Tipi di Istruzioni Condizionali Espressioni Blocchi d istruzioni Istruzioni Condizionali: if-else Istruzioni Condizionali: switch-case Istruzione break

Istruzioni Condizionali Espressione Vero Istruzione Falso Vero Falso Istruzione 1 Espressione Istruzione 2

Istruzioni Condizionali Espressione Valore 1 Valore n Valore 2 Istruzione 1 Istruzione 2 Istruzione n

Espressioni Espressione: combinazione di variabli ed operatori Operatori: Aritmetici, Relazionali e Logici, Assegnazione, Incremento/Decremento unitario, Condizionali e Virgola Valore Assunto: booleano (vero, falso) In linguaggio C: Falso=0 Vero=qualunque valore diverso da zero x, vero se x è diverso da zero, altrimenti è falsa

Espressioni Operatori Relazionali: Operatore di uguaglianza == è diverso da quello di assegnamento = Operatore di diseguaglianza!= Operatori: >, >=, < e <= x>y, vero se x assume un valore maggiore di y z == t, vero se x assume un valore uguale a y x!=y, vero se x assume un valore diverso da y

Espressioni Operatori Logici: && (and), (or),! (not) Vero Vero Vero Vero Vero Vero Vero Vero Vero Vero Tavola di verità degli operatori logici, dove 0 corrisponde a FALSO

Espressioni Combinazione tra Operatori Relazionali e Logici Esempi: x==y && a>b è vera se (x è uguale a y) e contemporaneamente (a è maggiore di b) i>n && x!=y è vera se (i è maggiore di n) e contemporaneamente (x è diversa da y) b<c t!=r è vera solo se (b è minore di c) OPPURE (t è diversa da r); se valgono entrambe è ancora vera

Istruzioni Condizionali: if Per eseguire un istruzione al verificarsi di una certa condizione, si utilizza l istruzione if. Sintassi: if(espressione) istruzione se espressione è vera si esegue istruzione; L istruzione può essere un blocco espressione restituisce vero o falso; Una espressione che fornisce valore 0 è falsa Una espressione che fornisce un valore diverso da 0 è vera Esempio: Per visualizzare minore di 100 se i è minore di 100: if(i<100) printf("minore di 100");

Istruzioni Condizionali: if Classico Errore: if(i<100); printf( Valore minore di 100 ); Uso di Blocchi: if(i<100) printf( Valore minore di 100 ); printf( il Valore di i e %d,i); if(i<100) { printf( Valore minore di 100 ); printf( il Valore di i e %d,i);

Istruzioni Condizionali: if-else La sintassi completa dell istruzione if è: if(espressione) istruzione1 else istruzione2 se espressione è vera viene eseguita istruzione1, altrimenti (else) se è falsa viene eseguita istruzione2. Nulla vieta che una delle due istruzioni sia la stessa istruzione if if (a>=10) printf("a maggiore o uguale a 10\n"); else if (a>=5) printf("a compreso tra 5 (incluso) e 10 (escluso) \n");

Istruzioni Condizionali: if-else La sintassi completa dell istruzione if è: if(espressione) istruzione1 else istruzione2 se espressione è vera viene eseguita istruzione1, altrimenti (else) se è falsa viene eseguita istruzione2. Nulla vieta che una delle due istruzioni sia la stessa istruzione if if (a>=10) printf("a maggiore o uguale a 10\n"); else if (a>=5) printf("a compreso tra 5 (incluso) e 10 (escluso) \n"); else if (a>=0) printf("a compreso tra 0 (incluso) e 5 (escluso) \n");

Istruzioni Condizionali: if annidati Supponiamo di voler tradurre l algoritmo: se i<100, nel caso in cui i>0 scrivi sul video la frase "minore di 100 e maggiore di zero"; invece se i 100 scrivi sul video la frase "maggiore o uguale a 100"; Errore: if (i<100) if (i>0) printf("minore di 100 e maggiore di zero"); else printf("maggiore o uguale a 100"); Perché?: il ramo else si riferisce all if più interno

Istruzioni Condizionali: if annidati Soluzione: uso dei blocchi if (i<100) { if (i>0) printf("minore di 100 e maggiore di zero"); else printf("maggiore o uguale a 100");

Versione Corretta: if(i<100){ printf("numero minore " ); printf("di 100"); else { printf( numero maggiore "); printf( o uguale a 0"); Istruzioni Condizionali: if annidati Classici Errori: if(i<100) printf("numero minore " ); printf("di 100"); else printf( numero maggiore "); printf( o uguale a 0"); Errore in Compilazione Errore logico

Esercizio: if-else #include <stdio.h> int i; int main (void) { printf("dammi un intero: "); scanf("%d", &i); if (i<100) printf( \nminore di 100"); else printf( \nmaggiore o uguale a 100");

Esercizio: if-else #include<stdio.h> double n; int main(void){ printf("\ninserisci un numero diverso da zero "); scanf("%lf",&n); if (!n) printf("\nerrore\n"); else printf("\n%f",1/n);

Esercizio: if-else 65 A 66 B 67 C 68 D 69 E 70 F 71 G 97 a 98 b 99 c 100 d 101 e 102 f 103 g #include<stdio.h> char n; int main(void) { printf("\ninserisci una lettera dell'alfabeto "); scanf("%c",&n); if (n>='a' && n<='z') { printf("\ncarattere Minuscolo"); printf("\nil Carattere Maiuscolo e' = %c ",'A'-'a'+n); else if (n>='a' && n<='z') { printf("\ncarattere Maiuscolo"); printf("\nil Carattere Minuscolo e' = %c ",'a'-'a'+n); else printf("\nnon hai inserito una lettera dell'alfabeto");

Esercizio: if-else Per verificare se il carattere è una lettera scriviamo: if(x>='a' && x<='z' x>='a' && x<='z') printf("\nsi tratta di una lettera"); else printf("\nnon si tratta di una lettera");

Esercizio: if-else Data l equazione ax + b = 0, scrivere un programma in linguaggio C per determinare il valore di x, se esiste, che risolve l equazione: x = b a #include <stdio.h> float a, b, x; int main(void) { printf("\nrisoluzione equazioni di primo grado "); printf("\nequazione nella forma: ax + b = 0 ") ; printf("\nimmetti coefficiente a: "); scanf("%f", &a); printf("\nimmetti coefficiente b: "); scanf("%f", &b); if(a) { x = - b / a ; printf("\nla soluzione e' x = %f ", x) ; else if(!b ) printf("\nequazione indeterminata (infinite soluzioni)"); else printf("\nequazione impossibile (non ammette soluzioni) ");

Istruzioni Condizionali: switch-case Implementa decisioni multiple confrontando un espressione (int o char) e un insieme di valori costanti. Ad ogni valore costante è associata una o più istruzioni La parola chiave case precede ogni valore costante Il numero di case non è limitato Se espressione è uguale ad uno dei valori costanti il controllo passa alla sequenza di istruzioni a partire dalla prima istruzione associata al valore costante Oltre alla parola chiave case, si può utilizzare (opzionale) anche una e una sola parola chiave default Se l espressione non corrisponde a nessuna delle costanti, il controllo è trasferito alla prima istruzione successiva a default, se presente. Altrimenti si esce dal blocco switch switch(espressione) { case costante1: istruzione... case costante2: istruzione... case costante3: istruzione... default: istruzione...

Istruzioni Condizionali: switch-case Utilizzo del comando break all interno dello switch switch(espressione) { case costante1: istruzione... break; case costante2: istruzione... break; case costante3; istruzione... break;... [default: istruzione... ]

Istruzioni Condizionali: switch-case #include <stdio.h> int x; int main(void) { printf("digita una cifra: "); scanf("%d", &x); switch(x) { case 0: printf("zero\n"); break; case 1: printf("uno\n"); break; case 2: printf("due\n"); break; case 3: printf("tre\n"); break; default: printf("non compreso\n");

Istruzioni Condizionali: switch-case È anche possibile far corrispondere a un gruppo di istruzioni più costanti, ripetendo più volte la parola chiave case seguita dai due punti. #include <stdio.h> unsigned short x; int main(void){ printf("digita una cifra tra 1 e 6: "); scanf("%d", &x); switch(x) { case 2: case 4: case 6: printf("\npari"); break; case 1: case 3: case 5: printf("\ndispari"); break; default: printf("\nnumero 0 o > 6");

Istruzioni Condizionali: switch-case Classico uso: menu di scelta Non è necessario printf("\n\t\t\tmenu'\n"); printf("\n1) Operazione 1"); printf("\n2) Operazione 2"); printf("\n3) Operazione 3"); printf("\n4) Fine Programma "); printf("\ninserisci la tua scelta: "); scanf("%u",&scelta); switch(scelta) { case 1: istruzione1; break; case 2: istruzione2; break; case 3: istruzione3; break;