Fondamenti di Programmazione -Presentazione del Corso-

Documenti analoghi
Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Memoria Secondaria o di Massa

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

Il calcolatore. Architettura di un calcolatore (Hardware)

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Architettura dei calcolatori e Software di sistema

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

FONDAMENTI DI INFORMATICA

Bit, Byte, Word e Codifica Dati

Concetti Introduttivi. Il Computer

Le aree dell informatica

Introduzione alla programmazione. Walter Didimo

Computer e Programmazione

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

Elementi di base del calcolatore

Docente: Prof. Marco Patella Tutor: Vincenzo Lomonaco

Informatica. Il calcolatore: concetti di base. Vibo Valentia, 24 ottobre 2005 Ercole Colonese IBM S/360

Corso di Fondamenti di Informatica e Laboratorio ato o T-AB

Unità Didattica 2 I Linguaggi di Programmazione

Caratteristiche di un PC

Fondamenti VBA. Che cos è VBA

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

Appunti Liberi di Tecnologie Informatiche

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Elementi di Informatica e Programmazione

Laboratorio di Architettura degli Elaboratori

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

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

Linguaggi di programmazione

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Personal Computer: introduzione

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n PONTEDERA (PI) DIPARTIMENTO: Informatica

Programmazione modulare

Struttura del calcolatore

Orario del corso. Contenuti del corso. Modalità d esame. Analisi Numerica 1 a.a. 2011/2012

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Architettura dei computer

PROGRAMMAZIONE COORDINATA TEMPORALMENTE CLASSI: 1AIT-1BIT-1CIT-1AE-1BE-1CE/EM-1AME-1BME TECNOLOGIE INFORMATICHE. 3 ore settimanali (1 + 2 lab)

Algoritmi e Linguaggi

UD1. L informatica nell era di Matrix

I sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas

Codifica dell Informazione

PROGRAMMAZIONE COORDINATA TEMPORALMENTE A.S. 2015/ CLASSI: 1AE 1AM 1BI 1BM 1CM

Il concetto di calcolatore e di algoritmo

FONDAMENTI DI INFORMATICA II

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

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

Architettura. Nome Modulo Tipologia lezioni Ore Docente SSD Ruolo Interno Affidamento. Vincenzo Conti

Architettura dei calcolatori I parte Introduzione, CPU

La memoria principale

Informatica di Base. Ancora su numeri. La struttura dei sistemi informatici.

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

Algoritmi. Pagina 1 di 5

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Il Modello di von Neumann (2) Prevede 3 entità logiche:

LA MEMORIA NEL CALCOLATORE

Architettura degli elaboratori Docente:

Prof. Massimo Esposito INGEGNERIA MECCANICA (DI-M) UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II FACOLTÀ DI INGEGNERIA

INFORMATICA GENERALE. Informatica Generale

Generated by Foxit PDF Creator Foxit Software For evaluation only. Il Computer

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

Sistemi Web per il turismo - lezione 3 -

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

Linguaggi di alto livello, compilatori e interpreti

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1

FONDAMENTI DI INFORMATICA Lezione n. 11

Sistemi operativi. Motivazione. Tipi di software. Sistemi operativi. Un sistema operativo (SO) e un insieme di programmi che gestiscono le funzioni

Perchè scegliere Informatica?

La Rappresentazione dell Informazione

Mini-Corso di Informatica

Architettura CPU. Memoria principale (RAM) Dispositivi di ingresso. Dispositivi di uscita. Memoria secondaria (memoria di massa)

La codifica. dell informazione

ECDL CORE 5.0. Modulo 1 Concetti di base dell ICT 1.1 Hardware. Docente: Stefania De Martino Liceo G. Leopardi Recanati a.s.

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Hardware i componenti del PC

Fondamenti di informatica: un po di storia

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

II Esercitazione: S.O. & Fortran 77

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1

Una prima suddivisione

Informatica! appunti dalle lezioni dal 18/09/2012 al 28/09/2012!!

Lecture 2: Prime Istruzioni

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Fondamenti di Informatica

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

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

Diagrammi a blocchi 1

Sommario. Tabelle ad indirizzamento diretto e hash Funzioni Hash

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma

= < < < < < Matematica 1

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n PONTEDERA (PI) DIPARTIMENTO: Informatica

TEORIA E LABORATORIO

Transcript:

Fondamenti di Programmazione -Presentazione del Corso- CdL Ingegneria Informatica e dell'informazione Sara Brunetti sara.brunetti@unisi.it 0577 234850 1168 Ufficio 236

Fondamenti di Programmazione Orario di lezione: Martedì: 14:00-16:00; Mercoledì: 14:00-17:00. Aula: A, fino al 11/04 poi 468 Lab: 143(+124) Ricevimento previa email

Il laboratorio NON basta Lavoro a casa! Compilatore C per Windows (DEVC++5.1.0) 3

