Piero Scotto - C141 C14 #09 Gestione stringhe: esercizio. Switch case. Variabili logiche.

Slides:



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

INFORMATICA Altre Istruzioni di I/O
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.
Selezione - approfondimento
PROGRAMMARE IN PASCAL (le basi)
Sviluppo di programmi strutturati
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
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.
La ricorsione Simulazione. Il Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n:
INFORMATICA Strutture iterative
Caratteri e stringhe di caratteri
PROGRAMMI DI RICERCA E ORDINAMENTO
Algoritmi Politecnico di Milano C Primi programmi Politecnico di Milano.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Algebra di Boole ed elementi di logica
APPUNTI SUL LINGUAGGIO C
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Laurea.
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Laurea.
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Esercizi su pile Scrivere una funzione che restituisca una nuova pila che contiene i valori di una pila in ingresso in ordine inverso. La pila originale.
Esercizi su alberi binari
Procedure e funzioni nei linguaggi di alto livello Lab Programmazione - turno /2006.
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.
Strutture di controllo nel C
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 di riepilogo sul linguaggio C: file, puntatori, liste
File di testo, file binari
I File.
Le funzioni.
C14 #12 Verso le olimpiadi Piero Scotto - C14.
Piero Scotto - C141 C14 #6 I VETTORI (#define e const)
Equazione di secondo grado.
1. 2 Struct Al fine di illustrare luso del tipo struct, utilizzando le struct descritte nella lezione precedente, mostriamo come si scrive un programma.
void binario(int n); …………………
21 marzo 2002 (ri-)Avvisi: Giovedi 28 marzo la lezione e sospesa. Nuovo indirizzo di Spedire messaggi e esercizi solo.
Esercizi su File.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Piero Scotto - C141 C14 SINTASSI DEL C VARIABILI e COSTANTI.
Gestione dei file di testo, matrici e struct
C14 #5 I cicli FOR e WHILE Piero Scotto - C14.
Piero Scotto - C141 C14 #7 Do While – Break Funzioni ricorsive.
Piero Scotto - C141 C14 #8 Stringhe e relative funzioni.
Piero Scotto - C141 C14 #10 Il programma Dev-c++ Gestione dei file.
Soluzioni e commenti esercizi 1 e 2
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.
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni – BCOR Ingegneria Elettronica – BELR Introduzione al C Esercitazione 5 D. Bloisi, A.
Anno accademico Le istruzioni di controllo in C.
Ripetizione La vera potenza dei programmi per computer risiede nella capacità di ripetere lo stesso calcolo o sequenza di istruzioni più volte, ogni volta.
Programmazione in linguaggio C
Corso JAVA Lezione n° 03 Istituto Statale di Istruzione Superiore “F. Enriques”
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
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 ( )
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Operatori di incremento e decremento
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
Transcript della presentazione:

Piero Scotto - C141 C14 #09 Gestione stringhe: esercizio. Switch case. Variabili logiche

Finalità del corso Piero Scotto - C142

3 Problema. Ricavare dal codice fiscale la data di nascita e il sesso. Vediamo di procedere passo passo per la soluzione del problema. Inizialmente passiamo il codice fiscale via input. Ci sarebbero da fare diversi controlli sulla correttezza: limitiamoci a quello sulla lunghezza.

Piero Scotto - C144 #define MAXSTR 16 /* definisco la lunghezza del codice fiscale */ int main() { char codice[MAXSTR]; /* vettore codice fiscale */ short corretto = 0; /* variabile logica 0=FALSO */ do { printf("Scrivere il codice fiscale "); gets(codice); /* funzione con cui prendo il codice */ if (strlen(codice)!=MAXSTR) printf("Codice errato"); else corretto=1; } while (!corretto); printf("Il codice è corretto: %s ", codice);

