Un po di ripasso + qualcosa di nuovo

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

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x.

Alcune regole di base per scrivere un programma in linguaggio C

Esercizi di programmazione in C

Input/output in C e in C++

CARATTERI E STRINGHE Caratteri e stringhe Funzioni della libreria standard I/O Funzioni della libreria di gestione delle stringhe

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C

Tipi di dato-prima parte

Esercitazione 3. Corso di Fondamenti di Informatica

Esercitazioni di Reti Logiche. Lezione 1 Rappresentazione dell'informazione. Zeynep KIZILTAN zkiziltan@deis.unibo.it

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

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

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

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

Rappresentazione dell informazione Codifica Binaria

Parte 1. Vettori di bit - AA. 2012/13 1.1

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

puntatori Lab. Calc. AA 2007/08 1

Linguaggio C. Fondamenti. Struttura di un programma.

LA RAPPRESENTAZIONE DELLE INFORMAZIONI

Introduzione alla programmazione in C

Le variabili. Olga Scotti

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

Files in C++ Fondamenti di Informatica. R. Basili. a.a

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori"

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

Gestione di files Motivazioni

Alfabeto ed elementi lessicali del linguaggio C

Esercitazione 7. Procedure e Funzioni

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

Logica e codifica binaria dell informazione

SOLUZIONE ESERCIZIO 1

Raccolta di alcuni esercizi proposti nei temi d esame di Informatica 1 nell anno accademico 2000/01

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 10 Settembre 2013

Esercizi di programmazione in linguaggio C - Costrutto sequenza

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Indice. Introduzione. I tipi aritmetici. Variabili e Tipi Fondamentali in C++ (CAP 2, parte I) Alberto Garfagnini e Marco Mazzocco A.A.

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, = 1, 431 0, = 0, 862 0, = 1, 792 0, = 1, 448 0, = 0, 896

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

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

Variabili e tipi di dato

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

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

3. La sintassi di Java

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

Informatica: arte e mestiere

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

RICERCA DI UN ELEMENTO

Gestione dei File in C

Introduzione al Linguaggio C

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

Introduzione al C. Unità 1 - Introduzione

LABORATORIO DI PROGRAMMAZIONE EDIZIONE 1, TURNO B

Linguaggio C: introduzione

Caratteri e stringhe Esercizi risolti

- Sistemi di numerazione 1 - Sistemi di Numerazione

Primi programmi in C

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

3. Terza esercitazione autoguidata: progetto gestione voli

Programmare. La programmazione. Linguaggi. Algoritmo

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002

Informatica. Rappresentazione dei numeri Numerazione binaria

METODI DI CONVERSIONE FRA MISURE

3) Il seguente numerale A1F0 in base 16 a quale numero in base 10 corrisponde?

Appunti di Informatica 1. Gianluca Rossi

Gestione delle stringhe in C

TUTORATO di LINGUAGGI I

LINGUAGGI DI PROGRAMMAZIONE

INFORMATICA E PROGRAMMAZIONE PROF. M. GIACOMIN ESPERIENZA IN AULA: ELABORAZIONE DI IMMAGINI A COLORI IN LINGUAGGIO C

2. Osserva l immagine e scrivi al posto dei puntini uno dei seguenti simboli:. 5. B 2. B B. A A. C= { 6, 7 }

Esercitazione Informatica I AA Nicola Paoletti

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp KP Cap. 6 pp

2.12 Esercizi risolti

Linguaggio C - Funzioni

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di

Breve riepilogo della puntata precedente:

Breve corso di C. Corso di Laboratorio di Programmazione e Calcolo Corso di Laurea in Matematica Università di Roma La Sapienza A.A.

Università degli Studi di Ferrara Corso di Laurea in Informatica A.A. 2007/2008

Introduzione al linguaggio C Gli array

Fondamenti di Informatica Ingegneria Clinica Lezione 19/11/2009. Prof. Raffaele Nicolussi

Ministero dell Istruzione, dell Università e della Ricerca Ufficio Scolastico Regionale per la Sardegna

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Java Native Interface Appunti

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

1 Automi Cellulari (Rev )

Sistemi di numerazione: generalità

Tipo intero. Esempio. Tipo intero: operatori. Programma PortaMonete.java. Tipi base o primitivi

La selezione binaria

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

