Lezione 10. L arte della programmazione

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

Download "Lezione 10. L arte della programmazione"

Транскрипт

1 Lezione 10 Linguaggi di programmazione: il C Le variabili e le costanti L assegnazione Gli operatori La documentazione L input/output L arte della programmazione La soluzione di un problema tramite un programma è un procedimento che non si esaurisce solo nello scrivere linee di codice in un dato linguaggio di programmazione, ma comprende una fase di progetto che precede e di verifica che segue la scrittura del codice 1

2 L arte della programmazione Definizione del problema Algoritmo per la soluzione del problema Codifica Debugging Validazione Documentazione Manutenzione Definizione del problema Definizione degli ingressi e delle uscite quali variabili quale dominio per ogni variabile Risoluzione delle ambiguità Scomposizione in problemi più semplici 2

3 Algoritmo Soluzione in pseudocodice Soluzione in diagramma a blocchi strutturato Codifica Traduzione dell algoritmo in istruzioni del linguaggio di programmazione 3

4 Debugging Correzione degli errori sintattici e semantici Errori sintattici espressioni non valide o non ben formate nel linguaggio di programmazione Errori semantici comportamento non aderente alle aspettative/alla intenzionalità del programmatore Validazione Test su tutte le condizioni operative del programma Caso degli input estremi (vettori di dimensione 0 o 1, variabili nulle) 4

5 Documentazione Inserimento di commenti esplicativi nelle varie parti del programma per facilitarne la comprensione dopo molto tempo dalla sua stesura o per terze persone Manutenzione Modifica del programma per soddisfare il cambiamento delle specifiche con cui deve operare 5

6 Struttura di un programma Un algoritmo rappresentato da un diagramma a blocchi strutturato può essere tradotto in una serie di espressioni del linguaggio C Il C possiede 32 parole chiave per definire il tipo dei dati e le istruzioni di controllo Operazioni più complesse ma di uso comune sono realizzate tramite funzioni rese disponibili da apposite librerie Struttura di un programma I blocchi BEGIN e END sono rappresentati in C come: void main(){ } Un programma deve essere descritto dentro il blocco main Un blocco di istruzioni è racchiuso da {} Una istruzione è terminata da ; 6

7 Le costanti e le variabili Le variabili sono dichiarate indicandone il tipo e il nome type name; I tipi possibili in C sono: char: usato per rappresentare le lettere int: usato per rappresentare gli interi float: usato per rappresentare i numeri in virgola mobile Es: int num; char my_character; Il nome delle variabili Il nome di una variabile è una sequenza di: caratteri alfabetici maiuscoli o minuscoli numeri (non come primo carattere) il carattere _ (si usa al posto dello spazio) Valido Non Valido risultato_max carta23 ilmioconto %conto# max risultato variabile.di.interesse una-citta il/risultato 3Identificativo 7

8 Le costanti Premettendo il qualificatore const ai vari tipi di variabile si ottengono le costanti const int numero_elementi=20; Nota: alle costanti è possibile attribuire un valore solo al momento della dichiarazione, cioè quando la si introduce per la prima volta insieme al suo tipo non è più possibile cambiarne il valore in alcun modo per tutto il resto del programma Constanti e variabili Tutte le costanti e le variabili vanno dichiarate all inizio del blocco in cui sono utilizzate Es: void main(){ } printf( stampa ); int a; /*ERRORE esiste printf prima di int a;*/ a=3; 8

9 Char E usato per rappresentare i caratteri Occupa 1 byte Può assumere 256 valori distinti Si assegna come: char nome= c ; cioè si mette fra apici singoli un solo carattere Int Si usa per rappresentare gli interi con segno Occupa 2 byte (in genere) Può assumere un valore compreso tra e Si assegna come: int anno_nascita=1980; 9

10 Float Si usa per rappresentare numeri decimali in virgola mobile Occupa (in genere) 4 byte Si assegna come: float pi=3.4145; float miavar=1.2e-5; si può cioè usare la notazione scientifica: 1.2e-5 significa mantissa=1.2 e=esponente esponente=-5 cioè 1.2e-5= Nota: si possono scrivere numeri con notazione scientifica ma in forma non normale, cioè con la mantissa qualsiasi (anche maggiore di uno) L assegnazione L assegnazione viene dichiarata tramite l operatore = ad una variabile si può assegnare un valore (es. a=4;) il valore di una altra variabile (es. b=a;) il risultato di una espressione (c=a+b*2;) 10

