Process synchronization Operating System Lab 1 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it Ver. aggiornata al 12 Ottobre 2013 © 2005 William Fornaciari
Obiettivi Imparare ad usare l’ambiente di sviluppo Cosa è e come funziona un compilatore Sistemazione degli ambienti di sviluppo Comandi base da linea di comando Esercitarsi sui costrutti visti a lezione Inserimento dati da tastiera Controllo dei dati Uso delle funzioni
Lab 1: Agenda Informazioni sui laboratori Benvenuti nel fantastico mondo del C Esercizi Lab1
Lab 1: Agenda Informazioni sui laboratori Benvenuti nel fantastico mondo del C Esercizi Lab1
Calendario dei Labs 15 Ottobre 2013, 10am-12pm, @ LM1 Installation Party: strumenti di sviluppo per il corso di Info B 22 Ottobre 2013, 10am-12pm, @ LM1 C: Strutture di controllo e cicli 29 Ottobre 2013, 10am-12.45pm, @ LM1 C: array e matrici 12 Novembre 2013, 10am-12.45pm, @ LM1 C: tipi di dato e strutture
Calendario dei Labs 10 Dicembre 2013, 12pm-2pm, @ LM1 MATLAB: Ambienti di sviluppo e primi codici 7 Gennaio 2014, 10am-12.45pm, @ LM1 MATLAB: strutture di controllo, tipi di dato strutturato, e vettori 14 Gennaio 2014, 10am-12.45pm, @ LM1 MATLAB: funzioni ricorsive 21 Gennaio 2014, 10am-12.45pm, @ LM1 MATLAB: funzioni ricorsive, funzioni di ordine superiore, grafici 2D e 3D
Struttura Tolte le slide di “contesto” su Obiettivi Elenco esercizi Approccio dritto al sodo, niente "fronzoli": Introduzione all'uso di un editor di testo e di una shell Non useremo un IDE (e.g., code::blocks, eclipse, ...) È una proposta, ci sono molti modi diversi di ottenere gli stessi risultati Per info, fare riferimento al sito del corso: Home: http://home.deib.polimi.it/santambr/dida/infob/1314 Calendario: http://home.deib.polimi.it/santambr/dida/infob/calendario.htm
Lab 1: Agenda Informazioni sui laboratori Benvenuti nel fantastico mondo del C Ambiente di sviluppo Un primo programma Esercizi Lab1
Ambiente di sviluppo Useremo un ambiente basato su distribuzioni Linux: Sulle macchine del lab, CentOS Sui vostri portatili… Per sviluppare del codice C, è sufficiente avere: Un editor di testo, magari con syntax highlighting (e.g., geany, gedit) - Un compilatore (e.g., gcc)
Ambiente – CentOS o VM Editor: gedit Shell: bash
Come si lanciano…
Struttura di un programma C parte dichiarativa globale inclusione librerie / per poter invocare funzioni utili (i/o, ...) / dichiarazione di variabili globali e funzioni int main ( ) { dichiarazione di variabili locali istruzione 1; / tutti i tipi di operazioni, e cioè: / istruzione 2; / istr. di assegnamento / istruzione 3; / istr. di input / output / istruzione 4; / istr. di controllo (condizionali, cicli) / ... istruzione N; } parte dichiarativa locale parte esecutiva Ogni programma C deve contenere un modulo int main() {...}
Il primo programma: ciao mondo
Tutorial: bash e gcc Ecco alcuni comandi utili per utilizzare la shell bash: $ pwd - (Print Working Directory) visualizza la directory corrente $ ls - elenca i file presenti nella cartella corrente $ cd CARTELLA - cambia la cartella corrente a CARTELLA $ ./PROG - esegue il programma specificato (se è nella cartella corrente) Questi pochi comandi sono sufficienti per individuare ed eseguire un programma Per compilare un sorgente, abbiamo usato il comando gcc gcc FILE.c -o PROG Questo comando traduce il codice sorgente presente in FILE.c e lo salva nel file eseguibile PROG
HowTo: compilare ed eseguire Per poter eseguire il nostro programma, bisogna tradurlo in codice macchina Questa operazione viene eseguita dal compilatore (e.g., gcc) Scritto e salvato il file sorgente (e.g., sul Desktop, nel file primo.c), Dobbiamo compilare ed eseguire un programma utilizzando una shell (e.g., bash) $ cd Desktop $ gcc primo.c –o exe $ ./exe
Lab 1: Agenda Informazioni sui laboratori Benvenuti nel fantastico mondo del C Esercizi Lab1
Exe 1: Stampa a video Scrivere un programma in C che visuallizzi a video la seguente scritta: INFOB - 2013/2014 Laboratorio 1 Studente: Nome Cognome Matricola: #mat
Exe 2: Trova errori Il seguente programma non funziona…
Exe 3: Mostra caratteri Si scriva un programma che richieda l’inserimento di un carattere e lo mostri a video, con anche la sua codifica ASCII
Exe 4: Gestione errori sull’input Si scriva un programma in C che ammete l’inserimento da tastiera solo di numeri dispari e compresi tra 1 e 7
Exe 5: Inserimento dati Si scriva un “convertitore” di unità dal sistema SI al US customary units Ci interessano solo le seguenti conversioni piedi in metri (1ft= 0.3048 m) pound in Kg (1lb = 453.59237g) yard in metri (1yd = 0.9144m)
Fine…