E la capacita di fornire costrutti di astrazione il piu possibile simili ai concetti utilizzati nella descrizione del metodo risolutivo.

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

In base alla definizione di limite, la definizione di continuità può essere data come segue:

Il linguaggio C. I principali tipi di dati che sono disponibili come predefiniti secondo lo standard ANSI del C sono 5:

Corso di Laurea in Ingegneria Informatica Analisi Numerica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

1.1.3 Dispositivi di memorizzazione Sapere come viene misurata la memoria di un computer: bit, byte, KB, MB, GB, TB.

PROGETTAZIONE DISCIPLINARE MATEMATICA classe 2^

Transcript:

Aula V di Matematica Un po di ripasso + qualcosa di nuovo Igor Melatti Igor Melatti, Un po di ripasso + qualcosa di nuovo 1

I secondi Scrivere un programma che legge un numero non negativo x da tastiera e stampa su schermo a quanti giorni, ore, minuti e secondi corrispondono x secondi Scrivere un programma che legge da tastiera 4 numeri non negativi d, h, m, s e dice quanti secondi ci sono in d giorni, h ore, m minuti e s secondi Igor Melatti, Un po di ripasso + qualcosa di nuovo 2

I secondi #include <stdio.h> int main() { unsigned x; printf("immettere il numero di secondi: "); scanf("%u", &x); printf("x secondi corrispondono a %u giorni, %u ore, %u minuti e %u secondi\n", x/(60*60*24), x/(60*60)%24, x/60%60, x%60); Igor Melatti, Un po di ripasso + qualcosa di nuovo 3

I secondi #include <stdio.h> int main() { unsigned x; printf("immettere il numero di secondi: "); scanf("%u", &x); printf("x secondi corrispondono a %u giorni, %u ore, %u minuti e %u secondi\n", x/60/60/24, x/60/60%24, x/60%60, x%60); Igor Melatti, Un po di ripasso + qualcosa di nuovo 4

I secondi #include <stdio.h> int main() { unsigned d, h, m, s; printf("immettere il numero di giorni: "); scanf("%u", &d); printf("immettere il numero di ore: "); scanf("%u", &h); printf("immettere il numero di minuti: "); scanf("%u", &m); printf("immettere il numero di secondi: "); scanf("%u", &s); printf("%u giorni, %u ore, %u minuti e %u secondi corrispondono a %u secondi\n", d, h, m, s, d*60*60*24 + h*60*60 + m*60 + s); Igor Melatti, Un po di ripasso + qualcosa di nuovo 5

I secondi Modificare i programmi di cui sopra per far sì che, se un certo numero è 1, allora il corrispettivo sostantivo è declinato bene (facile...) Modificare i programmi di cui sopra in maniera tale che continui a ripetere il calcolo finché non viene immesso 0 nel caso della seconda traduzione, quando viene immesso 0 a tutti e 4 gli input fatelo prima con un while poi con un do...while infine con un for se vi volete fare del male, provate anche con il goto Igor Melatti, Un po di ripasso + qualcosa di nuovo 6

Programmi vari Scrivere un programma che stampi a video quanti bit e quanti bytes occorrano per i tipi predefiniti del C: int, unsigned, long, float, char... Scrivere dei programmi (iterativi) che chiedano da tastiera 2 interi x e y e poi stampino: 1. il prodotto x y, ma senza usare l operatore * 2. la potenza x y, ma senza usare la funzione pow 3. il resto e il quoziente di x/y, ma senza usare né l operatore /, né l operatore % Riscrivere i programmi 1 e 2 in maniera che uno tra x e y sia reale (nel caso 2, deve essere per forza la base); stampare il risultato sia in notazione decimale, sia in notazione scientifica (virgola mobile), sia limitando il numero di cifre decimali dopo la virgola a 2 (questo sia per la notazione decimale che per quella scientifica) Igor Melatti, Un po di ripasso + qualcosa di nuovo 7

Programmi vari #include <stdio.h> int main() { unsigned x, y, prod; printf("immettere il moltiplicando: "); scanf("%u", &x); printf("immettere il moltiplicatore: "); scanf("%u", &y); printf("%u*%u = ", x, y); for (prod = 0; y > 0; y--) prod += x; printf("%u\n", prod); Igor Melatti, Un po di ripasso + qualcosa di nuovo 8

Programmi vari #include <stdio.h> int main() { unsigned x, y, pot; printf("immettere la base: "); scanf("%u", &x); printf("immettere l esponente: "); scanf("%u", &y); printf("%uˆ%u = ", x, y); for (pot = 1; y > 0; y--) pot *= x; printf("%u\n", pot); Igor Melatti, Un po di ripasso + qualcosa di nuovo 9

Programmi vari #include <stdio.h> int main() { unsigned x, y, div, mod; printf("immettere il dividendo: "); scanf("%u", &x); printf("immettere il divisore: "); scanf("%u", &y); printf("%u/%u = ", x, y); for (div = 0; (div + 1)*y <= x; div++); /* attenzione: il blocco di istruzioni all interno del for e vuoto! */ printf("%u\t%u%%%u = %u\n", div, x, y, x - div*y); Igor Melatti, Un po di ripasso + qualcosa di nuovo 10

Divagazione: formati numerici per la printf printf("%..."); Al posto dei puntini, ci può essere il mondo, e tutto per stampare un solo valore numerico Per i nostri scopi, almeno per ora ci limitiamo a quanto segue Ci deve sempre essere uno dei seguenti caratteri: d,u,x,e,f,g I primi 3 sono per gli interi, gli altri per i float/double d,u,x: con segno, senza segno, in notazione esadecimale e,f,g: in notazione in virgola mobile, in notazione decimale, o l una o l altra a seconda delle circostanze Igor Melatti, Un po di ripasso + qualcosa di nuovo 11

Divagazione: formati numerici per la printf Tra il % e uno dei caratteri di cui sopra, ci possono essere: un numero che indichi la lunghezza del tutto se è più piccola si mettono degli spazi a sinistra serve se si vogliono allineare numeri diversi un numero che indichi la precisione del numero (va preceduto da un punto) se si parla di un intero, è il minimo numero di cifre da scrivere se sono di meno, se mettono degli 0 a sinistra se si tratta di un float/double, dice quanti numeri (esattamente) scrivere dopo la virgola un modificatore di lunghezza per distinguere i long (l) e i short (h) nella printf, non ha importanza distinguere tra float e double per la scanf sì Igor Melatti, Un po di ripasso + qualcosa di nuovo 12

Divagazione: formati numerici per la printf #include <stdio.h> int main() { unsigned u = 4; int i = -4; long l = 450; float f = 1e+40; /* troppo grande per un float */ double d = 1e+40; /* ok per un double */ printf("%.2u\n%5.2u\n", u, u); printf("%.2d\n%5.2d\n", i, i); printf("%.2ld\n%5.2ld\n", l, l); printf("%3.2f\n%3.2e\n", f, f); printf("%3.2f\n%3.2e\n", d, d); /* le 2 linee seguenti hanno lo stesso effetto delle 2 precedenti */ printf("%3.2lf\n%3.2le\n", f, f); printf("%3.2lf\n%3.2le\n", d, d); Igor Melatti, Un po di ripasso + qualcosa di nuovo 13

Programmi vari #include <stdio.h> int main() { unsigned y; double x, prod; printf("immettere il moltiplicando: "); scanf("%lf", &x); /* per forza lf; se x fosse stato float, allora per forza f; la printf non fa distinzioni */ printf("immettere il moltiplicatore: "); scanf("%u", &y); printf("%.3lf*%u = ", x, y); for (prod = 0; y > 0; y--) prod += x; printf("%.3le\n", prod); Igor Melatti, Un po di ripasso + qualcosa di nuovo 14

Programmi vari Scrivere un programma C che prende in input un intero x e restituisce la somma delle cifre (decimali) di x Esempi: 23 5; 2453 14; 327652317 36 Riscrivere il programma di cui sopra facendo sì che prenda in input, oltre ad x, anche un intero b, e che poi consideri le cifre di x rappresentato in base b Scrivere un programma iterativo che dato in input un naturale x calcoli la radice digitale di x. La radice digitale di un numero si ottiene sommando le sue cifre (decimali) fino a che non si riducono ad un numero di una sola cifra (decimale) Esempio. La radice digitale di 4366554 è 6. Riscrivere il programma di cui sopra facendo sì che prenda in input, oltre ad x, anche un intero b, e che poi consideri le cifre di x rappresentato in base b Igor Melatti, Un po di ripasso + qualcosa di nuovo 15

