Informatica (CIV) Esercitazione su FORTRAN. Andrea Romanoni
|
|
- Fausto Giovannini
- 5 anni fa
- Visualizzazioni
Transcript
1 Informatica (CIV) Esercitazione su FORTRAN Andrea Romanoni Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano 3 dicembre 2013
2 Esercizio istogrammi Testo Si vuole scrivere un programma che legge da input i dati sulle precipitazioni di pioggia (in mm) durante i giorni di un anno, e stampa a video le precipitazioni totali (questa volta in cm) mese per mese. Più precisamente, il programma legge da tastiera (in ordine sparso) i dati sulle precipitazioni piovose (in mm) dei giorni dell anno, secondo lo schema giorno mese mm, e calcola il totale delle precipitazioni per ogni mese dell anno. In seguito, stampa a video un istogramma in cui, per ogni mese dell anno, viene stampato un * per ogni cm di pioggia caduto in quel mese (per semplicità i mm vengono arrotondati al cm più vicino, per cui se, per esempio, nel mese di gennaio sono caduti in totale 46mm di pioggia, a video vengono stampati 5 * ). La stampa dell istogramma può essere fatta in orizzontale (con i dati del mese di gennaio più a sinistra, e quelli del mese di dicembre più a destra), oppure in verticale (con i dati del mese di gennaio più in alto e quelli del mese di dicembre più in basso).
3 Esercizio istogrammi Soluzione PROGRAM piogge IMPLICIT NONE INTEGER, PARAMETER :: NumeroMesiAnno = 12 #include <stdio.h> #include <stdlib.h> #define NUM_MESI_ANNO 12 typedef enum{true, false boolean; CHARACTER(LEN=NumeroMesiAnno), & PARAMETER::InizialiNomiMesiAnno = & "GFMAMGLASOND" INTEGER, DIMENSION(NumeroMesiAnno) :: & PioggeMensiliMm, PioggeMensiliCm INTEGER :: Giorno, Mese, PioggiaMm LOGICAL :: InputTerminato INTEGER Indice, CmCorrente int main(int argc, char const *argv[]){ char iniziali_nomi_mesi[] = "GFMAMGLASOND"; int piogge_mensili_mm[num_mesi_anno]; int piogge_mensili_cm[num_mesi_anno]; int giorno, mese, mm_pioggia; boolean input_terminato; int i, cm_corrente; INTEGER :: NumAsterischi CHARACTER (LEN=MaxCmMese) :: Asterischi DO Indice = 1, NumeroMesiAnno PioggeMensiliMm(Indice) = 0 for (i = 0; i < NUM_MESI_ANNO; ++i){ piogge_mensili_mm[i] = 0;
4 Esercizio istogrammi Soluzione InputTerminato =.FALSE. DO WHILE (.NOT. InputTerminato) WRITE (*,*) "Inserisci Giorno Mese mm" READ (*,*) Giorno, Mese, PioggiaMm IF (Giorno <= 0) THEN InputTerminato =.TRUE. ELSE PioggeMensiliMm(Mese) = & PioggeMensiliMm(Mese) + PioggiaMm!=====calcolo dei dati mensili arrotondati ===== CmCorrente = 0 DO Indice = 1, NumeroMesiAnno PioggeMensiliCm(Indice) = PioggeMensiliMm(Indice)/10 IF ((PioggeMensiliMm(Indice) - & PioggeMensiliCm(Indice)*10) >= 5) THEN PioggeMensiliCm(Indice)=PioggeMensiliCm(Indice)+1 IF PioggeMensiliCm(Indice) > CmCorrente THEN CmCorrente = PioggeMensiliCm(Indice) input_terminato = false; do{ printf("inserisci Giorno, Mese, mm\n"); scanf("%d %d %d", &giorno, &mese, &mm_pioggia)); if (giorno <= 0){ input_terminato = true; else{ mese = mese - 1; piogge_mensili_mm[mese] = piogge_mensili_mm[mese] + mm_pioggia; while(input_terminato == false); cm_corrente = 0; for (i = 0; i < NUM_MESI_ANNO; ++i){ piogge_mensili_cm[i] = piogge_mensili_mm[i]/10; if ((piogge_mensili_mm[i] - piogge_mensili_cm[i] * 10) >= 5){ piogge_mensili_cm[i] = piogge_mensili_cm[i] + 1; if (piogge_mensili_cm[i] > cm_corrente){ cm_corrente = piogge_mensili_cm[i];
5 Esercizio istogrammi Soluzione!=====stampa dell istogramma (orizzontale)===== WRITE (*,*) ""!va a capo DO WHILE (CmCorrente > 0) Asterischi = "" DO Indice = 1, NumeroMesiAnno IF (PioggeMensiliCm(Indice) <= CmCorrente) & THEN Asterischi(Indice:Indice) = * ELSE Asterischi(Indice:Indice) = WRITE (*,*) Asterischi CmCorrente = CmCorrente - 1 WRITE (*,*) InizialiNomiMesiAnno END PROGRAM piogge /*stampa l istogramma (orizzontale)*/ while(cm_corrente > 0){ for (i = 0; i < NUM_MESI_ANNO; ++i){ if (piogge_mensili_cm[i] > cm_corrente){ printf(" * "); else{ printf(" "); cm_corrente = cm_corrente - 1; printf("\n"); /*stampa le lettere corrispondenti al mese*/ for (i = 0; i < NUM_MESI_ANNO; ++i){ printf(" %c ", iniziali_nomi_mesi[i]); return 0;
6 Sequenza periodica Testo Scrivere un programma che legge in ingresso una sequenza di al massimo 50 numeri interi strettamente positivi (>0), terminati dallo 0, e determina se la sequenza è periodica. In altre parole, il programma determina se c è un valore P tale per cui i numeri si ripetono ogni P elementi della sequenza. Il programma deve anche stampare a video il periodo P. più piccolo. Esempi: La sequenza è periodica di periodo 4. La sequenza non è periodica. La sequenza è periodica di periodo 2. La sequenza è periodica di periodo 1.
7 Sequenza periodica Soluzione PROGRAM TrovaPeriodo IMPLICIT NONE INTEGER, DIMENSION(50) :: seq INTEGER :: n, p, i, n_el = 0 LOGICAL :: periodico WRITE (*,*) "Inserisci numero ", n_el + 1 READ (*,*) n DO WHILE (n_el < 50.AND. n /= 0) n_el = n_el + 1 seq(n_el) = n WRITE (*,*) "Inserisci numero", n_el + 1 READ (*,*) n IF (n_el == 0) THEN WRITE (*,*) "Nessun elemento inserito" ELSE IF (n_el <= 1) THEN WRITE (*,*) "Un solo elemento inserito,", & " il periodo e 1" ELSE p = 0 periodico =.FALSE. DO WHILE (.NOT. periodico.and. p < n_el/2) p = p+1 IF ((n_el / p) * p == n_el) THEN periodico =.TRUE. i = 1 DO WHILE (periodico.and. i <= n_el-p) IF (seq(i) /= seq(i+p)) THEN periodico =.FALSE. i = i+1 IF (periodico) THEN WRITE (*,*) "La sequenza e periodica ", & "di periodo ", p ELSE WRITE (*,*) "La sequenza non e periodica" END PROGRAM TrovaPeriodo
8 Esercizio punti 3D e piani Testo A Scrivere un sottoprogramma che prende in ingresso una sequenza di punti dello spazio cartesiano tridimensionale a coordinate (x,y,z) intere, ed elimina dalla sequenza tutti quei punti che non si trovano su uno stesso piano orizzontale (cioè parallelo al piano (x.y)) con altri punti della sequenza. Per esempio, data la seguente sequenza di punti: <3,-2,8>, <-340,62,31>, <8,22,8>, <8,13,-12>, <54,-10,31>, <4,72,3> la sequenza viene modificata nel modo seguente: <3,-2,8>, <-340,62,31>, <8,22,8>, <54,-10,31>
9 Esercizio punti 3D e piani Soluzione A SUBROUTINE EliminaPuntiIsolati(Sequenza, Num) IMPLICIT NONE TYPE (Punto), INTENT(INOUT), DIMENSION(Num) :: Sequenza INTEGER, INTENT(INOUT) :: Num INTEGER :: Cont1, Cont2 LOGICAL :: DaTenere TYPE :: Punto INTEGER :: X INTEGER :: Y INTEGER :: Z END TYPE Punto DO Cont1 1, Num DaTenere =.FALSE. DO Cont2 = 1, Num IF ( (Cont2 /= Cont1 ).AND. & (Sequenza(Cont2)%Z == Sequenza(Cont1)%Z ) ) THEN DaTenere =.TRUE. IF (DaTenere.EQV..TRUE.) THEN Cont1 = Cont1+1 ELSE DO Cont2 = Cont1, Num-1 Sequenza(Cont2) = Sequenza(Cont2+1) Num = Num-1 END SUBROUTINE EliminaPuntiIsolati
10 Esercizio punti 3D e piani Testo B Scrivere un sottoprogramma che prende in ingresso una sequenza di punti dello spazio cartesiano tridimensionale a coordinate intere, e partiziona la sequenza in sottoinsiemi in cui ogni sottoinsieme contiene tutti e soli i punti su uno stesso piano orizzontale (cioè parallelo al piano (x,y)). Il sottoprogramma, sfruttando anche il sottoprogramma definito nella parte a), restituisce una nuova sequenza di punti contenente i punti della sequenza originale raggruppati nei sottoinsiemi descritti sopra, esclusi però i sottoinsiemi fatti di un solo punto. I sottoinsiemi nella sequenza restituita possono essere in ordine qualunque. Per esempio, data la seguente sequenza di punti: <5,-2,7>, <-10,-92,3>, <84,2,7>, <8,10,2>, <52,-20,3>, <4,72,3> una possibile sequenza restituita è la seguente: <5,-2,7>, <84,2,7>, <-10,-92,3>, <52,-20,3>, <4,72,3>
11 Esercizio punti 3D e piani Soluzione B SUBROUTINE RaggruppaPunti(SequenzaIn, NumIn, SequenzaOut, NumOut) IMPLICIT NONE TYPE (Punto), INTENT(INOUT), DIMENSION(NumIn) :: SequenzaIn TYPE (Punto), INTENT(OUT), DIMENSION(NumIn) :: SequenzaOut INTEGER, INTENT(IN) :: NumIn INTEGER, INTENT(OUT) :: NumOut INTEGER :: i LOGICAL :: Ordinato TYPE (Punto) :: temp SequenzaOut = SequenzaIn NumOut = NumIn CALL EliminaPuntiIsolati(SequenzaOut, NumOut) Ordinato =.FALSE. DO WHILE (Ordinato.EQV..FALSE.) Ordinato =.TRUE. DO i=1,numout-1 IF(SequenzaOut(i)%Z > SequenzaOut(i+1)%Z) THEN Ordinato =.FALSE. temp = SequenzaOut(i) SequenzaOut(i) = SequenzaOut(i+1) SequenzaOut(i+1) = temp END SUBROUTINE RaggruppaPunti
12 Confronto tra immagini Testo Un immagine è costituita da una matrice di 1024x1024 pixel. Ogni pixel è caratterizzato dal livello di intensità luminosa: tale livello è rappresentato da un intero. Una figura originale è costituita da una matrice di 25x25 pixel. Si vuole scrivere un sottoprogramma che, data un immagine e data una figura originale, verifichi se la figura appare nell immagine. Il sottoprogramma cerca occorrenze della figura nell immagine, tenendo presente le seguenti sorgenti di variabilità: la figura potrebbe apparire non ruotata oppure ruotata di un angolo pari +90 gradi (cioè 90 gradi in senso antiorario), rispetto all originale; a causa di eventuali variazioni (uniformi) di illuminazione, la figura potrebbe apparire nell immagine con il livello di intensità di tutti i suoi pixel aumentati o diminuiti di un valore costante rispetto all originale. Il sottoprogramma deve produrre in uscita la posizione e l orientamento della figura nell immagine, nel caso in cui la figura sia presente; in caso contrario deve produrre due coordinate negative (e un qualunque valore dell angolo di rotazione). NB: Anche nel caso in cui la figura appaia più volte nell immagine, il sottoprogramma deve produrre in uscita una sola occorrenza della figura.
13 Confronto tra immagini Soluzione Cominciamo a definire una funzione che confronta due immagini e restituisce vero se sono uguali, o falso se sono differenti. LOGICAL FUNCTION ConfrontaMatrice(DimArray, Array1, Array2) IMPLICIT NONE INTEGER, INTENT(IN) :: DimArray INTEGER, DIMENSION (DimArray, DimArray), INTENT(IN) :: Array1, Array2 INTEGER :: X, Y LOGICAL, DIMENSION (DimArray, DimArray) :: ArrayConfronti ArrayConfronti = (Array1 == Array2) ConfrontaMatrice =.TRUE. DO X=1, DimArray DO Y=1, DimArray ConfrontaMatrice = ConfrontaMatrice.AND. ArrayConfronti(X,Y) % END FUNCTION ConfrontaMatrice
14 Confronto tra immagini Soluzione SUBROUTINE CercaFigura(Immagine, Figura, PosX, PosY, Angolo) IMPLICIT NONE INTEGER, PARAMETER :: DimImmagine = 1024 INTEGER, PARAMETER :: DimFigura = 25 INTEGER, DIMENSION (DimImmagine, DimImmagine), INTENT(IN) :: Immagine INTEGER, DIMENSION (DimFigura, DimFigura), INTENT(IN) :: Figura INTEGER, INTENT(OUT) :: PosX, PosY INTEGER, INTENT(OUT) :: Angolo INTEGER, DIMENSION (DimFigura, DimFigura) :: FiguraRuotata INTEGER :: SpostY INTEGER :: Offset LOGICAL :: ConfrontaMatrice DO SpostY = 1, DimFigura FiguraRuotata(SpostY,:) = Figura(DimFigura:1:-1,SpostY)
15 Confronto tra immagini Soluzione DO PosX = 1, DimImmagine-DimFigura+1 DO PosY = 1, DimImmagine-DimFigura+1 Offset = Immagine(PosX, PosY) - Figura(1,1) IF(ConfrontaMatrice(DimFigura, & Immagine(PosX:PosX+DimFigura-1,PosY:PosY+DimFigura-1), & Figura(:,:) )) THEN Angolo = 0 RETURN Offset = Immagine(PosX, PosY) - FiguraRuotata(1,1) IF (ConfrontaMatrice(DimFigura, & Immagine(PosX:PosX+DimFigura-1,PosY:PosY+DimFigura-1), & FiguraRuotata(:,:) + Offset)) THEN Angolo = 90 RETURN PosX = -1 PosY = -1 END SUBROUTINE CercaFigura
16 Prefisso o Suffisso? Testo Scrivere un programma che legge una sequenza di al massimo 100 caratteri alfabetici, terminati da un carattere non alfabetico, e determina se la sequenza ha un prefisso e un suffisso identici, cioè se la sequenza ha la stessa serie di caratteri al suo inizio e alla sua fine. Il programma NON distingue i caratteri maiuscoli da quelli minuscoli. Il programma stampa a video la sottosequenza ripetuta più lunga tra quelle esistenti. Esempi: La sequenza abcmpabc6 è iniziata e terminata dalla stringa abc. Nella sequenza zazdazb& non c è una sottosequenza che inizia e termina la stringa. La sequenza abcdabcdabc è iniziata e terminata dalla stringa abcdabc.
17 Nel computer i caratteri vengono rappresentati con dei numeri detti codici ASCII. Questa è la tabella di conversione:
18 Prefisso o Suffisso? Soluzione PROGRAM PrefissoSuffisso IMPLICIT NONE CHARACTER (len = 100) :: sequenza INTEGER, PARAMETER :: offset = IACHAR( A ) - IACHAR( a ) INTEGER :: lng, i LOGICAL :: trovato WRITE (*,*) "Inserire la sequenza:" READ (*,*) sequenza i = 1 DO WHILE (i <= LEN_TRIM(sequenza).AND. & ( (sequenza(i) >= a.and. & sequenza(i) <= z ).OR. & (sequenza(i) >= A.AND. & sequenza(i) <= Z ) ) ) IF(sequenza(i) >= A.AND. & sequenza(i) <= Z ) THEN sequenza(i) =& ACHAR(IACHAR(sequenza(i)) - offset) i = i+1! salvo la lunghezza effettiva! della stringa in lng lng = i - 1 trovato =.FALSE. i = lng - 1 DO WHILE (.NOT. trovato.and. i > 0) IF (ALL(sequenza(1:i) == sequenza(lng-i+1:lng))) THEN trovato =.TRUE. ELSE i = i - 1 IF (trovato.eqv..true.) THEN WRITE (*,*) "La sequenza e iniziata", & "e terminata dalla stringa ", & sequenza(1:i) ELSE WRITE (*,*) "Non c e sottosequenza ", & "che inizia e termina la stringa." END PROGRAM PrefissoSuffisso
ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia)
ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia) Scrivere una funzione per definire se un numero è primo e un programma principale minimale che ne testa la funzionalità. #include
DettagliVBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.
Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?
DettagliOperazioni di input e output in Fortran 90
Operazioni di input e output in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: file e formattazione DIS - Dipartimento di informatica
DettagliInformatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica
Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,
DettagliEsercitazione 10. 21 Dicembre 2010 (2 ore)
Esercitazione 10 21 Dicembre 2010 (2 ore) Riassunto Nell'esecitazione di oggi abbiamo lavorato ancora sulle funzioni. Abbiamo inoltre introdotto alcune delle seguenti funzioni per tracciare i grafici.
DettagliIl software e la programmazione
Il software e la programmazione Concetti base sul software Elementi di programmazione Cenni sul linguaggio Pascal Che cosa è il software Determina ciò che un computer può fare Include istruzioni memorizzate
DettagliIstruzioni per il controllo di ciclo - ciclo a condizione generica
Istruzioni per il controllo di ciclo - ciclo a condizione generica Permette di ripetere l esecuzione di un blocco di istruzioni finchè non viene verificata una condizione logica. Sintassi istruzione_1...
DettagliAPPUNTI DEL CORSO DI LABORATORIO DI CALCOLO AVANZATO
APPUNTI DEL CORSO DI LABORATORIO DI CALCOLO AVANZATO Concetti fondamentali di FORTRAN 90 MARCO LIMONGI Istituto Nazionale di Astrofisica Osservatorio Astronomico di Roma 1. CONCETTI FONDAMENTALI DI FORTRAN
DettagliAlfabeto ed elementi lessicali del linguaggio C
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2015-2016 Alfabeto ed elementi lessicali del linguaggio C Pietro Di Lena - pietro.dilena@unibo.it s t a t i c s h o r t l e g s ; i n
DettagliFondamenti di Informatica 2
Fondamenti di Informatica 2 della prova scritta del 28 Febbraio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int min = 3; int i; Scrivere la porzione di codice
DettagliEsercizi di programmazione in C
Esercizi di programmazione in C Esercizio 1 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a partire dal
DettagliI file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002
I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Sommario Generalità sui file in C I file ad accesso sequenziale I file di testo Riferimenti
DettagliIntroduzione 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
DettagliGestione di files Motivazioni
Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)
DettagliRICERCA DI UN ELEMENTO
RICERCA DI UN ELEMENTO Si legga da tastiera un array di N elementi (N stabilito dall utente) Si richieda un elemento x il programma deve cercare l elemento x nell array Se l elemento è presente, deve visualizzare
DettagliIl comando provoca il salvataggio dello stato e la terminazione dell esecuzione.
Scrivere un programma per la gestione di una videoteca. Il programma deve essere in grado di tenere traccia dello stato corrente (presente/in prestito a x/smarrito da x/danneggiato da x a livello nn) e
DettagliCreare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x.
Funzioni Esercizio 1 Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x. Creare un altra funzione, di nome float cube(float x), che restituisce invece il
DettagliCaratteri e stringhe Esercizi risolti
Esercizi risolti 1 Esercizio: Conta vocali e consonanti Scrivere un programma in linguaggio C che legga una frase introdotta da tastiera. La frase è terminata dall introduzione del carattere di invio.
DettagliSTRUTTURE (O COSTRUTTI) DI CONTROLLO
Le strutture di controllo Le strutture di controllo STRUTTURE (O COSTRUTTI) DI CONTROLLO determinano l ordine con cui devono essere eseguite le istruzioni sono indipendenti dalla natura delle istruzioni
DettagliEsempio 1: stampa locale di file remoto
Alcuni esempi di uso di Socket Esempio 1: stampa locale di file remoto Visualizzazione locale del contenuto di un file remoto. Il client deve richiedere la creazione della connessione e successivamente
Dettagli3. La sintassi di Java
pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer
DettagliUniversità degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella
Corso di Informatica Puntatori Anno Accademico 2010/2011 Francesco Tortorella Variabili, registri ed indirizzi Abbiamo visto che la definizione di una variabile implica l allocazione (da parte del compilatore)
Dettagli4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste
4 Le liste collegate 4.0 Le liste collegate c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 4.0 0 4 Le liste collegate Rappresentazione di liste 4.1
DettagliESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 27 Gennaio 2015
COGNOME E NOME: MATRICOLA: Civile Ambiente e Territorio Non si possono consultare manuali, appunti e calcolatrici. Esercizio 1: [3 punto] Rappresentare i numeri 36 e 91 (in base 10) in notazione binaria
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
Dettagli/* esercizio 5. Memorizzare l elenco dei prodotti giacenti in un magazzino in modo da poter effettuare le seguenti operazioni :
/* esercizio 5. Memorizzare l elenco dei prodotti giacenti in un magazzino in modo da poter effettuare le seguenti operazioni : Stampare le caratteristiche di un determinato prodotto (codice, descrizione,
DettagliCos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247
Cos è una stringa (1) Stringhe DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Una stringa è una serie di caratteri trattati come una singola unità. Essa potrà includere lettere, cifre, simboli e caratteri
DettagliInformatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica
Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,
DettagliEsercizio. Pseudocodice
Esercizio Trovare quoziente e resto di una divisione intera per differenze successive (supponendo cioè di non disporre dell operatore di divisione) Dati di Input: D, D1 (supponiamo D1>0) Dati di Output:
DettagliAppunti del corso di Informatica 1. 6 Introduzione al linguaggio C
Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C
Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)
DettagliLinguaggio C - Stringhe
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - Stringhe La presente dispensa e da utilizzarsi ai
DettagliTUTORATO di LINGUAGGI I
TUTORATO di LINGUAGGI I Enrico Vianello TUTORATO di LINGUAGGI I contatti utili LE LEZIONI SI TERRANNO: VENERDI 12.30-14.30 PER INFORMAZIONI e DOMANDE: enrico.vianello@student.unife.it IL MATERIALE UTILIZZATO
DettagliSOLUZIONE ESERCIZIO 1
SOLUZIONE ESERCIZIO 1 Progettare un algoritmo che dati tre numeri (voti) a, b, c che possono assumere i valori interi da 18 a 30, calcoli la loro media. #include void main() { int a, b, c; float
DettagliEsercizi svolti durante le ore di Informatica e Sistemi automatici nelle classi del Liceo Scientifico Tecnologico del Liceo Milli di Teramo
Esercizi svolti durante le ore di Informatica e Sistemi automatici nelle classi del Liceo Scientifico Tecnologico del Liceo Milli di Teramo /*Caricare un vettore di n numeri float, ordinarlo e e stamparlo
Dettagli2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore.
1 Esercizio 1 1. Immaginate di avere una calcolatore che invece che poter rappresentare i classici due valori per ogni bit (0/1) possa rappresentare 7 valori per ogni bit. (a) Quanti bit gli occorreranno
Dettaglihttp://esamix.labx Quotazione compareto( ) Quotazione piurecente( ) Quotazione Quotazione Quotazione non trovato count( )
Materiale di ausilio utilizzabile durante l appello: tutto il materiale è a disposizione, inclusi libri, lucidi, appunti, esercizi svolti e siti Web ad accesso consentito in Lab06. L utilizzo di meorie
DettagliPolitecnico di Torino
Politecnico di Torino INFORMATICA II Esame del 19 Luglio 2008 1. Realizzare un programma in linguaggio C per evidenziare le variazioni percentuali di un insieme di azioni quotate in borsa. In un file di
DettagliDAL DIAGRAMMA AL CODICE
DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza
DettagliEsempio: Array di struct
Esempio: Array di struct Scrivere un programma C che definisca la struttura esame, composta dal nome dell esame (stringa) e dal voto (intero). Si leggano poi da terminale n esami, con n definito dall utente
DettagliCorso di Fondamenti di Informatica prova del 04/07/2008
UNIVERSITÀ DEGLI STUDI DI PERUGIA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA MECCANICA. Corso di Fondamenti di Informatica prova del 04/07/2008 Esercizio 1 (17 punti) Il file di nome inp.dat contiene
DettagliAPPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL
APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL In informatica il Pascal è un linguaggio di programmazione creato da Niklaus Wirth ed é un linguaggio di programmazione strutturata. I linguaggi di programmazione
DettagliLinguaggio C - Funzioni
Linguaggio C - Funzioni Funzioni: Il linguaggio C è di tipo procedurale; ogni programma viene suddiviso in sottoprogrammi, ognuno dei quali svolge un determinato compito. I sottoprogrammi si usano anche
DettagliMatematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE
Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...
DettagliProblem solving avanzato
Problem solving avanzato Formulazione del problema Struttura dati e algoritmo Il programma 2 26 Politecnico di Torino 1 Dati in input (1/4) Sono dati due file di testo, contenenti le informazioni sulle
Dettagli/*dichiarazioni*/ // le frasi sono contenute in stringhe, cioè array di char char f1[max]; int i, giusto,len;
/* Date in ingresso una frase, dire se una è palindroma */ #include #define MAX 100 int main() /*dichiarazioni*/ // le frasi sono contenute in stringhe, cioè array di char char f1[max]; int i,
DettagliConcetti chiave. Struct. Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture
Concetti chiave Struct Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture Struct Per aggregare elementi di tipo diverso si utilizza una struttura. struct
DettagliApplicazioni grafiche
Applicazioni grafiche I grafici all interno di un form sono realizzati attraverso gli oggetti del namespace System.Drawing. Graphics. Il namespace è incluso automaticamente nel progetto, quindi non è necessaria
DettagliDefinizione di nuovi tipi
Definizione di nuovi tipi Un tipo è un insieme di valori. Per definire un nuovo tipo occorre specificare: 1 un nome per il tipo 2 come costruire i valori del tipo, cioè quali sono i costruttori del tipo.
DettagliOTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C
CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2011-2012 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma OTTAVA ESPERIENZA DI LABORATORIO L elaborazione dei files
DettagliEsercitazione 7. Procedure e Funzioni
Esercitazione 7 Procedure e Funzioni Esercizio Scrivere un programma che memorizza in un array di elementi di tipo double le temperature relative al mese corrente e ne determina la temperatura massima,
DettagliProgrammazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliPROGRAMMI LINGUAGGIO C
PROGRAMMI IN LINGUAGGIO C Corso di Programmazione Modulo B Prof. GIULIANO LACCETTI Studentessa Bellino Virginia Matr. 408466 Corso di Diploma in Informatica http://www.dicecca.net Indice 1. Package per
DettagliTipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi
TIPI DI DATO Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe di caratteri e quasi sempre anche collezioni di oggetti,
DettagliElementi di Informatica
Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi
Dettagli1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata
Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani
DettagliLe variabili di Visual Basic consentono di memorizzare temporaneamente valori durante
Tiipii dii Datii iin Viisuall Basiic Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante l'esecuzione di un'applicazione. Alle variabili è associato un nome, utilizzato
DettagliIntroduzione al linguaggio C Gli array
Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome
DettagliCorso di Laurea in INFORMATICA
Corso di Laurea in INFORMATICA Algoritmi e Strutture Dati MODULO 2. Algebre di dati Dati e rappresentazioni, requisiti delle astrazioni di dati, costrutti. Astrazioni di dati e dati primitivi. Specifica
DettagliCORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3. 1 strace : visualizzazione delle system call invocate da un processo
UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica a.a. 2005-2006 CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3 1 strace : visualizzazione delle system call
DettagliCAPITOLO V. DATABASE: Il modello relazionale
CAPITOLO V DATABASE: Il modello relazionale Il modello relazionale offre una rappresentazione matematica dei dati basata sul concetto di relazione normalizzata. I principi del modello relazionale furono
Dettagli3. Terza esercitazione autoguidata: progetto gestione voli
9 3. Terza esercitazione autoguidata: progetto gestione voli Qui ci occupiamo di scrivere un programma abbastanza lungo, dedicato alla gestione di una tabella di dati. Una tabella e una struttura dati
DettagliStrutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
DettagliLab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix-
Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix- 1 Sommario Esercizi sulla gestione dei processi Creazione di un nuovo processo: fork Sincronizzazione tra processi: wait 2 -
DettagliUtilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini
Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini PROGRAMMAZIONE Insieme delle attività da svolgersi per creare
DettagliFunzioni. 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
DettagliFondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main
Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli
DettagliProgetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012
Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Concetti importanti da (ri)vedere Programmazione imperativa Strutture di
DettagliIntroduzione a GCC: GNU Compiler Collection
Introduzione a GCC: GNU Compiler Collection Caratteristiche di GCC Compilatore multipiattaforma modulare Disponibile per tutti i principali sistemi operativi Può produrre programmi per la maggior parte
DettagliIL LINGUAGGIO C++ Configurazione di Dev-C++
IL LINGUAGGIO C++ Note sull'uso di DevC++ Requisiti di sistema per Dev-C++ - Sistema operativo Microsoft Windows 95, 98, Millenium Edition, NT 4, 2000 o XP - RAM: 8 Mb (consigliati almeno 32 Mb) - CPU:
DettagliRICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di
RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di esempio CERCA 90 NEL SACCHETTO = estrai num Casi num 90 Effetti CERCA 90 NEL
DettagliAA 2006-07 LA RICORSIONE
PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella
DettagliBreve riepilogo della puntata precedente:
Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta
DettagliRecord in C: il costruttore struct.
Record in C: il costruttore struct. Le variabili di tipo record e i nuovi tipi record si dichiarano in C tramite il costruttore di tipo struct:. ::= ;
DettagliMPI è una libreria che comprende:
1 Le funzioni di MPI MPI è una libreria che comprende: Funzioni per definire l ambiente Funzioni per comunicazioni uno a uno Funzioni percomunicazioni collettive Funzioni peroperazioni collettive 2 1 3
DettagliDynamic Linking. Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica
Dynamic Linking Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica Dynamic Linking Il linking tra i moduli di un programma e le librerie da esso utilizzate può essere Statico
DettagliCARATTERI E STRINGHE Caratteri e stringhe Funzioni della libreria standard I/O Funzioni della libreria di gestione delle stringhe
CARATTERI E STRINGHE Caratteri e stringhe Funzioni della libreria standard I/O Funzioni della libreria di gestione delle stringhe Caratteri e stringhe Caratteri Sono i blocchi costitutivi di ogni programma:
DettagliEsame del 3 febbraio 2010
Fondamenti di Informatica CdL in Ingegneria Gestionale a.a. 2009/2010 Docente: Andrea Prati Esame del 3 febbraio 2010 Esercizio 1 Vettori Sia data un vettore (array monodimensionale) di interi: int VETT[N];
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Introduzione alla programmazione in C++ 1 Un introduzione Che cosa è il C++? La programmazione procedurale La programmazione orientata agli oggetti La programmazione
DettagliGestione dei File. dischi nastri cd
Gestione dei File Per mantenere disponibili i dati tra le diverse esecuzioni di un programma, questi si devono archiviare in file su memoria di massa (dati persistenti): dischi nastri cd Un file è un astrazione
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliIntroduzione al Linguaggio C
Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C
DettagliAXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema
AXO Architetture dei Calcolatori e Sistema Operativo programmazione di sistema Il sistema operativo Il Sistema Operativo è un insieme di programmi (moduli software) che svolgono funzioni di servizio nel
DettagliZZZ01 Esercizi Vari. Esercizi per preparazione alla prova pratica di laboratorio
ZZZ01 Esercizi Vari Esercizi per preparazione alla prova pratica di laboratorio Esercizio ZZZ01_01 - Elefanti Schizzinosi Nella savana africana c'e' una pozza d'acqua fresca alimentata da un acquedotto.
DettagliInformatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica
Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,
DettagliGestione delle stringhe in C
Gestione delle stringhe in C 1 Generalità Una stringa è un vettore di caratteri il cui ultimo elemento è un carattere terminatore (o di fine stringa), codificato dal carattere di codice 0 e rappresentato
DettagliESERCIZI DI PROGRAMMAZIONE C/C++ per le classi terza
ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi terza vers.0 in lavorazione Docente SAFFI FABIO Contenuti Implementazione delle operazioni di base mediante main in un unico file sorgente... 2 Struttura
DettagliCORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3
UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Ingegneria Corso di Laurea in Ingegneria Elettronica-Informatica-Telecomunicazioni a.a. 2001-2002 CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3 1 Trasferimento
DettagliCorso di Laurea in Matematica
Corso di Laurea in Matematica Laboratorio di Informatica (a.a. 2002-03) Esercizi 1 Docente: Monica Nesi 1. Scrivere un programma in C che, dati in ingresso due numeri naturali, calcola il loro prodotto
DettagliVerifica che una grammatica sia Context Free nel GrammaReader
Verifica che una grammatica sia Context Free nel GrammaReader Sommario Dispensa di Linguaggi di Programmazione Corrado Mencar Pasquale Lops In questa dispensa si descrivono alcune soluzioni per verificare
DettagliGli ARRAY in FORTRAN 90
ELEMENTI DI PROGRAMMAZIONE Gli ARRAY in FORTRAN 90 Un ARRAY è un AGGREGATO di più DATI dello stesso TIPO (interi, reali, etc), ognuno univocamente individuato dal valore di uno oppure due.. e fino a sette
DettagliProcessi in Linux. Stru/ura file eseguibili
SISTEMI OPERATIVI Processi in Linux Stru/ura file eseguibili» ELF - Executable and Linking Format formato di default degli eseguibili in Linux definizione nel file include » StruGura un header contenente
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Operazioni su Liste Doppie e Circolari 2 1 Indice Liste puntate semplici: Gli elementi sono
DettagliLABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015. Indice
LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015 VINCENZO MARRA Indice Parte 1. Input/Output standard dalla console 2 Esercizio 1 2 Eco
DettagliAppello di Informatica B
Politecnico di Milano Facoltà di Ingegneria Industriale 19 febbraio 2004 Appello di Informatica B Prof. Angelo Morzenti - Prof. Vincenzo Martena Cognome e nome: Matricola: Tipo di prova: recupero I prova
DettagliBloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment
Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete
DettagliInput/output in C e in C++
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Input/output in C e in C++ 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliCorso di Visione Artificiale. Matlab per Visione. Samuel Rota Bulò
Corso di Visione Artificiale Matlab per Visione Samuel Rota Bulò Cos'è Matlab? MATLAB MATLAB - - MATrix MATrix LABoratory LABoratory Ambiente Ambiente di di sviluppo sviluppo ed ed esecuzione esecuzione
DettagliCorso di Informatica Medica Esercitazione 1I 2013-2014.! Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.com
Corso di Informatica Medica Esercitazione 1I 2013-2014! Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.com 1 2 Esercizio 1 Scrivere un programma che legga due array di interi da tastiera dica
Dettagli