Modalità d esame Prova scritta con domande di Teoria (test) Deve essere superato per poter effettuare la prova pratica Prova pratica al calcolatore di programmazione in C

Testi consigliati L.M.Barone, E.Marinari, G.Organtini, F.Ricci-Tersenghi: Programmazione Scientifica, ed. Pearson B.W. Kernighan, D.M.Ritchie. Linguaggio C, Jackson B.W. Kernighan, R.Pike. Programmazione nella pratica, Addison-Wesley P.Deitel, H.Deitel. Il Linguaggio C- Fondamenti e tecniche di programmazione, PEARSON...

Obiettivi Imparare le tecniche alla base della programmazione (teoriche e pratiche) al fine di risolvere problemi di ambito scientifico Scientifico: Tipo di problemi Approccio Programmazione: Attività che consente di scrivere programmi Sequenze di istruzioni comprensibili al calcolatore

Informatica Informazione Mezzo per elaborarla Introduzione Procedimenti, algoritmi Mezzo fisico, calcolatore INFORMATIQUE = INFORMATION AUTOMATIQUE ACM/IEEE-CS: L'informatica è lo studio sistematico degli algoritmi che descrivono e trasformano l'informazione: la loro teoria, analisi, progetto, efficienza,realizzazione e applicazione

L'Informatica e gli algoritmi (informalmente) Descrizione di un procedimento o di un metodo per la soluzione di un problema In modo non ambiguo Da un esecutore

Soluzione di ax 2 +bx+c=0 1. inizio dell algoritmo; 2. acquisire dall esterno i valori dei coefficienti a, b e c; 3. calcolare il valore =b 2-4ac; 4. se <0, allora non esistono radici reali: eseguire 8; 5. se =0, allora x 1 =x 2 =-b/2a: eseguire 7; 6. se >0, allora x 1 =(-b+ )/2a e x 2 =(-b- )/2a; 7. comunicare all esterno i valori di x 1 ed x 2 ; 8. fine dell algoritmo.

Algoritmo di Euclide 1. Siano x e y due numeri 2. Calcola il resto della divisione di x per y 3. Se il resto è diverso da 0, vai al passo 2 i. Usa y come valore attuale di x, il resto come y ii. Altrimenti prosegui con il passo successivo 4. Il valore di y è la soluzione Sequenza finita di azioni elementari, eseguibili e non ambigue

Esecutori e linguaggi Un esecutore è definito in base a tre elementi: L'insieme delle istruzioni che capisce (sintassi) L'insieme delle operazioni che è capace di compiere; Quali operazioni associa ad ogni istruzione che riconosce (semantica) Se l'esecutore è un calcolatore, l'algoritmo è detto programma Il linguaggio utilizzato per descrivere l'algoritmo è detto linguaggio di programmazione L'unico linguaggio di programmazione che un calcolatore capisce è il linguaggio macchina

Software e hardware Software: Istruzioni per far eseguire ai computer delle azioni e prendere decisioni Hardware: Computer Il software controlla l'hardware Per risolvere problemi complessi abbiamo bisogno di avvalerci della velocità di calcolo di un computer Pc possono eseguire miliardi di calcoli in un secondo Più di quanto un essere umano possa eseguire in tutta la sua vita!!! Il supercomputer Tianhe-2 è in grado di eseguire oltre 33 milioni di miliardi di calcoli al secondo

Software Sistema Operativo Programma supervisore DOS, Windows, MacOS, UNIX, Linux Applicazioni esistenti word-processor/editor web browser compilatori o assembler Applicazioni create dall utente

Il sistema operativo Il sistema operativo è l insieme di programmi che gestisce il computer: permette l interazione con il mondo esterno (Input/Output) permette di eseguire programmi dell utente bilancia le risorse del sistema Sullo stesso PC possono convivere o alternarsi diversi sistemi (es.linux e Windows o MacOS) MacOSX di Apple, ios di Apple per iphone, Android di Google 14

Il calcolatore in astratto Macchina elettronica programmabile Programma Input Calcolatore Output Compiti: Eseguire operazioni logiche e/o numeriche Operazioni complesse spezzate in operazioni elementari

L'informazione Le entità (dati e risultati) su cui opera un calcolatore prendono il nome di informazione L'informazione si misura in bit si/no, falso/vero, 0/1.. 8 bit=1byte 10 Kilo: 2 20 Mega: 2 Interruttore acceso/spento Tensione V=0/V=-0.8 (NIM) Condensatore Carico/Scarico Giga: 2 30

Componenti hardware principali Dispositivi di input Organizzazione hardware standard Memoria Processore (CPU) Motherboard Dispositivi di output CPU Dispositivi di input Ad es.: mouse, tastiera,touch screen,dispositivi audio... Dispositivi di output Ad es.: monitor, stampante Insieme in uno stesso contenitore Processore (CPU) Central Processing Unit Interpreta e esegue le istruzioni Memoria

