Laboratorio di linguaggi

Documenti analoghi
Linguaggio C: introduzione

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

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

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

Array multidimensionali e stringhe

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

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

4 GLI ARRAY E LE STRINGHE

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

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

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

La programmazione nel linguaggio C

Linguaggio C. Fondamenti. Struttura di un programma.

Il calcolatore. Architettura di un calcolatore (Hardware)

Java Native Interface Appunti

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

L accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione.

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

Cenni sul linguaggio C

Uso di metodi statici. Walter Didimo

Laboratorio di Architettura degli Elaboratori

ESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 28 Gennaio 1999 PROVA SCRITTA

La gestione dei caratteri in C

Introduzione al corso di Programmazione e Laboratorio

Gestione di files Motivazioni

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

float somma_float(float a, float b) int get_ascii(char c)

MODULO PER RILEVAZIONE PRESENZE

Programmazione Avanzata Java e C. Lezione 18 Affrontiamo il C

Breve riepilogo della puntata precedente:

giapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL

Fondamenti di Programmazione

Gestione dei File in C

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

Problema: calcolare il massimo tra K numeri

AE RZT QSO RKPT SQZC

FONDAMENTI DI INFORMATICA II

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. Il linguaggio C II

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo

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

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002

FILE BINARI FILE BINARI

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.

Corso di Informatica Applicata. Lezione 5. Università degli studi di Cassino

Istruzioni di ciclo. Unità 4. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Informatica A a.a. 2010/ /02/2011

Introduzione al C. Stream e disk file

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Esercizi di programmazione in C

Le variabili. Olga Scotti

Docente: Prof. Marco Patella Tutor: Vincenzo Lomonaco

Funzioni. Il modello console. Interfaccia in modalità console

Sommario. Note alla traduzione... xix

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO VI.2014

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Programmazione Orientata agli Oggetti

3) Il seguente numerale A1F0 in base 16 a quale numero in base 10 corrisponde?

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Il generatore di numeri casuali

Esercitazione 3. Corso di Fondamenti di Informatica

Lecture 2: Prime Istruzioni

Introduzione al Linguaggio C

linguaggio di programmazione e programma

Input/output in C e in C++

Introduzione al linguaggio C

Header. Unità 9. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Strutture dati dinamiche in C (III)

L ambiente di simulazione SPIM

LP1 Lezione 13: i File in C. Maurizio Tucci

Programmazione Orientata agli Oggetti in Linguaggio Java

Tipi di dato-prima parte

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x.

SETTIMANA DAL 02 MARZO AL 06 MARZO

Esame Informatica Generale 13/04/2016 Tema A

Linguaggio C - Funzioni

ESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 28 Gennaio 1999 PROVA SCRITTA

Mini-Corso di Informatica

Fondamenti di Informatica Ingegneria Clinica Lezione 19/11/2009. Prof. Raffaele Nicolussi


VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI

Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni

Navigare in Internet Laboratorio di approfondimento la creazione di siti web e/o blog. Marco Torciani. (Seconda lezione) Unitre Pavia a.a.

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

Laboratorio di Informatica

puntatori Lab. Calc. AA 2007/08 1

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Esercitazione 4. Comandi iterativi for, while, do-while

DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA SIENA UFF

Linguaggi di Programmazione

Gestione dei file. Linguaggio ANSI C Input/Output - 13

Fortran in pillole : prima parte

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

CARATTERI E STRINGHE Caratteri e stringhe Funzioni della libreria standard I/O Funzioni della libreria di gestione delle stringhe

Informatica Medica C++ Informatica Medica I semestre Docenti: Fabio Solari e Manuela Chessa. Sviluppo di un applicazione eseguibile

3. Terza esercitazione autoguidata: progetto gestione voli

Transcript:

lezioni: lunedi 9-11, aula A al corso Laboratorio di linguaggi laboratorio in tre turni: martedi 11-13 () giovedi 9-11 () venerdi 11-13 (Andrea Grosso) laboratorio: iscriversi all esame Corso A LABORATORIO entro il 26-04-4 divisione in turni: sito del corso 3 Contenuto al corso al C panoramica sul C semplici programmi in C struttura generale di un programma semplice introduzione ai puntatori introduzione al input/output linguaggio general purpose Panoramica sul C creato nel 72 da Dennis Ritchie nei Bell Labs usato per creare UNIX anni 80: standardizzato (ANSI: American National Standards Institute) la base di altri linguaggi (C++, Java) 2 4

