CAPITOLO2 PROGRAMMA: PRINTING UN GIOCO DI PAROLE FONDAMENTI DI C FORMA DI UN SEMPLICE PROGRAMMA COMPILAZIONE E LINKING. directive

Documenti analoghi
Input/Output di numeri

ISTRUZIONI DI ITERAZIONE

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

Tipi e Valori. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Primi passi col linguaggio C

Introduzione a. Funzioni di Ingresso e Uscita. Compilazione

IL PRIMO PROGRAMMA IN C

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

Capitolo 5 - Funzioni

Elementi di informatica

Linguaggio C: introduzione

Espressione di chiamata di funzione

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

Scrittura formattata - printf

Struttura dei programmi C

Cap. 4: Espressioni. Operatori

- Dispensa III - PROGRAMMAZIONE C (Parte I)

C O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O

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

Introduzione al linguaggio C

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

Variabili e Istruzioni

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

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

Funzioni di I/O per numeri. Input e output di valori numerici. Input formattato scanf. Stream preesistenti

Il linguaggio C - Introduzione

Primo passo: il preprocessor. Il preprocessore. Esempi di direttive al preprocessore: #include. Esempi di direttive al preprocessore: #define

Programmazione I - Laboratorio

Programmazione in Java (I modulo)

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

Introduzione al linguaggio C

Verso i puntatori: Cosa è una variabile?

Le basi del linguaggio Java

Corso di Fondamenti di Programmazione canale E-O. Tipi di dato. Un esempio

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore

La programmazione in linguaggio C

Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Corso sul linguaggio C Modulo Tipi di dato

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

$QDOLVLGHOSURJUDPPDTXDGUDWR

La programmazione nel linguaggio C

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin

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

Le funzioni, e le istruzioni di input/output

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

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

Informatica Applicata Laboratorio 1. Ing. Antonella Dimasi

Esercizi Programmazione I

Definizione di classi. Walter Didimo

Allocazione dinamica della memoria

Linguaggio C - sezione dichiarativa: costanti e variabili

Cap. 7: Tipi di base. Tipi di base

Funzioni e. Alessandra Giordani Mercoledì 16 maggio 2012

STRUTTURA DI UN PROGRAMMA

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III Indice

Linguaggio C Struttura dei programmi

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

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

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

Corso di Fondamenti di Informatica

Perché il linguaggio C?

Le librerie standard. ! La libreria standard del C è in realtà un insieme di librerie

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Stringhe e allocazione dinamica della memoria

LIBRERIE STANDARD in C. LIBRERIE STANDARD in C

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

Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media.

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

Compilazione separata. Come realizzare correttamente un piccolo progetto su piu' file

Puntatori in C. Puntatori. Variabili tradizionali Esempio: int a = 5; Proprietà della variabile a: nome: a

Istruzioni iterative (o cicliche)

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

Puntatori. Fondamenti di Programmazione

Introduzione al linguaggio C

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.

Algoritmi e basi del C Struttura di un programma

Operazioni numeriche - Input

Strategie di programmazione

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

Laboratorio di informatica Ingegneria meccanica

Linguaggio C: Espressioni

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Array. Maurizio Palesi Salvatore Serrano. In C si possono definire tipi strutturati Vi sono due costruttori fondamentali

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 04 Input/Output

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

Struttura di un Programma C

Le direttive del Preprocessore

Si possono applicare solo a variabili (di tipi interi, floating o puntatori), ma non a espressioni generiche (anche se di questi tipi).

Introduzione al linguaggio C Puntatori

INTRODUZIONE ALLA PROGRAMMAZIONE

Tutorato Programmazione 1 Modulo 2

Lezione 10. L arte della programmazione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Funzioni, Stack e Visibilità delle Variabili in C

Codifica degli algoritmi in linguaggio di alto livello

Transcript:

PROGRAMMA: PRINTING UN GIOCO DI PAROLE CAPITOLO2 FONDAMENTI DI C printf( C, o non C: Questo è il problema.\n"); Scrivere questo programma e chiamarlo pun.c Usare l estensione.c per i programmi C. 1 2 COMPILAZIONE E LINKING Prima che un programma sia eseguito, sono necessari tre steps: Preprocessing. Il preprocessore obbedisce a comandi che iniziano con # Compiling. Il compilatore traduce il programma in istruzioni macchina. Linking. Il linker combina il codice oggetto prodotto dal compilatore con qualche codice aggiuntivo necessario per completare l esecuzione del programma. Il preprocessore è di solito integrato con il compilatore. FORMA DI UN SEMPLICE PROGRAMMA directive istruzioni C usa e per individuare l inizio e la fine di un gruppo si comandi. 3 6

DIRECTIVE Le direttive sono comandi per il e <stdio.h> è un header contenenete informazioni circa la libreria standard di I/O FUNCTIONS Una funzione ha un nome proprio e raggruppa una serie di istruzioni. Funzioni di libreria sono fornite dal C. Una funzione che calcola un valore, usa un return per specificare il valore da restituire: return x + 1; Le direttive cominciano sempre con # Alla fine della linea non c è ; 7 8 LA FUNZIONE main La funzione main è obligatoria. main è chiamata automaticamente quando il programma è eseguito. main restituisce un valore numerico indice dello stato di terminazione del programma; il valore 0 indica una terminazione normale. Se l istruzione return è omessa alla fine della funzione main, molti compilatori segnalano l errore. ISTRUZIONI Una istruzione è un comando che viene eseguito quando gira il programma. pun.c usa solo due tipi di istruzioni: return e printf Si tratta in entrambi I casi di funzioni. Si dice che sono state chiamate le funzioni. Ciascuna istruzione deve terminare con un punto e virgola ; 9 10

PRINTING STRINGHE I caratteri da scrivere sullo standard output (terminale) con la printf devono essere inclusi tra e PRINTING STRINGHE: ESEMPI printf("c, o non C: Questo è il problema. \n"); printf non va automaticamente daccapo. Per avere una nuova linea con printf bisogna includere \n (new-line character) printf("c, o non C: "); printf("questo è il problema. \n"); Lo \n può essere ripetuto più volte printf("c, o non C: \n"); printf("questo è il problema. \n"); 11 12 COMMENTI Un commento comincia con /* e finisce con */ /* This is a comment */ VARIABILI La maggior parte dei programmi richiedono di conservare valori in locazioni chiamate variabili Type /* Name: pun.c Purpose: Prints a bad pun. Author: K. N. King */ Ogni variabile ha un tipo. C ha una grande varietà di tipi: int e float Una variabile di type int(integer) può conservare numeri come 0, 1, 392, or 2553. 13 14

TYPES Una variabile di type float (floating-point) può conservare numeri più grandi di variabili di type int Una variabile di type float può contenere numeri decimali, come 379.125 DICHIARAZIONI Le variabili devono essere dichiarate prima di essere usate Le variabili devono essere dichiarate una alla volta int height; float profit; Oppure, molte variabili dello stesso tipo possono essere dichiarate insieme int height, length, width, volume; float profit, loss; 15 16 DICHIARAZIONI dichiarazioni istruzioni ASSEGNAMENTI Ad una variabilepuò essere dato un valore con un assegnamento height = 8; Il numero 8 è detto una costante Prima di assegnare un valore ad una variabile, o prima di farne un qualunque altro uso, la variabile deve essere dichiarata. 17 18

ASSIGNMENT Una volta che è stato assegnbato un valore ad una variabile, la variabile può essere usata per computare il valore di un altra variabile height = 8; length = 12; width = 10; volume = height * length * width; /* volume is now 960 */ Il lato destro di un assignamento può essere una qualunque formula ( expression, in C) che coinvolge costanti, variabili ed operatori PRINTING IL VALORE DI UNA VARIABLE printf può essere usata per mostrare il valore di una variabile Per scrivere su standard output Height: h dove h è il valore corrente della variabile height printf("height: %d\n", height); %d indica il punto in cui deve apparire il valore di height 19 20 PRINTING IL VALORE DI UNA VARIABLE %d può essere usato solo per variabili int %f può essere usato per variabili float Non c è limite al numero di variabili che possono essere inserite in una chiamata di printf: PROGRAM: COMPUTARE IL PERIMETRO E L AREA DI UN RETTANGOLO Il programma rettangolo.c il perimetro e l area di un rettangolo con dimesioni: Base (cm): 12 Altezza (cm): 30 printf("height: %d Length: %d\n", height,length); 21 22

rettangolo.c /* Computa il perimetro e l area di un rettangolo con base di 12 cm ed altezza 30 cm */ int base, altezza, perimetro, area; INIZIALIZAZIONE Il valore iniziale di una variabile può essere inclusa nella sua dichiarazione: int base = 12; base = 12; altezza = 30; perimetro = (base + altezza) * 2; area = (base * altezza); printf("dimensioni: %dx%d\n", base, altezza); printf( Perimetro (cm): %d\n", perimetro); printf("dimensional area (cm x cm): %d\n", area); int base = 12, altezza = 30; int base, altezza = 30; /* initializes only altezza */ 23 24 PRINTING ESPRESSIONI printf può mostrare a video il valore di un espressione volume = height * length * width; printf("%d\n", volume); LEGGERE L INPUT scanf è la controparte di counterpart di printf nella libreria C Example di uso di scanf per leggere un int scanf("%d", &i); /* reads an integer; stores into i */ printf("%d\n", height * length * width); scanf("%f", &x); /* reads a float; stores into x */ Il simbolo & è di solito usato da scanf. 25 26

PROGRAM: COMPUTARE IL PERIMETRO E L AREA DI UN RETTANGOLO (RIVISITATO) Il programma rettangolo-1.c il perimetro e l area di un rettangolo con dimesioni fornite dall utente Ciascuna chiamata di scanf è preceduta da una di printf che chiede il dato rettangolo-1.c /* Computa il perimetro e l area di un rettangolo con base di 12 cm ed altezza 30 cm */ int base, altezza, perimetro, area; printf( Inserisci la base del rettangolo: "); scanf("%d", &base); printf("inserisci l altezza del rettangolo: "); scanf("%d", &altezza); perimetro = (base + altezza) * 2; area = (base * altezza); printf( Perimetro (cm): %d\n", perimetro); printf("dimensional area (cm x cm): %d\n", area); 27 28 PROGRAM: COMPUTARE IL PERIMETRO E L AREA DI UN RETTANGOLO (RIVISITATO) Esempio dell output del programma 30 Inserisci la base del rettangolo: 12 Inserisci l altezza del rettangolo: Perimetro (cm): 84 Area (cm x cm): 180 DEFINIRE I NOMI DELLE COSTANTI rettangolo.c and rettangolo-1.c usano la costante 2 Possiamo definire la costante con una macro: #define CONST_RETT 2 Il nomi delle costanti vengono di solito scritti con lettere maiuscole 29 30

DEFINIRENOMI PER LE COSTANTI Quando viene compilato un programma, il ppreprocessore sostituisce ciascuna macro con il valore che lo rappresenta. Durante il preprocessing, l istruzione perimetro = (base + altezza) * CONST_RETT; diventa perimetro = (base + altezza) * 2; Rettangolo-2.c /* Computa il perimetro e l area di un rettangolo con base di 12 cm ed altezza 30 cm */ #define CONST_RETT 2 int base, altezza, perimetro, area; printf( Inserisci la base del rettangolo: "); scanf("%d", &base); printf("inserisci l altezza del rettangolo: "); scanf("%d", &altezza); perimetro = (base + altezza) * CONST_RETT; area = (base * altezza); printf( Perimetro (cm): %d\n", perimetro); printf("dimensional area (cm x cm): %d\n", area); 31 32 PROGRAMMA: CONVERTIRE DA FAHRENHEIT A CELSIUS Il programma celsius.c chiede all utente di inserire una temperatira e poi scrive su stdout l equivalente temperatura Celsius Esempio dell output del programma Enter Fahrenheit temperature: 212 Celsius equivalent: 100.0 celsius.c /* Converts a Fahrenheit temperature to Celsius */ #define FREEZING_PT 32.0f #define SCALE_FACTOR (5.0f / 9.0f) float fahrenheit, celsius; printf("enter Fahrenheit temperature: "); scanf("%f", &fahrenheit); celsius = (fahrenheit - FREEZING_PT) * SCALE_FACTOR; printf("celsius equivalent: %.1f\n", celsius); 33 34

PROGRAMMA: CONVERTIRE DA FAHRENHEIT A CELSIUS Definire SCALE_FACTOR con (5.0f / 9.0f) invece di (5 / 9) è importante. Nota che l uso di %.1f per la visualizzazione di celsius permette di avere 1 sola cifra decimale IDENTIFICATORI I nomi di variabili, funzioni macro sono chiamati identificatori. Un identificatore può contenere lettere, cifre e underscores, ma deve cominciare con una lettera o un underscore times10 get_next_char _done 35 36 IDENTIFICATORI C è case-sensitive: distingue tra lettere maiuscole e minuscole. Per esempio, gli identificatori seguenti sono tutti differenti job job job job Job JoB JOb JOB CHAPTER 3 INPUT/OUTPUT FORMATTATO 37 38

LA FUNZIONE printf La funzione printf ha come parametro il formato della stringa, seguiti da alcuni valori che vi devono essere inseriti durante la visualizzazione: printf(string, expr1, expr2, ); Il formato della stringa può contener normali caratteri e specificatori di conversione che cominciano con il carattere % %d è usato per indicare un int %f è usato per indicare un float LA FUNZIONE printf int i, j; float x, y; i = 10; j = 20; x = 43.2892f; y = 5527.0f; printf("i = %d, j = %d, x = %f, y = %f\n", i, j, x, y); Output: i = 10, j = 20, x = 43.289200, y = 5527.000000 39 40 LA FUNZIONE printf Attenzione! printf("%d %d\n", i); /*** WRONG ***/ LA FUNZIONE scanf scanf legge l input in accordo ad un particolare formato scanf può contenere sia caratteri normali che specifiche di conversione printf("%d\n", i, j); /*** WRONG ***/ Le conversioni di scanf sono preticamente le stesse di printf. 41 42

LA FUNZIONE scanf int i, j; float x, y; scanf("%d%d%f%f", &i, &j, &x, &y); Esempio di input: 1-20.3-4.0e3 PROGRAMMA: SOMMARE FRAZIONI Il programma addfrac.c chiede all uetnte di inserire due frazioni e poi mosta in output la frazione somma. Esempio: Enter first fraction: 5/6 Enter second fraction: 3/4 The sum is 38/24 scanf assegnerà 1, 20, 0.3, e 4000.0 a i, j, x, e y 43 44 addfrac.c /* Adds two fractions */ int num1, denom1, num2, denom2, result_num, result_denom; printf("enter first fraction: "); scanf("%d/%d", &num1, &denom1); printf("enter second fraction: "); scanf("%d/%d", &num2, &denom2); result_num = num1 * denom2 + num2 *denom1; result_denom = denom1 * denom2; printf("the sum is %d/%d\n",result_num, result_denom) 45