Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C"

Transcript

1 Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica, e Meccanica FONDAMENTI DI INFORMATICA 1 A.A. 2010/2011 Docente: Gian Luca Marcialis LINGUAGGIO C Introduzione Sommario Linguaggio C: Introduzione Tipi di dati in C Strutture di controllo Funzioni e procedure Funzioni ricorsive (cenni) Gestione dei file I vettori La ricerca L ordinamento I puntatori (cenni) 2 Ricapitoliamo un po Ci siamo soffermati su come l informatica possa essere lo studio degli algoritmi Un algoritmo per essere eseguito necessita di un modello di calcolo la macchina di Von Neumann Un algoritmo scritto in un opportuno linguaggio prende il nome di programma Tuttavia abbiamo rilevato quanto complesso sia esprimersi in linguaggio macchina Nonché effettuare il controllo della stessa (v. Ciclo di esecuzione e Sist.Operativi) Dall altra parte il linguaggio naturale non è ideale per scrivere algoritmi rispettandone le proprietà Esistono dei linguaggi che permettono la scrittura di programmi in una forma accessibile sia a noi che alla macchina Il LINGUAGGIO C è uno di questi Programmi: da linguaggio di alto livello a caricamento in memoria Programma C Prog. in linguaggio macchina Compilatore Assemblatore Caricatore (Loader) Prog. in linguaggio assembler Memoria 3 4

2 Il nucleo del linguaggio C Come tutti i linguaggi, esso è dotato di: Sintassi Semantica La sintassi è l insieme di regole per la costruzione corretta di una frase, ovvero di una istruzione La semantica è il significato che si da alla frase Poiché il linguaggio C deve essere comprensibile al calcolatore, non ci possono essere ambiguità semantiche Una frase in C ha sempre lo stesso significato Elementi base del C Identificatori simbolici Pubblici Rappresentano aree di memoria assegnate a certi dati dal programmatore Es. un certo valore oppure a certi gruppi di istruzioni che realizzano un determinato compito (funzioni) Privati (non utilizzabili dal programmatore) Parole-chiave Istruzioni base del linguaggio Nomi di funzioni di libreria Gruppi di istruzioni che realizzano un compito accessibili tramite interfacce Es. istruzioni aritmetiche complesse, stampa a schermo Direttive Es. attivazione di un certo insieme di funzioni di libreria 5 6 Una macchina virtuale per il C Per l esecuzione di un programma C, assumeremo che la nostra macchina di Von Neumann (il nostro PC) sia così organizzata: Il mio primo programma C Si scriva in linguaggio C un programma che stampi su (es. video) il seguente messaggio: Ciao, mondo! Memoria centrale indirizzata attraverso identificativi simbolici 7 8

3 Il mio primo programma in C Il mio primo programma in C Questo è un commento: non contiene istruzioni dell algoritmo ma in genere serve per spiegare cosa fa una certa parte di programma (codice) Un commento viene inserito fra i simboli: /* inizio commento */ fine commento 9 10 Il mio primo programma in C E una direttiva: serve in questo caso ad attivare un insieme di funzioni già pronte per comunicare con i periferici di nome stdio.h Una direttiva è un identificatore simbolico preceduto dal carattere # Fondamenti di Informatica - A.A. 2010/11 - Prof. Gian Luca Marcialis 11 Il mio primo programma in C E l intestazione del programma. Il termine privato main indica appunto che la sequenza di istruzioni compresa entro le parentesi graffe è l algoritmo L identificatore int significa che al termine del programma è attesa un istruzione che segnali la terminazione attraverso un valore numerico (come halt )

4 Il mio primo programma in C E un istruzione composta da una funzione presente nella libreria stdio.h. L identificatore printf è il nome della funzione (codice operativo), e prevede che si stampi su SO la sequenza di caratteri fra virgolette. Il mio primo programma in C E un istruzione base (key-word) del linguaggio e corrisponde all istruzione halt. Significa che l algoritmo ha termine restituendo al processore un valore intero atteso (in questo caso, 0) Esecuzione del programma Riassumendo Scriviamo su un editor (es. blocco note) il programma visto e diamogli come nome ciao.c Compiliamolo Es. usando Linux od Cygwin su ambiente Windows: gcc ciao.c o ciao Avremo nella stessa dir un eseguibile ciao oppure ciao.exe (su Win) Scrivendo a questo punto ciao e premendo il tasto invio, avremo su schermo la seguente stampa: Ciao, mondo! Un programma C può essere caratterizzato da una o più righe di commento Seguono opportune direttive per l attivazione di funzioni di libreria che possono essere utili per la scrittura del programma L algoritmo, scritto in linguaggio C, viene inserito tra due parentesi graffe precedute dall intestazione di funzione principale ( main ) L algoritmo termina con un istruzione di ritorno (return) 15 16