Panoramica sul C un linguaggio piccolo : poche parole chiave di facile apprendimento un linguaggio efficiente (e pulito): operatori potenti e efficienti efficiente aritmetica degli indirizzi un linguaggio abbastanza modulare facile realizzazione di progetti di grandi dimensione meno modulare di Java Semplici programmi Programma che stampa Hello, World!! sul video: /* File: helloworld.c Primo programma in C */ printf("hello, World!!\n"); 5 7 Buona programmazione Compilazione di helloworld.c commentare il codice nomi con significato per i variabili scrivere codice leggibili indentare il codice helloworld.c /* File: helloworld.c Primo programma in C */... stdio.h /* prototipi delle funzioni di stdio */... Compilatore helloworld.o Libreria di Funzioni Standard I/O Linker helloworld.exe helloworld.c: fornito dal programmatore stdio.h: fornito dal ambiente C Libreria di Funzioni Standard I/O: funzioni precompilati, fornito dal ambiente C 6 8

Semplici programmi /* File: summa.c Somma di due numeri floating point */ double x=1.3,y=3.4,sum=x+y; Semplici programmi Programma con funzione che calcola fattoriale: /* File: fact.c Programma con funzione fattoriale */ #define FACT_MAX 50 printf("somma: %1.4f\n",sum); 9 11 un byte indirizzo del byte 208 215 216 223 8 byte per memorizzare x numero a virgola mobile rappresentato qua e 1.3 8 byte per memorizzare y numero a virgola mobile rappresentato qua e 3.4 8 byte per memorizzare sum numero a virgola mobile rappresentato qua e 4.7 // funziona che restituisce il fattoriale int fact(int f) if(f>fact_max) printf(" Too large argument for fact()\n"); return -1; if(f<=1) return 1; return f*fact(f-1); 10 12

ai puntatori int x; x=100; printf(" %d\n", fact(x)); Puntatore: una variabile che contiene un indirizzo int a=5; int *p; p=&a; printf(" Indirizzo di a e %p\n", p); 13 15 Struttura generale di un programma semplice dichiarazioni globali tipo restituito funzione_1(elenco parametri) istruzioni... tipo restituito funzione_n(elenco parametri) istruzioni tipo restituito main(elenco parametri) istruzioni 204 4 byte per memorizzare a numero intero rappresentato qua e 5 4 byte per memorizzare p che e un indirizzo (puntatore) dopo p=&a, l indirizzo memorizzato qua e, cioe "p punta ad a" 14 16

ai puntatori Per dichiarare un puntatore * 4 byte per memorizzare a puntatore ad un intero: puntatore ad un carattere: puntatore ad un numero floating point: Aritmetica (non completa) dei puntatori: se a è un intero, &a è il suo indirizzo se p è un puntatore, *p è il valore puntata da p p1=&a p2=&p1 204 204 numero intero rappresentato qua e 5 4 byte per memorizzare p1 che e un indirizzo di un intero (un puntatore) 4 byte per memorizzare p2 che e un indirizzo di un indirizzo (un puntatore ad un puntatore) 17 19 Puntatore al puntatore Chiamata per valore int a=5,*p1,**p2; p1=&a; p2=&p1; printf(" a: %d\n", *p1); printf(" a: %d\n", **p2); void try_to_change(int x) x=5; int x=10; try_to_change(x); 18 20

4 byte per memorizzare x, la variabile locale del main numero intero rappresentato qua e 10 4 byte per memorizzare x, la variabile locale del main inizializzato con 10, poi la funzione change le assegna 5 600 603 4 byte per memorizzare x, la variabile locale della funziona try_to_change viene inizializzato con 10 quando la funziona e chiamata, poi le viene assegnato 5 ma questo non cambia il valore della variabile x del main 600 603 4 byte per memorizzare x, la variabile locale della funziona change che e un puntatore ad (indirizzo di) un intero viene inizializzato con (indirizzo di x del main) quando la funziona e chiamata tramite questo puntatore il valore della variabile x del main puo essere cambiato 21 23 Chiamata per riferimento al input/output void change(int *x) *x=5; int x=10; change(&x); Per scivere dati: printf(stringa_di_controllo, v1, v2,...); stringa_di_controllo : definisce cosa e come viene scritto v1, v2,... : variabili da stampare Nella stringa del controllo: %d per scrivere un numero intero %f per scrivere un numero floating point %c per scrivere un carattere 22 24

int x=5; double y=2.5; printf(" La somma di %d e %d risulta in %d\n", x,10,x+10); printf(" La somma di %f e %f risulta in %f\n", y,1.2,y+1.2); int x; float y; scanf("%d",&x); scanf("%f",&y); printf(" x: %d, y: %f\n", x, y); 25 27 al input/output Per leggere dati: scanf(stringa_di_controllo, indirizzo); stringa_di_controllo : definisce cosa e come viene scritto indirizzo : indirizzo dove viene letto l input Nella stringa del controllo: %d per leggere un numero intero %f per leggere un numero floating point %c per leggere un carattere 26