Esercitazioni di Informatica (CIV) Introduzione Andrea Romanoni [email protected] sito web: http://home.deib.polimi.it/romanoni/ Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano 15 ottobre 2014 L’informatica: questa sconosciuta Perchè l’informatica? cosa c’è dietro a un computer (pura curiosità) per interagire in modo appropriato con una macchina I I I che ragionamenti permettono alle macchine di funzionare che potenzialità hanno le macchine che limiti hanno le macchine in futuro. . . se avrete a che fare con noi informatici . . . siete politecnici Andrea Romanoni Esercitazioni di Informatica (CIV) 2 / 15 L’informatica: questa sconosciuta Perchè il linguaggio C? strumento pratico per implementare le conoscenze teoriche molto simile a come “ragiona” la macchina Andrea Romanoni Esercitazioni di Informatica (CIV) 3 / 15 L’informatica: questa sconosciuta Perchè il linguaggio C? strumento pratico per implementare le conoscenze teoriche molto simile a come “ragiona” la macchina e allora, perchè FORTRAN? differenti strumenti per ottenere lo stesso risultato diverse esigenze → diversi linguaggi utilizzato da molti ingegneri civili per automatizzare i calcoli Andrea Romanoni Esercitazioni di Informatica (CIV) 3 / 15 informatica 6= altre materie Andrea Romanoni Esercitazioni di Informatica (CIV) 4 / 15 Gli esercizi in informatica Gli esercizi sono programmi e i programmi sono come delle scatole Andrea Romanoni Esercitazioni di Informatica (CIV) 5 / 15 Gli esercizi in informatica Gli esercizi sono programmi e i programmi sono come delle scatole Il vostro scopo è quello di creare la scatola Andrea Romanoni Esercitazioni di Informatica (CIV) 5 / 15 Gli esercizi in informatica Cos’è una soluzione Informatica 6= altre materie: una soluzione non è unica la soluzione corretta è una scatola che per ogni input restituisce l’output richiesto uno stesso problema può essere risolto con differenti algoritmi (esempio: ordinamento) stesso problema, diversi linguaggi → diverse soluzioni è necessario provare gli esercizi a computer Andrea Romanoni Esercitazioni di Informatica (CIV) 6 / 15 Gli esercizi in informatica Come esercitarsi a casa Strumenti per esercitarsi: Macchina Virtuale: dove svilupperemo le scatole-programmi gedit/pluma: editor di testo terminale: dove inserire comandi compilatore: gcc oppure clang GDB: per ispezionare cosa succede nella scatola-programma Un’ informazione pratica: per scrivere le parentesi graffe: AltGr + 7 (per {) AltGr + 0 (per }) Andrea Romanoni Esercitazioni di Informatica (CIV) 7 / 15 La Macchina Virtuale Scaricate VirtualBox (https://www.virtualbox.org/wiki/Downloads) e installatela sul vostro computer Scaricate la macchina virtuale sul sito del Prof. Barenghi http:// home.deib.polimi.it/barenghi/doku.php?id=teaching:info1 Installate la macchina virtuale: I I I Aprite VirtualBox File → Importa applicazione virtuale → Apri applicazione virtuale → cercate il file scaricato macchina_virtuale.ova → Apri → Avanti → Importa dopo pochi minuti comparirà la voce Informatica in VirtualBox; d’ora in poi aprendola avvierete la Macchina virtuale quando avvierete la macchina virtuale vi verrà chiesta una password che è. . . password Andrea Romanoni Esercitazioni di Informatica (CIV) 8 / 15 L’editor di testo Ovvero gedit o pluma L’editor di testo sarà il vostro strumento principale dove scrivere i vostri esercizi-programmi-scatole. Aprite l’editor di testo (Applicazioni → Accessori → Editor di testo pluma) La prima volta aprite: Modifica → Preferenze → e spuntate la voce Mostrare i numeri di riga Scrivete il vostro programma Salvate dando un nome qualsiasi, con il vincolo che finisca in .c I I esempi corretti: es1.c, pippo.c, provate_gli_esercizi_a_computer.c esempi non corretti: es1, pippo Andrea Romanoni Esercitazioni di Informatica (CIV) 9 / 15 Terminale Il terminale è un “programma“ che vi permette di eseguire altri programmi. Aprite il terminale (Applicazioni → Strumenti di Sistema → Terminale di MATE) Ora il terminale è ”posizionato” nella cartella ~ovvero nella cartella Home di utente. Per vedere cosa contiene la cartella utilizzate il comando (ovvero scrivete sul terminale) ls abbreviazione di list per navigare tra le cartelle utilizzate il comando cd abbreviazione di change directory: I I cd Documenti per entrare nella cartella Documenti cd ../ per entrare nella cartella che contiene la cartella in cui siete (insomma, per tornare indietro) da terminale utilizzerete poi due comandi fondamentali per eseguire il vostro programma: clang e gdb Andrea Romanoni Esercitazioni di Informatica (CIV) 10 / 15 Il compilatore Ovvero clang Il compilatore è quel programma che vi permette di inscatolare il codice che avete scritto nell’editor di testo, traducendolo in un linguaggio comprensibile alla macchina. Se ci sono errori nel codice che avete scritto nell’editor, il compilatore vi darà dei messaggi in cui viene specificato dove si trova l’errore. Aprite il terminale se non lo avete ancora aperto entrate nella cartella che contiene il vostro programma scritto con l’editor, giocando con i comandi cd e ls spiegati nella slide prima ora compilate il programma. Assumiamo che il vostro programma si chiami nome.c e che vogliate chiamare programma la scatola che verrà creata dal compilatore; scrivete allora I clang -g nome.c -o programma dove -o dice al compilatore che la parola successiva sarà il nome della scatola; -g dice al compilatore che la scatola che crea può essere aperta da un programma opportuno (slide successiva). Se dimenticaste di scrivere -g, il compilatore crea la scatola, ma non potrete eseguire i passaggi della slide che segue (gdb). Andrea Romanoni Esercitazioni di Informatica (CIV) 11 / 15 Il compilatore Ovvero clang a questo punto, se dopo avere digitato il comando (e premuto invio) non appare nessun errore, il vostro programma è stato compilato con sutccesso (ATTENZIONE! è una condizione necessaria affinchè il programma sia giusto, ma per vedere se effettivamente fa quello che volete, dovete aprire la scatola oppure in futuro dovrete visualizzare a schermo i risultati) Potete eseguire il programma digitando a terminale: I ./programma dove al posto di programma dovete inserire il nome del vostro programma Fino a che non vedremo le funzioni di output su schermo, non vedrete succedere nulla quando eseguite il programma, ma in realtà il programma è stato eseguito, solo che non siamo stati in grado di vedere cosa è successo all’interno della scatola Andrea Romanoni Esercitazioni di Informatica (CIV) 12 / 15 GDB Ovvero. . . l’apriscatole (o in termini più tecnici il debugger) Gdb è un programma che vi permette di vedere cosa succede durante l’esecuzione del vostro programma; vi permette cioè di aprire la scatola. Aprite il terminale se non lo avete ancora aperto entrate nella cartella che contiene il vostro programma compilato al passo precedente con il compilatore clang digitate gdb programma dove al posto di programma dovete inserire il nome del vostro programma ora siete all’interno di gdb. Potete digitare i seguenti comandi: I I I I run esegue il programma (attenzione che se non avete messo breakpoint con il comando break, l’esecuzione non si ferma) continue continuate l’esecuzione fino al prossimo break break nome.c:numero che permette a gdb di fermare l’esecuzione quando viene raggiunta la riga numero del file nome.c step eseguite la prossima riga del programma Andrea Romanoni Esercitazioni di Informatica (CIV) 13 / 15 GDB Ovvero. . . l’apriscatole (o in termini più tecnici il debugger) nel caso vogliate passare degli argomenti al vostro programma (esempio volete passare gli argomenti : 2 6 ciao) dovete avviare gdb in questo modo (invece di gdb programma): I gdb ––args nome_programma argomenti quindi nel nostro caso I gdb ––args programma 2 6 ciao Andrea Romanoni Esercitazioni di Informatica (CIV) 14 / 15 Esercizi Scrivete i seguenti programmi: Calcola il valore assoluto di una variabile Calcola l’area del rettangolo Calcola l’area del cerchio Calcola il perimetro di un quadrato e la circonferenza di un cerchio e salva in una variabile il valore minore tra i due Andrea Romanoni Esercitazioni di Informatica (CIV) 15 / 15
© Copyright 2024 ExpyDoc