Piero Scotto - C145 … gets(codice); /* da qui inizio a lavorare sul codice */ Definisco nuove variabili: giorno, mese, anno sono ancora caratteri o stringhe, mentre day, month, year sono i corrispondenti valori numerici. Sia in codice che in tutte le altre stringhe si inizia a contare da 0 giorno[0]=codice[9]; giorno[1]=codice[10]; Giorno contiene due caratteri: char giorno[2]; day=atoi(giorno); /* day e' il numero riferito a giorno: uso la funzione atoi alphanum to integer */

Piero Scotto - C146 Analogamente per lanno: anno[0]=codice[6]; anno[1]= codice[7]; year=atoi(anno); /* year e' il numero riferito all'anno */ mese=codice[8]; /* mese invece e' una lettera */

Piero Scotto - C147 Nel Codice fiscale linformazione sul sesso è inserita nel giorno di nascita (posizioni nella stringa codice) ES. NPLLNZ98D23L219S Il 23 è il giorno di nascita e si tratta di un uomo Invece NPLSRA98D63L219F il 63 è il giorno di nascita – dobbiamo togliere 40 – e si tratta di una donna. if (day > 40) sex=0; else sex=1; /* stabilisco il sesso */ if (sex==0) day=day-40; /* stabilisco il giorno anche per le femmine */ if (sex==0) printf("Persona di sesso femminile. "); else printf("Persona di sesso maschile. ");

Piero Scotto - C148 Ora resta da trattare il mese. Nel codice fiscale è una lettera secondo una ben precisa codifica. La troviamo alla posizione 9.

Piero Scotto - C149 Per tradurre la lettera in numero dobbiamo considerare 12 casi. Potremmo utilizzare una serie di if, eventualmente annidati, ma esiste una istruzione più semplice molto adatta alla trattazione di numerosi casi diversi. Listruzione si chiama: switch – case

Piero Scotto - C1410

Piero Scotto - C1411

Piero Scotto - C1412

Piero Scotto - C1413

Piero Scotto - C1414

Piero Scotto - C1415

Piero Scotto - C1416

Piero Scotto - C1417 switch (mese) { case 'A': month=1; break; case 'B': month=2; break; case 'C': month=3; break; case 'D': month=4; break; case 'E': month=5; break; case 'H': month=6; break; case 'L': month=7; break; case 'M': month=8; break; case 'P': month=9; break; case 'R': month=10; break; case 'S': month=11; break; case 'T': month=12; break; default: month=0; break; /* in tutte le altre situazioni */ }

Piero Scotto - C1418 #include #include /* per le funzioni sulle stringhe */ #define MAXSTR 16 int main() { char codice[MAXSTR], giorno[2], mese, anno[2]; short corretto = 0, sex, day, month=0, year; do { printf("Scrivere il codice fiscale "); gets(codice); if (strlen(codice)!=MAXSTR) printf("Codice errato"); else corretto=1; } while (!corretto); printf("Il codice è corretto: %s ", codice); giorno[0]=codice[9]; giorno[1]=codice[10]; /* giorno: 2 caratteri */ day=atoi(giorno); /* day e' il numero riferito a giorno */ mese=codice[8]; /* mese */ anno[0]=codice[6]; anno[1]= codice[7]; year=atoi(anno); /* year e' il numero riferito all'anno */ if (day > 40) sex=0; else sex=1; /* stabilisco il sesso */ if (sex==0) day=day-40; /* stabilisco il giorno anche per le femmine */ if (sex==0) printf("Persona di sesso femminile. "); else printf("Persona di sesso maschile. ");

Piero Scotto - C1419 switch (mese) { case 'A': month=1; break; case 'B': month=2; break; case 'C': month=3; break; case 'D': month=4; break; case 'E': month=5; break; case 'H': month=6; break; case 'L': month=7; break; case 'M': month=8; break; case 'P': month=9; break; case 'R': month=10; break; case 'S': month=11; break; case 'T': month=12; break; default: month=0; break; } printf("La data di nascita e' %d-%d-%d ", day,month,year); getchar(); /* per tenere attiva la console e non farla sparire */ return 0; }

Piero Scotto - C1420

Piero Scotto - C1421

Piero Scotto - C1422

Piero Scotto - C1423