11 Vettori Un insieme di valori tutti dello stesso tipo può essere memorizzato ed elaborato tramite un dato di tipo vettore un vettore si dichiara specificando il tipo di elementi, un nome per la variabile ed il numero massimo di elementi che pensiamo di dover memorizzare si usa la seguente sintassi: tipo nome[dimensione]; Es: int insieme[10]; char nome[100]; Vettori Un vettore può essere inizializzato così come lo possono essere le variabili per farlo si devono indicare tutti i valori fra parentesi graffe separati da virgole la sintassi è: tipo nome[num]={val1,val2,val3}; tipo nome[]={val1,val2,val3}; nel caso di inizializzazione si può non specificare il numero di elementi che viene calcolato automaticamente contando quanti elementi si usano per l inizializzazione Es: int vec[]={1,4,2,8,5,6,2,43,567,3,23}; char cvec[]={ e, s, e, m, p, i, o }; 11

12 Vettori I vettori non sono dei dati di tipo primitivo questo significa che non si possono utilizzare gli operatori del linguaggio sui vettori In particolare: non è possibile usare l assegnazione int a[3]={1,2,3}; int b[3]=a; non è possibile farci operazioni int a[3]={1,2,3}; int b[3]={4,5,6}; a+b; non è possibile usare operatori di confronto int a[3]={1,2,3}; int b[3]={4,5,6}; a<b; Stringhe Le parole o le frasi sono dei vettori di caratteri in cui l ultimo carattere è equivalentemente uno fra il numero 0 il carattere \0 L inizializzazione per le stringhe è diversa cheda quella per i vettori la sintassi è: tipo nome[]= frase di inizializzazione ; Esempio: char parola[]= il mio programma ; 12

13 Stringhe Nota: le dimensioni del vettore se date esplicitamente devono poter contenere tutti i caratteri della frase char vparola[3]= programma ; /*vparola non contiene niente di significativo*/ Gli operatori Operatori aritmetici: + (somma) - (sottrazione) * (moltiplicazione) / (divisione) % (resto o modulo) 13

14 Gli operatori Operatori relazionali: == (ugualianza)!= (diversità) > (maggiore) >= (maggiore o eguale) < (minore) <= (minore o eguale) Operatori Operatori logici: && (and) (or)! (not) 14

15 Operatori Operatori con assegnazione += (somma) -= (sottrazione) *= (moltiplicazione) /= (divisione) Il loro significato è: x+=2 equivale a x=x+2 x/=2 equivale a x=x/2 Operatori Operatori di incremento e decremento ++ (incremento) -- (decremento) Il loro significato è: x++ equivale a x=x+1 x-- equivale a x=x-1 15

16 Operatori Nota: gli operatori di incremento/decremento possono essere utilizzati come prefisso o postfisso di una variabile se si usa come postfisso il valore viene incrementato dopo l assegnazione, altrimenti prima Es: x=2; y=x++; allora y=2 e x=3 x=2;y=++x; allora y=3 e x=3 Operatori Operatori bit a bit & (and) (or) ^ (xor) << (shift a sinistra dell operando di sinistra di un numero di bit specificato dall operando di destra) >> (shift a destra) 16

17 La documentazione I commenti si inseriscono fra coppie /* testo */ anche su più righe /* testo uno testo due testo tre*/ Le librerie Chi realizza un compilatore (il programma che permette di passare dal programma scritto con un linguaggio di alto livello ad uno scritto in modo comprensibile per il calcolatore) fornisce anche una serie di programmi già pronti per eseguire i compiti più frequenti o di basso livello (cioè di interazione con l hardware) questi programmi sono raccolti insieme in pacchetti chiamati librerie 17

18 Librerie Per utilizzare queste funzioni si procede nel modo seguente: come prima istruzione in un programma si scrivono tutte le librerie che si pensa di usare: #include <nomelibreria1.h> #include <nomelibreria2.h> dopo si possono utilizzare liberamente le funzioni definite in queste librerie in ogni punto del programma Librerie Le librerie più utilizzate sono: stdlib.h: per la funzione rand e varie altre cose basilari stdio.h: per input/output math.h: per funzioni matematiche avanzate (sin, exp) string.h: per manipolare stringhe Nota: il prefissostd significa standard 18

19 L input/output Le istruzioni per acquisire o trasferire informazioni sono costituite da una serie di funzioni contenute in una libreria chiamata stdio.h Se se ne vuole fare uso (cioè sempre!) si deve includere la libreria nel seguente modo: #include<stdio.h> void main(){} Output Per visualizzare informazioni sullo schermo si usa l istruzione printf il nome sta a indicare print f(ormattato) si usa nel seguente modo: printf( Messaggio da stampare\n ); printf( Il valore di x è %d,x); 19

20 Output Il significato è il seguente: printf( Messaggio da stampare\n ); stampa a video la stringa Messaggio da stampare\n e sostituisci a \n un ritorno a capo printf( Il valore di x è %d,x); come sopra ma con l indicazione di sostituire a %d il valore contenuto in x e di rappresentarlo come numero decimale Output All interno della stringa da stampare si possono inserire codici di formattazione preceduti da % o caratteri speciali preceduti da \ i caratteri con \ davanti sono caratteri speciali (come il ritorno a capo o il tabulatore) i codici di formattazione con % servono per indicare come rappresentare il contenuto di una variabile 20