5 L istruzione di assegnamento Sia dato il seguente problema: Scrivere un programma in C che riceva da tastiera due valori interi e stampi su video la loro somma Soluzione /*Programma per la stampa a video della somma di due numeri*/ int a, b, somma; printf( Inserire due valori da sommare\n ); scanf( %d%d,&a,&b); somma = a + b; printf( %d + %d = %d\n,a,b,somma); La soluzione presentata Variabili in C Il programma presenta in generale le stesse caratteristiche del precedente Cambia ovviamente la sequenza di istruzioni all interno delle graffe In particolare, viene chiamata la funzione scanf che serve a leggere da (la tastiera) dei valori Tali valori sono identificati dalla coppia simboli %d che identificano ciascuno un valore intero I valori letti da tastiera vengono assegnati alle variabili a, b Infine la somma di a con b viene assegnata ad un altra variabile somma che viene stampata a video tramite la funzione printf Cos è una variabile? E un contenitore di valori (numeri o caratteri) Ovvero, una locazione di memoria assegnata ed indirizzata mediante il suo identificatore simbolico L indirizzo di memoria specifico si ottiene anteponendo l operatore & al nome della variabile Es. &a == indirizzo di a (mentre a indica il suo generico contenuto) Una variabile necessita di essere dichiarata perché essa trovi posto in memoria centrale, ovvero sia allocata int a, b, somma; Ad essa può quindi essere assegnato un valore con apposita istruzione somma = a + b; 19 20

6 Assegnamento ed operazioni aritmetiche e booleane elementari Esercizio L istruzione di assegnamento prevede la seguente sintassi: Variabile Destinazione = F(V1, V2,, VN); Le variabili V1,, VN sono elaborate attraverso operatori: Somma, sottrazione, prodotto, divisione: +, -, *, / Uguaglianza e disuguaglianza: ==,!= Se i valori interi (int) vengono espressi come valori booleani (0, 1): AND, OR, NOT: &&,,! Esempi: area_quadrato = lato*lato; segue_informatica = (biomedico elettrico)&&matricola; Siano date due variabili a, b, di tipo intero Si supponga a=15, b=-20 Dire il valore della seguente variabile c in funzione delle espressioni date: c = a-b; c = a!=b; c =!a c = (a==b) ((a+b)==-5) L istruzione di assegnamento L istruzione di assegnamento Lo stato della macchina virtuale C prima della dichiarazione di a, b, somma Lo stato della macchina virtuale C dopo la dichiarazione di a, b, somma Tutte le locazioni &a &b &somma Locazioni 23 24

7 L istruzione di assegnamento L istruzione di assegnamento Lo stato della macchina virtuale C dopo la lettura di due valori numerici dalla tastiera Lo stato della macchina virtuale C dopo l assegnamento della variabile somma &a &b &somma Locazioni 40 &a &b &somma Locazioni L istruzione di assegnamento Struttura generale di un programma C Lo stato della macchina virtuale C dopo la stampa di somma a video 40 &a &b &somma Locazioni somma Commenti Direttive (anche dichiarazione di costanti) PARTE DI DICHIARAZIONE DELLE VARIABILI; ALGORITMO VERO E PROPRIO; 27

8 Esercizi Scrivere un programma C che riceva da tastiera un valore (intero) del lato di un quadrato e ne stampi a video l area ed il perimetro Scrivere un programma C che riceva da tastiera tre valori booleani (0, 1) indicanti appunto i valori di verità di iscritto_in_biomedica, iscritto_in_ambientale, primo_anno, e stampi a video il valore di verità segue_informatica Per saperne di più Ceri, Mandriola, Sbattella, Informatica arte e mestiere, Capp.3-4, McGraw-Hill Kernighan, Ritchie, Il linguaggio C, Cap. 1, Pearson- Prentice Hall 29 30

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere

Dettagli

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

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

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Corso di Esercitazioni di Programmazione

Corso di Esercitazioni di Programmazione Corso di Esercitazioni di Programmazione Introduzione Dott.ssa Sabina Rossi Informazioni Pagina web del corso: News Orari Mailing list Lezioni Esercitazioni Date esami Risultati esami.. http://www.dsi.unive.it/~prog1