Programmi vari Un numero naturale è divisibile per 3 se la somma delle sue cifre decimali è divisibile per 3. Scrivere un programma iterativo per decidere se un naturale dato è divisibile per 3. È consentito l uso dell operatore modulo % solo per dividere per 10. Dato un naturale n, siano si(n) e sp(n) rispettivamente la somma delle cifre di ordine pari e dispari in n. (dove la 0-esima cifra è quella di minor peso). n è divisibile per 11 se il valore assoluto della differenza tra sp(n) e si(n) cioè abs(sp(n)-si(n))) è divisibile per 11. Scrivere un programma iterativo per decidere se un numero naturale dato è divisibile per 11. È consentito l uso dell operatore modulo % solo per dividere per 10. Igor Melatti, Un po di ripasso + qualcosa di nuovo 16

Somma delle cifre #include <stdio.h> int main() { unsigned x, sum = 0, b; printf("immettere il numero e la base: "); scanf("%u%u", &x, &b); printf("la somma delle cifre di %u considerato in base %u e : ", x, b); while (x!= 0) { sum += x%b; x /= b; printf("%u\n", sum); Igor Melatti, Un po di ripasso + qualcosa di nuovo 17

Radice digitale #include <stdio.h> int main() { unsigned x, sum; printf("immettere il numero: "); scanf("%u", &x); printf("la radice digitale di %u e : ", x); while (x > 9) { unsigned y = x; sum = 0; while (y!= 0) { sum += y%10; y /= 10; x = sum; printf("%u\n", x); Igor Melatti, Un po di ripasso + qualcosa di nuovo 18

Tutti gli esercizi Scrivere un programma che legge un numero non negativo x da tastiera e stampa su schermo a quanti giorni, ore, minuti e secondi corrispondono x secondi Scrivere un programma che legge da tastiera 4 numeri non negativi d, h, m, s e dice quanti secondi ci sono in d giorni, h ore, m minuti e s secondi Scrivere un programma che stampi a video quanti bit e quanti bytes occorrano per i tipi predefiniti del C: int, unsigned, long, float, char... Scrivere dei programmi (iterativi) che chiedano da tastiera 2 interi x e y e poi stampino: 1. il prodotto x y, ma senza usare l operatore * 2. la potenza x y, ma senza usare la funzione pow 3. il resto e il quoziente di x/y, ma senza usare né l operatore /, né l operatore % Igor Melatti, Un po di ripasso + qualcosa di nuovo 19

Tutti gli esercizi Riscrivere i programmi 1 e 2 in maniera che uno tra x e y sia reale (nel caso 2, deve essere per forza la base); stampare il risultato sia in notazione decimale, sia in notazione scientifica (virgola mobile), sia limitando il numero di cifre decimali dopo la virgola a 2 (questo sia per la notazione decimale che per quella scientifica) Scrivere un programma C che prende in input un intero x e restituisce la somma delle cifre (decimali) di x Riscrivere il programma di cui sopra facendo sì che prenda in input, oltre ad x, anche un intero b, e che poi consideri le cifre di x rappresentato in base b Igor Melatti, Un po di ripasso + qualcosa di nuovo 20

Tutti gli esercizi Scrivere un programma iterativo che dato in input un naturale x calcoli la radice digitale di x. La radice digitale di un numero si ottiene sommando le sue cifre (decimali) fino a che non si riducono ad un numero di una sola cifra (decimale) Riscrivere il programma di cui sopra facendo sì che prenda in input, oltre ad x, anche un intero b, e che poi consideri le cifre di x rappresentato in base b Un numero naturale è divisibile per 3 se la somma delle sue cifre decimali è divisibile per 3. Scrivere un programma iterativo per decidere se un naturale dato è divisibile per 3. È consentito l uso dell operatore modulo % solo per dividere per 10. Igor Melatti, Un po di ripasso + qualcosa di nuovo 21

Tutti gli esercizi Dato un naturale n, siano si(n) e sp(n) rispettivamente la somma delle cifre di ordine pari e dispari in n. (dove la 0-esima cifra è quella di minor peso). n è divisibile per 11 se il valore assoluto della differenza tra sp(n) e si(n) cioè abs(sp(n)-si(n))) è divisibile per 11. Scrivere un programma iterativo per decidere se un numero naturale dato è divisibile per 11. È consentito l uso dell operatore modulo % solo per dividere per 10. Igor Melatti, Un po di ripasso + qualcosa di nuovo 22