La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Fond. di informatica1 parte 51 fondamenti di informatica parte 5 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori.

Presentazioni simili


Presentazione sul tema: "Fond. di informatica1 parte 51 fondamenti di informatica parte 5 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori."— Transcript della presentazione:

1 fond. di informatica1 parte 51 fondamenti di informatica parte 5 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori

2 fond. di informatica1 parte 52 E per emulare la memoria? zLe matrici non bastano: per i dati occorrerebbe un vettore a dimensione variabile (che si puo ottenere con luso di funzioni come malloc o new) di int ove porre valori interi e poi un altro di float, uno di char …; per gli indirizzi e le istruzioni in linguaggio macchina poi, occorrerebbe un altro vett… di unsigned, etc. zinsomma un contenitore di elementi di tipo diverso, non omogenei ed anche a dimensione variabile. Un tipo di variabile strutturata che permette di mantenere in memoria un insieme di elementi non omogenei e la struct del C e C++ simile al record del Pascal.

3 fond. di informatica1 parte 53 Esempio di struct in C e C++ zstruct studente z{char nome[20]; zchar cognome[25]; zint eta; zfloat peso; zfloat altezza; z}; Concettualmente con la keyword struct si definisce un tipo di tabella non omogenea con elementi di vari tipi che in C e C++ possono essere anche funzioni: cosi fatta la struct puo servire a introdurre la class del C++…ma questa e un altra storia (II corso!) Meo 2 lez. 5 & seg. Meo 2 lez. 5 & seg.

4 fond. di informatica1 parte 54 L emulazione della C.M. riporterebbe all Hardware zma prima di fare nuovi discorsi, occorrono precisazioni sull uso di array e sulla sinteticita del C e C++. E bene ricordare le 2 versioni della procedura: zvoid strcp(char *s, char *t) /* strcp copia la stringa puntata da t in quella puntata da s */ z{ while ((*s=*t)!=\0) /*fintantoche il contenuto di t assegnato alla cella puntata da s e diverso da \0 (=fine stringa) fai*/ s++; t++}; // + sintetica ?! zwhile (*s++=*t++) // perche manca != \0 ?? z; }

5 fond. di informatica1 parte 55 Frasi sintetiche zQuesto tipo di sintesi e normale nei programmi in C o in C++ ed e utile conoscerla ed abituarcisi per poter leggere programmi C e C++ in circolazione; zsi tratta di compattare alcuni tipi di frasi in una sola. zEs. lettura e calcolo indicate nel progetto logico posto in parte 4 diapo 69: fintantoche il carattere letto non e il punto, aggiungi 1 all elemento che indica la frequenza del carattere letto… ma come si scrive in C o C++ sintetic … ?

6 fond. di informatica1 parte 56 Sinteticamente … ? zNon e in linea con la sintesi leggere la sequenza di caratteri in un vettore di char e poi analizzare il vettore... Sarebbe comunque corretto farlo se fosse necessario tenere memoria della sequenza di caratteri per altri scopi per es. per successive analisi. Se invece l analisi e solo quella indicata allora: zwhile( (cin >> ch) /* fintantoche ce un ch (carattere) da leggere*/ && ( ch !=.) ) /* e inoltre questo ch e diverso da punto: FAI */...

7 fond. di informatica1 parte 57 In definitiva zil significato di queste considerazioni riguarda l utilizzo di matrici e/o vettori. zE bene usarli solo quando esiste la necessita di tenere memoria dei valori calcolati o letti: se tale necessita manca allora usare il valore corrente (per es. appena letto) per i calcoli ad esso relativi e passare ad altro valore (per es. il successivo).