Dettagli

Algoritmi, dati e programmi

Algoritmi, dati e programmi 1 Algoritmi, dati e programmi 2 Informatica Informatica: Scienza che studia l informazione e la sua elaborazione. informazione rappresentazione dell informazione (dati) dati elaborazione dei dati tramite

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Corso di INFORMATICA 2 (Matematica e Applicazioni)

Corso di INFORMATICA 2 (Matematica e Applicazioni) Università di Camerino Scuola di Scienze e Tecnologie Sezione di Matematica Corso di INFORMATICA 2 (Matematica e Applicazioni) Anno Accademico 2014/15 3 Anno Primo Semestre Docenti: Paolo Gaspari Roberto

Dettagli

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it INTRODUZIONE, LINGUAGGIO, HANDS ON Giuseppe Cirillo g.cirillo@unina.it Il linguaggio C 1972-Dennis Ritchie 1978-Definizione 1990-ANSI C 1966 Martin Richars (MIT) Semplificando CPL usato per sviluppare

Dettagli

Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare

Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università della Calabria ricca@mat.unical.it Presentiamoci

Dettagli

----------------------------------------------------------------

---------------------------------------------------------------- ---------------------------------------------------------------- utilizzo frequente di chiamate a.. A differenza del Pascal, il C permette di operare con assegnamenti e confronti su dati di tipo diverso,

Dettagli

Fondamenti di Informatica - 9Cfu Corso di Laurea in Ingegneria Informatica (ord. 270)

Fondamenti di Informatica - 9Cfu Corso di Laurea in Ingegneria Informatica (ord. 270) Corsi di Laurea Ingegneria Informatica Ord. 270 A.A. 2012-2013 Prof. Vincenza Carchiolo vincenza.carchiolo@dieei.unict.it Fondamenti di Informatica - 9Cfu Corso di Laurea in Ingegneria Informatica (ord.

Dettagli

La Macchina Virtuale

La Macchina Virtuale Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Elaborazione di Immagini e Suoni / Riconoscimento e Visioni Artificiali 12 c.f.u. Anno Accademico 2008/2009 Docente: ing. Salvatore

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

Codifica: dal diagramma a blocchi al linguaggio C++

Codifica: dal diagramma a blocchi al linguaggio C++ Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Interpreti e compilatori La macchina di Von Neumann

Interpreti e compilatori La macchina di Von Neumann Interpreti e compilatori La macchina di Von Neumann Informatica@Matematica Simone Martini a.a. 2014-2015 1 / 38 Parte I Interpreti e compilatori 2 / 38 Macchine astratte Una macchina astratta è un esecutore

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi formativi Introdurre i principi del funzionamento di un elaboratore e della programmazione. Presentare gli approcci elementari alla soluzione di problemi (algoritmi)e al progetto di strutture

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni

Dettagli

Definizione Allocazione e deallocazione di variabili Allocazione e deallocazione di vettori

Definizione Allocazione e deallocazione di variabili Allocazione e deallocazione di vettori Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Meccanica, Elettrica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011

Dettagli

Introduzione. Informatica B. Daniele Loiacono

Introduzione. Informatica B. Daniele Loiacono Introduzione Informatica B Perchè studiare l informatica? Perchè ha a che fare con quasi tutto quello con cui abbiamo a che fare ogni giorno Perché è uno strumento fondamentale per progettare l innovazione

Dettagli

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

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di

Dettagli

Informatica B. Breve introduzione all ambiente di programmazione. Politecnico di Milano IV Facoltà di Ingegneria 2003

Informatica B. Breve introduzione all ambiente di programmazione. Politecnico di Milano IV Facoltà di Ingegneria 2003 Informatica B Breve introduzione all ambiente di programmazione Politecnico di Milano IV Facoltà di Ingegneria 2003 Dal sorgente all eseguibile File Sorgente.C Compilatore File Oggetto.OBJ Librerie.lib

Dettagli

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Java Java è un Linguaggio di Programmazione orientato agli oggetti. Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato

Dettagli

La selezione binaria

La selezione binaria Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Introduzione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Argomenti trattati Che cosa è python Variabili Assegnazione Condizionale Iterazione in una lista di

Dettagli

ALGEBRA DELLE PROPOSIZIONI

ALGEBRA DELLE PROPOSIZIONI Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra

Dettagli

PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI (NUCLEO) HARDWARE

PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI (NUCLEO) HARDWARE IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag