Programmazione strutturata

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

Download "Programmazione strutturata"

Транскрипт

1 Programmazione strutturata Il teorema di Jacopini Bohn afferma che qualunque algoritmo può essere descritto utilizzando esclusivamente tre strutture fondamentali ( dette anche strutture di controllo): La struttura sequenziale La struttura condizionale (o di selezione) La struttura iterativa Un linguaggio di programmazione che permette di utilizzare queste strutture è detto strutturato /10/2001 Informatica per la Fisica II 1

2 La struttura Sequenziale Descrizione Flow Chart pseudocodifica Rappresenta la sequenza di azioni elementari direttamente eseguibili una di seguito all altra Istr 1 Istr 2 Esegui Istr_1 Esegui Istr_2 Es. Linguaggio C A=12; B=14; C=A+B; 15-19/10/2001 Informatica per la Fisica II 2

3 La struttura Condizionale Descrizione Flow Chart pseudocodifica Rappresenta la scelta, in base alla risposta di un Test, tra due esecuzioni poste in alternativa Istr 2 NO Test SI Istr 1 SE Test ALLORA Istr_1 ALTRIMENTI Istr_2 FINE SE Es. Linguaggio C if(test) Istr_1; else Istr_2; 15-19/10/2001 Informatica per la Fisica II 3

4 La struttura Condizionale Descrizione Flow Chart pseudocodifica Rappresenta la scelta, in base alla risposta di un Test, tra due esecuzioni poste in alternativa NO Test SI SE Test ALLORA Blocco A ALTRIMENTI Blocco B FINE SE B A Es. Linguaggio C if(test){ a=1; b=3; } else{ a=2; b=4; } 15-19/10/2001 Informatica per la Fisica II 4

5 La struttura Condizionale Descrizione Flow Chart pseudocodifica Rappresenta la scelta, in base alla risposta di un Test, tra due esecuzioni poste in alternativa NO Test SI SE Test ALLORA FINE SE Blocco A A Es. Linguaggio C if(test){ } a=1; b=3; 15-19/10/2001 Informatica per la Fisica II 5

6 La struttura Iterativa Descrizione Flow Chart pseudocodifica Rappresenta la ripetizione si una o più azioni fino a quando la risposta al test rimane affermativa; quando la risposta è negativa l iterazione termina Test SI NO QUANDO Test ESEGUI Blocco C FINE QUANDO Es. Linguaggio C C while (test){ a=1; b=2; } 15-19/10/2001 Informatica per la Fisica II 6

7 La struttura Iterativa Descrizione Flow Chart pseudocodifica Rappresenta la ripetizione si una o più azioni fino a quando la risposta al test rimane affermativa; quando la risposta è negativa l iterazione termina NO A Test RIPETI ESEGUI Blocco C FINO A QUANDO Test FINE RIPETI do{ Es. Linguaggio C a=1; SI b=2; }while (test); 15-19/10/2001 Informatica per la Fisica II 7

8 Il Linguaggio C Il C e' stato progettato da Dennis Ritchie su UNIX, e discende dal B, ideato nel 1970 da Ken Thompson, e il B a sua volta discende dal BCPL, sviluppato da Martin Richards. Nel 1983 l'istituto Nazionale Americano per gli Standard (ANSI) ha iniziato una standardizzazione del C, terminata nel 1989 con la definizione dell'ansi C, che differisce di poco dal C di K&R (B. W. Kernighan & D. M. Ritchie - Linguaggio C ). In seguito e' stato aggiornato alla programmazione orientata agli oggetti, dando origine al C /10/2001 Informatica per la Fisica II 8

9 Caratteristiche del Linguaggio C Le principali caratteristiche del C sono: linguaggio strutturato; dimensioni ridotte; utilizzo frequente di chiamate a funzioni; programmazione a basso livello facilmente disponibile; implementazione dei puntatori ( puntatori per memoria, vettori, strutture e funzioni); 15-19/10/2001 Informatica per la Fisica II 9