8 fond. di informatica1 parte 58 Il ritorno all hardware zha lo scopo di introdurre il linguaggio di E.E. zSi ricordi: zC.M. & CPU: indirizzo di ogni locazione di C.M. => in registri della CPU ( es. registro P =Punta- tore, registro I.C.= Instruction Counter...); zContenuto di ogni locazione di C.M. => in altri registri della CPU (per es. A = Accumulatore...); zC.M. (RAM): scandibile e rintracciabile per es. col Registro P : Indirizzi Memoria Registro P; zCPU = Unita Centrale = Unita Elaborativa = MicroProcessore per Personal Computer Mezzalama 2 lez. 18 & seg. Vai a pag. 31 Mezzalama 2 lez. 18 & seg. Vai a pag. 31

9 fond. di informatica1 parte 59 … e la struttura funzionale di EE gia presentata: zTemporizzator e zUnita Centrale di Controllo Unita Aritmetico - Logica zUnita di controllo di I/O zMemoria Centrale zPeriferiche zMemorie di massa z CP U z Registri Flag

10 fond. di informatica1 parte 510 La CPU controlla tutte le operazioni di E.E. zLe operazioni possono essere: zinterne alla CPU (per es. Somma i contenuti di 2 Registri); zesterne come trasferimenti di dati verso la (o dalla) C.M. o verso le (o dalle) interfacce (Controller Unit) dei dispositivi periferici. zNotare: la CPU non invia i dati al dispositivo, ma alla sua interfaccia!

11 fond. di informatica1 parte 511 La CPU lavora zin stretto contatto con la C.M. e per svolgere i suoi compiti usa i registri, i Flag (indicatori di stato) e inoltre le Unita di Controllo e Aritmetico-Logica (A.L.U.). I registri piu usati sono: zRegistri P e I.C. (Istruction Counter) per tenere gli Indirizzi, zRegistri tipo Accumulatore (A, B, C … ed anche Reg. 1, Reg. 2...) per tenere i Dati, zRegistro Istruzione (I.R.) per tenere le Istruzioni del linguaggio di macchina.

12 fond. di informatica1 parte 512 CPU: funzionamento ciclico zOgni ciclo della CPU si compone di 3 fasi: fase di fetch ( = prelievo), zfase di decodifica, zfase di esecuzione dell istruzione. zIn ogni fase sono usati alcuni Registri. zLe operazioni relative ad ogni fase sono:

13 fond. di informatica1 parte 513 Prelievo e decodifica zfase di fetch ( = prelievo: uso dei Reg. IC e IR): z1) Esame del Reg. I.C.; z2) Accesso alla locazione di C.M. indirizzata da I.C.; z3) Trasferimento del contenuto della locazione di C.M. in I.R.; zfase di decodifica: (uso del Reg. IR): z4) Interpretazione del contenuto di I.R.; z5) SE non e un' istruzione ALLORA segnalazione ERRORE e STATO DI ATTESA

14 fond. di informatica1 parte 514 Esecuzione istruzione z… altrimenti fase di esecuzione: zSE si tratta di un istruzione di salto alla locazione di memoria di indirizzo xyzv allora I.C.= xyzv ed il controllo delle operazioni passa a xyzv e da qui si prosegue in sequenza; zALTRIMENTI: l' istruzione viene eseguita ed e incrementato I.C.= I.C.+(lunghezza istruz.) per passare all istruzione successiva. zSi noti: in assenza di istruzioni di salto esiste un ordinamento sequenziale tra le istruzioni.

15 15 Accesso alla Memoria: zper estrarre info. = leggere dalla Memoria; zper deporre info. = scrivere in Memoria; zOperazioni realizzabili: z a Hardware con codici propri della CPU z a Software con istruzioni di un Linguaggio Artificiale, tradotte nei codici della CPU (ossia nelle Istruzioni del linguaggio della macchina) dal programma traduttore. zEsempio fase di esecuzione con uso del reg.P (e non I.C. per brevità di scrittura) zSia: Istruzione = Leggi un dato dal disco e ponilo in C.M. all' indirizzo 001 16

16 fond. di informatica1 parte 516 Registro P di 4 bit =>16 byte indirizzabili (qui la freccia sintetizza il contenuto di P) z CPU = Ragnetto z REG. P. z Central Memory z 000 0 z 000 1 z 1111 z Registro P.= Pointer Accumulat.

