Lezione 10. L arte della programmazione

Documenti analoghi
Corso sul linguaggio C

Dati due punti sul piano calcolare la loro distanza

L AMBIENTE CODE BLOCKS E L IO

Introduzione alla programmazione in linguaggio C

L AMBIENTE CODE BLOCKS E L IO

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013

IL PRIMO PROGRAMMA IN C

Informatica. Stefano Lodi. 16 novembre in linguaggio C

Linguaggio C: Variabili e assegnamento e semplici comandi di I/O

1

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java

Introduzione alla programmazione. Alice Pavarani

Linguaggio C: introduzione

Lo scopo. Il primo esperimento. Soluzione informale. Le variabili

Introduzione al linguaggio C

Università degli Studi di Milano

Programmazione in C. La struttura del programma Variabili, espressioni, operazioni

Introduzione alla programmazione in C

Lezione 6 Introduzione al C++ Mauro Piccolo

Corso Programmazione

Algoritmi e basi del C Struttura di un programma

Primo programma in C

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C

Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari

#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()

C: primi elementi. Lezione 4

Fondamenti di Informatica T-1

Corso di Fondamenti di Informatica Università degli Studi di Cassino

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

Il corpo di tutte le funzioni deve essere contenuto tra parentesi graffe

Algoritmi e basi del C

LEZIONE 1 LE BASI DEL LINGUAGGIO C

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

Costanti e Variabili

Variabili e input/ Alessandra Giordani Lunedì 18 marzo

Dichiarazioni e tipi predefiniti nel linguaggio C

La programmazione nel linguaggio C

Linguaggi di Programmazione

Variabili e Istruzioni

Struttura dei programmi C

Laboratorio di Informatica I

Fondamenti di Informatica T-1

Introduzione al linguaggio C Primi programmi

Introduzione al C. Informatica Generale - Introduzione al C Versione 1.0, aa p.1/17

Gli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento

PREPARAZIONE DI UN PROGRAMMA

Primi esempi di programmi. Il tipo int Le variabili Altri tipi interi Operatori di assegnazione

Caratteristiche di un linguaggio ad alto livello

Burocrazia: Primi passi con il linguaggio C. Diversi tipi di linguaggio. Un solo linguaggio

Elementi di Informatica A. A. 2016/2017

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

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

Struttura dei programmi e Variabili

Struttura logica del computer (semplificata)

Linguaggio C Struttura dei programmi

Programmazione in Java (I modulo)

Algoritmi e basi del C Struttura di un programma

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

Primi programmi in C

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

Cominciamo ad analizzare la rappresentazione delle informazioni... di Cassino. C. De Stefano Corso di Fondamenti di Informatica Università degli Studi

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 - Programma

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

Puntatori. Fondamenti di Programmazione

Introduzione al C. Introduzione

Ing. Lorenzo Vismara

Variabili intere, funzioni e input/ Alessandra Giordani Lunedì 19 marzo

Tutorato Elementi di Informatica 2018

Fondamenti di Informatica. Ingegneria elettronica

Alcune regole di base per scrivere un programma in linguaggio C

Variabili. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Fondamenti di Informatica T-1

Laboratorio di Informatica I

Un esempio per cominciare. Inizio e fine di un programma. La somma di 3 numeri PASCAL ANSI C. Regole sintattiche

Laboratorio di Informatica I

Laboratorio di Informatica I

Primo programma in C

Tipo carattere. Campo di variabilità. Intervallo finito. Tipo. Dimensione (byte) char

Fondamenti di Informatica

La Programmazione. Cos è la programmazione? Concetti preliminari

Elementi di informatica

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

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

INPUT E OUTPUT DI VALORI NUMERICI

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

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

Linguaggio C. Vettori, Puntatori e Funzioni Stringhe. Università degli Studi di Brescia. Prof. Massimiliano Giacomin

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013

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

Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica)

Elementi di informatica. Programmare in C

direttive del preprocessore simboli speciali parole chiave identificatori costanti

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

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010

Variabili. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

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

Transcript:

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

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

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

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

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

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

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

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

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 -32.000 e +32.000 Si assegna come: int anno_nascita=1980; 9

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= 0.000012 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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