Indovina la lettera...
|
|
- Elisabetta Ferri
- 7 anni fa
- Visualizzazioni
Transcript
1 Indovina la lettera... La lezione di oggi consiste nel preparare un programma che chiede all'utente di indovinare quale sia il carattere generato dal programma stesso in modo casuale. Il numero totale di tentativi a disposizione dell'utente deve poter essere stabilito dall'utente stesso. Prima di iniziare a scrivere il programma è buona norma stabilire come debba essere strutturato il codice, in particolare quale sia la sequenza logica delle operazioni da svolgere. Stabilire questo permette, tra le altre cose, di poter decidere quante e quali variabili sono necessarie per la preparazione del codice. Operazioni da svolgere 1. Il programma deve generare casualmente un carattere; nel farlo bisogna evitare che sia un carattere di controllo o un carattere della tabella ASCII estesa 2. Per dare un aiuto all'utente possiamo richiamare la funzione analisi_carattere(), in modo da far conoscere all'utente stesso a quale categoria appartenga il carattere generato in modo casuale 3. L'utente deve poter stabilire quanti tentativi intende fare per indovinare il numero 4. L'utente deve poter inserire un carattere, per cercare di indovinare quale sia il valore di quello generato casualmente dal programma. Tale operazione deve poter essere effettuata almeno tante volte quante stabilito al punto (3). Nel caso in cui l'utente indovini il carattere generato in modo casuale, il programma deve visualizzare un messaggio per notificare la cosa e all'utente deve essere impedito di inserire ulteriori caratteri. variabili necessarie char car_casuale int num_tentativi char prova int indice
2 Ora analizziamo singolarmente ciascuna operazione e stabiliamo come essa debba essere tradotta in linguaggio C. 1. Il programma deve generare casualmente un carattere; nel farlo bisogna evitare che sia un carattere di controllo o un carattere della tabella ASCII estesa Alla variabile car_casuale va assegnato un carattere casuale il cui codice ASCII deve risultare compreso tra 32 e 127 (per evitare quelli di controllo e quelli della tabella estesa) Fino ad ora abbiamo generato numeri casuali compresi tra 0 ed un altro numero usando l'operatore %. Nel nostro caso, se immaginiamo di iniziare a contare da 32, per arrivare al massimo fino a 127 possiamo generare numeri che vadano da 0 fino a 95. Una volta generato un numero casuale compreso tra 0 e 95 gli sommiamo 32 ed otteniamo l'intervallo richiesto car_casuale = 32 + rand() % 96 ; 2. Per dare un aiuto all'utente possiamo richiamare la funzione analisi_carattere(), in modo da far conoscere all'utente stesso a quale categoria appartenga il carattere generato in modo casuale Per svolgere questo compito è sufficiente richiamare la funzione. Per farlo, dovremo utilizzare la direttiva del preprocessore #include passandole come parametro "mie_funzioni.h" Chiaramente, l'implementazione della funzione va modificata in modo tale che essa non mostri all'utente il carattere analizzato L'utente deve poter stabilire quanti tentativi intende fare per indovinare il numero La variabile num_tentativi deve poter essere inizializzata dall'utente; al momento siamo in grado di inserire solo caratteri che vadano dallo 0 al 9. printf("\n Quanti tentativi intendi effettuare ( 1 -> 9 )? "); num_tentativi = getchar(); /* assegno alla variabile il codice ASCII del carattere premuto, NON il valore numerico del carattere */ // per risolvere il problema tolgo 48 num_tentativi = num_tentativi - 48 ; // perché 48?!? A questo punto la variabile num_tentativi contiene il valore numerico del carattere premuto sulla tastiera 4. L'utente deve poter inserire un carattere, per cercare di indovinare quale sia il valore di quello generato casualmente dal programma. Tale operazione deve poter essere effettuata almeno tante volte quante stabilito al punto (3). Nel caso in cui
3 l'utente indovini il carattere generato in modo casuale, il programma deve visualizzare un messaggio per notificare la cosa e all'utente deve essere impedito di inserire ulteriori caratteri. Per poter ripetere una procedura un certo numero di volte è necessario utilizzare un costrutto iterativo; nel nostro caso, visto che sappiamo già quale sia il numero massimo di iterazioni da effettuare, possiamo utilizzare il costrutto for(inizializzazione; condizione di continuazione; iterazione) Nel caso in esame, come istruzione iniziale possiamo assegnare all'indice, indice, il valore di partenza, ovvero 0. Il ciclo deve proseguire fino a quando l'indice rimane minore del numero scelto dall'utente, e ad ogni passo del ciclo l'indice deve essere incrementato di un'unità. for(indice = 0; indice < num_tentativi; indice ++) {... All'interno del ciclo, devono essere svolte le seguenti operazioni: a. l'utente deve inserire un carattere b. il carattere deve essere confrontato con quello generato casualmente, car_casuale c. se il carattere inserito coincide con quello generato casualmente il programma deve avvisare l'utente della cosa e poi il ciclo deve essere interrotto d. se il carattere inserito non coincide con quello generato casualmente, il programma deve notificare la cosa all'utente Ora siamo pronti per iniziare a scrivere il codice. // inizio codice #include <stdio.h> #include <stdlib.h> #include "mie_funzioni.h" int main() {char car_casuale,prova; int num_tentativi, indice;
4 car_casuale = 32 + rand() % 96; // forniamo un'indicazione all'utente analisi_carattere(car_casuale); printf("\n Quanti tentativi intendi effettuare ( 1 -> 9 )? "); num_tentativi = getchar() - 48; // identica alle 2 istruzioni viste sopra for(indice = 0; indice < num_tentativi; indice++) prova = getchar(); if( prova == car_casuale ) // {printf("\n spiacente, ma non hai indovinato..."); return 0; // fine codice Domanda: questo codice, così come è stato implementato, non permette all'utente di inserire alcun carattere: come mai? Come risolviamo il problema? Proposta: un modo alternativo di implementare il costrutto if- In C le variabili, le espressioni e le assegnazioni possiedono un valore; cerchiamo di sfruttare questo fatto! Assegno alla variabile prova il valore restituito da getchar(); l'assegnazione ha un valore pari a quello di prova e quindi posso confrontare tale valore con quello del carattere generato casualmente
5 for(indice = 0; indice < num_tentativi; indice++) if( (prova = getchar()) == car_casuale ) {printf("\n spiacente, ma non hai indovinato..."); Possiamo essere un po' più sintetici, sfruttando il fatto che la variabile prova è del tutto accessoria, in quanto serve solo a salvare temporaneamente il valore restituito da getchar(); si può quindi analizzare direttamente tale valore. for(indice = 0; indice < num_tentativi; indice++) if( getchar() == car_casuale ) {printf("\n spiacente, ma non hai indovinato..."); Per risparmiare ulteriore memoria, possiamo eliminare anche la variabile indice modificando leggermente il ciclo... primo passo for(indice = num_tentativi; indice > 0; indice--) if( getchar() == car_casuale ) {printf("\n spiacente, ma non hai indovinato...");
6 secondo passo for(num_tentativi;num_tentativi > 0; num_tentativi--) if( getchar() == car_casuale ) {printf("\n spiacente, ma non hai indovinato..."); In conclusione, quindi, sia la variabile prova che la variabile indice possono essere eliminate dal codice. Un'ultima aggiunta: forniamo delle indicazioni all'utente per fargli capire, nel caso il suo tentativo di indovinare il numero fallisca, se il carattere inserito sia vicino al carattere segreto o meno. Partendo dalla versione originale del programma, per aggiungere questa funzionalità è necessario stabilire quale differenza ci sia tra il codice ASCII del carattere segreto ed il carattere inserito dall'utente; c'è quindi bisogno di una variabile cui assegnare tale valore. Una volta calcolata la differenza tra i due codici ASCII dobbiamo visualizzare dei messaggi che siano funzione di tale differenza. A questo scopo possiamo usare il costrutto switch(), per poter scegliere quali azioni intraprendere in funzione del valore della differenza..
7 #include <math.h>... int differenza;... for(indice = 0; indice < num_tentativi; indice++) prova = getchar(); if( prova == car_casuale ) {printf("\n spiacente, ma non hai indovinato..."); // il valore di differenza può essere sia positivo che negativo differenza = abs( car_casuale - prova ); switch(differenza) {case 1: printf("... ma ci sei andato molto vicino\n"); case 2: printf("... ma ci sei andato vicino\n"); case 3: printf("... ma ci sei andato abbastanza vicino\n"); case 4: printf("... ma ci sei andato un po\' lontano \n"); default: printf("... e ci sei andato lontano \n"); Il programma definitivo, quindi, diventa: // inizio codice #include <stdio.h> #include <stdlib.h> #include <math.h> #include "mie_funzioni.h"
8 int main() {char car_casuale,prova; int num_tentativi, indice, differenza; car_casuale = 32 + rand() % 96; // forniamo un'indicazione all'utente analisi_carattere(car_casuale); printf("\n Quanti tentativi intendi effettuare ( 1 -> 9 )? "); num_tentativi = getchar() - 48; for(indice = 0; indice < num_tentativi; indice++) prova = getchar(); if( prova == car_casuale ) {printf("\n spiacente, ma non hai indovinato..."); differenza = abs( car_casuale - prova ); switch(differenza) {case 1: printf("... ma ci sei andato molto vicino\n"); case 2: printf("... ma ci sei andato vicino\n"); case 3: printf("... ma ci sei andato abbastanza vicino\n"); case 4: printf("... ma ci sei andato un po\' lontano \n"); default: printf("... e ci sei andato lontano \n"); return 0; // fine codice
9 IMPORTANTE: Quando in un codice vengono utilizzate funzioni della libreria matematica è necessario specificare, nel comando di compilazione, che tale libreria dovrà essere usata dal compilatore stesso. Nel caso in cui il codice di cui sopra sia stato salvato in un file dal nome indovina.c ed il nome che vogliamo dare all'eseguibile sia indovinello, allora il comando corretto per la compilazione risulta: gcc -o indovinello indovina.c -lm NOTA: nel caso si perda il controllo di un processo... Come bloccare un processo (Linux) premere i tasti: CTRL+z quando il prompt dei comandi ridiventa accessibile, dare il comando kill %1 Esercizio: Determinare quale debba essere il prototipo di una funzione che permetta di generare caratteri casuali del tipo richiesto; ovvero, il programmatore deve essere in grado di scegliere se far generare alla funzione lettere minuscole, lettere maiuscole o numeri. Dopo aver determinato il prototipo, implementare la funzione. E' possibile fare in modo che il controllo effettuato dal blocco di codice evidenziato in arancione venga svolto da un'opportuna funzione? Quale deve essere il prototipo di questa funzione? E quale la sua implementazione?
10
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
DettagliIl 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
DettagliLettura da tastiera e scrittura su monitor
Lettura da tastiera e scrittura su monitor Per poter leggere UN SINGOLO CARATTERE dalla tastiera e visualizzare UN SINGOLO CARATTERE sul monitor si possono utilizzare le funzioni: int getchar (void) (per
DettagliRappresentazione binaria delle variabili (int e char)
Rappresentazione binaria delle variabili (int e char) int e char son i due tipi utilizzati dal linguaggio C per la rappresentazione di valori interi; ai valori delle variabili del primo tipo sono assegnati
Dettagliprova.c #include <stdio.h> char funzione(char); codice oggetto del main()
prova.c #include char funzione(char); {char c= a ; printf( Ecco il carattere: %c\n,c); c=funzione(c); printf( Ecco il carattere modificato: %c\n,c); char funzione(char tmp) {if(tmp
DettagliLaboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013
Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013 Damiano Macedonio Giochi d Azzardo Note Iniziali Per generare un numero casuale basta includere la libreria stdlib.h e utilizzare
DettagliLaboratorio 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
DettagliPerché il linguaggio C?
Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare
DettagliLinguaggio 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
DettagliIntroduzione 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
DettagliLinguaggio 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
DettagliIntroduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C
Introduzione 2 Introduzione al C Linguaggio di programmazione ad alto livello (HLL) Sviluppato negli anni 70 (C standard ANSI) Molto diffuso e adatto ad un ampio spettro di applicazioni: Scientifiche Gestionali
DettagliIL 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
DettagliLinguaggio 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
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,
DettagliIl linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
DettagliPrimi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
DettagliLinguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. 1 Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa a valori delle variabili
DettagliLa gestione dei caratteri in C
in C In C i caratteri sono gestiti mediante variabili di tipo char (interi a 8 bit) Ad ogni carattere corrisponde un codice numerico ASCII (American Standard Code for Information Interchange) Un esempio
DettagliIntroduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica
Corso di Fondamenti di Informatica Ingegneria Clinica Esercitazione 6 Raffaele Nicolussi Esercizio 1 Si scriva una funzione in linguaggio C che riceve in ingresso un numero intero A letto da tastiera,
DettagliDebug di un programma
Debug di un programma Col termine Debug si intende una fase di sviluppo del software, nella quale si cerca di eliminare gli errori dal programma Due tipi di errori: Errori sintattici, rilevati sempre dal
DettagliEsercitazione 6. Array
Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione
DettagliUn 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
DettagliEsercitazione 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
DettagliCorso di Fondamenti di Informatica Linguaggi di Programmazione
Corso di Fondamenti di Informatica Linguaggi di Programmazione Anno Accademico Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di
DettagliLe 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
DettagliEsempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina
Il compilatore C Astrazione Linguaggio macchina implica la conoscenza dei metodi usati per la rappresentazione dell informazioni nella CPU Linguaggio Assembly è il linguaggio delle istruzioni che possono
DettagliEsercizi su. Istruzioni di scelta multipla. Overflow
Esercizi su Istruzioni di scelta multipla Overflow 2 Scelta multipla 3 Esercizio 1/2 Scrivere un programma che chieda all'utente di scegliere tra varie opzioni e stampi il nome dell'opzione scelta Esempio
DettagliPreprocessore, linker e libreria standard
Preprocessore, linker e libreria standard Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 IL PREPROCESSORE Programma sorgente
DettagliAPPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO IX.2014
APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2013 2014 8.IX.2014 VINCENZO MARRA Indice Esercizio 1 1 Leggere una stringa e calcolarne la lunghezza.
DettagliRiprendiamo l esercizio calcolatrice
Riprendiamo l esercizio calcolatrice Scrivere un programma calcolatrice che legga da tastiera due variabili intere a e b, poi Stampi un menu con un valore numerico associato a quattro operazioni possibili:
DettagliCostrutti iterativi. Utilizzo dei costrutti iterativi
Costrutti iterativi Utilizzo dei costrutti iterativi Costrutti iterativi (1/3) I costrutti iterativi permettono di eseguire ripetutamente del codice Il linguaggio Java mette a disposizione tre costrutti
DettagliLa 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
DettagliC O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O
Il linguaggio C C O P Y R I G H T ( C ) 2 0 0 8 W W W. F O N D A M E N T I. I N F O P E R M I S S I O N I S G R A N T E D T O C O P Y, D I S T R I B U T E A N D / O R M O D I F Y T H I S D O C U M E N
DettagliPolitecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.
Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione prof. Lorenzo Porcelli e mail: genna18@iol.it sito: users.iol.it/genna18 Risoluzione di un problema Dato
DettagliUnità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso
Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile
DettagliErrori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.
Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente
DettagliLezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22
Lezione 21 e 22 - Allocazione dinamica delle matrici - Generazione di numeri pseudocasuali - Funzioni per misurare il tempo - Parametri del main - Classificazione delle variabili Valentina Ciriani (2005-2008)
DettagliEsercitazione 3. Espressioni booleane I comandi if-else e while
Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if
DettagliElementi di informatica
Elementi di informatica Programmare in C 1 Calcolare l area di un rettangolo /* Calcolo area rettangolo */ int base; int altezza; int area; Conosciamo base = 3; altezza = 7; area = base*altezza; printf("%d",
DettagliUnità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.
Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti
DettagliVariabili 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
DettagliSviluppo dei Programmi
Programmazione I a.a 2009-2010 docente: Carmine Gravino Sviluppo dei Programmi Presentazione realizzata dal Prof. Andrea De Lucia 1 Analisi e Specifica Sviluppo dei programmi Progettazione Codifica Verifica
DettagliInformatica 1. Prova di recupero 21 Settembre 2001
Informatica 1 Prova di recupero 21 Settembre 2001 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo
DettagliElementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I
Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave
DettagliVariabili. 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 vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
DettagliProgrammazione 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'
DettagliCorso sul linguaggio C Modulo Tipi di dato
Corso sul linguaggio C Modulo 1 1.3 - Tipi di dato 1 Prerequisiti Concetto di espressione Cenni sulla struttura del calcolatore 2 1 Introduzione In questa lezione si esaminano i tipi di dato. I tipi di
DettagliALGORITMI E STRUTTURE DATI
ALGORITMI E STRUTTURE DATI Esercitazioni AndreA Orlandini http://www.dia.uniroma3.it/~orlandin/asd/ e-mail: orlandin@dia.uniroma3.it Orario di ricevimento: Martedì 14.00-16.00 Introduzione al C + Array
DettagliCODIFICA DEL TESTO 0???????
CODIFICA DEL TESTO Simboli da rappresentare: lettere a,b,c,.z,a,b,c,.z cifre 0,1,2,3, 9 simboli di punteggiatura ;:,. Rappresentati mediante sequenze di bit Una codifica dei simboli è perciò (almeno) una
Dettagli$QDOLVLGHOSURJUDPPDTXDGUDWR
$QDOLVLGHOSURJUDPPDTXDGUDWR /* */ calcolare l area del quadrato #include main(){ int lato, area; printf("lato "); scanf("%d", &lato); if(lato < 0) printf("errore nei dati \n"); else { area =
DettagliLezione 6. Visibilità degli identificatori e tempo di vita degli oggetti
Lezione 6 Visibilità degli identificatori e tempo di vita degli oggetti Programmazione I Paolo Valente - 2009/2010 Ripasso dichiarazioni oggetti Finora abbiamo scritto le dichiarazioni di variabili e costanti
DettagliIntroduzione ai puntatori in C Definizione
Introduzione ai puntatori in C Definizione Un puntatore è una variabile che contiene l indirizzo di un altra variabile Tramite i puntatori si può quindi accedere a un oggetto indirettamente (si usa il
DettagliLe 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
DettagliInformatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi
Informatica 1 Corso di Laurea Triennale in Matematica Gianluca Rossi gianluca.rossi@uniroma2.it Dipartimento di Matematica Università di Roma Tor Vergata 11: Stringhe (www.informatica-uno.blogspot.com)
DettagliPrimo passo: il preprocessor. Il preprocessore. Esempi di direttive al preprocessore: #include. Esempi di direttive al preprocessore: #define
Primo passo: il preprocessor Source code Preprocessor Pre-processed source code Compiler Libraries Linker Executable code 1 Il preprocessore Il preprocessore compie delle manipolazioni sul codice del programma.
DettagliUnità 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
DettagliNUMERI CASUALI E SIMULAZIONE
NUMERI CASUALI E SIMULAZIONE NUMERI CASUALI Usati in: statistica programmi di simulazione... Strumenti: - tabelle di numeri casuali - generatori hardware - generatori software DESCRIZIONE DEL PROBLEMA
DettagliLABORATORIO 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
DettagliI vettori in C. Vettori. Definizione di vettori in C. int dato[10] ; int. Numero di elementi. Tipo di dato base. Nome del vettore.
I vettori in C Sintassi della definizione Definizione di costanti Operazioni di accesso Vettori Definizione di vettori in C I vettori in C Definizione di vettori in C Definizione di vettori in C Stesse
DettagliLibrerie Stringhe. Librerie e stringhe. Lezione 9. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. 2015/2016
e stringhe Lezione 9 Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2015/2016 Calendario delle lezioni Lezione 1 (7 e 9/10/2015) - Introduzione all ambiente Linux Lez. 2 (14 e 16/10/2015)
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi
DettagliLe funzioni, e le istruzioni di input/output
Linguaggio C Le funzioni, e le istruzioni di input/output 1 Funzioni! Sono sottoprogrammi per svolgere un particolare compito! Sequenze di istruzioni (raggruppate tramite le parentesi graffe) alle quali
DettagliLe direttive del Preprocessore
Le direttive del Preprocessore Prof. Orazio Mirabella Direttive Un compilatore traduce le istruzioni di un programma sorgente in linguaggio macchina Talvolta è conveniente prendere coscienza dell esistenza
DettagliCorso di Reti di Calcolatori L-A
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 9 (svolta) RPC: Inizializzazione Strutture Dati sul Server Luca Foschini Anno accademico 2010/2011
DettagliCos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione
Dettagligiapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL
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
DettagliEsercizio 1 - cicli. Esercizio 1 cicli - Soluzione
Sequenze di cifre Esercizio 1 - cicli Realizzare un programma che prende in input una sequenza di cifre (tra 1 e 9) e calcola la somma massima fra le sotto- sequenze di cifre non decrescente Il programma
DettagliEsercizi per la preparazione. Alessandra Giordani Lunedì 13 maggio 2013
Esercizi per la preparazione all esame pratico Alessandra Giordani agiordani@disi.unitn.it Lunedì 13 maggio 2013 http://disi.unitn.it/~agiordani/ Date Appelli 18 giugno 2013 Pratica: 9.00-13.00 Aula pc
DettagliPROGRAMMA SVOLTO DI INFORMATICA ANNO SCOLASTICO 2013/2014. DOCENTE: Villani Chiara
LICEO SCIENTIFICO STATALE "FILIPPO LUSSANA" V i a A n g e l o Ma j, 1 2 4 1 2 1 B E R G AMO 035 237502 Fax: 035 236331 Sito e contatti: www.liceolussana.com Codice fiscale: 80026450165 PROGRAMMA SVOLTO
DettagliManuale registro elettronico per docenti
Manuale registro elettronico per docenti INDICE 1. EFFETTUARE L ACCESSO 2. GESTIONE REGISTRI 3. LAVORARE SUI REGISTRI 4. LAVORARE SUGLI SCRUTINI 5. CAMBIARE PASSWORD 6. PROGRAMMAZIONE 7. USCITA 1. Effettuare
DettagliComplementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -
Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin
DettagliVARIABILI, ASSEGNAZIONE, DECISIONI
LEZIONE-TSQL-03 PROGRAMMAZIONE (VER02) PAG. 1 / 6 LEZIONE-TSQL-03 PROGRAMMAZIONE (VER02) T-SQL PROGRAMMAZIONE PARTE TERZA VARIABILI, ASSEGNAZIONE, DECISIONI Tratto da Gregory A. Larsen, http://www.databasejournal.com/features/mssql/article.php/3087431/t-sql-programming-part-1---defining-variables-and-if-logic.htm
DettagliFunzioni, puntatori, strutture. Lab. Calc. AA 2006/07
Funzioni, puntatori, strutture sommario In questa lezione integriamo le informazioni fornite su puntatori e funzioni approfondendo i seguenti punti Puntatori a puntatori Puntatori e array come parametri
DettagliStrutture di Controllo
Strutture di Controllo Informatica B Istruzioni condizionali #include int main() char c; printf("inserire il carattere maiuscolo: "); scanf("%c", &c); printf("la traduzione e' %c\n",c+32); return
DettagliEsempio 2: Subtyping
Esempio 2: Subtyping 22 Subclassing e subtyping Fino ad ora abbiamo trattato l ereditarietà come strumento che consente il riuso flessibile di classi già esistenti mediante l aggiunta o la ridefinizione
DettagliL Allocazione Dinamica della Memoria
L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario Questo documento
DettagliProgrammazione I - Laboratorio
Programmazione I - Laboratorio Esercitazione 4 - Puntatori, vettori e stringhe Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti
DettagliLEZIONE 4. Per semplificarne la comprensione della tastiera possiamo suddividere i tasti in diversi gruppi in base alla funzione che possono svolgere:
LEZIONE 4 La tastiera è lo strumento principale per l'immissione di informazioni nel computer, ma non tutti sanno, però, che è possibile utilizzare la tastiera anche per controllare il computer e i vari
DettagliEsercizi di programmazione in linguaggio C - Costrutto iterazione
Esercizi di programmazione in linguaggio C - Costrutto iterazione prof. Roberto uligni 1. [potenze1] Scrivere un programma che visualizzi il valore di tutte le prime n potenze di 2 con n richiesto all'utente
DettagliRealizzare 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
DettagliEsiste però anche un ambiente globale: quello dove tutte le funzioni sono definite. Qui si possono anche definire variabili, dette variabili globali
AMBIENTE LOCALE E GLOBALE In C, ogni funzione ha il suo ambiente locale che comprende i parametri e le variabili definite localmente alla funzione Esiste però anche un ambiente globale: quello dove tutte
DettagliTempo di vita e scope delle variabili
Tempo di vita e scope delle variabili Richiami sulla struttura di un programma C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume tutto in un unico file):
DettagliCaratteri e stringhe
Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un
DettagliCome va usato il codice dei caratteri
Espressioni booleane Come va usato il codice dei caratteri Convertiamo una lettera minuscola in maiuscolo: char lower = k ; char upper = (char) (lower - a + A ); printf("%c", upper); Convertiamo un carattere
DettagliPuntatori (in C) Emilio Di Giacomo
Puntatori (in C) Emilio Di Giacomo Puntatori In questa lezione parleremo di uno dei costrutti più potenti del C: i puntatori I puntatori vengono utilizzati per realizzare il passaggio di parametri per
DettagliStringhe 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
DettagliLIBRERIE STANDARD in C. LIBRERIE STANDARD in C
LIBRERIE STANDARD in C La libreria standard del C è in realtà un insieme di librerie Per usare una libreria, non occorre inserirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle
DettagliLP1 Lezione 11: Librerie Personali. Maurizio Tucci
LP1 Lezione 11: Librerie Personali Maurizio Tucci www.dmi.unisa.it/people/tucci Programmare con librerie proprie Necessità dell astrazione Vantaggi nell uso di funzioni di libreria Interfaccia e implementazione
DettagliAlgoritmi in C++ (seconda parte)
Algoritmi in C++ (seconda parte) Introduzione Obiettivo: imparare a risolvere problemi analitici con semplici programmi in C++. Nella prima parte abbiamo imparato: generazione di sequenze di numeri casuali
DettagliCorso 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
DettagliFondamenti di Informatica L-A
Fondamenti di Informatica L-A Esercitazione del 30/10/07 Ing. Giorgio Villani Ripasso Teoria Ciclo do while do {istruzioni while(espressione); int i; do { printf( Scegli un numero tra 1 e 3 ); scanf( %d,
DettagliStruttura dei programmi C
Programmi C Struttura dei Programmi C Dichiarazione delle variabili Operazioni di Ingresso/Uscita Fondamenti di Informatica 1 Struttura dei programmi C Un programma C deve contenere, nell'ordine: una parte
Dettagliperror: 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
DettagliCostrutti condizionali e iterativi
Costrutti condizionali e iterativi Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle istruzioni
DettagliELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del
DettagliMini-Corso di Informatica
Mini-Corso di Informatica CALCOLI DI PROCESSO DELL INGEGNERIA CHIMICA Ing. Sara Brambilla Tel. 3299 sara.brambilla@polimi.it Note sulle esercitazioni Durante le esercitazioni impareremo a implementare
DettagliLa gestione della memoria dinamica Heap
Laboratorio di Algoritmi e Strutture Dati La gestione della memoria dinamica Heap Prof. Luigi Lamberti 2005 Cenni sui Processi Un Programma è un insieme di Istruzioni memorizzato in un file con le costanti
DettagliSommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...
Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...
DettagliPatente Europea del Computer ECDL - MODULO 3
Patente Europea del Computer ECDL - MODULO 3 Lezione 3 di 3 Aiuto Controllo ortografico Opzioni di Word Stampa unione Per richiamare la Guida in linea di Word, possiamo utilizzare il pulsante azzurro a
Dettagli