17 fond. di informatica1 parte 517 Esempio: continua zC.P.U. pone 001 16 nel Registro P cioe P= 001 16 (cfr. grafico precedente) e passa il controllo all Unita di Controllo della Periferica disco. zQuesta, attivato il lettore che legge il dato (per es. 3.14), lo pone in un proprio registro: da qui C.P.U. lo preleva e lo trasferisce nell Accumulatore ossia A = 3.14 zInfine C.P.U. trasferisce il contenuto di A nella Memoria indirizzata da P ossia Mem(P)=A (cfr. grafico seguente)

18 fond. di informatica1 parte 518 Registro P di 4 bit => 16 byte indirizzabili z CPU = Ragnetto z REG. P. z Central Memory z 0000 z 0001 z 1111 z Registro P.= Pointer Accumulat. 3.14

19 fond. di informatica1 parte 519 Ancora esempi zAnalogo comportamento se Istruzione = Visualizza un dato su video … Se poi Istruzione = Somma i dati delle locazioni di indirizzo 555 16 e 123 16 e metti il risultato in C.M. all' indirizzo 666 16 allora C.P.U. effettua le operazioni seguenti (dove => significa sposta e il registro B A) z555 16 => P zMem(P) => A (per es. 8917 10 => A) z123 16 => P Mem(P) => B (per es. 79 10 => B) zA+B => A (per es. 8917 10 +79 10 => A) z666 16 => P zA => Mem(P)

20 fond. di informatica1 parte 520 Deduzioni logiche zCosa vogliono evidenziare i precedenti esempi? z1) ogni accesso in C.M. avviene con il deposito in un registro di CPU (I.C., P, …) dell indirizzo della locazione (cella, byte, voce …) di C.M; z2) ogni insieme di istruzioni (ossia ogni programma) per essere eseguito deve risiedere in C.M. z3) se un salto rimanda ad un indirizzo dove non ce un istruzione, ma un dato: ERRORE!

21 fond. di informatica1 parte 521 Le istruzioni zdel linguaggio macchina sono praticamente comandi in codice. Il codice e quello capito dalla CPU di E.E. con comandi indicati con sigle, da immaginare in binario. zPer es. somma avra il codice ADD z poni in memoria STORE z carica in un registro LOAD z salta (branch) B zsalta e torna indietro(back) BB zconfronta (compare) avra il codice CMP zetc.

22 fond. di informatica1 parte 522 Il formato delle istruzioni zdel linguaggio della macchina varia da C.P.U. a C.P.U. col vincolo che ogni istruzione deve poter stare nel registro I.R. della C.P.U. per essere decodificata e poi eseguita. Il numero dei bit di I.R. varia da C.P.U. a C.P.U…. zSe per es. IR ha 32 bit allora si potrebbero usare: 8 bit per il codice operativo (leggi, scrivi, somma …), 4 bit indicare il supporto, 4 bit il tipo di indirizzamento ( immediato, diretto, indiretto ) e 16 bit per indirizzare la memoria o altro. zSegue un esempio in un ipotetico linguaggio macchina.

23 fond. di informatica1 parte 523 Come fare la somma S= i = 5 in linguaggio macchina ? zIn C++ o C {int S = 0, i; zfor ( i=0; i<8; i=++) S+ = 5;} zIn ling.macchina le addizioni si fanno in A=Acc. e per gli indici si usano i Reg. i e cosi a parole: z Azzera A e Carica in Reg. 1 0 zCOME Confronta Reg. 1 con 8 z Se sono uguali salta a VIA z (se no) Aggiungi ad A 5 z Incrementa Reg. 1 di 1 z Salta a COME zVIA Memorizza A in S (A => Mem S )

24 fond. di informatica1 parte 524 E quindi: z CLEAR A z LOAD R 1 #0 (#indica dato immediato) zCOME CMP R 1 #8 ( se il compare da 0 Flag Zero =1 ) z BZ VIA (salta a VIA se Flag Zero =1) z ADD A #5 z INC R 1 (incrementa di 1 R 1 ) z B COME zVIA STORE A ADDR S (--> ADDR S => P e inoltre A => Mem(P))

25 fond. di informatica1 parte 525 o anche e meglio (con 1 giro ed 1 istruzione in meno): z CLEAR A z LOAD R 1 #7 zCOME ADD A #5 z DEC R 1 (decrementa di 1 R 1 : quando R 1 = 0. Flag Zero =1) z BZ VIA (salta a VIA se Flag Zero =1) z B COME zVIA STORE A ADDR S

26 fond. di informatica1 parte 526 BUS zTra le unita di E.E. viaggiano dati e indirizzi … z DOVE? Nei BUS ! zBUS = l' insieme dei collegamenti (cavi e connettori) tra C.P.U. e le altre componenti su cui sono trasferiti le informazioni in parallelo a pacchetti di n bit zBUS indirizzi => n da 8 a 20 bit e zBUS dati => n da 8 a 64 zAttualmente si usano 2-3 livelli di BUS per accellerare i trasferimenti.

27 fond. di informatica1 parte 527 Memoria di massa : zFunzione: uguale a quella della C.M. (memorizzare !!!), ma tecnologia di tipo magnetico... zCaratteristica: permanenza delle informazioni (come la ROM !!!), ma il Tempo di accesso che dipende dal tipo, 10-100msec. Enorme divario con la C.M. !!! Questo divario deve essere compensato con operazioni di input/output che scambino un notevole numero di informazioni in ogni accesso (cfr. diapo 32) zSupporto: disco fisso, dischetto (floppy), nastro, C.D.... zLettura/scrittura: Unita di Lettura/scrittura dotata di una testina apposita o di raggio laser.

28 fond. di informatica1 parte 528 Tipo di accesso: zsequenziale e, per dischi (hard e floppy), diretto o casuale (= random) tramite gli indirizzi di settore e traccia creati (cfr.parte 2) con la formattazione che divide il disco in tracce ed ogni traccia in settori a partire da punti di riferimento. RICORDARE che la Formattazione annulla il contenuto preesistente! PERICOLO! zCapacita dei dischetti: 360, 780, 1200 Kbyte e oltre zCapacita dei dischi: da 10 Mbyte a 40 Gigabyte zCapacita dei C.D.: 700 M byte; zCapacita dei nastri: variabile secondo il tipo di unita

29 fond. di informatica1 parte 529 Unita periferiche: sistema video zE costituito da un display e da una scheda grafica ed ha 2 modalita di funzionamento: alfanumerica (p.e. 25righe x 80colonne di testo) e grafica con necessita di un software pilota (=driver) della scheda grafica posto in un file con estensione.BGI che permette diverse modalita, risoluzioni … num. di colori; zelemento base: PIXEL (PIcture ELement) in un raster o matrice (griglia) di PIXEL (1280x1024; …) usabili singolarmente in alta risoluzione, a gruppi in bassa risoluzione.

30 fond. di informatica1 parte 530 Comunicazioni tra elaboratori zSi basano su strumenti Hard./Soft. che permettono di collegare elaboratori di vari tipi in reti locali (LAN) e geografiche (WAN); zoccorrono dispositivi di interfaccia tra elaboratori (per es. schede di rete) e protocolli (regole) di comunicazione; zsi puo anche usare la rete telefonica con l uso del modem dispositivo +comunemente usato che permette di convertire il segnale analogico (voce) a segnale digitale (bit) e viceversa.

31 fond. di informatica1 parte 531 E inoltre … zparlando di comunicazioni, il mezzo piu semplice per trasferire qualunque informazione sia da C.M. a memoria di massa sia tra Elaboratori di tipo diverso resta il file tipo testo sequenziale memorizzato su memoria di massa. zNel file tipo testo i byte sono interpretati come caratteri ASCII (in altri file, quelli binari ogni byte e considerato come 8 bit di un dato binario, per es. float); zI file tipo testo possono essere usati in lettura, scrittura e aggiornamento.

