Strutture di controllo nel C

Slides:



Advertisements
Presentazioni simili
Corso di Fondamenti di Programmazione canale E-O
Advertisements

INFORMATICA Altre Istruzioni di I/O
INFORMATICA Algoritmi fondamentali
Esercitazioni If nidificati
Process synchronization
Uso avanzato di C.
Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Iterazione A. Ferrari.
Stringhe di caratteri In linguaggio C.
Interazione con lutente I menu. Menu La forma più semplice di interazione con lutente è il menu che fornisce una serie di opzioni tra le quali lutente.
3TC – 5/11/2010 Cicli while e do.. While Contatori e Totalizzatori.
Sviluppo di programmi strutturati
Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A CDL in Ingegneria Elettronica - A.A Strutture di controllo Ing.
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A Strutture di controllo Ing. Simona Colucci.
Introduzione al linguaggio C
La ricorsione Simulazione. Il Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n:
ESERCITAZIONE N. 5 ESERCIZIO N. 1 Autore: Biagio Brattoli S I Corso.
INFORMATICA Strutture iterative
Tipi di dato e controllo del flusso Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione 1, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a.2009/2010 Prof.ssa Chiara Petrioli.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Algoritmi Politecnico di Milano
Algoritmi Politecnico di Milano C Primi programmi Politecnico di Milano.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
Algebra di Boole ed elementi di logica
ITERAZIONE e RICORSIONE (eseguire uno stesso calcolo ripetutamente) ITERAZIONE: ripetere piu volte una sequenza di operazioni istruzioni: for, while, do.
Selezione (=scelta) con “if-else”
INFORMATICA Esercizi.
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Strutture di controllo in C -- Flow Chart --
Esercizi C sui tipi definiti dall’utente
Politecnico di Milano Esercizi Stringhe Ricerca binaria.
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
File di testo, file binari
Esercizi C su array e matrici
Dichiarazioni e tipi predefiniti nel linguaggio C
Le liste dinamiche La ricorsione
I File.
Le funzioni.
Calcolo del Massimo Comun Divisore
CODIFICA Da flow-chart a C++.
Programmazione di Calcolatori
Parte 4 Elementi di Informatica di base
void binario(int n); …………………
Massimo Comun Divisore
Laboratorio di Informatica1 Parte 4 Laboratorio di Informatica Dott.ssa Elisa Tiezzi Dott.ssa Elisa Mori.
14 marzo 2002 Avvisi:.
Esercizi su File.
Capitolo 4 (Deitel) Le strutture di controllo in C
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Anno accademico Le istruzioni di controllo in C.
ALGORITMI Un algoritmo è un insieme di istruzioni: -ordinate -non ambigue -effettivamente computabili.
Ripetizione La vera potenza dei programmi per computer risiede nella capacità di ripetere lo stesso calcolo o sequenza di istruzioni più volte, ogni volta.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Ottobre 2014.
#include void main() { int a,b,c,; float s, x,x1,x2,delta,alfa,beta; int num[3]; int i; printf("La forma classica dell'equazione di 2° grado è: a*x^2+b*x+c=0\n.
ALGORITMO Un algoritmo è un procedimento che risolve un determinato problema attraverso un numero finito di passi. Un formalismo che permette di rappresentare.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
Operatori di incremento e decremento
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (III)
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
Transcript della presentazione:

Strutture di controllo nel C Sequenza, if, switch, while, do while, for

... } Istruzione1; Istruzione2; } ... Sequenza Istruzione2 Istruzione1 ... } Istruzione1; Istruzione2; } ...

... if (condizione) { IstruzioniA; } else { IstruzioniB; } ... Selezione: if Condizione IstruzioniB V F IstruzioniA ... if (condizione) { IstruzioniA; } else { IstruzioniB; } ...

Selezione: switch variabile == val1 V F IstruzioniA variabile == val2 IstruzioniB IstruzioniC ... switch (variabile) { case val1: IstruzioniA; break; case val2: IstruzioniB; break; default: IstruzioniC; } ...

... while (condizione) { Istruzioni; } ... Iterazione: while Condizione Istruzioni V F ... while (condizione) { Istruzioni; } ...

... do { Istruzioni; } while (condizione); ... Iterazione: do while Condizione Istruzioni V F ... do { Istruzioni; } while (condizione); ...

