# include<stdio.h> int main() { // Dichiarazioni int n; int i;

Documenti analoghi
Esercitazione 3. Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Istruzioni iterative. Istruzioni iterative

Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Esercitazione 3. Corso di Fondamenti di Informatica

Esercitazione 4. Comandi iterativi for, while, do-while

Quotazione compareto( ) Quotazione piurecente( ) Quotazione Quotazione Quotazione non trovato count( )

Capitolo 1 Fondamenti di Informatica - Esercizi

Linguaggio C: introduzione

Il generatore di numeri casuali

La gestione dei caratteri in C

Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013

La somma di 12 e 30 è 42

Corso di Informatica Medica Esercitazione 1I ! Alessandro A. Nacci - alessandronacci.com

Fondamenti di Informatica 2

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 9 Settembre 2015

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C

IL LINGUAGGIO C++ Configurazione di Dev-C++

Input/output in C e in C++

Funzioni. Corso di Fondamenti di Informatica

Immettere un importo in euro intero e stampare il numero minimo di banconote da 20, 10, 5 e monete da 1 e 2 euro necessarie per pagarlo.

Linguaggio C - Funzioni

ESERCIZI DI PROGRAMMAZIONE DA SVOLGERE INDIVIDUALMENTE - parte 1 -

Scelte ed alternative. Esercizi risolti

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI

Esercitazione 3. Espressioni booleane I comandi if-else e while

MAGAZZINO.CPP January 2, 2008 Page 1

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 27 Gennaio 2015

Stringhe di caratteri

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it

/* esercizio 5. Memorizzare l elenco dei prodotti giacenti in un magazzino in modo da poter effettuare le seguenti operazioni :

Consideriamo un vettore allocato dinamicamente

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Iterazione determinata e indeterminata

Appello di Informatica B

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia)

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

FUNZIONI. La libreria standard del C fornisce una ricca collezione di funzioni, come le funzioni:

Soluzioni. /* LEGGI IL NUMERO TERMINI DELLA SEQUENZA */ printf("inserisci il numero di termini della serie di Fibonacci: ") ; scanf("%d", &N);

Politecnico di Torino

Concetti chiave. Struct. Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture

/*dichiarazioni*/ // le frasi sono contenute in stringhe, cioè array di char char f1[max]; int i, giusto,len;

RICERCA DI UN ELEMENTO

La formattazione dell input/output in C

Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

linguaggio di programmazione e programma

Esercizi di programmazione in C

FONDAMENTI DI INFORMATICA

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio

Caricare un numero n float, calcolare e stampare il quadrato e il cubo di n. Diagramma di flusso

Fondamenti di Informatica T. Linguaggio C: File

Funzioni. Il modello console. Interfaccia in modalità console

Caratteri e stringhe

Record in C: il costruttore struct.

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Alfabeto ed elementi lessicali del linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema

Introduzione al Linguaggio C ed all IDE DEV-C++

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Gestione di files Motivazioni

Fondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 4A di Martedì 21 Giugno 2011 tempo a disposizione 2h

SOLUZIONE ESERCIZIO 1

Caratteri e stringhe Esercizi risolti

Tutorato: Programmazione 1 - Modulo I

Introduzione al C. Unità 1 - Introduzione

Esercitazione 10. Strutture ed Enumerazioni. Allocazione dinamica di memoria

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix-

Problem solving avanzato

Array multidimensionali e stringhe

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

Lab. di Sistemi Operativi - Esercitazione n 9- -Thread-

STRINGHE: ARRAY DI CARATTERI! a p e \0

PROGRAMMI LINGUAGGIO C

Strutture di Controllo in Matlab

Shell BASH. Variabili Redirezione

Transcript:

/* CALCOLIAMO I DIVISORI DI UN NUMERO. INSERIAMO UN CONTROLLO CHE IL NUMERO SIA EFFETTIVAMENTE POSITIVO UTILIZZIAMO IL DO...WHILE PER SEMPLIFICARE IL CODICE # include<stdio.h> int main() // Dichiarazioni int n; int i; // Corpo puts("*********************"); puts("trovare i divisori di un numero verificando \nprima che questo sia davvero positivo"); puts("*********************\n\n"); // Controllo do printf("inserisci un numero positivo: "); scanf("%d",&n); fflush(stdin); while(n <= 0); // Esecuzione printf("i divisori sono: "); i = 1; while( i <= n ) if(n%i == 0) printf("%d ",i); i=i+1; // i++; i += 1; /* Equivalente a : for (i = 1; i <= n ; i++) if(n%i == 0) printf("%d ",i); //getchar();

/* Dato un numero x stampare le cifre da x a 0, separate da virgola #include<stdio.h> #include<stdlib.h> int main() int x, i; printf("inserire il numero: "); scanf("%d", &x); fflush(stdin); if(x > 0) for (i = x; i >= 0; i--) printf("%2d) %d\n",x-i+1,i); else if(x < 0) for (i = x; i <= 0; i++) printf("%2d) %3d\n",i-x+1,i); printf("*** FATTO! ***\n"); system("pause"); return 0;

/* Costruire la tabella pitagorica INCOLONNATA correttamente Guardate bene questo esempio per capire la formattazione dell'uscita e l'utilità della formattazione nella printf... tornerà utile più avanti nel corso!!! #include <stdio.h> /* DEFINE --> Definizione di una costante. ATTENZIONE! E' una direttiva pre-processor che seve per far sostituire nel codice 10 a K (in questo caso). Questo significa che per il compilatore è esattamente come se a mano voi aveste messo 10 al posto di K. Notate che così però è più ordinato e soprattutto flessibile. Se domani volete che K sia 12, lo cambiate una sola volta! #define K 10 // è la dimensione massima della tabella pitagorica int main() // Dichiarazione; int i,j; // Header puts("**********************\n*"); printf("* TABELLA PITAGORICA DI %d NUMERI\n", K); puts("*\n**********************\n"); // Ciclo esterno for(i = 1; i <= K ; i++) // Ciclo interno for(j = 1 ; j <= K ; j++) printf("%5d", i*j); printf("\n"); getchar();

/* Visualizzazione di un numero in ottale, esadecimale e decimale mediante switch. #include <stdio.h> #include<stdlib.h> #include<math.h> int main() int n; int i; // E' buona norma INIZIALIZZARE i char di controllo ad un valore uile // per entrare nei cicli alla prima iterazione. ALTERNATIVA -- > Do...While. char code = 'd'; char cnt = 'y'; float ciao; while (cnt == 'y') printf("inserire numero: "); scanf("%d", &n); fflush(stdin); printf("inserire codice: "); scanf("%c", &code); fflush(stdin); // In tanti mi avete chiesto: "si può fare lo SWITCH sui caratteri? A me non // funziona...". Ecco qui un esempio funzionante. code è un char. Notate i // singoli apici per ogni CASE. Notate anche il BREAK alla fine di ogni CASE. // Notate infine l'indenting usato e i commenti per separare: si capisce al volo // dove inizia e finisce ogni CASE rendendo più facile la lettura e l'eventuale // debug... switch (code) case 'o': printf("numero in ottale: %o\n", n); case 'd': printf("numero in decimale: %d\n", n);

case 'e': printf("numero in esadecimale: %x\n", n); default: printf("codice sconosciuto.\ncodici disponibili: \n\to ==> ottale\n\td ==> decimale\n\te ==> esadecimale\n\n"); printf("giocare ancora? [y/n] ----> "); scanf("%c",&cnt); fflush(stdin); system("pause");

/* Questo programma serve per far vedere cosa sono int argc, char* argv[] che spesso si vedono nella signature della funzione main... Per fare bene le prove è consigliato COMPILARE il programma, ma non eseguirlo da DEVC++, bensì aprirlo da console così che possiate passare dei parametri. Cosa sono questi parametri? Basta che quando lanciate il programma (che si chiama argc.exe nel mio caso) potete aggiungere dopo il nome anche un sottoinsieme dei seguenti comandi -n nome --> Inserisce il nome della persona; -c cognome --> Inserisce il cognome della persona; -d data --> Inserisce la data di nascita della persona; -f codice fiscale --> Inserisce il codice fiscale della persona; -m --> Indica se la persona è un maschio; -p provincia --> Inserisce il nome della persona; BUON DIVERTIMENTO! ;-) #include<stdio.h> #include<stdlib.h> int main(int argc, char* argv[]) int i; char cmd; puts("\n****************************"); puts("numero di parametri:"); printf("\targc: %d\n", argc); puts("\nelenco parametri:"); for (i = 0; i < argc ; i++) printf("\targv[%d]: %s\n", i, argv[i]); puts("****************************"); if (argc == 2 && argv[1][0] == '/' && argv[1][1] == '?') puts("sintassi: \t\t[-n nome] [-c cognome] [-d data di nascita] \n \t\t\t[-f codice fiscale]"); puts("opzioni:"); puts("\t -n nome \t\t Nome della persona");

puts("\t -c cognome \t\t Cognome della persona"); puts("\t -d data \t\t Data di nascita della persona"); puts("\t -f codice \t\t Codice fiscale della persona"); else if (argc > 2) i = 1; while( i < argc ) if (argv[i][0] == '-') switch (argv[i][1]) case 'n': printf("il tuo NOME \212: %s\n", argv[i+1]); i += 2; argv[i+1]); %s\n", argv[i+1]); %s\n", argv[i+1]); maschio\n"); case 'c': printf("il tuo COGNOME \212: %s\n", i += 2; case 'd': printf("la tua DATA DI NASCITA \212: i += 2; case 'f': printf("il tuo CODICE FISCALE \212: i += 2; case 'm': printf("questa persona \212 un i++; case 'p': printf("provincia: %s\n", argv[i+1]); i++; default: i++;

else i++; puts("****************************"); system("pause");