Esercitazioni di Tecniche di Programmazione. 6. Sesta esercitazione autoguidata: file binari e ricorsione
|
|
- Barbara Riva
- 5 anni fa
- Visualizzazioni
Transcript
1 Esercitazioni di Tecniche di Programmazione Due avvertenze: 1) Le soluzioni agli esercizi, le versioni di programmi dati nel testo delle esercitazioni e quant'altro sono raggiungibili tramite la pagina web del corso. Nel titolo di ogni sezione è specificato tra parentesi il nome del (o dei) file in cui è proposta una soluzione (se disponibile...). 2) I programmi che scriveremo dovranno essere in accordo con la definizione standard ANSI C del linguaggio C; perciò, prima di cominciare vogliamo assicurarci che l ambiente di programmazione che usiamo usi anche lui la medesima definizione. a. SE si usa il Dev C++, nella versione (lingua inglese) bisogna andare nel menu Tools, selezionare Compiler Options, scegliere Settings e poi C Compiler (selezionare almeno Support all ANSI Standard C Prorams ) b. Se si usa il vecchio ed eroico Turbo C++, per essere sicuri di star usando ANSI C, bisogna assegnare opportunamente una certa opzione: aprire il menù OPTIONS, selezionare Compiler e poi Source. Nella finestra di scelta che appare, selezionate ANSI C. 6. Sesta esercitazione autoguidata: file binari e ricorsione 6.1. File binari (BINARI1.C) Scrivere un programma che usa una variabile double val e un array di double arraydouble per contenere certi valori double. Il proogramma deve leggere da input il nome di un file e memorizzare in tale file (gestito come FILE BINARIO), usando la funzione fwrite(). E richiesto che il terzo parametro delle chiamate di fwrite()sia, in questo esercizio, sempre uguale ad 1. - il contenuto di val; - il contenuto di arraydouble 6.2. File binari (BINARI2.C) Scrivere un programma che usa una variabile double val e un array di double arraydouble per contenere certi valori double. I valori contenuti in val e arraydouble devono essere letti da un file binario (quello costruito nell esercizio precedente), usando la funzione fread(). E richiesto che il terzo parametro delle chiamate di fread() sia, in questo esercizio, sempre uguale ad File binari (BINARI3.C, BINARI4.C) Ripetere gli esercizi dei due punti precedenti. Il limite imposto precedentemente sul terzo parametro delle funzioni fread() ed fwrite()e cancellato File binari (BINARI5.C) Scrivere un programma che - chieda e legga un numero intero n - e legga poi n numeri double - memorizzando tutti i dati letti (interi e double) in un file binario il cui nome e stato anche letto da input (si suggerisce di farlo prima di leggere i dati numerici) 1
2 Il file prodotto conterra, come primo dato il valore n e conterra successivamente tutti i double letti. Non serve usare array! 6.5. File binari (BINARI6.C) Scrivere un programma che - chieda e legga il nome di un file binario, analogo a quelli prodotto con il programma dell esercizio precedente) - legga dal file un numero intero n - e legga i successivi n numeri double, memorizzandoli in un array dinamico di n double (cioe allocato esattamente ) 6.6. Quadrilateri e file binari (QUADRI2.C) Scrivere un programma capace di leggere una sequenza di quadrilateri da standard input (stdin, la tastiera) memorizzandoli in un file binario. Il programma deve chiedere il nome del file binario in cui effettuare le memorizazioni e poi deve leggere quadrilateri e memorizzarli fintantoche l utente intende continuare a fornire dati Quadrilateri e file binari (QUADRI3.C) Scrivere un programma capace di leggere da un file costruito dal programma precedente. Il programma deve chiedere il nome del file di quadrilateri da usare come file di input ed utilizzarlo per leggere i quadrilateri in esso contenuti. Ogni quadrilatero deve essere stampato in standard output (sul video). Piu giu c e un suggerimento: non guardarlo. Suggerimento: ridefinire le funzioni di - lettura di un punto (funzione che riceve l indirizzo di un punto e una variabile file, gia legata ad un file binario, e legge dal file unpunto con fread()); - e di lettura di un quadrilatero (funzione che riceve l indirizzo di un quadrilatero e una variabile file, gia legata ad un file binario, e legge dal file i quattro vertici del quadrilatero, usando la funzione di lettura punti da file). 2
3 6.8. Quadrilateri e file binari (QUADRI4.C) Scrivere un programma capace di - ricevere il nome, n1, di un file binario, contenente quadrilateri; (si suppone che questi quadrilateri siano non degeneri, cioe aventi, quali vertici, quattro punti distinti) - produrre un nuovo file (sempre binario, e il cui nome, n2, e stato fornito in input) contenente i quadrilateri registrati nel file n1 che siano quadrati. Piu giu qualche suggerimento Suggerimento: n1 viene usato come file di input, aperto in lettura; n2 sara il file di output, aperto in scrittura. Si legge un quadrilatero da n1, si controlla e, se e un quadrato, lo si registra in n2. Dato che i due file rimangono aperti contemporaneamente, servono due variabili FILE da collegare ad essi. Seguono altri suggerimenti Suggerimento 2 di 5: Per controllare se un quadrilatero e un quadrato sarebbe elegante usare una funzione isquadrato() che, ricevendo un quadrilatero, restituisca 1 se si tratta di un quadrato e 0 altrimenti. 3
4 Suggerimento 3 di 5: Un ida della parte di algoritmo che si occupa di estrarre dati dal primo file e (decidere se) riversarli nel secondo: mentre il file di input contiene dati - si legge un quadrilatero - si controlla se e' quadrato e, se e' quadrato, si registra nel file di output Suggerimento 4 di 5: Supponendo che quad sia il quadrilatero e f2 la variabile file associata al file di output, l istruzione di registrazione del quadrilatero nel file potrebbe essere: fwrite(quad, sizeof(tipopunto), 4, f2) Suggerimento 5: Tra i vari controlli da inserire nel programma, ci sono : - controllo se il file di input e stato aperto regolarmente; - controllo se il file di output e stato aperto regolarmente; - controllo se la registrazione di un quadrilatero nel file di output e stata effettuata con successo (ricordarsi che una chiamata ad fwrite() restituisce il numero di registrazioni che sono state effettuate con successo, quindi se la chiamata doveva registrare 4 punti e lo ha fatto con successo, restituisce 4. 4
5 6.9. La funzione fattoriale(fatt.c) Scrivere una funzione int fatt(int) che, ricevendo un numero intero n calcola e restituisce il valore di n!. Scrivere inoltre un programma capace di testare questa funzione e verificare che, usando nella definizione della funzione il tipo int (per parametro e valore ritornato) la funzione produce risultati troppo grandi anche con numeri relativamente piccoli. (Fino a che valore di n si riesce ad arrivare senza andare in overflow?) La funzione fattoriale(fattlong.c) Ripetere l esercizio precednte, ma usando il tipo long int per il risultato della funzione. Verificare che questa funzione permette di fare calcoli su numeri (un pò) più grandi rispetto alla precedente La funzione LeggiEInvertiInput() (INVINP.C) Scrivere una funzione che esegue la lettura di una sequenza di carattero fornita da input e terminata dal carattere., producendo in output una stampa dei medesimi caratteri (escluso il punto) in ordine inverso rispetto a quello con ui sono stati inseriti in input. Ad esempio, se l input fosse TOPI. l output dovrebbe essere IPOT Si vuole che la funzione implementi un algoritmo ricorsivo per risolvere il problema. Provare la funzione con un opportuno programma. Suggerimento: L idea di quanto visto a lezione era la seguente: l algoritmo da realizzare deve - leggere il primo carattere che si presenta in input e memorizzarlo in una variabile ch; (ad esempio T viene messo in ch) - chiedere che il resto dell input venga letto e stampato al contrario - se l operazione indicata al punto precedente e stata realizzata, ora in output ci sono, stampati in ordine inverso, i caratteri che erano forniti in input dopo quello che abbiamo memorizzato in ch ad esempio ora in output c e IPO quindi e sufficiente stampare il carattere attualmente in ch e l output assume la forma richiesta IPOT 5
6 Suggerimento 2 di 3: Chiamiamo LEGGIEINVERTI la sequenza di operazioni che vogliamo implementare (insomma, l algoritmo...) Lo schema base da realizzare e il seguente: - lettura di un carattere in ch - LEGGIEINVERTI (cosi viene letto e invertito il resto dell input (quello dopo il carattere memorizzato in ch) - stampa ch Suggerimento 3: Ovviamente se il carattere letto e memorizzato in ch durante l esecuzione di LEGGIEINVERTI e., non deve essere richiesto di leggere e invertire il resto dell input (non c e!), ne di stampare il carattere ch. Queste due operazioni vanno eseguite solo se il carattere letto e diverso da.. Quindi il caso in cui ch!=. e un CASO RICORSIVO, in cui l algoritmo LEGGIEINVERTI decide di eseguire se stesso sul resto dell input e poi stampare ch. Invece il caso in cui ch==. e un CASO BASE (in cui non c e attivazione ricorsiva e, in questo caso particolare, non bisogna fare nulla). - lettura ch - se ch!=. o LEGGIEINVERTI o stampa ch (altrimenti niente) 6
7 6.12. La funzione palin() (PALIN1.C) Scrivere una funzione palin() che, ricevendo una parola (stringa di caratteri) e due indici interi, i, j, restituisca 1 se la porzione di parola compresa tra i caratteri di indice i e j e palindroma. Provare la funzione con un opportuno programma. Suggerimento: Una parola e palindroma se e leggibile indifferentemente da sinistra a destra o da destra a sinistra (anilina, asor-rosa). Suggerimento 2 di 5: Sia p la parola (un array di N caratteri, occupato dal carattere di indice 0 al carattere di indice k (con strlen(p) uguale a k+1 e p[strlen(p)]== \0 e quindi escluso dalle nostre considerazioni). La porzione p[0]---p[k] (cioe la stringa) - non e palindroma se p[0]!=p[k] - potrebbe essere palindroma se p[0]==p[k](e in tal caso sarebbe effetivamente palindroma solo se fosse palindroma la porzione p[1]---p[k-1]). 7
8 Suggerimento 3 di 5: Dal suggerimento precedente viene uno schema come il seguente palin(p, i, j) e (ritorna come risultato) - 0 se p[0]!=p[k] - il valore di palin(p, i+1, j-1) se p[0]==p[k] Suggerimento 4 di 5: Lo schema visto al punto precedente vale se i<j; infatti, - se i==j non c e nulla da controllare! E se siamo arrivati ad eseguire la valutazione di palin(p,i,j) con i==j vuol dire che tutte le coppie p[i], p[j] con i valori precedenti di i e j erano a caratteri uguali. A questo punto la stringa si rivela palindroma e possiamo restituire 1 senza ulteriori attivazioni ricorsive; - se i>j, vale un discorso analogo: tutte le coppie p[i], p[j] con i valori precedenti di i e j (cioe con valori per cui i<j) erano a caratteri uguali. Continuando a fare verifiche su coppie di caratteri p[i], p[j] con i > j controlleremmo coppie gia controllate (e che erano uguali). Quindi anche in questo caso la stringa si e rivelata palindroma e possiamo restituire 1 senza ulteriori attivazioni ricorsive. Suggerimento 5: Dal suggerimento precedente viene uno schema come il seguente palin(p, i, j) e (ritorna come risultato) - se i<j 0 se p[0]!=p[k] palin(p, i+1, j-1) se p[0]==p[k] - altrimenti 1 8
9 6.13. cosa fa? Osservare il seguente programma: - la main() contiene due errori, facilmente evidenziabili. Quali sono? - cosa fa la funzione cosafa() e, quindi, cosa fa il programma, una volta corretto? Giustificare la risposta e poi vedere se è giusta, eseguendo il programma. #include <stdio.h> #define MAX 6 int cosafa(int a[], int k, int dim) { if (k < dim) return (a[k] + cosafa(a, k+1, dim)); else return 0; } int main(){ int io[max], j; printf("\ninserire le %d cifre del numero di matricola (uno spazio tra l'una e l'altra): ", MAX); for(j=0; j<=max; j++) scanf("%d",io+j); printf("ecco qua: %d\n", cosafa(io,2,max); printf("\nfine\n"); return 0; } 9
Esercitazioni di Tecniche di Programmazione. 4. Quarta esercitazione autoguidata: liste concatenate rappresentate mediante struct e puntatori
Esercitazioni di Tecniche di Programmazione 4. Quarta esercitazione autoguidata: liste concatenate rappresentate mediante struct e puntatori due avvertenze: 1) Le soluzioni agli esercizi, le versioni di
Esercitazioni di Tecniche di Programmazione
Esercitazioni di Tecniche di Programmazione 2. Seconda esercitazione autoguidata due avvertenze: 1) Le soluzioni agli esercizi, le versioni di programmi dati nel testo delle esercitazioni e quant'altro
Laurea In Ingegneria dell Informazione. Esercitazioni Guidate di Tecniche della Programmazione
Laurea In Ingegneria dell Informazione Esercitazioni Guidate di Tecniche della Programmazione Note introduttive: 1) Le soluzioni agli esercizi e le versioni di programmi menzionate nel testo delle esercitazioni
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento
Tecniche della Programmazione: Note sull uso del DEVC++
Tecniche della Programmazione: Note sull uso del DEVC++ PRIMA COSA: DEVC++ permette di programmare in C++ ed in C. Non e esattamente la medesima cosa, come vedremo durante il corso. Ricordiamoci che noi
Lo scopo. Il primo esperimento. Soluzione informale. Le variabili
Lo scopo 2 Il primo esperimento Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video Ver. 2.4
C: primi elementi. Lezione 4
C: primi elementi Lezione 4 Evoluzione del BCPL (1967) e B (1970), entrambi typeless Sviluppato da Dennis Ritchie nel 1972 ed implementato per il PDP-11 Usato per lo sviluppo del sistema operativo UNIX
Laboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 16 ottobre 2007 1 Rappresentazioni di caratteri in C In C un carattere è una costante intera il cui valore è dato dal codice ASCII
Fondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Array 2 Esercizio 1 Creare un programma che legga da input un numero non noto a priori di interi (al più 10) terminati da 0.
La funzione main() La funzione main(), presente in tutti i programmi C, è una funzione come tutte le altre
La funzione main() La funzione main(), presente in tutti i programmi C, è una funzione come tutte le altre Unica particolarità: viene chiamata dal Sistema Operativo, appena il programma viene avviato Non
5. Quinta esercitazione autoguidata: liste semplici
22 5. Quinta esercitazione autoguidata: liste semplici 5.1. Liste rappresentate mediante strutture e puntatori (LISTE1.C, LISTE2.C) Scrivere un programma che - costruisce una lista di k interi (con k letto
Laurea In Ingegneria dell Informazione. Esercitazioni Guidate di Tecniche della Programmazione
Laurea In Ingegneria dell Informazione Esercitazioni Guidate di Tecniche della Programmazione Note introduttive: 1) Le soluzioni agli esercizi e le versioni di programmi menzionate nel testo delle esercitazioni
Programmazione ricorsiva.
In quasi tutti i linguaggi di programmazione evoluti è ammessa la possibilità di definire funzioni/procedure ricorsive: durante l esecuzione di una funzione F è possibile chiamare la funzione F stessa.
Esercitazione 4. Comandi iterativi for, while, do-while
Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti
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
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 06 Array" Lab06 1
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 06 Array" Lab06 1 Esercizio 1" n Creare un programma che legga da input un numero non noto a priori di interi
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
Note per la Lezione 6 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 6 Ugo Vaccaro Ancora sulla tecnica Programmazione Dinamica Nella lezione scorsa abbiamo appreso che la tecnica Divide-et-Impera,
Impariamo a programmare in. Lezione 7
Impariamo a programmare in Ancora Stringhe Sequenze di escape Proviamo a stampare una stringa che contiene delle virgolette Hello, World! // NON FUNZIONA! System.out.println("Hello, "World"!"); Il compilatore
IL PRIMO PROGRAMMA IN C
IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE
INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan
INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento lunedì, prima o dopo lezione 1 Le funzioni in C Le funzioni vengono utilizzate per 3 motivi: Riusabilità
L AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout
Nozioni fondamentali su Algoritmi e programmazione
Nozioni fondamentali su Algoritmi e programmazione VARIABILE: La variabile è un contenitore di dati. Questo contenitore può includere dati ti tipo numerico o testuale principalmente. Essa è dotata di un
Fondamenti di Programmazione
A.A. 08/09 Fondamenti di Programmazione (canale E-O) Docente: Prof.ssa Tiziana Calamoneri calamo@di.uniroma1.it Esercitatore: Dott. Roberto Petroccia petroccia@di.uniroma1.it Pagina del corso: http://twiki.di.uniroma1.it/twiki/view/programmazione1/eo/webhome
Strutture. Array dei nomi degli esami (MAX ESAMI è il massimo numero degli esami). Array con i crediti degli esami.
Consideriamo l esercizio assegnato la scorsa lezione per rappresentare il libretto di uno studente. Per memorizzare i dati si sono utilizzati tre array: char* nomiesami[max ESAMI] Array dei nomi degli
Esercitazione di Reti degli elaboratori
Esercitazione di Prof.ssa Chiara Petrioli Christian Cardia, Gabriele Saturni Cosa vedremo in questa lezione? Gli Array Gli array multidimensionali Le stringhe I puntatori Esercizi Pagina 1 Gli Array Definizione
RICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio
RICORSIONE, PUNTATORI E ARRAY Quarto Laboratorio 16 DICEMBRE 2011 SCADENZA TERZA ESERCITAZIONE FUNZIONI RICORSIVE ESERCIZIO Scrivere una funzione ricorsiva che, assegnati due interi N1 ed N2, restituisca
Laboratorio di Informatica I
Struttura della lezione Lezione 4 Operatori e introduzione a funzioni Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Soluzioni ad alcuni esercizi Alcuni commenti sugli
Gestione degli impegni Requisiti generali Si fissi come ipotesi che la sequenza di impegni sia ordinata rispetto al tempo,, e che ogni lavoratore abbi
Fondamenti di Informatica T-1 modulo 2 Laboratorio 10: preparazione alla prova d esame 1 Esercizio 1 - Gestione degli impegni Gli impegni giornalieri dei dipendenti di un azienda devono essere aggiornati
Esercitazioni di Fondamenti di Informatica - Lez. 9 4/12/2018
Esercitazioni di Fondamenti di Informatica - Lez. 9 /1/018 Esercizi sulla gestione dei file in C Il codice degli esercizi e contenuto nella cartella parte1 1. Creare una funzione C che legga tutto cio
Alcuni Soluzioni. Fornire la specifica di un algoritmo risolutivo utilizzando lo pseudocodice visto a lezione.
Alcuni Soluzioni ESERCIZIO 1 Data una sequenza di interi di dimensione dim, determinare se esistono esattamente cont occorrenze del valore val, utilizzando per questo una variabile booleana check. Stato
Informatica per Statistica Riassunto della lezioni del 14/11/2012 e 16/11/2012
Informatica per Statistica Riassunto della lezioni del 14/11/2012 e 16/11/2012 Igor Melatti Cenni sui puntatori in C Per ogni variabile normale dichiarata, il compilatore riserva una precisa quantità di
Esercizi Programmazione I
Esercizi Programmazione I 9 Novembre 201 Esercizio 1 Valutare e dare il tipo delle seguenti espressioni condizionali. 1 char a= a, b= b ; // a ha v a l o r e decimale 97 2 i n t i= 1, j= 2 ; 3 double x=
Dati aggregati. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture
Informatica per Statistica Riassunto della lezione del 21/10/2011
Informatica per Statistica Riassunto della lezione del 1/10/011 Igor Melatti Costrutti del linguaggio C: ripasso Si consideri il programma C alla Figura 1 ci sono due dichiarazioni di funzioni, insertion
Fondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Array e funzioni 2. Array e funzioni ricorsive 3. Array e confronto di array 2 Esercizio 1 Creare un programma che legga da
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento b) dereferenziazione e
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
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
Stringhe e allocazione dinamica della memoria
Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per
Ing. Lorenzo Vismara
Ing. Lorenzo Vismara ! "# #!$#%&# '(!)&!*)&#*$# +!, +$-.(( #!((%&#, #!& %&) /$#01&! 0#( 3452 $ 6#( 1 2 &## #!7 #89): #;##( 1? )#&)< $9): #@82 #)AA)#&#&$( #7)& @B && ##@A&#C 7 $C#&7 @B A&#)@#7&#
Esercizio 1: funzione con valore di ritorno di tipo puntatore
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 7 Esercitazione: 14 dicembre 2005 Esercizi su ricorsione, manipolazione stringhe, strutture dinamiche Problema: Esercizio
Esercizi in Python. Docente: Domenico Daniele Bloisi
Esercizi in Python Docente: Domenico Daniele Bloisi http://profs.scienze.univr.it/~bloisi/asl/asl.html Esercizio 1 Utilizzare il linguaggio di programmazione Python per stampare a video la scritta "prima
Ricorsione. DD cap. 5 pp KP cap. 5 pp
Ricorsione DD cap. 5 pp.160-184 KP cap. 5 pp.199-208 Un esempio Problema: prendere in input un intero e calcolarne il fattoriale se n>1 n!=n(n-1)(n-2)(n-3) 1; se n=0 o 1 n!=1. ma (n-1)! la definizione
Lab 13 Strutture e programmi su più file "
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 13 Strutture e programmi su più file " Lab13 1 n Sia data la struttura Esercizio 1" struct time { int hour, minute,
Lab 09 Strutture e programmi su più file
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 09 Strutture e programmi su più file Lab13 1 Alcune Informazioni Utili Funzioni per manipolare stringhe (in string.h)!
Programmazione I. Sessione giugno - luglio (Primo appello) Prova scritta 10 giugno Classe 1 (Matricole congrue a 0 modulo 3)
Programmazione I Sessione giugno - luglio (Primo appello) Prova scritta 10 giugno 2015 Classe 1 (Matricole congrue a 0 modulo 3) Proff. De Prisco - Visconti Cognome: Nome: Matricola: ; Riservato alla commissione
Programmazione ricorsiva: cenni
In quasi tutti i linguaggi di programmazione evoluti è ammessa la possibilità di definire funzioni/procedure ricorsive: durante l esecuzione di una funzione F è possibile chiamare la funzione F stessa.
STRUCT - ESERCIZIO 1
STRUCT - ESERCIZIO 1 Si vuole realizzare un programma di utilità matematica per gestire i numeri complessi. In particolare: 3. Progettare una opportuna struttura per la loro rappresentazione (in coordinate
INFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 6 Dott. Michele Zanella Ing. Gian Enrico Conti
INFORMATICA A Titolo presentazione sottotitolo A.A. 2018-19 Milano, XX mese 20XX Laboratorio n 6 Dott. Michele Zanella Ing. Gian Enrico Conti Ricorsione La ricorsione è un approccio per la risoluzione
Esercizio 1. Esercizio - 1
Sia data la struttura Esercizio 1 struct time { int hour, minute, second; }; Per semplicità si può definire il tipo Time typedef struct time Time; 1 Esercizio - 1 Si realizzi in un modulo tempo.h/tempo.c
9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea
Corso di Fondamenti di Programmazione canale E-O. Un esempio. Funzioni ricorsive. La ricorsione
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Ricorsione DD Cap. 5, pp. 160-184 KP Cap. 5, pp. 199-208 Un esempio Problema: prendere in input un intero e calcolarne il fattoriale
Introduzione al C. Lez. 2. Funzioni e Puntatori
Introduzione al C Lez 2 Funzioni e Puntatori Esercizio 1: test primalità Scrivere un programma che prenda in input un intero n, e stampa SI se n è primo, NO altrimenti (NB: un intero n è primo se è solo
LABORATORIO di INFORMATICA
Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto ESERCIZI - 1 http://www.diee.unica.it/giacinto/lab
APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO VI.2015
APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.VI.2015 VINCENZO MARRA Indice Esercizio 1 1 Definizione dei tipi P e T, e calcolo dell area.
Fondamenti di informatica T-1 (A K) Esercitazione 4: controllo del flusso
Fondamenti di informatica T-1 (A K) Esercitazione 4: controllo del flusso AA 2018/2019 Tutor: Lorenzo Rosa lorenzo.rosa@unibo.it 2 Esercitazione 4 Introduzione al calcolatore e Java Linguaggio Java, basi
Laboratorio. Due. 1) Switch 2) Costrutti Iterazione (For, While, do while)
Laboratorio Due 1) Switch 2) Costrutti Iterazione (For, While, do while) GLI ARGOMENTI DI OGGI Istruzione switch I costrutti di iterazione (For, while, do while) Le funzioni (e ricorsione) Terza Esercitazione
Opinione calcolamedia( ) Opinione inverti( )
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 memorie
Introduzione al C Lez. 4
Introduzione al C Lez. 4 Allocazione Dinamica della memoria http://www.di.unipi.it/~rossano/algo1/lez4.pdf Allocazione dinamica memoria In C la memoria può essere anche gestita in modo dinamico, attraverso
Laboratorio di Informatica
Record Laboratorio di Informatica Ingegneria Meccanica Lezione 9, 6 dicembre 2007 versione 18 dicembre 2007 Renato Menicocci Array: collezione di dati omogenei
C array. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso.
Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso. Non sappiamo a priori quante variabili dobbiamo definire per contenere gli interi.
7. Settima esercitazione autoguidata: alberi binari
7. Settima esercitazione autoguidata: alberi binari 31 7.1. Costruzione di un albero (ALBERI1.C) Scrivere un programma che - riceve il nome di un file contenente la rappresentazione parentetica di un albero
Assegnazione di una variabile
Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile
Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari
Input/Output Lettura e scrittura Caratteri e Stringhe: Terminale e file Input/output console file caratteri stringhe formattato ascii binari Linguaggio ANSI C Input/Output - 1 La libreria standard del
Introduzione al C. Lez. 2 Funzioni e Puntatori
Introduzione al C Lez 2 Funzioni e Puntatori Esercizio 1: test primalità Scrivere un programma che prenda in input un intero n, e stampa SI se n è primo, NO altrimenti (NB: un intero n è primo se e solo
Esercitazione 5. Corso di Fondamenti di Informatica. Laurea in Ingegneria Informatica
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 5 Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti
Laboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati 1 Note di carratere generale Docente: Camillo Fiorentini 9 ottobre 2007 L obiettivo è quello di scrivere delle semplici funzioni per risolvere problemi di tipo
Introduzione a. Funzioni di Ingresso e Uscita. Compilazione
Introduzione a Funzioni di Ingresso e Uscita Compilazione 2 Come si termina...... un programma in esecuzione (processo)? Ctrl + C In UNIX ci si basa sul concetto di terminale Anche da GUI, quello che si
Laboratorio di informatica Ingegneria meccanica
C: costanti introdotte con #define Laboratorio di informatica Ingegneria meccanica Lezione 4 22 ottobre 2007 Forma: #define nome valore Effetto: ogni occorrenza successiva di nome sarà rimpiazzata con
Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»
Linguaggio Testuale E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Delle volte viene chiamato metalinguaggio, e l algoritmo scritto tramite
Laboratorio di Informatica
Laboratorio di Informatica Seconda lezione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Dottoressa Sara Zuppiroli - sara.zuppiroli@unibo.it L'importanza di capire Perché non dobbiamo dichiarare
Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java
Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java AA 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Programma Introduzione al calcolatore e Java Linguaggio Java, basi e
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;
ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2
Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);
Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di
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
Ricorsione: C era una volta un Re
Ricorsione: C era una volta un Re I C era una volta un Re seduto sul sofà che disse alla sua serva raccontami una storia e la serva incominciò: I C era una volta un Re seduto sul sofà che disse alla sua
Ingresso ed Uscita in C. Luca Abeni
Ingresso ed Uscita in C Luca Abeni Input e Output in C Linguaggio C: progettato per essere semplice e con poche istruzioni Non esistono neanche istruzioni di ingresso / uscita (I/O)!!! Ingresso ed uscita
Problema: stampa degli interi compresi tra n e m
Costrutti imperativi Problema: stampa degli interi compresi tra n e m http://caml.inria.fr/pub/docs/manual-ocaml/libref/pervasives.html Output functions on standard output val print_string: string -> unit
Appunti di informatica. Lezione 8 anno accademico Mario Verdicchio
Appunti di informatica Lezione 8 anno accademico 2016-2017 Mario Verdicchio Il ciclo FOR Molto spesso in un programma bisogna ripetere un operazione per un numero prefissato di volte Si tratta di un iterazione
Esercizio 1 - Soluzione (array)
Esercizio 1 Creare un programma che legga da input un numero non noto a priori di interi (al più 10) terminati da 0. Tale sequenza può eventualmente contenere numeri ripetuti. Si memorizzi tale sequenza
Lab 13 Strutture e programmi su più file
Fondamenti di Informatica e Laboratorio T-AB e Fondamenti di Informatica T1 Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2010/2011 Lab 13 Strutture e programmi su più file
Esercitazione 11. Liste semplici
Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene
Algoritmi di ordinamento: Array e ricorsione
Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Algoritmi di ordinamento: Array e ricorsione 2 1 Indice Algoritmi di ordinamento: Insertion
Fondamenti di Programmazione
A.A. 08/09 Fondamenti di Programmazione (canale E-O) Docente: Prof.ssa Tiziana Calamoneri calamo@di.uniroma1.it Esercitatore: Dott. Roberto Petroccia petroccia@di.uniroma1.it Pagina del corso: http://twiki.di.uniroma1.it/twiki/view/programmazione1/eo/webhome
Laboratorio 1. 15/16 marzo 2018
Laboratorio 1. 15/16 marzo 2018 Attivitá Professionalizzante A.A. 2017/18 Premessa Quando avete finito gli esercizi, inviatemeli in un unico file compresso chiamato lab1 CognomeNome (zip, rar,...), all
PROGRAMMAZIONE: La selezione
PROGRAMMAZIONE: La selezione Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l altra, riga per
Istruzioni di controllo
Istruzioni di controllo Le istruzioni in C Assegnazione Sequenza I/O Test Cicli Controllo = che cosa è la prossima cosa da fare La prossima cosa da fare è quella che segue La prossima cosa da fare dipende
Introduzione al C++ (continua)
Introduzione al C++ (continua) I puntatori Un puntatore è una variabile che contiene un indirizzo di memoria pi_greco 3.141592 pi_greco_ptr indirizzo di 3.141592 & DEREFERENZIAZIONE RIFERIMENTO * se x
Tutorato Elementi di Informatica 2018
Università degli Studi di Cagliari Pattern Recognition & Application Lab Dipartimento di Ingegneria Elettrica ed Elettronica Tutorato Elementi di Informatica 2018 Esercitazione 2 Introduzione e Tipi di
PROGRAMMAZIONE: Le strutture di controllo
PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l
Ambienti di Programmazione per il Software di Base
Ambienti di Programmazione per il Software di Base Le Funzioni in C Esercizi sulle Funzioni svolti Esercizi sulle Funzioni da svolgere A.A. 2011/2012 Ambienti di Programmazione per il Software di Base