Compiti di un ambiente sw per il C.D. NetSolve: un ambiente per il calcolo distribuito. gestire gli accessi alle risorse. gestire l eterogeneita

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Compiti di un ambiente sw per il C.D. NetSolve: un ambiente per il calcolo distribuito. gestire gli accessi alle risorse. gestire l eterogeneita"

Transcript

1 Compiti di un ambiente sw per il C.D. NetSolve: un ambiente per il calcolo distribuito gestire gli accessi alle risorse gestire l eterogeneita gestire la dinamicita A. Murli 1 A. Murli 2 1

2 Situazione ideale NetSolve : obiettivi primari dati permettere l utilizzo a distanza di software matematico di alta qualita input output Ambiente software risultati mettere a disposizione l hardware per la relativa esecuzione Possibilmente in maniera facile La scelta delle risorse hardware e software e completamente a carico dell ambiente software A. Murli 3 Network Computational Server A. Murli 4 2

3 esempio Supponiamo che tra i problemi che NetSolve è in grado di risolvere ci sia la somma di due numeri c=a+b Possiamo utilizzare NetSolve ogni volta che abbiamo necessità di calcolare una somma A. Murli 5 esempio : somma di a=3 e b=7 #include <stdio.h> #include "netsolve.h" Chiamata a NetSolve per eseguire la somma int main( ){ float a,b,c; a=3; b=7; printf( Dati = %f %f \n, a, b); netsl("somma( )",&a,&b,&c); printf( Risultato = %f \n", c); } Per ora si osservi solo la semplicita di utilizzo A. Murli 6 3

4 problema NetSolve: componenti fondamentali come funziona NetSolve? s1 s2 NetSolve NS client library NS agent s3 s5 NS server s4 A. Murli 7 A. Murli 8 4

5 NetSolve agent (1) E la porta di accesso a un sistema NetSolve Esso gestisce un database con informazioni sulle risorse computazionali del sistema: performance hardware dei server software disponibile sui server statistiche sull uso dinamico dei server A. Murli 9 NetSolve agent (2) Il NS agent usa le informazioni del database per trovare e allocare le risorse di calcolo, bilanciare il carico tra i server tenere traccia di eventuali fallimenti A. Murli 10 5

6 NetSolve client library (1) Al momento della compilazione, l applicazione viene linkata alla NS client library Tramite le chiamate a tale libreria l applicazione accede alle risorse di calcolo di NetSolve senza alcuna conoscenza delle reti e dell hardware coinvolto NetSolve client library (2) La NS client library e disponibile con interfacce a: Fortran C Matlab Mathematica Excel (in corso di sviluppo) Octave Condor-G A. Murli 11 A. Murli 12 6

7 NetSolve server (1) Sono le risorse di calcolo dell intero sistema Essi possono essere: workstation cluster sistemi paralleli s3 s1 s5 s2 A. Murli 13 s4 NetSolve server (2) Un NS server puo essere: un server software (repository) (viene messo a disposizione solo il software residente sul server) un server hardware (viene messo a disposizione solo l hardware per l esecuzione di software residente sui server software) un server hardware e software (viene messo a disposizione sia l hardware che il software residente) A. Murli 14 7

8 NetSolve server (2) Overview del funzionamento: richiesta server s1 P xxx yyy t 0 B zzz P1 aaa P2 bbb richiesta s1 s2 s2 s3 Per fare parte di un sistema NetSolve, il server deve registrare sul database dell agente le proprie caratteristiche statiche: Performance P Latenza t 0 e bandwidth B della rete Software disponibile p1, p2, s3 s1 s5 s2 A. Murli 15 s4 s3 s4 s5 Il client invia la richiesta all agent con le caratteristiche del problema da svolgere A. Murli 16 8

9 Overview del funzionamento: scelta Overview del funzionamento: input SW s1 s2 s1 s2 HW s3 s5 s4 dati s3 sw s5 s4 L agent effettua la scelta del SW server (s2) e dell HW server (s3), e le comunica al client A. Murli 17 Il client invia direttamente al server HW i dati, dove viene inviato anche il software necessario dal server SW A. Murli 18 9

10 Overview del funzionamento: output Osservazione s1 s2 server risultati s3 s5 s4 client agent Client, agent e server sono entita distinte Il server HW invia direttamente al client i risultati A. Murli 19 possono risiedere in tre siti differenti e formano un sistema NetSolve A. Murli 20 10

11 Osservazione (2) Risorse computazionali di un NS system? NetSolve Esistono numerosi NetSolve system Sono indipendenti l uno dall altro Sono identificati dall agent A. Murli 21 Dato un NS system qual e l hardware disponibile? qual e il software disponibile? A. Murli 22 11

12 osservazione Informazioni sull hardware Il comando >> NS_config agente Ogni server, sia esso hw o sw e registrato sul database del NS agent Interrogare il NS agent! A. Murli 23 fornisce le informazioni sulle risorse hardware disponibili nel sistema identificato da agente agente e il nome della macchina su cui e in esecuzione l agente da interrogare A. Murli 24 12

13 esempio Informazioni sul software disponibile Per interrogare l agente in esecuzione su dgbeobi.uniparthenope.it server registrati sull agente dgbeobi.uniparthenope.it >> >> NS_config dgbeobi.uniparthenope.it AGENT: dgbeobi.uniparthenope.it ( ) SERVER: node01.uniparthenope.it ( ) (0 (0 failures) SERVER: node02.uniparthenope.it ( ) (0 (0 failures) SERVER: node03.uniparthenope.it ( ) (0 (0 failures) SERVER: node04.uniparthenope.it ( ) (0 (0 failures) SERVER: node05.uniparthenope.it ( ) (0 (0 failures) SERVER: node06.uniparthenope.it ( ) (0 (0 failures) SERVER: node07.uniparthenope.it ( ) (0 (0 failures) SERVER: node08.uniparthenope.it ( ) A. Murli (0 (0 failures) 25 >> >> Il comando >> NS_problems agente fornisce le informazioni sulle risorse software disponibili nel sistema identificato da agente agente e il nome della macchina su cui e in esecuzione l agente da interrogare A. Murli 26 13

14 Esempio Per conoscere i problemi disponibili sui server registrati sull agente dgbeobi.uniparthenope.it Voglio usare un sistema NetSolve Cosa devo fare? >> >> NS_problems dgebeobi.uniparthenope.it /BLAS-wrappers/Level3/dmatmul /BLAS-wrappers/Level3/zmatmul /BLAS/Level1/daxpy /BLAS/Level1/ddot /BLAS/Level1/zaxpy /BLAS/Level2/dgemv software disponibile sui /BLAS/Level3/dgemm server registrati sull agente in /BLAS/Level3/zgemm esecuzione su dgbeobi.uniparthenope.it A. Murli 27 NetSolve A. Murli 28 14

15 ESEMPIO 1 SOMMA TRA DUE NUMERI CASUALI Esempio : somma tra due numeri >> >> NS_problems dgbeobi.uniparthenope.it /BLAS-wrappers/Level3/dmatmul /BLAS-wrappers/Level3/zmatmul /librerie/operazioni/somma /BLAS/Level1/daxpy /BLAS/Level1/ddot /BLAS/Level1/zaxpy /BLAS/Level2/dgemv /BLAS/Level3/dgemm /BLAS/Level3/zgemm A. Murli 29 mediante NS_problems osservo che sul sistema NetSolve identificato dall agente dgbeobi.uniparthenope.it e disponibile una routine somma A. Murli 30 15

16 Informazioni su uno specifico sw Il comando >> NS_probdesc agente problema fornisce le informazioni sul problema disponibile nel sistema identificato da agente A. Murli 31 esempio >> >> NS_probdesc somma somma dgbeobi.uniparthenope.it somma somma somma somma due due numeri float float c=a+b c=a+b * 2 objects in in INPUT INPUT - input input 0: 0: Scalar Single Precision Real. Real. primo primo addendo - input input 1: 1: Scalar Single Precision Real. Real. secondo addendo * 1 objects in in OUTPUT - output 0: 0: Scalar Single Precision Real. Real. somma somma * Calling sequence from from C or or Fortran 3 arguments - Argument #0: #0: - pointer to to input input object #0 #0 (a) (a) - Argument #1: #1: - pointer to to input input object #1 #1 (b) (b) - Argument #2: #2: - pointer to to output object #0 #0 (c) (c) A. Murli 32 16

17 problema Il comando NS_probdesc fornisce le informazioni sul problema Come sottomettere il problema a NetSolve? Uso della funzione netsl ( ) Funzione netsl ( ) int netsl( problema ( ) ),, arg1,, arg2,,......) rit.: rit.: =0 =0 se se ok, ok, <0 <0 se se errore La funzione netsl invia una richiesta a NetSolve Ha come argomenti: il nome del problema gli argomenti così come specificato da NS_probdesc A. Murli 33 A. Murli 34 17

18 Esempio: codice del programma #include <stdio.h> Nome del problema #include "netsolve.h" int main( ){ float a,b,c; argomenti a=3; b=7; printf( Dati = %f %f \n, a, b); netsl("somma( )", &a, &b, &c ); printf( Risultato = %f \n", c); } A. Murli 35 Esempio: Compilazione del programma La funzione netsl ( ) fa parte della NetSolve client library Link alla NetSolve client library >> >> cc cc -o -o somma somma.c -I$(NETSOLVE_ROOT)/include -L$(NETSOLVE_ROOT)/lib/$(NETSOLVE_ARCH) -lnetsolve >> >> Attraverso le funzioni della NetSolve client library il nostro programma e in grado di accedere A. Murli a NetSolve 36 18

19 Scelta del sistema NetSolve Esistono numerosi sistemi NetSolve Prima dell esecuzione e necessario sceglierne uno Scelta dell agente Scelta dell agente csh oppure bash Definizione della variabile di ambiente NETSOLVE_AGENT A secondo della shell utilizzata... setenv NETSOLVE_AGENT dgbeobi.uniparthenope.it NETSOLVE_AGENT dgbeobi.uniparthenope.it export NETSOLVE_AGENT A. Murli 37 A. Murli 38 19

20 Esempio: esecuzione NetSolve: Parte II Dati Dati = Initializing NetSolve... Initializing NetSolve Complete L input viene mandato a NetSolve Sending Input of of Task Task 5 to to Server node01.uniparthenope.it PRODOTTO DI MATRICI CON LA SUBROUTINE DGEMM DI BLAS Downloading Output from from Server node02.uniparthenope.it Risultato = L output viene ricevuto da NetSolve A. Murli 39 A. Murli 40 20

21 Esempio: uso di blas Problema: si vuole effettuare il prodotto di due matrici di ordine n=4 C e qualcosa su NetSolve? NetSolve Info sul sw disponibile Comando NS_problems >> >> NS_problems dgbeobi.uniparthenope.it /BLAS-wrappers/Level3/dmatmul /BLAS-wrappers/Level3/zmatmul /BLAS/Level1/daxpy /BLAS/Level1/ddot /BLAS/Level1/zaxpy /BLAS/Level2/dgemv /BLAS/Level3/dgemm /BLAS/Level3/zgemm Routine DGEMM di BLAS per il prodotto di matrici A. Murli 41 A. Murli 42 21

22 Come funziona dgemm? (1) Come funziona dgemm? (2) Comando NS_probdesc input input 2: 2: Scalar Scalar Double Precision Real. Real..... alpha alpha ** 7 objects in in INPUT INPUT --input input 3: 3: Matrix Matrix Double Precision Real. Real. --input input 0: 0: Scalar Scalar Character. Matrix Matrix A TRANSA -- --input input 4: 4: Matrix Matrix Double Precision Real. Real. TRANSA specifies the the form form of of op( op( A )) to to be be used used in in Matrix Matrix B the the matrix matrix multiplication as as follows: --input input 5: 5: Scalar Scalar Double Precision Real. Real. TRANSA = 'N' 'N' or or 'n', 'n', op( op( A )) = A. A. beta beta TRANSA = 'T' 'T' or or 't', 't', op( op( A )) = A'. A'. --input input 6: 6: Matrix Matrix Double Precision Real. Real. TRANSA = 'C' 'C' or or 'c', 'c', op( op( A )) = A'. A'. Matrix Matrix C --input input 1: 1: Scalar Scalar Character. ** 1 objects in in OUTPUT TRANSB -- --output output 0: 0: Matrix Matrix Double Precision Real. Real. TRANSB specifies the the form form of of op( op( A )) to to be be used used in in Matrix Matrix C after after performing the the computation the the matrix matrix multiplication as as follows: ** Calling Calling sequence from from C or or Fortran TRANSB = 'N' 'N' or or 'n', 'n', op( op( A )) = A. A arguments TRANSB = 'T' 'T' or or 't', 't', op( op( A )) = A'. A'. --Argument #0: #0: TRANSB = 'C' 'C' or or 'c', 'c', op( op( A )) = A'. A'. --pointer to to input input object object #0 #0(transa). A. Murli A. Murli

23 Come funziona dgemm? (3) Argument #1: #1: --pointer to to input input object object #1 #1(transb) --Argument #2: #2: --number of of rows rows of of input input object object #3 #3(a) (a) --number of of rows rows of of input input object object #6 #6(c) (c) --Argument #3: #3: --number of of columns of of input input object object #4 #4(b) (b) --number of of columns of of input input object object #6 #6(c) (c) --Argument #4: #4: --number of of columns of of input input object object #3 #3(a) (a) --number of of rows rows of of input input object object #4 #4(b) (b) --Argument #5: #5: --pointer to to input input object object #2 #2(alpha) --Argument #6: #6: --pointer to to input input object object #3 #3(a) (a) --Argument #7: #7: --leading dimension of of input input object object #3 #3(a) (a) --Argument #8: #8: A. Murli 45 --pointer to to input input object object #4 #4(b) (b) Come funziona dgemm? (4) Argument #9: #9: --leading dimension of of input input object object #4 #4(b) (b) --Argument #10: #10: --pointer to to input input object object #5 #5(beta) --Argument #11: #11: --pointer to to input input object object #6 #6(c) (c) --pointer to to output output object object #0 #0(c) (c) --Argument #12: #12: --leading dimension of of input input object object #6 #6(c) (c) --leading dimension of of output output object object #0 #0(c) (c) >> >> A. Murli 46 23

24 Prodotto di matrici con NetSolve #include <stdio.h> #include <stdlib.h> #include "netsolve.h" int main(int argc, char **argv){ int i, j, n, info; double A[10][10], B[10][10], C[10][10], alpha, beta; char flag; n=2; for (i=0; i< n; i++){ for (j=0; j< n; j++){ A[i][j] = 1+(int) (10.0*rand()/(RAND_MAX+1.0)); B[i][j] = 1+(int) (10.0*rand()/(RAND_MAX+1.0)); }} alpha=1.e0; beta=0.e0; flag='n'; Definizione matrici A e B Inizializzazione argomenti DGEMM A. Murli 47 Prodotto matrici con NetSolve info = netsl("dgemm()", &flag, &flag, n, n, n, &alpha, A, 10, B, 10, &beta, C, 10); printf("matrice A\n"); for (i=0; i< n; i++){ for (j=0; j< n; j++){ printf(" %f ", A[i][j] ); } printf("\n"); } printf("matrice B\n"); for (i=0; i< n; i++){ for (j=0; j< n; j++){ printf(" %f ", B[i][j] ); } printf("\n"); } printf("matrice C\n"); for (i=0; i< n; i++){ for (j=0; j< n; j++){ printf(" %f ", C[i][j] ); } printf("\n"); } return 0; } Chiamata a netsl per uso DGEMM stampe A. Murli 48 24

25 esecuzione >> >> prodmatrici Initializing NetSolve... Initializing NetSolve Complete Sending Input Input of of Task Task to toserver node03.uniparthenope.it Downloading Output Output from fromserver node03.uniparthenope.it MATRICE A MATRICE B MATRICE C >> >> A. Murli 49 25

Compiti di un ambiente sw per il C.D. NetSolve: un ambiente per il calcolo distribuito. Situazione ideale. NetSolve : obiettivi primari

Compiti di un ambiente sw per il C.D. NetSolve: un ambiente per il calcolo distribuito. Situazione ideale. NetSolve : obiettivi primari Compiti di un ambiente sw per il C.D. NetSolve: un ambiente per il calcolo distribuito gestire gli accessi alle risorse gestire l eterogeneita gestire la dinamicita http://icl.cs.utk.edu/netsolve Situazione

Dettagli

NetSolve: un ambiente per il calcolo distribuito.

NetSolve: un ambiente per il calcolo distribuito. NetSolve: un ambiente per il calcolo distribuito http://icl.cs.utk.edu/netsolve Compiti di un ambiente sw per il C.D. gestire gli accessi alle risorse gestire l eterogeneita gestire la dinamicita dati

Dettagli

problema NetSolve: un ambiente per il calcolo distribuito Come sommare due array di 10 elementi? IL PARALLELISMO IN NETSOLVE

problema NetSolve: un ambiente per il calcolo distribuito Come sommare due array di 10 elementi? IL PARALLELISMO IN NETSOLVE problema NetSolve: un ambiente per il calcolo distribuito Come sommare due array di 10 elementi? IL PARALLELISMO IN NETSOLVE c i = a + b i i i =1,..,10 http://icl.cs.utk.edu/netsolve 1 2 1 Prima soluzione

Dettagli

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore I puntatori Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore...... L operatore & fornisce l indirizzo di un oggetto: p = &c; assegna a p l indirizzo di c, i.e., p

Dettagli

La funzione main() (

La funzione main() ( Funzioni La funzione main() Interfaccia con il sistema operativo Argomenti sulla linea di comando Parametri argc e argv Valore di ritorno del programma La funzione exit Esercizio Calcolatrice 2 La funzione

Dettagli

Passare argomenti al programma

Passare argomenti al programma Passare argomenti al programma Quando si invoca un programma è possibile passare degli argomenti ad esso durante la chiamata. Gli argomenti ricevuti saranno stringhe (array di char) quindi l insieme di

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

Dettagli

Fondamenti di Informatica T-1 modulo 2

Fondamenti di Informatica T-1 modulo 2 Fondamenti di Informatica T-1 modulo 2 Contenuti Parametri passati a linea di comando 2 Overview Il risultato del processo di compilazione/linking è un file eseguibile (un programma) Abbiamo visto almeno

Dettagli

Linguaggio C: Array Valeria Cardellini

Linguaggio C: Array Valeria Cardellini Linguaggio C: Array Valeria Cardellini Corso di Calcolatori Elettronici A.A. 2018/19 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Array in C q Dichiarazione

Dettagli

Sistemi Operativi (M. Cesati)

Sistemi Operativi (M. Cesati) Sistemi Operativi (M. Cesati) Compito scritto del 9 luglio 2012 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare tutti

Dettagli

Introduzione al linguaggio C Primi programmi

Introduzione al linguaggio C Primi programmi Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica

Dettagli

prova.c #include <stdio.h> char funzione(char); codice oggetto del main()

prova.c #include <stdio.h> char funzione(char); codice oggetto del main() prova.c #include char funzione(char); {char c= a ; printf( Ecco il carattere: %c\n,c); c=funzione(c); printf( Ecco il carattere modificato: %c\n,c); char funzione(char tmp) {if(tmp

Dettagli

Sistemi Operativi 1. Lezione III: Concetti fondamentali. Mattia Monga. 7 marzo 2008

Sistemi Operativi 1. Lezione III: Concetti fondamentali. Mattia Monga. 7 marzo 2008 1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 7 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

Sistemi Operativi 1. Mattia Monga. 7 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Sistemi Operativi 1. Mattia Monga. 7 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia 1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 7 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

Gli array Libro cap. 6 Moreno Marzol a Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Gli array Libro cap. 6 Moreno Marzol a Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna Gli array Libro cap. 6 Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Array 2 Ringraziamenti prof. Stefano Mizzaro, Università

Dettagli

Addendum alle chiamate di sistema per la gestione processi. E Mumolo

Addendum alle chiamate di sistema per la gestione processi. E Mumolo Addendum alle chiamate di sistema per la gestione processi E Mumolo Definiamo un processo proc.c che scrive l'argomento passato in linea: void main(int argc, char *argv[]){ printf("sono il processo %s\n",

Dettagli

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. Unità Didattica 4 Linguaggio C Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. 1 Vettori Struttura astratta: Insieme di elementi dello stesso tipo, ciascuno individuato da un indice;

Dettagli

Il Software programmabili programma algoritmo

Il Software programmabili programma algoritmo Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia

Dettagli

La Programmazione. Cos è la programmazione? Concetti preliminari

La Programmazione. Cos è la programmazione? Concetti preliminari La Programmazione Cos è la programmazione? Concetti preliminari 1 Sommario La programmazione, questa sconosciuta Programmiamo Macchine Astratte Linguaggi di basso e alto livello e loro implementazione

Dettagli

Lezione 5. Alcuni esempi di distribuzione. Prodotto matrici in parallelo. Prodotto C=βC+αAB su sistema a memoria distribuita

Lezione 5. Alcuni esempi di distribuzione. Prodotto matrici in parallelo. Prodotto C=βC+αAB su sistema a memoria distribuita Lezione 5 Prodotto C=βC+αAB su sistema a memoria distribuita Consideriamo un sistema parallelo a memoria distribuita Es. Cluster, sistema MPP Ogni processore ha una sua memoria privata La comunicazione

Dettagli

Laboratorio reti AA 2008/2009. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione

Laboratorio reti AA 2008/2009. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione Laboratorio reti AA 2008/2009 Dott. Matteo Roffilli roffilli@csr.unibo.it Ricevimento in ufficio dopo la lezione 1 Laboratorio reti AA 2008/2009 Per esercitarvi fate SSH su: alfa.csr.unibo.it si-tux00.csr.unibo.it.

Dettagli

Primi programmi in C

Primi programmi in C Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Uso del compilatore gcc Struttura di un programma

Dettagli

array: vettori, matrici e stringhe

array: vettori, matrici e stringhe array: vettori, matrici e stringhe Vettori Un vettore (array) è una sequenza di variabili tutte dello stesso tipo che occupano locazioni di memoria contigue. Dichiarazione di un vettore di oggetti del

Dettagli

Funzioni. Il modello console. Interfaccia in modalità console

Funzioni. Il modello console. Interfaccia in modalità console Funzioni Interfaccia con il sistema operativo Argomenti sulla linea di comando Parametri argc e argv Valore di ritorno del programma La funzione exit Esercizio Calcolatrice 2, presente in tutti i programmi

Dettagli

JAVA. import java.util.*; #include <stdio.h> public static class test { int variable; private int variable; int main (int argc, char *argv[]) {

JAVA. import java.util.*; #include <stdio.h> public static class test { int variable; private int variable; int main (int argc, char *argv[]) { JAVA C import javautil*; public static class test { private int variable; public void main (String[] args) { variable = 0; Systemoutprintln( Variable is: + variable); #include int variable; int

Dettagli

Lezione 8: Stringhe ed array multidimensionali

Lezione 8: Stringhe ed array multidimensionali Lezione 8: Stringhe ed array multidimensionali Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione AVVISO: la lezione di laboratorio di 28/5 non si

Dettagli

Prodotto Matrice - Vettore in MPI II Strategia

Prodotto Matrice - Vettore in MPI II Strategia Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esercitazione di Calcolo Parallelo Prodotto Matrice - Vettore in MPI II Strategia Anno Accademico 2010/2011 Prof.ssa Alessandra D'alessio

Dettagli

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22 Lezione 21 e 22 - Allocazione dinamica delle matrici - Generazione di numeri pseudocasuali - Funzioni per misurare il tempo - Parametri del main - Classificazione delle variabili Valentina Ciriani (2005-2008)

Dettagli

Il linguaggio C. Puntatori e dintorni

Il linguaggio C. Puntatori e dintorni Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;

Dettagli

Introduzione al C. Lez. 1 Elementi. Rossano Venturini

Introduzione al C. Lez. 1 Elementi. Rossano Venturini Introduzione al C Lez. 1 Elementi Rossano Venturini rossano@di.unipi.it Pagine del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start http://algoritmica.spox.spoj.pl/alglab2013 Lezioni

Dettagli

Uso avanzato dei puntatori Allocazione dinamica della memoria

Uso avanzato dei puntatori Allocazione dinamica della memoria Uso avanzato dei puntatori Allocazione dinamica della memoria Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica

Dettagli

Programmazione I. De Marco - Zizza. De Prisco - Senatore. Ritirato. Appello di Luglio (prima prova) 18 luglio Cognome: Nome: Matricola:

Programmazione I. De Marco - Zizza. De Prisco - Senatore. Ritirato. Appello di Luglio (prima prova) 18 luglio Cognome: Nome: Matricola: Programmazione I Appello di Luglio (prima prova) 18 luglio 2014 Cognome: Nome: Matricola: Indicare la classe di appartenenza: De Marco - Zizza De Prisco - Senatore Riservato alla commissione d esame 1

Dettagli

L AMBIENTE CODE BLOCKS E L IO

L AMBIENTE CODE BLOCKS E L IO L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using

Dettagli

Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit

Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione

Dettagli

SISTEMI OPERATIVI. Processi in Linux. Giorgio Giacinto Sistemi Operativi

SISTEMI OPERATIVI. Processi in Linux. Giorgio Giacinto Sistemi Operativi SISTEMI OPERATIVI Processi in Linux 2 Creazione di processi concorrenti» La creazione di un processo figlio consente di far eseguire alcune funzionalità del programma in modo concorrente» Opzione 1 il

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Dati due punti sul piano calcolare la loro distanza

Dati due punti sul piano calcolare la loro distanza Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12

Dettagli

Si possono applicare solo a variabili (di tipi interi, floating o puntatori), ma non a espressioni generiche (anche se di questi tipi).

Si possono applicare solo a variabili (di tipi interi, floating o puntatori), ma non a espressioni generiche (anche se di questi tipi). Operatori di incremento e decremento: ++ e -- ++ e -- sono operatori unari con la stessa priorità del meno unario e associatività da destra a sinistra. Si possono applicare solo a variabili (di tipi interi,

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere

Dettagli

Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo.

Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo. Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo. int a = 5; a 5 α=&a Esistono in C particolari variabili dette puntatori che possono

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente

Dettagli

Lezione 5: Introduzione alla programmazione in C

Lezione 5: Introduzione alla programmazione in C Lezione 5: Introduzione alla programmazione in C Laboratorio di Elementi di Architettura e Sistemi Operativi 4 Aprile 2012 Introduzione al C C vs. Java Java: linguaggio ad oggetti C: linguaggio procedurale

Dettagli

Array. Aggragati di variabili omogenee...

Array. Aggragati di variabili omogenee... Array Aggragati di variabili omogenee... Cosa è un array È un insieme di variabili omogenee identificato da un indice, ad esempio Se devo leggere 1 numeri dallo standard input e memorizzarli all'interno

Dettagli

Prodotto Matrice - Vettore in MPI - III Strategia

Prodotto Matrice - Vettore in MPI - III Strategia Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esercitazione di Calcolo Parallelo Prodotto Matrice - Vettore in MPI - III Strategia Anno Accademico 2010/2011 Prof.ssa Alessandra D'alessio

Dettagli

Allocazione dinamica della memoria

Allocazione dinamica della memoria Allocazione dinamica della memoria Allocazione statica: limiti Per quanto sappiamo finora, in C le variabili sono sempre dichiarate staticamente la loro esistenza deve essere prevista e dichiarata a priori

Dettagli

Array n-dimensionali e tipi di dati strutturati

Array n-dimensionali e tipi di dati strutturati Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 8 Aprile 2016 Logistica Laboratori Lunedì (3.30pm 6pm) EG7 (No portatili e basta) L26.1.3

Dettagli

IEIM Esercitazione II Elementi di programmazione C. Alessandro A. Nacci -

IEIM Esercitazione II Elementi di programmazione C. Alessandro A. Nacci - IEIM 2017-2018 Esercitazione II Elementi di programmazione C Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Esercizio 4 Dati un numero, stampare il primo numero successivo pari

Dettagli

ARRAY DI PUNTATORI. ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori

ARRAY DI PUNTATORI. ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere

Dettagli

Programmazione I (Classe 1)

Programmazione I (Classe 1) Programmazione I (Classe 1) Terzo Appello (prima prova) 9 Settembre 2016 Docenti: De Prisco - Deufemia - Zizza Cognome: Nome: Matricola: Ritirato 1 Esercizi (leggere attentamente il testo prima di scrivere

Dettagli

Corso sul linguaggio C

Corso sul linguaggio C Corso sul linguaggio C Modulo 1 1.1 Istruzioni semplici 1 Prerequisiti Saper progettare algoritmi Saper descrivere algoritmi (NLS, ddf) Conoscere il concetto di espressione 2 1 Introduzione In questa lezione

Dettagli

Università degli Studi di Ferrara

Università degli Studi di Ferrara Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018-2019 Programmazione Lezione 10 Esercizi in C Docente: Michele Ferrari - michele.ferrari@unife.it Nelle lezioni precedenti Abbiamo

Dettagli

Funzioni con numero variabile di parametri: Funzioni Variadiche in C. Massimo Benerecetti Laboratorio di Algoritmi e Strutture Dati

Funzioni con numero variabile di parametri: Funzioni Variadiche in C. Massimo Benerecetti Laboratorio di Algoritmi e Strutture Dati Funzioni con numero variabile di parametri: Funzioni Variadiche in C Massimo Benerecetti Laboratorio di Algoritmi e Strutture Dati Funzioni «variadiche» Le funzioni che ricevono un numero variabile di

Dettagli

int main(){ int numero; /* numero di cui voglio calcolare il fattoriale */ int fatt; /* memorizzo il fattoriale di numero */ int somma=0;

int main(){ int numero; /* numero di cui voglio calcolare il fattoriale */ int fatt; /* memorizzo il fattoriale di numero */ int somma=0; Problema: CALCOLARE LA SOMMA DEI FATTORIALI DEI PRIMI 100 NUMERI NATURALI 0!+1!+2! + 99! #include int fattoriale(int); Calcolo fattoriale int main(){ int numero; /* numero di cui voglio calcolare

Dettagli

Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch

Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch Esercitazione 5 Procedure e Funzioni Il comando condizionale: switch Comando: switch-case switch (espressione) { /* espressione deve essere case costante1: istruzione1 di tipo int o char */ [break]; case

Dettagli

Calcolo Scientifico. a.a Installazione e utilizzo della libreria BLAS.

Calcolo Scientifico. a.a Installazione e utilizzo della libreria BLAS. Calcolo Scientifico a.a. 2007-2008 Installazione e utilizzo della libreria BLAS Dove scaricare BLAS? http://www.netlib.org È un repository, una collezione di software matematico, papers e database Realizzato

Dettagli

Informatica A (per gestionali) A.A. 2004/2005. Esercizi C. Funzioni: variabili e tipi locali e globali, passaggio parametri per valore, prototipo

Informatica A (per gestionali) A.A. 2004/2005. Esercizi C. Funzioni: variabili e tipi locali e globali, passaggio parametri per valore, prototipo Informatica A (per gestionali) A.A. 2004/2005 Esercizi C Funzioni: variabili e tipi locali e globali, passaggio parametri per valore, prototipo Indice 1 Funzioni: passaggio di parametri per valore, variabili

Dettagli

Le strutture dati elementari (I parte) Gianpiero Cabodi Dip. Automatica e Informatica Politecnico di Torino

Le strutture dati elementari (I parte) Gianpiero Cabodi Dip. Automatica e Informatica Politecnico di Torino Le strutture dati elementari (I parte) Gianpiero Cabodi Dip. Automatica e Informatica Politecnico di Torino Progettare un programma Scegliere una adeguata struttura dati per: codificare le informazioni

Dettagli

I cicli. Iterazioni Calcolo della media Istruzioni break e continue

I cicli. Iterazioni Calcolo della media Istruzioni break e continue I cicli Iterazioni Calcolo della media Istruzioni break e continue Ciclo while p Vero A while() ; Falso Esegue una istruzione mentre una condizione è verificata Programmazione

Dettagli

2 Operatori matematici e costrutto if

2 Operatori matematici e costrutto if Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione delle operazioni tra numeri e del costrutto condizionale if. Si introducono anche le due funzioni

Dettagli

INTRODUZIONE AL C++ CLASSIFICAZIONE

INTRODUZIONE AL C++ CLASSIFICAZIONE INTRODUZIONE AL C++ 1 CLASSIFICAZIONE LINGUAGGI CHE OPERANO SU DATI OMOGENEI: FORTRAN77, LINGUAGGIO C, LINGUAGGIO C++, PASCAL: operano solo su DATI OMOGENEI (integer, float, double), senza classi e puntatori;

Dettagli

Lezione 11: Liste a Puntatori e Input/Output

Lezione 11: Liste a Puntatori e Input/Output Lezione 11: Liste a Puntatori e Input/Output Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Richiamo: strutture (struct)

Dettagli

Array n-dimensionali e tipi di dati strutturati

Array n-dimensionali e tipi di dati strutturati Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 5 Novembre 2013 Info di servizio Demo 1mo compitino In LM5 @ 12pm - venerdì 8 Nov In

Dettagli

1

1 Manuali di C Linguaggio C B. W. Kernigan, D. M. Ritchie Jackson La guida completa al C H. Schildt McGraw-Hill Fondamenti di Informatica 1 Linguaggio C Creato nei primi anni 70 per sviluppare il S.O. Unix

Dettagli

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni

Dettagli

Compilazione separata. Come realizzare correttamente un piccolo progetto su piu' file

Compilazione separata. Come realizzare correttamente un piccolo progetto su piu' file Compilazione separata Come realizzare correttamente un piccolo progetto su piu' file 1 Programmi C su più file Tutti i programmi che abbiamo visto finora erano composti da un unico file.c Nel caso di programmi

Dettagli

Le funzioni, e le istruzioni di input/output

Le funzioni, e le istruzioni di input/output Linguaggio C Le funzioni, e le istruzioni di input/output 1 Funzioni! Sono sottoprogrammi per svolgere un particolare compito! Sequenze di istruzioni (raggruppate tramite le parentesi graffe) alle quali

Dettagli

Compilazione separata. Come realizzare correttamente un piccolo progetto su piu' file

Compilazione separata. Come realizzare correttamente un piccolo progetto su piu' file Compilazione separata Come realizzare correttamente un piccolo progetto su piu' file 1 Programmi C su più file Tutti i programmi che abbiamo visto finora erano composti da un unico file.c Nel caso di programmi

Dettagli

Burocrazia: Primi passi con il linguaggio C. Diversi tipi di linguaggio. Un solo linguaggio

Burocrazia: Primi passi con il linguaggio C. Diversi tipi di linguaggio. Un solo linguaggio Burocrazia: Università degli Studi di Ferrara Laurea triennale in Matematica Corso di Programmazione Primi passi con il linguaggio C Filippo Mantovani 1 Ottobre 009 Per ora nessun cambio di orario e/o

Dettagli

Progetto II: Il linguaggio C e le chiamate di sistema sui processi

Progetto II: Il linguaggio C e le chiamate di sistema sui processi Progetto II: Il linguaggio C e le chiamate di sistema sui processi Scrivere un programma C psstat.c che svolga quanto segue: se invocato senza parametri deve stampare su standard output un istogramma orizzontale

Dettagli

Ingresso ed Uscita in C. Informatica 1 / 15

Ingresso ed Uscita in C. Informatica 1 / 15 Ingresso ed Uscita in C Informatica 1 / 15 Input e Output in C Linguaggio C: progettato per essere semplice e con poche istruzioni Non esistono istruzioni di ingresso / uscita (I/O)!!! Ingresso ed uscita

Dettagli

Fattorizzazione e curve ellittiche polinomi di II, II e IV grado

Fattorizzazione e curve ellittiche polinomi di II, II e IV grado Fattorizzazione e curve ellittiche polinomi di II, II e IV grado Di Cristiano Armellini (cristiano.armellini@alice.it) Torniamo ancora una volta al problema della fattorizzazione p=ab e descriviamo un

Dettagli

Laboratorio 1. 20/21 febbraio 2019

Laboratorio 1. 20/21 febbraio 2019 Laboratorio 1. 20/21 febbraio 2019 Attivitá Professionalizzante A.A. 2018/19 Premessa Si lavora a coppie, sui PC del laboratorio. Al termine degli esercizi, ogni copia scrive un breve report e me lo invia

Dettagli

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che

Dettagli

Puntatori. Un puntatore contiene un numero che indica la locazione di memoria dove è presente la variabile puntata

Puntatori. Un puntatore contiene un numero che indica la locazione di memoria dove è presente la variabile puntata Puntatori int i = 10; int * pi = &i; pi i = 10 116 int * pi = pi contiene un informazione che mi permette di accedere ( puntare ) ad una variabile intera Un puntatore contiene un numero che indica la locazione

Dettagli

Tipi di dato strutturati: Array

Tipi di dato strutturati: Array Tipi di dato strutturati: Array I tipi di dato visti finora sono tutti semplici: int, char, float,... ma i dati manipolati nelle applicazioni reali sono spesso complessi (o strutturati) Gli array sono

Dettagli

NUMERI CASUALI E SIMULAZIONE

NUMERI CASUALI E SIMULAZIONE NUMERI CASUALI E SIMULAZIONE NUMERI CASUALI Usati in: statistica programmi di simulazione... Strumenti: - tabelle di numeri casuali - generatori hardware - generatori software DESCRIZIONE DEL PROBLEMA

Dettagli

Allocazione Dinamica. Allocazione Statica. malloc() La funzione malloc()

Allocazione Dinamica. Allocazione Statica. malloc() La funzione malloc() Allocazione Statica Finora abbiamo visto che le variabili sono sempre definite staticamente. Questo è un limite perché la loro esistenza deve essere prevista e dichiarata a priori. In particolare per variabili

Dettagli

Alcuni strumenti per lo sviluppo di software su architetture MIMD

Alcuni strumenti per lo sviluppo di software su architetture MIMD Alcuni strumenti per lo sviluppo di software su architetture MIMD Calcolatori MIMD Architetture SM (Shared Memory) OpenMP Architetture DM (Distributed Memory) MPI 2 MPI : Message Passing Interface MPI

Dettagli

Primo programma in C

Primo programma in C Primo programma in C Struttura minima di un file C Applicazioni C in modo console Struttura del programma Commenti Direttive #include Definizione di variabili Corpo del main 2 Struttura minima di un file

Dettagli

Tipi di dato strutturati: Array

Tipi di dato strutturati: Array Tipi di dato strutturati: I tipi di dato visti finora sono tutti semplici: int, char, float,... ma i dati manipolati nelle applicazioni reali sono spesso complessi (o strutturati) Gli array sono uno dei

Dettagli

Corso sul linguaggio C Modulo Tipi di dato

Corso sul linguaggio C Modulo Tipi di dato Corso sul linguaggio C Modulo 1 1.3 - Tipi di dato 1 Prerequisiti Concetto di espressione Cenni sulla struttura del calcolatore 2 1 Introduzione In questa lezione si esaminano i tipi di dato. I tipi di

Dettagli

Allocazione Dinamica della Memoria

Allocazione Dinamica della Memoria Allocazione Dinamica della Memoria Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Allocazione Dinamica della Memoria 1 / 10 Scelta delle variabili Quando

Dettagli

Lezione 22: Input/Output e Files

Lezione 22: Input/Output e Files Lezione 22: Input/Output e Files Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università di Salerno Struttura della lezione Esami: date e modalità Funzioni di libreria standard

Dettagli

Un esempio per cominciare. Inizio e fine di un programma. La somma di 3 numeri PASCAL ANSI C. Regole sintattiche

Un esempio per cominciare. Inizio e fine di un programma. La somma di 3 numeri PASCAL ANSI C. Regole sintattiche Un esempio per cominciare La somma di 3 numeri Vs ANSI PROGRAM SOMMA; VAR A,B,,d:REAL; BEGIN (* Inizializzazione di A,B, *) READLN(); A:5.; B:7.; (* alcolo della somma tra A,B e *) d:a+b+; (* Stampa del

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Una funzione per i numeri di Fibonacci

Dettagli

Esercizio 2: Algebra dei Puntatori e Puntatori a Puntatori

Esercizio 2: Algebra dei Puntatori e Puntatori a Puntatori Esercizio 2: Algebra dei Puntatori e Puntatori a Puntatori Salvatore Mandrà 7 Ottobre 2008 1 Esercizio L esercizio prevede l implementazione di funzioni per il prodotto di una matrice per un vettore, attraverso

Dettagli

PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii

PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii Sommario PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 1.1 Introduzione...

Dettagli

Lezione 6: Array e puntatori

Lezione 6: Array e puntatori Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Una funzione per i numeri di Fibonacci

Dettagli

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm

Dettagli