10 Linguaggio C Identificatori (Identifier) Identificatori:tutti gli elementi di un programma C (variabili, funzioni, istruzioni ecc.) sono indicati attraverso degli identificatori cioè delle sequenze di lettere e cifre, in cui al primo posto vi è una lettera. caratteri (nondigit): _ a b c d e f g h i j k l m o p q r s t u v w x y z A B C D E F G H I J K L M O P Q R S T U V W X Y Z numeri (digit): Es. a, abc, somma, differernza,. Identificatori Riservati e Predefiniti; Es. main, printf, scanf, Parole chiave (ca. 30) 15-19/10/2001 Informatica per la Fisica II 10

11 Linguaggio C Parole Chiave (Keywords) Parole chiave dell ANSI C auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while (ANSI X , American National Standard for Information Systems Programming Language C) 15-19/10/2001 Informatica per la Fisica II 11

12 Linguaggio C Il Primo Programma Il Classico primo programma in C e': /* HelloWorld.c :Esempio di programma in C */ #include <stdio.h> void main() { printf( Hello World\n ); } /* Fine del programma */ I commenti vanno sempre inclusi tra /* (inizio commento) e */ (fine commento). Non si puo' inserire un commento in un altro #include = leggi anche nel file stdio.h che contiene le definizione delle funzioni di input/output. Ogni programma C e C++ deve contenere una e una sola funzione main(). Funzione di scrittura sullo Standard Output 15-19/10/2001 Informatica per la Fisica II 12

13 Linguaggio C La compilazione Una volta che il programma HelloWorld è stato scritto con un Text Editor e salvato in un file HelloWorld.c il programma deve essere compilato. Sono disponibili molti compilatri C/C++. In questo corso useremo: Windows 95/98/NT/2000/XP: Linux: Microsoft Visual C++ gcc (GNU Compiler Collection) gcc è stato realizzato dalla Free Software Foundation /10/2001 Informatica per la Fisica II 13

14 Linguaggio C La compilazione in ambiente Linux Per compilare il programma HelloWord.c usare il comando: []$ gcc HelloWorld.c Se il compilatore trova errori (in genere syntax error: errori di battitura, errori di sintassi delle parole chiave o ";" omessi), questi vengono identificati e visualizzati; in caso contrario, viene creato il file eseguibile: a.out Il compilatore non identifica eventuali errori di logica del programma /10/2001 Informatica per la Fisica II 14

15 Linguaggio C La compilazione in ambiente Linux Per far eseguire il programma e' sufficiente scrivere: []$./a.out Il compilatore gcc accetta molte opzioni: Es. []$gcc ohelloworld HelloWorld.c Crea il file eseguibile HelloWorld al posto di a.out; []$./HelloWorld 15-19/10/2001 Informatica per la Fisica II 15

16 Linguaggio C La compilazione in ambiente Linux La compilazione del programma C avviene attraverso le seguenti fasi: un preprocessore che accetta il codice sorgente come input ed e' resposabile della: o rimozione di commenti o interpretazione delle direttive per il preprocessore denotate da "#". Es. #include <math.h> - standard library maths file. #include <stdio.h> - standard library I/O file (Il file con suffisso.h è solitamente chiamato header file) /10/2001 Informatica per la Fisica II 16

17 Linguaggio C La compilazione in ambiente Linux il compilatore C che traduce il codice sorgente ricevuto dal preprocessore in codice assembly. l' assembler che crea il codice oggetto (in UNIX i file con il suffisso.o sono i file in codice oggetto, che corrispondono ai file.obj in Windows. il link editor che combina le funzioni definite in altri file sorgenti o definite in librerie, con la funzione main() per creare il file eseguibile. Infatti molte delle funzioni (ad esempio, funzioni di I/O, di manipolazione di stringhe o matematiche),ma non sono incluse nel C. Il C utilizza delle librerie standard di funzioni per coprire le utilita' mancanti /10/2001 Informatica per la Fisica II 17