Inizializzazione contatore Iterazione: for Condizione Istruzioni V F Inizializzazione contatore Incremento contatore ... for (iniz cont; condizione; inc cont) { Istruzioni; } ... Il contatore puo: Essere incrementato o decrementato Avere un passo diverso da 1

Esempi in C sulle strutture di controllo Metodi classici per l’inserimento dei dati, divisibilità e molteplicità

Anno bisestile L’utente inserisce un anno ed il calcolatore verifica se è bisestile Se l’utente inserisce un numero minore di zero il programma termina (senza ovviamente fare alcuna verifica) altrimenti, al termine della verifica, si ricomincia daccapo Ricordiamo che un anno è bisestile se: è divisibile per 4 ma non per 100, oppure se è divisibile per 400.

Anno bisestile . #include <stdio.h> void main () { unsigned int restoDiv4, restoDiv100, restoDiv400; int anno; printf ("Inserire un anno: "); scanf ("%d", &anno); while (anno >= 0) restoDiv4 = anno % 4; restoDiv100 = anno % 100; restoDiv400 = anno % 400; .

Anno bisestile if (restoDiv4 == 0 && restoDiv100 != 0 || restoDiv400 == 0) { printf ("L’anno è bisestile\n"); } else printf ("L’anno non è bisestile\n"); printf ("Inserire un altro anno: "); scanf ("%d", &anno); printf ("Fine.\n"); .

Anno bisestile Nota sul ciclo (“terminatore escluso”): lettura dato inizio ciclo e controllo dato (terminatore?) elaborazione dato lettura dato successivo fine ciclo.

Da minuscolo a maiuscolo L’utente inserisce una sequenza di caratteri, terminata dal carattere ‘#’ Il programma visualizza i caratteri, trasformando tutte le lettere minuscole in maiuscole Eventuali caratteri diversi dalle lettere minuscole e dal ‘#’ devono essere visualizzati come ‘_’ Il carattere ‘#’ deve essere anch’esso visualizzato

Da minuscolo a maiuscolo #include <stdio.h> void main() { char carattere; printf ("Caratteri (termina con #): "); do scanf (" %c", &carattere); if (carattere >= 97 && carattere <= 122) printf ("%c", carattere - 32); } .

Da minuscolo a maiuscolo else if (carattere != '#') { printf ("_"); } else printf ("#"); } while (carattere != '#');

Da minuscolo a maiuscolo Nota sul ciclo (“terminatore incluso”): inizio ciclo Lettura dato elaborazione dato fine ciclo e controllo dato (terminatore?).

Fattoriale L’utente inserisce alcuni numeri naturali e l’elaboratore ne calcola il fattoriale Ricordiamo che i fattoriale è definito come: n! = 1 sse n = 0 n! = n·(n – 1)! sse n > 0 Usiamo un procedimento iterativo: il fattoriale può essere calcolato: n! = 1 sse n = 0 n! = 123…n sse n > 0 .

Fattoriale #include <stdio.h> void main() { unsigned int n, i, max, j; unsigned long int fat; printf ("Quanti numeri?: "); scanf ("%u", &max); .

Fattoriale for (j = 1; j <= max; j++) { printf ("Introduci numero naturale: "); scanf ("%u", &n); fat = 1; for (i = 1; i <= n; i++) { fat = fat * i; } printf ("Il fattoriale è: %lu\n", fat); }

Fattoriale Nota sul ciclo (“nessun terminatore, inserisci numero elementi”): Lettura numero elementi da inserire inizio ciclo for per il numero di elementi Lettura dato elaborazione dato fine ciclo.

Calcolatrice L’utente inserisce un carattere (‘+’, ‘-’, ‘*’, ‘/’) che rappresenta l’operazione da eseguire e due operandi (numeri float) L’operazione viene eseguita, se possibile.

Calcolatrice #include <stdio.h> void main() { float op1, op2, tot; char operazione; unsigned int errore = 0; printf ("Operazione (+,-,*,/): "); scanf ("%c", &operazione); printf ("Primo operando: "); scanf ("%f", &op1); printf ("Secondo operando: "); scanf ("%f", &op2); .

Calcolatrice switch (operazione) { case '+': tot = op1 + op2; break; case '/': if (op2 != 0) tot = op1 / op2; else errore = 1; default: printf ("Operazione?\n"); } .

Calcolatrice if (errore == 0) { printf ("Risultato: %f\n", tot); } else printf ("Errore!\n"); } .