32 fond. di informatica1 parte 532 Come si costruisce un file tipo testo in C, C++ ? zOccorre usare le librerie e le funzioni giuste … ma comunque sempre le informazioni al / dal file sequenz. sono trasferite a blocchi, 1 blocco per volta, da / a una zona di C.M. che funge da tampone o buffer (= interfaccia tra i 2 tipi di memoria) e da qui smistate ( Cfr. parte2, file & C.M. ) zIl C e C++ considerano un file sequenziale come un flusso (stream) o successione continua di byte proveniente da/inviata a memoria di massa (analogia con cin e cout). Per gestirlo pero usano procedure diverse.

33 fond. di informatica1 parte 533 Argomenti del main zPer trasmettere ad un programma C o C++ informazioni (per es. il nome del file di lavoro dati.per) si usano i parametri della main function che finora era sempre scritta main(). La main function ha 2 forme di intestazione: zint main() zint main(int argc, char* argv[]) zdalle quali si nota che il valore di ritorno e int (come quello indicato nella frase return (0) !!).

34 fond. di informatica1 parte 534 main zNella seconda forma si notano: int argc che e il numero di parametri trasmessi, char* argv[] che e un vettore di puntatori a stringhe= nomi dei parametri trasmessi. zIn argv[0] c e il puntatore al nome del programma, primo argomento presente sulla linea di attivazione del programma stesso; nei successivi ci sono puntatori alle stringhe che sono gli altri argomenti presenti sulla linea di attivazione del programma stesso.

35 fond. di informatica1 parte 535 Esempio zAvendo scritto la frase main cosi: zmain(int argc, char *argv[]) zla linea di attivazione potra essere cosi fatta: fileper.exe dati.per zdove il file di dati da leggere (dati.per) e fornito in argv[1], in argv[0] va fileper (nome del programma) e argc viene posto =2. zTutto questo deve servire da guida, ma per imparare occorre FARE e poi provare e riprovare con pazienza … zfine.

36 fond. di informatica1 parte 536 Appendice a): perplessita 1 zRICORDARSI: l operatore >> preleva un dato dal un flusso di input: che tipo di dato? Il tipo che e stato dichiarato: char, int, float,... z2) RICORDARSI: non abusare di matrici e/o vettori; usarli solo quando esiste la necessita di tenere memoria dei valori calcolati o letti: se tale necessita manca allora usare il valore letto per i calcoli necessari e passare al successivo.

37 fond. di informatica1 parte 537 Appendice a): perplessita 2 z3) La funzione elabora usata in tanti esempi di programmi indica col suo nome una elaborazione di tipo generale. Quando l elaborazione e di un tipo specificato e meglio usare nomi di funzioni pertinenti, come fatto nell esempio sulla valutazione del minimo e del massimo (parte 4) dove si usavano nomi come minimo, massimo, rivaluta e memovis. Cosi il programma diventa +comprensibile e -generico Come ulteriore esempio, se in un programma...

38 fond. di informatica1 parte 538 Appendice a): perplessita 3 z… se in un programma e richiesto di leggere una matrice di valori interi e ricercarvi un certo valore (letto anchesso da tastiera) le funzioni da usare e costruire saranno: zleggi(matrice); cin>> valore; zif (ricerca(valore, matrice, &riga, &colonna)) visualizza(\ntrovo valore in, riga,colonna); zelse cout<< \nIl valore non ce !<<endl; zQUI la funzione elabora e la ricerca !

39 fond. di informatica1 parte 539 Appendice a): perplessita 4 z4) RICORDARE: la codifica F.P. normalizzata fa riferimento alla base 2 e quindi il valore dell esponente riguarda la base 2. Col metodo delle moltiplicazioni successive ogni moltiplicazione per la base isola una nuova cifra nella nuova base. Per es. =3.14 10 avra 11 2 come parte intera e 0010001111 2 come parte decimale. Normalizzando +.110010001111 2 E+10 2 con S=0, M=110010001111 2, E=010 2.