18 Linguaggio C - Struttura di un programma C Un Programma c presenta la seguente struttura generale : 1. Comandi per il preprocessore (direttive) 2. La funzione main () 3. Il blocco della funzione main racchiusa tra {} All interno del blocco principale delle funzione main si possono distinguere due parti: main () { Una parte dichiarativa o Variabili o Costanti Una parte esecutiva o Chiamate a funzioni i/o, elaborazione di espressioni etc.. } 15-19/10/2001 Informatica per la Fisica II 18

19 Il Lingiaggio C Variabili e Costanti Variabili: le variabili sono celle di memoria che possono cambiare il loro valore durante l esecuzione del programma. Costanti: celle di memoria il cui contenuto non varia durante l esecuzione del programma Per dichiarare variabili e costanti occorre anche specificare: - quante celle di memoria vanno usate - come verranno chiamate nel programma - il Tipo di dato che conterranno 15-19/10/2001 Informatica per la Fisica II 19

20 Il Lingiaggio C Variabili e Costanti In C le la sintassi usata per dichiarare una variabile è: tipo nome_var; Es: int indice; Per dichiarare una costante si usa la sintassi: const tipo nome_var = valore; Es : const int indice = 1; 15-19/10/2001 Informatica per la Fisica II 20

21 Linguaggio C Tipi di Dati I principali tipi di dati definiti nel linguaggio C sono: Tipo Byte(bit) Sinonimi Min-Max int 2 (16)* short, short int, signed short int 32,768-32,767 unsigned int 2 (16) unsigned short int char 1 (8) signed char unsigned char 1 (8) 0 to 255 long 4 (32) long int, signed long int 2,147,483,648-2,147,483,647 unsigned long 4 (32) unsigned long int 0-4,294,967,295 float 4 (32) 3.4E +/- 38 double 8 (64) 1.7E +/- 308 long double 10 (80) 1.2E +/ * Dipende dal tipo di macchina 15-19/10/2001 Informatica per la Fisica II 21

22 Linguaggio C Esempio: Somma.c /********************************************* PROGRAM: scambio.c DESCRIPTION: programma per lo scambio dei valori tra due numeri INPUT: a,b variabili di tipo intero OUTPUT: a,b AUTHORS: GT DATE: 15/10/2001 Rev.: **********************************************/ #include <stdio.h> main(){ int a,b; int s=0; } scanf( %d %d,&a,&b); s=a; a=b; b=s; printf( a=%d b=%d\n,a,b); 15-19/10/2001 Informatica per la Fisica II 22

23 Linguaggio C- printf() e scanf() Output con printf(): Funzioni di Input e output standard <stdio.h> Definizione : int printf(formato,argomenti); Esempio printf.c 15-19/10/2001 Informatica per la Fisica II 23

24 Linguaggio C Sequenze di Escape Combinazioni di caratteri composte da backslash \ seguita da uno o più caratteri sono dette Escape Sequences. Sono di solito usate per specificare alcune particolari funzioni di terminali e stampanti. Escape Character ASCII Sequence Value \a Alert/bell 7 \b Backspace 8 \f Formfeed 12 \n Newline 10 \r Carriage return 13 \t Horizontal tab 9 \v Vertical tab 11 \" Double quotation 34 \' Single quotation 39 \\ Backslash /10/2001 Informatica per la Fisica II 24

La sintassi del C APPENDICE H

La sintassi del C APPENDICE H APPENDICE H La sintassi del C Nella notazione della sintassi utilizzata, le categorie sintattiche (non terminali) sono state indicate da uno stile tipografico in corsivo, mentre le parole letterali e i

Подробнее

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

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Подробнее

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Подробнее

Alfabeto ed elementi lessicali del linguaggio C

Alfabeto ed elementi lessicali del linguaggio C Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Alfabeto ed elementi lessicali del linguaggio C Pietro Di Lena - [email protected] s t a t i c s h o r t l e g s ; i n

Подробнее

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)

Подробнее

Introduzione alla programmazione. Alice Pavarani

Introduzione alla programmazione. Alice Pavarani Introduzione alla programmazione Alice Pavarani Il linguaggio C Creato da Dennis Ritchie nel 1972 presso i Bell Laboratories Linguaggio di programmazione procedurale, strutturato Linguaggio ad alto livello