21 Output Si possono visualizzare più variabili: printf( Il valore di %s è %d,str,x); conta la posizione all interno della stringa cioè il primo % formatta la prima variabile data dopo la stringa Codici di formattazione I codici di formattazione sono: %c carattere %s stringa %d intero %f float I caratteri speciali sono: \n ritorno a capo \t tabulatore NOTA: non ci sono spazi tra il carattere % e c o s etc 21

22 Input Per acquisire informazioni dalla tastiera si usa la funzione scanf il nome significa scan f(ormattato), cioè scansiona (esamina) quanto segue e formattalo nel modo indicato la sintassi è un po più complicata del printf Esempi: scanf( %d,&num); scanf( %f,&num); scanf( %s,str); Input Il significato è il seguente scanf( %d,&num); scansiona la riga che viene scritta da tastiera (fermati cioè dopo che è stato premuto il tasto invio) considera (formatta) ciò che è stato scritto come un %d = numero intero assegna questo numero alla variabile num Nota: si deve premettere il simbolo & al nome della variabile 22

23 Input Solo nel caso in cui stiamo acquisendo una stringa allora non si deve premettere il caratter & al nome della variabile stringa Es: scanf( %s,str); Nota: la stringa deve essere sufficientemente grande da contenere quanto digitato Esempi si scrittura e lettura dati Scrivere: Oggi è il giorno x del mese y la somma di x e y è z 23

24 Esercizi Scrivere un programma che: stampi la frase Ciao Mondo stampi il risultato della somma di due numeri scrivere il proprio nome e cognome prenda in ingresso i dati anagrafici di una famiglia calcoli l area di varie figure geometriche risolva un equazione di 2 grado 24

Corso sul linguaggio C

Corso sul linguaggio C Corso sul linguaggio C Modulo 1 1.1 Istruzioni semplici 1 Prerequisiti Saper progettare algoritmi Saper descrivere algoritmi (NLS, ddf) Conoscere il concetto di espressione 2 1 Introduzione In questa lezione

Подробнее

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

Подробнее

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

Подробнее

L AMBIENTE CODE BLOCKS E L IO

L AMBIENTE CODE BLOCKS E L IO L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout

Подробнее

IL PRIMO PROGRAMMA IN C

IL PRIMO PROGRAMMA IN C IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE

Подробнее

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

Подробнее

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

Подробнее

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo [email protected] Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Подробнее

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

Подробнее

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

Подробнее

Costanti e Variabili

Costanti e Variabili Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli

Подробнее

La programmazione nel linguaggio C

La programmazione nel linguaggio C 3 La programmazione nel linguaggio C 3.0 La programmazione nel linguaggio C c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 3.0 0 Introduzione ai programmi

Подробнее

Variabili e Istruzioni

Variabili e Istruzioni Exit Menù Variabili e Istruzioni 1 Le Variabili Una VARIABILE è un oggetto identificato da un NOME e da uno STATO, detto CONTENUTO o VALORE. Possiamo immaginarla come una scatola contenuto Pippo 11 nome

Подробнее

Struttura dei programmi C

Struttura dei programmi C Programmi C Struttura dei Programmi C Dichiarazione delle variabili Operazioni di Ingresso/Uscita Fondamenti di Informatica 1 Struttura dei programmi C Un programma C deve contenere, nell'ordine: una parte

Подробнее

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Introduzione al linguaggio Java - Input/Output, Variabili, Tipi Tutor: Allegra De Filippo [email protected] a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De

Подробнее

Caratteristiche di un linguaggio ad alto livello

Caratteristiche di un linguaggio ad alto livello Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono

Подробнее

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

Подробнее

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C Introduzione 2 Introduzione al C Linguaggio di programmazione ad alto livello (HLL) Sviluppato negli anni 70 (C standard ANSI) Molto diffuso e adatto ad un ampio spettro di applicazioni: Scientifiche Gestionali

Подробнее

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Подробнее

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C Struttura di un programma Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio [email protected] Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21

Подробнее

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

Подробнее

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi MASTER Information Technology Excellence Road (I.T.E.R.) Programmare in C Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di Dati Valori Un insieme

Подробнее

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Подробнее

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Подробнее

#include <stdio.h> main() { - 1 -

#include <stdio.h> main() { - 1 - Un primo esempio di programma Ogni programma C deve contenere una funzione speciale chiamata main che indica il punto in cui inizia l esecuzione del programma. La funzione main è unica all interno di ogni

Подробнее

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

Подробнее

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

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Подробнее

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Подробнее

Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto.

Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto. Sistema C e organizzazione del codice Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto. Un programma C è costituito da un insieme

Подробнее

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

Подробнее