40 fond. di informatica1 parte 540 Appendice a): perplessita 5 zRICORDARSI di fare attenzione alle specifiche di progetto di un programma: IN PARTICOLARE alle specifiche di progetto del programma da costruire all esame che stanno nelle relative richieste. Analizzarle e riflettere! zUN CONSIGLIO per l esame: scrivere il programma in modo semplice e chiaro, con qualche commento, ma senza fronzoli, badando a rispondere a tutte e sole le richieste. Privilegiare la sostanza ! Se resta tempo aggiungere … i fiorellini !

41 fond. di informatica1 parte 541 Appendice b): esempi di temi desame del 2000 zFondamenti di Informatica 1 z TEMPO = 1 ORA e 1/2, z NON AMMESSI TESTI, APPUNTI, CALCOLATRICI. z1) Conversioni di base (punteggio =2) z Esprimere in base 10 l' intero positivo piu' grande rappresentabile con 6 bit in base 2. z Scrivere la rappresentazione binaria normalizzata di 3/4 z2) (punteggio =1) z Come sono effettuate le divisioni per 2 dei numeri interi dall' Unita' Aritmetico-Logica? z

42 fond. di informatica1 parte 542 Appendice b; continua 2 z3) (punteggio =2) NO z In un circuito logico a 3 ingressi (V,X,Y) la funzione Z vale 1 quando la combinazione di ingresso e dispari: scrivere la funzione Z. z4) (punteggio =5) zScrivere in C o C++ un programma strutturato in sottoprogrammi che provveda a costruire in Memoria Centrale una matrice F di N*M elementi float. Ogni elemento di F deve contenere il valore della funzione zf = 0.5*x2 +1.5*y +1 zper x variabile con passo dx=0.5 nell' intervallo 0.0 x 2.0 e y variabile con passo dy=0.1 nell' intervallo 0.0 y 0.3 (Estremi inclusi!)

43 fond. di informatica1 parte 543 Appendice b; continua 3 z(SI NOTI che N ed M vanno calcolati in funzione degli intervalli di definizione di x e y e dei passi dx e dy sopra specificati). zDopo la costruzione della matrice F, il programma deve: zvisualizzare su video i valori N e M e la matrice F per righe. zN.B. E' SCONSIGLIATO L' USO DI VARTIABILI GLOBALI zFondamenti di Informatica 1 z TEMPO = 1 ORA e 1/2, z NON AMMESSI TESTI, APPUNTI, CALCOLATRICI. z1) Conversioni di base (punteggio =2) z Dare la forma normalizzata binaria Floating Point con 1 bit per S, 3 bit per E, 4 bit per M del valore X=1/4 in base 10.

44 fond. di informatica1 parte 544 Appendice b; continua 4 zDare la rappresentazione binaria in complemento a 2 con 8 bit di X = 15 10. z2) (punteggio =1) Indicare quante sono e quali sono le fasi di cui si compone il ciclo della CPU (Unita' Centrale di Elaboraz.) z3) (punteggio =2) Indicare sinteticamente come lavora un Sistema operativo multiprogrammato e dove si trovano i "molti" programmi da essere eseguiti. z4) (punteggio = 5) Scrivere in C++ un programma strutturato in sottoprogrammi che faccia le seguenti azioni tramite apposite procedure o funzioni: z _ costruire in Memoria Centrale un vettore (tabella) di 10 elementi interi ordinati dove ogni elemento e' divisibile per 3 e per 5 ossia 15, 30, 45, 60,... e visualizzarlo

45 fond. di informatica1 parte 545 Appendice b; continua 5 z_ chiedere all' utente 2 valori interi (non compresi tra quelli posti nel vettore); z_ aggiungere nel vettore i 2 valori letti posizionandoli nei posti voluti dall' ordinamento e visualizzare il vettore cosi' modificato. (Se per esempio i valori letti sono 7 e 31 il vettore modificato risultera': 7, 15, 30, 31, 45, 60,... ) z N.B. E' SCONSIGLIATO L' USO DI VARTIABILI GLOBALI zFondamenti di Informatica 1 z TEMPO = 1 ORA e 1/2, z NON AMMESSI TESTI, APPUNTI, CALCOLATRICI. z1) Conversioni di base (punteggio =2) z Usando l' aritmetica binaria e la notazione in complemento a 2