Подробнее

PROGRAMMA = ALGORITMO

PROGRAMMA = ALGORITMO Corso di Laurea Scienze Prof. San. Tec., Area Tecnico-Assistenziale SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Anno Accademico 2005-2006 Prof. Fausto Passariello Corso Integrato Metodologia della Ricerca

Подробнее

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

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma. Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti

Подробнее

Informatica (A-K) 7. Linguaggio C - 1

Informatica (A-K) 7. Linguaggio C - 1 Storia del linguaggio C Informatica (A-K) 7. Linguaggio C - 1 Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Linguaggio C 1972, nato come evoluzione

Подробнее

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

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

Подробнее

Perché il linguaggio C?

Perché il linguaggio C? Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare

Подробнее

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di

Подробнее

Introduzione alla programmazione in linguaggio C

Introduzione alla programmazione in linguaggio C Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008

Подробнее

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C... Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...

Подробнее

L AMBIENTE CODE BLOCKS E L IO

L AMBIENTE CODE BLOCKS E L IO L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using

Подробнее

Primo programma in C

Primo programma in C Primo programma in C Struttura minima di un file C Applicazioni C in modo console Struttura del programma Commenti Direttive #include Definizione di variabili Corpo del main 2 Struttura minima di un file

Подробнее

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio

Подробнее

Introduzione al Linguaggio C

Introduzione al Linguaggio C INFORMATICA 1 Lezione 3 (Introduzione al Linguaggio C, Introduzione ai Tipi di dato, Cenni alla codifica binaria) Introduzione al Linguaggio C 1 Passi fondamentali del C Definito nel 1972 (AT&T Bell Labs)

Подробнее

Il linguaggio C. Notate che...

Il linguaggio C. Notate che... Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione

Подробнее

Introduzione al Linguaggio C ed all IDE DEV-C++

Introduzione al Linguaggio C ed all IDE DEV-C++ Microsoft Windows e Dev-C++ Introduzione al Linguaggio C ed all IDE DEV-C++ 1 Le Esercitazioni in Laboratorio! MTA + MLAB1/2: Edificio Via Valotti, primo piano e piano interrato! Orario: Giovedì 14:30-17:30!

Подробнее

Il linguaggio C Il linguaggio C. Caratteristiche del C. Caratteristiche del C. Linguaggi di Programmazione I. Ferdinando Cicalese

Il linguaggio C Il linguaggio C. Caratteristiche del C. Caratteristiche del C. Linguaggi di Programmazione I. Ferdinando Cicalese 03-10-2003 Il linguaggio C Linguaggio general-purpose Il linguaggio C Creato nel 1972 nei Bell Labs da Dennis Ritchie su PDP11 Usato per il Sistema Operativo Unix da Ken Thompson Negli anni 80 nasce ANSI

Подробнее

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...

Подробнее

Linguaggio C: introduzione

Linguaggio C: introduzione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi

Подробнее

linguaggio di programmazione e programma

linguaggio di programmazione e programma I/O bus CPU memoria elementi di Sistemi Informatici il segnale digitale: conversione analogico-numerica esempi di supporti di memorizzazione dell informazione computer: definizione e struttura (modello

Подробнее

La programmazione in linguaggio C

La programmazione in linguaggio C FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine La programmazione in linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni

Подробнее

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

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati Caratteristiche Il Linguaggio C Linguaggio sequenziale (lineare), imperativo, strutturato a blocchi usabile anche come linguaggio di sistema software di base sistemi operativi compilatori... FI - Algoritmi

Подробнее

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C IL LINGUAGGIO C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede tutti i costrutti di controllo dei linguaggi

Подробнее

I/O da tastiera + Alessandra Giordani Lunedì 2 maggio

I/O da tastiera + Alessandra Giordani Lunedì 2 maggio I/O da tastiera + costrutti while e if Alessandra Giordani [email protected] Lunedì 2 maggio 2011 http://disi.unitn.it/~agiordani/ Ripasso funzione printf() Usata per stampare il contenuto di una

Подробнее