#include <iostream.h> #include <stdlib.h> int main(){ return 0;
|
|
|
- Albina Maggi
- 8 anni fa
- Просмотров:
Транскрипт
1 L'ambiente DevC++ e la struttura di un programma C++ Il C++ è stato sviluppato da Bjarne Stroustrup negli anni '80 (Bell Laboratories) ed è senza dubbio il linguaggio di programmazione ad alto livello più utilizzato e potente. In quest'articolo cominciamo a vedere come è strutturato un semplice programma C++ e a realizzare una prima applicazione. Per creare un programma abbiamo bisogno di varie componenti: un ambiente di sviluppo (il compilatore), un linguaggio di programmazione (nel nostro caso il C++) e le sue librerie, cioè un insieme di funzioni che il linguaggio stesso ci mette a disposizione. L ambiente di sviluppo che useremo è il DevC++. Una volta installato, facciamolo partire e nel menu file selezioniamo new->project e poi ancora empty project dandogli un nome, ad esempio cplusplus. A questo punto aggiungiamo un foglio bianco al nostro progetto facendo di nuovo file e new->source file. Rinominiamo il source file con FirstProg e passiamo subito a scrivere il nostro codice: #include <iostream.h> Questa è la struttura di ogni programma C++. Le righe uno e due, gli include, servono ad importare le librerie nel nostro programma, in particolar modo iostream.h include le funzioni riguardanti l input e l output grazie alle quali possiamo leggere da tastiera e stampare a video mentre stdlib.h sta per standard library e include alcune funzioni standard, come vedremo in seguito. In alcuni programmi si usa la nuova libreria iostream invece della iostream.h. In questo caso lo si dice al programma con la riga using namespace std; cioè #include <iostream.h> using namespace std; Il programma comincia con la riga int main() e tutto quello che viene dopo, tra le parentesi graffe aperte e chiuse, è il nostro punto di ingresso. La scritta int main() vuole dire che main è una funzione che restituisce come valore un int, cioè un numero intero; infatti nel corpo del main troviamo return 0 che vuol dire che restituiamo il valore intero 0. Lo zero in C++ vuol dire che tutto è andato bene e che quindi il programma che in ultima analisi è il corpo della funzione main è terminato con successo. Questo programma funziona ma non fa nulla. Aggiungiamoci un'ulteriore riga: #include <iostream.h>
2 cout << "Primo programma C++ \n CIAO! \n"; Il comando cout<< serve a mandare la stringa che viene dopo nel flusso di output (il nostro monitor). Una stringa si definisce tra i doppi apici ; praticamente tra i doppi apici possiamo scrivere tutto quello che vogliamo e questo verrà stampato a video grazie al comando cout <<. Lo \n serve ad andare a capo. Da notare che ogni riga di codice deve terminare con il punto e virgola. Infine aggiungiamo una funzione di servizio delle stdlib.h che serve a bloccare il programma fin quando non si preme un tasto, questo per riuscire a vedere quello che abbiamo realizzato. Ecco il codice finale: #include <iostream.h> cout << "Primo programma C++ \n CIAO! \n"; system( PAUSE ); La compilazione Ora passiamo alla compilazione del nostro primo programma, cioè la traduzione in linguaggio macchina del codice scritto in un linguaggio di programmazione. Andiamo nel menu execute e premiamo su Compile&Run: dovrebbe così avviarsi il nostro primo programma in C++. In ogni parte del codice le linee che iniziano con i caratteri // rappresentano dei commenti che ci aiutano a ricordare cosa abbiamo fatto. #include <iostream.h> //libreria input/output // libreria standard //punto di ingresso //STAMPA A VIDEO cout << "Primo programma C++ \n CIAO! \n"; system( PAUSE ); //punto di uscita
3 Se andiamo nella cartella del nostro progetto troviamo i seguenti file: - cplusplus.dev è il file del progetto - firstprog.cpp è il listato del codice - firstprog.o è il file oggetto - firstprog.exe è il file eseguibile Una reale applicazione Il programma firstprog ci ha permesso di capire qual è la struttura di un programma C++, ora pronti per fare qualcosa di concreto: un convertitore in euro. Prendiamo il codice di firstprog è apportiamo le seguenti modifiche: #include <iostream.h> cout << " EuroConvertitore \n"; cout << " Immetti il valore in lire da convertire: "; //DICHIARAZIONI DELLE VARIABILI float cambio= ; float valoredaconvertire; float valoreconvertito; system( PAUSE ); Il cout già lo abbiamo visto e serve a mandare le scritte a video; la novità sono le dichiarazioni delle variabili che sono delle locazioni statiche di memoria in cui un valore viene memorizzato. Le variabili che abbiamo utilizzato sono di tipo reale (float), mentre in generale per dichiarare una variabile occorre mettere prima il tipo e poi il nome che noi gli vogliamo dare. Ad esempio se ci serve un intero scriveremo int mionumerointero, se ci serve un carattere scriveremo invece char miocarattere. E' una buona abitudine di programmazione dare un nome alle variabili che ci ricordino il suo significato nel corso del programma. Se scrivessimo float a= ; float b; float c; il programma funzionerebbe lo stesso ma sarebbe difficile da gestire e ricordare. Tornado al codice notiamo che la variabile cambio è stata inizializzata perché sarà una costante nel nostro programma e non verrà modificata. Sarebbe un buon uso anche inizializzare le altre variabili al valore zero per non avere effetti indesiderati:
4 #include <iostream.h> cout << " EuroConvertitore \n"; cout << " Immetti il valore in lire da convertire: "; //DICHIARAZIONI DELLE VARIABILI float cambio= ; float valoredaconvertire=0; float valoreconvertito=0; system( PAUSE ); Ora dobbiamo chiedere all'utente della nostra applicazione di immettere un valore per la variabile valoredaconvertire e questo è possibile con il comando cin duale di cout. Ecco il codice: #include <iostream.h> cout << " EuroConvertitore \n"; cout << " Immetti il valore in lire da convertire: "; //DICHIARAZIONI DELLE VARIABILI float cambio= ; float valoredaconvertire=0; float valoreconvertito=0; cin >> valoredaconvertire; system( PAUSE ); Il programma verrà eseguito fino al cin (si legge ci-in) dopo di che si interrompe e attende che venga immesso un valore dal dispositivo di input che per default è la tastiera. Questo valore viene poi immesso nella variabile di tipo reale valoredaconvertire. Ora aggiungiamo il codice che ci permette la conversione e la visualizzazione del risultato col solito cout.
5 #include <iostream.h> cout << " EuroConvertitore \n"; cout << " Immetti il valore in lire da convertire: "; //DICHIARAZIONI DELLE VARIABILI float cambio= ; float valoredaconvertire=0; float valoreconvertito=0; cin >> valoredaconvertire; //CODICE DELL'OPERAZIONE DI CONVERSIONE valoreconvertito = valoredaconvertire/cambio; //STAMPA DEL RISULTATO cout << "\nil valore convertito e' " << valoreconvertito << " euro.\n"; system( PAUSE ); Il codice dell'operazione di conversione è una semplice espressione matematica, cioè dividiamo la variabile valoredaconvertire (il cui valore è quello immesso dall'utente) per il cambio. L'uguale è l'operatore di assegnazione a sinistra, non possiamo scrivere l'inverso! Per quanto riguarda cout c'è una novità: inviamo al dispositivo di output oltre a delle stringe anche una variabile, il tutto separato dai doppi simboli <<. ESEMPIO 1: Specifica del problema: Scrivere un programma che forniti in ingresso da tastiera due numeri interi diversi tra loro determini quale è il maggiore dei due. Si suppone che l ingresso effettuato da chi utilizza il programma sia corretto (che i due dati in ingresso sono numeri interi e sono diversi). L algoritmo per la risoluzione di questo problema è molto semplice. I due numeri (chiamiamoli A e B) vengono confrontati. Se A è maggiore di B viene stampata a video la frase A è maggiore di B, altrimenti viene stampata a video la frase B è maggiore di A.
6 Esecuzione e test Una volta realizzato, il programma deve essere testato per individuare eventuali malfunzionamenti ed assicurarsi che sia corretto rispetto alle sue specifiche Pertanto devono essere definiti tutti i possibili casi di test e il programma deve essere eseguito su ognuno di essi. In concreto si tratta di identificare gli insiemi di ingressi che determinano tutte le possibili sequenze dinamiche. In questo caso le possibile sequenze dinamiche sono due. E sono determinate dai due rami dell if I due esempi di esecuzione mostrano che il programma si comporta correttamente sia nel caso che A sia minore di B, sia nel caso che A sia maggiore di B.
7 Esempio 2 Specifica del problema: Scrivere un programma che forniti in ingresso da tastiera tre numeri interi diversi tra loro, determini quale è il minore dei tre. Si suppone che l ingresso effettuato da chi utilizza il programma sia corretto (in ingresso sono forniti tre interi e sono tre numeri diversi tra loro). L algoritmo per la risoluzione di questo problema può essere descritto mediante il diagramma di flusso già presentato nella lezione sulle istruzioni strutturate e riportato nel prossimo lucido La determinazione dei casi di test ed il test della soluzione proposta è lasciata per esercizio. L algoritmo quindi può essere implementato utilizzando due costrutti if-then-else innestati L elaborazione è Y=F(X) Dati iniziali X= A, B, C interi da confrontare Dati finali Y= minimo tra i tre valori Abbiamo bisogno quindi di tre variabili per memorizzare i valori da confrontare di tipo intero. In questo semplice esempio ci limitiamo a stampare il risultato del confronto.
8 Osservazioni Il secondo costrutto if-then-else è innestato nel primo ed è precisamente l istruzione che deve essere eseguita nel caso in cui la condizione (A<B && A<C) risulti falsa. La condizione logica (A<B && A<C) è composta: cioè è costituita da due relazioni in AND (l operatore &&). Ciò significa che entrambe devono risultare vere affinchè globalmente la condizione risulti vera. Se anche una sola delle due relazioni risulta falsa, allora la valutazione della condizione produce come risultato falso. Le istruzioni che devono essere eseguite nel ramo then (notate che in C/C++ la parola then non è espressa esplicitamente) e nel ramo else di un costrutto if-then-else devono essere chiuse in un blocco se sono più di una, mentre è possibile omettere le parentesi graffe se c è una unica istruzione da eseguire. Un costrutto globalmente preso è considerato come un unica istruzione (infatti non c è bisogno delle parentesi prima e dopo l if innestato). Esempio 3 Specifica del problema: Scrivere un programma che realizzi un semplice menù: l utente fornisce in ingresso due numeri interi A e B ed ha la possibilità di scegliere tra tre opzioni. In corrispondenza della prima viene effettuata la somma A+B, in corrispondenza della seconda viene effettuato il prodotto A*B, in corrispondenza della terza viene effettuata la differenza A-B Si suppone che l ingresso effettuato da chi utilizza il programma sia corretto (in ingresso sono forniti due interi e l opzione è del tipo richiesto dal programma). L algoritmo per la risoluzione di questo problema è molto semplice e può essere realizzato mediante l uso del costrutto di selezione a più vie (case) Tale costrutto in C/C++ è reso dall istruzione switch e mediante l opportuno utilizzo dell istruzione di salto break.
9 Osservazioni Il costrutto di selezione a più vie in C/C++ utilizza le parole chiave switch e case. Inoltre il suo corpo costituisce un blocco, cioè deve essere racchiuso tra parentesi graffe Dopo lo switch viene valutata l espressione tra parentesi (in questo caso il valore della variabile scelta) che deve assumere valore in un insieme discreto e finito. Tutti i possibili valori che l espressione può assumere devono essere noti a priori A ciascun case corrisponde uno dei possibili valori (espressi come costanti del loro tipo e seguiti dai e le istruzioni da eseguire in corrispondenza del presentarsi di tale valore Non sono necessarie le parentesi graffe per racchiudere le istruzioni di un singolo case Il costrutto switch prevede la possibilità di esprimere un default: cioè le istruzioni che devono essere eseguite nel caso che la valutazione dell espressione produca un valore diverso da quelli previsti Per ottenere un comportamento equivalente al costrutto di selezione descritto in maniera generale nella lezione precedente, è necessario utilizzare al termine di ogni case l istruzione di salto break che non appartiene al costrutto switch e anzi provoca l uscita dallo switch: il controllo passa all istruzione successiva allo switch ESERCIZIO: ELIMINARE i break ed eseguire gli stessi casi di test. Qual è il comportamento del costrutto switch? ESERCIZIO: Realizzare lo stesso programma utilizzando degli if innestati e/o degli if in cascata (uno dopo l altro, senza innestarli). Esempi di Programmi con cicli ESEMPIO 4: Specifica del problema: scrivere un programma che fornito in ingresso da tastiera un numero intero N non negativo calcola il fattoriale di N. Si suppone che l ingresso effettuato da chi utilizza il programma sia corretto (viene introdotto un numero intero)
10 L algoritmo per la risoluzione di questo problema ricalca il procedimento per il calcolo del fattoriale, che può essere iterativo o ricorsivo. La ricorsione non è affrontata in questo corso, pertanto esamineremo solo la soluzione iterativa. La procedura iterativa per il calcolo del fattoriale è la seguente: Se N è uguale a 0 il fattoriale di N per convenzione è 1 Altrimenti se N è maggiore di 0 il fattoriale di N si calcola così: N!= 1 x 2 x (N-1) x N Ad esempio, supponiamo che N sia uguale al valore 4: 4!= 1 x 2 x 3 x 4 L algoritmo per la risoluzione di questo problema richiede quindi che venga generata una sequenza di interi 1,2,3,4 da 1 a N. Ogni elemento della sequenza deve essere moltiplicato per i precedenti. Abbiamo bisogno quindi di memorizzare i prodotti man mano che vengono effettuati. In effetti è lo stesso procedimento mentale che adottiamo se vogliamo calcolare a mente 4!: 1x2=2 (e ricordiamo 2) 2 x 3= 6 (e ricordiamo 6) 6 x 4 = 24 il fattoriale di 4 è 24 L elaborazione è Y=F(X) Dati iniziali X= valore intero di cui calcolare il fattoriale Dati finali Y= il fattoriale del valore X Abbiamo bisogno quindi di una variabile per memorizzare il valore di cui calcolare il fattoriale e di una variabile per contenere il risultato: chiamiamole rispettivamente N e fattoriale. Saranno di tipo intero perchè N deve essere intera e il prodotto di numeri interi è un intero. Abbiamo bisogno poi di variabile di algoritmo (non sono dati di iniziali o finali ma servono per portare avanti l elaborazione): una variabile per contare il numero di iterazioni e una variabile per memorizzare i risultati parziali, chiamiamole rispettivamente i e parziale. Saranno ovviamente di tipo intero. parziale deve contenere di volta in volta i risultati dei prodotti effettuati, QUINDI DEVE ESSERE INIZIALIZZATA all elemento NEUTRO per il prodotto (altrimenti il suo valore iniziale sarà indefinito, e verrà moltiplicato per il valore calcolato ottenendo così un risultato SBAGLIATO): parziale=1 parziale=1 i=1 // primo elemento della sequenza di numeri 1,2,3, N ripeti finchè i<=n : parziale=parziale x i i=i+1 // genera il numero successivo nella sequenza fattoriale = parziale // L ultimo dei risultati parziali è evidentemente il risultato finale. Questo è l algoritmo per il calcolo del fattoriale. Bisogna però considerare i casi particolari: se N inizialmente vale 0 oppure 1 fattoriale = 1 altrimenti esegui l'algoritmo per il calcolo del fattoriale Bisogna inoltre considerare che N deve rispettare delle condizioni, per definizione di fattoriale infatti deve essere un numero non negativo. Questo controllo può essere aggiunto prima di effettuare il calcolo del fattoriale, ad esempio: se N<0 stampa un messaggio di errore altrimenti calcola il fattoriale di N In definitiva: se N<0 stampa un messaggio di errore
11 altrimenti se N inizialmente vale 0 oppure 1 fattoriale = 1 altrimenti parziale=1 i=1 // primo elemento della sequenza di numeri 1,2,3, N ripeti finchè i<=n : parziale=parziale x i i=i+1 // genera il numero successivo nella sequenza fattoriale = parziale // L ultimo dei risultati parziali è evidentemente il risultato finale. Ora possiamo tradurre l algoritmo in linguaggio C/C++ aggiungendo la definizione delle varialbili e le istruzioni di ingresso (lettura di N) e di uscita (stampa del risultato) Il ciclo viene espresso mediante un for (ciclo a conteggio) ESERCIZIO: implementare il programma utilizzando in vece del ciclo for il ciclo while ESERCIZIO: realizzare il diagramma di flusso del presente algoritmo Osservazioni Il secondo costrutto if-then-else è innestato nel primo ed è precisamente l istruzione che deve essere eseguita nel caso in cui il controllo sull input abbia esito positivo. Pertanto il calcolo del fattoriale costituisce il ramo else dell if più esterno. La condizione logica (N==0 N==1) è composta: cioè è costituita da due relazioni in OR (l operatore ). Ciò significa che almeno una di esse deve risultare vera affinchè globalmente la condizione risulti vera. Se entrambe le relazioni risultano false, allora la valutazione della condizione produce come risultato falso. Attenzione. La relazione di uguaglianza è espressa dall operatore ==. Un errore comune è utilizzare per distrazione l operatore di assegnazione = al posto dell operatore ==. La sostituzione
12 non provoca errori in compilazione, perché il left value viene modificato e la condizione così espressa è la seguente: se il valore assunto dal left value è vero Le istruzioni che devono essere eseguite nel ramo else del primo if costituiscono un blocco. Nel blocco vi sono le seguenti 3 istruzioni: 1. un if-then-else (che a sua volta contiene un for nel ramo else), 2. una assegnazione e 3. una istruzione di uscita (la stampa del risultato). ESEMPIO 5: Specifica del problema: modificare l esempio 4 in modo che dopo la prima esecuzione sia possibile effettuare eventualmente ulteriori esecuzioni consecutive, a scelta dell utente Vuole essere un semplice esempio di utilizzo del ciclo a condizione finale. Per realizzare il comportamento descritto dalla specifica infatti è necessario che il calcolo del fattoriale venga effettuato almeno una volta, dopo la prima esecuzione all utente viene chiesto se desidera calcolare un altro fattoriale o meno. Il programma sviluppato per l esempio 4 deve essere quindi il corpo di un ciclo a condizione finale. Il valore di verità della condizione è determinato dalla scelta dell utente. Si noti, eseguendo il programma riportato nella prossima slide, che l istruzione system ( PAUSE ) non è più necessaria
STRUTTURE DI CONTROLLO DEL C++
STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto
Lezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo [email protected] Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);
Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i
INFORMATICA. Strutture iterative
INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale
Rappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
INTRODUZIONE ALLA PROGRAMMAZIONE
INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni
Laboratorio di programmazione
Laboratorio di programmazione Lezione II Tatiana Zolo [email protected] 1 IL PROGRAMMA C++ Istruzioni (espressioni terminate da ; ) istruzioni di dichiarazione (es. int x = 0;); istruzioni di assegnamento
Le strutture di controllo in C++
Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli
Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi
Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio
Programmazione modulare
Programmiamo in.. Programmazione modulare Un programma complesso si suddivide in più sottoprogrammi o funzioni. Un programma suddiviso in piccoli pezzi, è più semplice da gestire da aggiornare da correggere
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
Linguaggio C Informatica Grafica
Linguaggio C Informatica Grafica Corsi di Informatica Grafica Prof. Manuel Roveri Dipartimento di Elettronica e Informazione [email protected] Linguaggio C Breve storia Struttura di un programma Variabili
Le strutture di controllo
INFORMATICA B Ingegneria Elettrica Le strutture di controllo Selezione un esempio introduttivo Si disegni il diagramma di flusso di un algoritmo che chiede all utente un valore intero e visualizza il suo
Fondamenti di Informatica
Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura
Fondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
Le basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base
Istituto Tecnico Industriale M. M. Milano Polistena Classe III D a.s. 2015/2016 C++ Guida Base Prof. Rocco Ciurleo - ITIS M. M. Milano Polistena - 3 D a.s. 2015/2016 1 Le Origini Il Linguaggio C++ è il
Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE
Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test
Espressioni logiche Espressioni Logiche e Istruzione di Test Fondamenti di Informatica 1 Massimo Di Nanni Gennaio, 2001 Espressioni logiche nelle Istruzioni di Test e di Iterazione Calcolo del massimo
Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin
Linguaggio C strutture di controllo: strutture iterative Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Strutture iterative
Introduzione alla programmazione Esercizi risolti
Esercizi risolti 1 Esercizio Si determini se il diagramma di flusso rappresentato in Figura 1 è strutturato. A B C D F E Figura 1: Diagramma di flusso strutturato? Soluzione Per determinare se il diagramma
HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.
HOMEWORKS Questi esercizi saranno proposti di tanto in tanto e forniti sempre SENZA soluzioni. Come materiale complementare ai libri di testo e alle lezioni frontali e di esercitazione, si consiglia di
Fondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 Obiettivi di questa lezione 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Valutazione in cortocircuito In C, le espressioni booleane sono
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
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
5 - Istruzioni condizionali
5 - Istruzioni condizionali 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
RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA
RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA Anno scolastico Lab informatica AULA n 35 Data inizio svolgimento Progr. relazione primo trimestre secondo pentamestre Cognome e Nome DATI DELLO STUDENTE
6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it
Linguaggio C: introduzione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi
Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni [email protected] Programmazione prof. Domenico
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
Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A
Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare
Il generatore di numeri casuali
Il generatore di numeri casuali file di libreria: stdlib.h int rand(void) La funzione restituisce un numero casuale di tipo intero compreso tra 0 e RAND_MAX (estremi compresi) Esempio: scriviamo un programma
#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione
Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto
Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra
Introduzione alla programmazione in C(++)
Testi Testi Consigliati: Introduzione alla programmazione in C(++) A. Kelley & I. Pohl C didattica e programmazione A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. D. M. M. Ritchie
CORSO DI PROGRAMMAZIONE
ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE INTRODUZIONE ALLE ISTRUZIONI ITERATIVE DISPENSA 03.01 03-01_Iterazioni_[ver_15] Questa dispensa è rilasciata sotto la licenza Creative
I CARATTERI E LE STRINGHE
I CARATTERI E LE STRINGHE IL CODICE ASCII Per memorizzare i simboli grafici corrispondenti ai caratteri bisogna associare un numero intero a ciascuno di essi Il codice ASCII / æski/ (American Standard
Variabili e Istruzioni
Exit Menù Variabili e Istruzioni 1 Le Variabili Una VARIABILE è un oggetto identificato da un NOME e da uno STATO, detto CONTENUTO o VALORE. Possiamo immaginarla come una scatola contenuto Pippo 11 nome
Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a
Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Programmi Un elaboratore riceve dei dati in ingresso, li elabora secondo una sequenza predefinita di operazioni e infine restituisce il risultato sotto forma
Informatica! Appunti dal laboratorio 1!
Informatica Appunti dal laboratorio 1 Sistema Operativo Windows Vista, Windows 7, Mac OS X, Linux, Debian, Red Hat, etc etc Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti
Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09
Introduzione all ambiente MATLAB Richiami II Programmazione MATLAB MATLAB non è un vero e proprio linguaggio di programmazione, ma permette comunque di realizzare programmi utilizzando le classiche strutture
Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
Programmazione in Python. Moreno Marzolla
Programmazione in Python Moreno Marzolla http://www.moreno.marzolla.name/ Copyright 2011, Moreno Marzolla (http://www.moreno.marzolla.name/teaching/labinf2011/) This work is licensed under the Creative
Qualsiasi programma in C++ segue lo schema:
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
PROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
Tipi di dato e istruzioni elementari in C++
Tipi di dato e istruzioni elementari in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli
Elementi di C++ di base
Elementi di C++ di base Corso di Programmazione 3 - Ingegneria dell Informazione e dell Organizzazione 10 ottobre, 2001 Gino Perna Esempi di semplici programmi in C++ Il programma più semplice consiste
perror: individuare l errore quando una system call restituisce -1
perror: individuare l errore quando una system call restituisce -1 Quando una system call (o una funzione di libreria) non va a buon fine, restituisce come valore -1 Come si fa a sapere più precisamente
ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }
ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il
a.a Codice corso: 21012, HOMEWORKS
HOMEWORKS Questi esercizi saranno proposti ogni 2 settimane e forniti sempre SENZA soluzioni. Come materiale complementare ai libri di testo e alle lezioni frontali e di esercitazione, si consiglia di
Algoritmi e soluzione di problemi
Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)
in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico
Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito
Programmazione web lato client con JavaScript. Marco Camurri 1
Programmazione web lato client con JavaScript Marco Camurri 1 JavaScript E' un LINGUAGGIO DI PROGRAMMAZIONE che consente di inserire codice in una pagina web Sintassi simile a Java (e al C), ma NON E'
COMANDI ITERATIVI. Ivan Lanese
COMANDI ITERATIVI Ivan Lanese Argomenti Comando while Comando do while Comando for Comando while: reminder while (condizione) comando; Semantica: la condizione viene testata: se è vera, viene eseguito
Laboratorio di Informatica
Laboratorio di Informatica Seconda lezione a Python Dottore Paolo Parisen Toldin - [email protected] Dottoressa Sara Zuppiroli - [email protected] L'importanza di capire Perché non dobbiamo dichiarare
Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software
Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell
Foglio Elettronico Lezione 1
- Introduzione - Celle e riferimenti - Formule - Approfondimenti - Funzioni logiche Sommario Introduzione - Foglio elettronico o foglio di calcolo - Cos'è? Strumento per raccogliere dati organizzati in
La programmazione in linguaggio C
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine La programmazione in linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni
3 Costrutti while, for e switch
Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione dei costrutti while, for e switch. I costrutti per costruire cicli in C sono il while, la variante
1 Esercizi in pseudocodice
Questa dispensa propone esercizi sulla scrittura di algoritmi in un linguaggio semiformale, utile all acquisizione delle abilità essenziali per implementare algoritmi in qualsiasi linguaggio di programmazione.
Introduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III Indice
LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 18.III.2015 VINCENZO MARRA Indice Parte 1. L algoritmo euclideo 3 Esercizio 1 3 L algoritmo euclideo
Programmazione a blocchi. Algobuild Prof. Sergio Roselli
Programmazione a blocchi Algobuild Prof. Sergio Roselli Blocchi base Inizio programma I Fine programma F Input IN A Output Esecuzione OUT A A = 5 + 1 L interprete Algobuild Algobuildpermette di trascrivere
Istruzioni iterative (o cicliche)
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Istruzioni iterative (o cicliche) Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria
osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1
Esempio: Leggere due interi positivi e calcolarne il massimo comun divisore. MCD(12, 8) = 4 MCD(12, 6) = 6 MCD(12, 7) = 1 Sfruttando direttamente la definizione di MCD osservazione: 1 MCD(m,n) min(m,n)
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=
Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media.
Esercizio 1 Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media. #include Esercizio 1 - Soluzione int main() int num1, num2, num3, somma; float
19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni 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
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
5. Codifica degli Algoritmi in C
40 5. Codifica degli Algoritmi in C La traduzione di algoritmi in linguaggi di programmazione rende posbile l esecuzione di programmi da parte del calcolatore. In questo corso codificheremo gli algoritmi
Definizione di metodi in Java
Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un
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
La programmazione nel linguaggio C
3 La programmazione nel linguaggio C 3.0 La programmazione nel linguaggio C c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 3.0 0 Introduzione ai programmi
Corso di Fondamenti di Informatica Il sistema dei tipi in C++
Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout
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
Linguaggio C++ Linguaggi di terza generazione
Linguaggio C++ Linguaggi di terza generazione Insieme di primitive ad alto livello, ognuna traducibile in una sequenza di primitive in linguaggio macchina Es.: pesolordo pesocarico + pesoveicolo Due load,