46 fond. di informatica1 parte 546 Appendice b; continua 6 z calcolare: la differenza tra 0101 2 e 1011 2 ; z il valore di un registro a 4 bit contenente 1111 2. z z2) (punteggio =1) Indicare la funzione del linker e quando e' usato. z3) (punteggio =2) NO !Indicare come viene realizzata la dipendenza dal tempo nei circuiti elementari di memoria FF_SR utilizzati per memorizzare i bit. Indicare anche la loro struttura. z4) (punteggio =5) Scrivere in C++ un programma strutturato in sottoprogrammi che in Memoria Centrale utilizzi 3 matrici bidimensionali di interi e di dimensione 3x3, A, B, C, e dotato di un programma principale consistente dei passi seguenti: z

47 fond. di informatica1 parte 547 Appendice b; continua 7 z P1. init (A); init (B); z P2. C = A*B; z P3. stampa(A), stampa(B), stampa(C). zNOTE: Le matrici A e B devono essere opportunamente inizializzate tramite una procedura di lettura da tastiera, con prototipo del tipo: void init(X) dove X e' una matrice 3x3 che in uscita da init contiene i valori letti; zLe 2 matrici A e B cosi' inizializzate, devono essere moltiplicate tramite la procedura: void product(....) con tre parametri (matrice C in uscita, matrici A e B in ingresso), ossia il risultato di product(...) e': C = A*B (ricordando che un elemento C[i][j] e' dato dalla sommatoria in k di A[i][k] * B[k][j] );

48 fond. di informatica1 parte 548 Appendice b; continua 8 zLe matrici A, B, C devono essere visualizzate tramite la procedura void stampa(X) che visualizza per righe sul display la matrice X di dimensioni 3x3. zN.B. E' SCONSIGLIATO L' USO DI VARTIABILI GLOBALI. zFondamenti di Informatica 1 z TEMPO = 1 ORA e 1/2, z NON AMMESSI TESTI, APPUNTI, CALCOLATRICI z1) Conversioni di base (punteggio =2) zda base 2 in forma Floating Point normalizzata con Segno = 0, zEsponente= 001 2 Mantissa Normalizzata=1010 2 a base 10 =? zda base 10 a base 16: 123 10 = ?

49 fond. di informatica1 parte 549 Appendice b; continua 9 z2) (punt. =1) Indicare la differenza tra file e directory del DOS. z3) (punteggio =2) In cosa consistono le fasi di Fetch (prelievo) e decodifica di un' istruzione in linguaggio macchina ? chi le attua ? z4) (punteggio = 5) Scrivere in C++ un programma strutturato in sottoprogrammi che: zlegga da tastiera un insieme di valori interi da memorizzare in T array monodimemnsionale (vettore) di al massimo 99 elementi; zattivi una procedura Conta che esamini T e restituisca 2 valori e cioe': il numero degli elementi effettivamente presenti in T, e il numero degli elementi che hanno un valore non divisibile per 2 ne' per 3 e visualizzi sul video tali numeri. zN.B. E' SCONSIGLIATO L' USO DI VARTIABILI GLOBALI


Scaricare ppt "Fond. di informatica1 parte 51 fondamenti di informatica parte 5 appunti per Nettuno a.a. 2004- 2005 di anna maria carminelli gregori."

Presentazioni simili


Annunci Google