Due Tipi di Memoria Principale (o centrale) mantiene temporaneamente programmi e dati (mentre il programma è in esecuzione) - area di lavoro, capacità limitata (2-6GB,128GB) Accesso veloce (ordine di 100ns) RAM; ROM Ausiliaria (o memoria di massa) permanente salva programmi e risultati Capacità (2-6TB), accesso lento (ordine di ms) Esempi: hard disk, CD

Organizzazione della Memoria Principale Bit = una cifra binaria Valori 0 o 1 Byte = 8 bit La memoria principale è una lista di locazioni numerate ciascuna di un byte Il numero di byte utilizzato per memorizzare un dato varia con il tipo di dato... indirizzo contenuto 2021 11110000 Dato 1: 2 byte 2022 01111000 2023 10101011 Dato 2:1 byte 2024 11110111 Dato 3:3 byte 2025 01100011 2026 01010000

Organizzazione della Memoria Ausiliaria Radice File Directory Directory File Directory Directory Directory File File File Directory File

Il processore Dispositivo capace di eseguire istruzioni Gli elementi della CPU (Central Processing Unit): Unità di controllo: Coordina e supervisiona le operazioni delle altre unità legge le istruzioni dalla memoria e ne determina il tipo Unità aritmetico-logica: Esegue operazioni necessarie per eseguire le istruzioni (somme,sottrazione,moltiplicazione,divisione,meccani smi di decisione) Registri: locazioni di memoria interna usata per i risultati intermedi e info di controllo (decine di byte)

Il processore La CPU può svolgere un insieme limitato di operazioni: Spostamento di dati (accesso,lettura,scrittura,copia) Leggi un byte da una locazione di memoria Calcolo Somma tra loro il contenuto di due registri Controllo di flusso Salta ad una locazione di memoria 22

Il processore Ad ogni istruzione è associato un codice di N bit (codice operazione, parametro) La CPU inizia caricando il byte presente nella locazione 0 e lo interpreta come istruzione Ad ogni ciclo di clock, sequenzialmente A seconda dell istruzione si interpretano i byte successivi 23

Esempio Supponiamo che i seguenti codici binari corrispondano alle seguenti istruzioni 24

Esempio supponiamo che la memoria del nostro computer sia così riempita (i registri a e b non sono visibili): 25

Esempio supponiamo che la memoria del nostro computer sia così riempita (i registri a e b non sono visibili): viene interpretato come una istruzione set_a Di conseguenza il byte successivo contiene il parametro 11111110 26

Esempio supponiamo che la memoria del nostro computer sia così riempita (i registri a e b non sono visibili): viene interpretato come una istruzione set_a Di conseguenza il byte successivo contiene il parametro 11111110 Risultato: il registro a contiene il valore 00000010 27

Esempio supponiamo che la memoria del nostro computer sia così riempita: viene interpretato come una istruzione set_b Di conseguenza il byte successivo contiene il parametro 11111111 28

Esempio supponiamo che la memoria del nostro computer sia così riempita: viene interpretato come una istruzione set_b Di conseguenza il byte successivo contiene il parametro 11111111 Risultato: il registro b contiene il valore 00000011 29

Esempio supponiamo che la memoria del nostro computer sia così riempita: viene interpretato come una istruzione sum_ab 30

Esempio supponiamo che la memoria del nostro computer sia così riempita: viene interpretato come una istruzione out_a 31

Linguaggio di programmazione Il linguaggio macchina è il linguaggio della CPU Un programma in linguaggio macchina è una sequenza di bit che indica alla CPU le azioni da compiere sui dati (codificati in bit) Linguaggio di programmazione (LP): Informalmente: modo di esprimere le sequenze di operazioni da far svolgere a un computer mediante istruzioni

Linguaggi di programmazione Linguaggio macchina: sequenze di 0 ed 1 rigoroso essenziale Linguaggio assembly: simbolico (es. set_a) semplice traduzione aggiuntiva (assembler) Però: dipende dal processore Il programmatore deve conoscere in dettaglio le caratteristiche della macchina che usa Impossibile trasferire programmi da una macchina ad un'altra

Linguaggi di programmazione Linguaggio di programmazione ad alto livello Indipendente dal processore utilizzato È più semplice comprenderne la struttura Meno errori Gerarchia di linguaggi: da basso livello ad alto livello set_a,2 set_b,3 sum_ab out_a print 2+3

Linguaggi di programmazione Efficienza del programma Programmazione a basso livello Programmazione ad alto livello Facilità e velocità di programmazione

Linguaggi di alto livello Ad es. C, FORTRAN,C++,JAVA)...altri Linguaggi sintatticamente complessi facili da usare dagli umani: la traduzione in linguaggio macchina viene fatta dietro le scene sono definiti da una grammatica Il compilatore verifica la correttezza sintattica di un programma conoscendone la grammatica 36