Lab 06 Funzioni semplici

Documenti analoghi
Lab 07 Funzioni semplici

ESERCIZIO 1 - Funzioni

ESERCIZIO 1 (Funzioni)

Lab 06 Funzioni semplici

Lab 07 Funzioni semplici

Obiettivi di questa esercitazione

Fondamenti di Informatica T-1 Modulo 2

ESERCIZI CICLI. Σ Σ j

Fondamenti di Informatica T-1 Modulo 2

Obiettivi di questa esercitazione

Fondamenti di Informatica T-1 Modulo 2

float somma_float(float a, float b) int get_ascii(char c)

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

LABORATORIO di INFORMATICA

Lab 10 Passaggio per riferimento

STRUCT - ESERCIZIO 1

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 05 Array. Lab06 1

ESEMPIO: le variabili LETTURA/SCRITTURA DI VARIABILI. Specifica Leggere da tastiera un intero, un carattere, un float e un double. Stamparli a video.

Lab 04 Programmazione Strutturata"

INFORMATICA Prof. Cassano

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 06 Array" Lab06 1

Lab 04 Istruzioni, cicli e array"

Gli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento

Lab 03 Istruzioni Prima Parte"

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica

Lab 7 Passaggio per riferimento

ESEMPIO 1. #include <math.h> void eq2gr(float a, float b, float c, int* reali, float* x1,float* x2)

Strutture di Controllo Iterative: Istruzioni While e Do

Obiettivi di questa esercitazione. Fondamenti di Informatica T-1 Modulo Passaggio dei parametri per valore/riferimento

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T1. Lab 04 Array. Lab06 1

Fondamenti di Informatica T1. Lab 03 Istruzioni. Lab03 1

Politecnico di Milano Facoltà di Ingegneria Civile, Ambientale e Territoriale. Informatica (ICA-LC) [083668]

Esercizio 1" input tre numeri interi e stampi a video la loro somma e la media. n Realizzare un programma che legga da. Lab03 2

Scelte ed alternative. Esercizi risolti

2 Operatori matematici e costrutto if

Lab 10 Passaggio per riferimento

Esercizio 1 - cicli. Esercizio 1 cicli - Soluzione

Tipi di dato. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Esercizio 1 Soluzione

Corso sul linguaggio C Modulo Tipi di dato

2 Operatori matematici e costrutto if

2 Operatori matematici e costrutto if

Gli Operatori. Università degli Studi di Brescia

Passaggio dei parametri per valore/riferimento

Esercizio n.1 FONDAMENTI DI INFORMATICA 1. Esercizio n.2. Soluzione. LINGUAGGIO C Funzioni e gestione file: esercitazione

Alcuni esercizi. 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli

Linguaggio C: le funzioni

Fondamenti di Informatica e Laboratorio T-AB e Fondamenti di Informatica T1 Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione

Fondamenti di Informatica T-1 Modulo 2

Esercizio 1: calcolo del massimo di una sequenza (versione 1)

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.

Università degli Studi di Verona. Esercizi. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

Laboratorio. Due. 1) Switch 2) Costrutti Iterazione (For, While, do while)

Tipi di dato. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Esercitazione 2. Corso di Fondamenti di Informatica

Fondamenti di Informatica T-1 Modulo 2

Lab 04 (parte A) Programmazione Strutturata

Esercizio 1 Liste: calcolo perimetro di un poligono

Laboratorio 1. 2) All interno della directory c:\temp\cognome\codici creare il file sorgente hello.c contenente il seguente codice:

cout << "Inserisci un numero:" << endl; cin >> n; ris = n*2; cout << "Il doppio di " << n << " e " << ris << endl;

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Tipi di dato. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Fondamenti di Informatica T1. Lab 03 Istruzioni. Lab03 1

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T1. Lab 03 Istruzioni. Lab03 1

Lab 04 Programmazione Strutturata

ESERCIZIO: Analisi di un programma. Dato il seguente programma C:

Obiettivi di questa esercitazione

Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media.

soluzione in 7 step Es n 208

Sommario FONDAMENTI DI INFORMATICA 1. Il tipo FILE. Passaggio da standard I/O. LINGUAGGIO C Gestione dei file

Esercizio 1. Esercizio 1 Soluzione

2 Operatori matematici e costrutto if

Laboratorio di Algoritmi e Strutture Dati

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 04 Input/Output

Espressioni semplici e condizionali

Fondamenti di Informatica 1 - Compito A

VT = { +, -, *, /, (, ), 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 } VN = {<E>, <T>, <F>, <num>, <cifra>, <cifra-non-nulla> }

Tutorato Elementi di Informatica 2018

TUTORAGGIO INFORMATICA Settimana 5

PRIMA ESPERIENZA DI LABORATORIO. Introduzione alla programmazione in C

Laboratorio di informatica Ingegneria meccanica

INPUT/OUTPUT INPUT/OUTPUT

do { printf("inserisci due numeri reali:"); scanf("%f %f", &a, &b);

do { printf("inserisci due numeri reali:"); scanf("%f %f", &a, &b); while(b!=0 && a/b<0);

Lab 9 Strutture e programmi su più file

Lab 03 Scanf e tempo di vita delle variabili

TUTORAGGIO INFORMATICA Settimana 2

Programmi su più moduli - Esempio

Esercizio 1: parole nel testo

Politecnico di Milano Facoltà di Ingegneria Civile, Ambientale e Territoriale. Informatica B [079904]

INPUT/OUTPUT L'immissione dei dati di un programma e l uscita dei suoi risultati avvengono attraverso operazioni di lettura e scrittura.

Transcript:

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 06 Funzioni semplici Lab06 1

Esercizio 1 - Funzioni Codificare in C la funzione int max(int a, int b) che restituisce il massimo valore tra due interi. Codificare in C la funzione int max3(int a, int b, int c) che restituisce il massimo valore fra tre interi, sfruttando la funzione max definita precedentemente. Definire un possibile main che prende in ingresso i tre valori dall'utente e ne stampa il massimo. Lab06 2

Esercizio 1 Le due funzioni int max(int a, int b) { if (a>b) return a; else return b; int max3(int a, int b, int c) { int max_di_due; max_di_due = max(a,b); return max(max_di_due,c); Lab06 3

Esercizio 1 Il main int main() { int a, b, c, d; printf( Inserire 3 tre interi: ); scanf( %d%d%d, &a, &b, &c); d = max3(a, b, c); printf( Il loro massimo e : %d\n, d); return 0; Lab06 4

Esercizio 1 Il programma #include <stdio.h> int max(int a, int b) {... int max3(int a, int b, int c) {... int main() {... Lab06 5

Esercizio 1 Una variante int max(int a, int b) {... int max3(int a, int b, int c) { return max(max(a,b),c); Lab06 6

Esercizio 2 - Funzioni Si progettino e si realizzino due funzioni così definite: float euro_to_dollari(float money) float euro_to_lire(float money) ognuna delle quali converte un valore in euro nella moneta corrispondente. A tal fine si supponga che: 1 = 1.31 $ 1 = 1936.27 Si progetti poi un programma che legge da input un valore intero, inteso come quantità di euro, e stampa la conversione in dollari ed in lire. Lab06 7

Esercizio 2 Funzioni - Soluzione float euro_to_dollari(float money) { return money*1.31; float euro_to_lire(float money) { return money*1936.27; Lab06 8

Esercizio 3 - Funzioni Si scriva una funzione int somma_potenze(int a,int n); che dati a e n deve calcolare S a A tal fine si scriva una funzione int potenza(int x,int y); che dati x e y deve calcolare x y usando come operazione primitiva il prodotto. n i=1 i Lab06 9

Esercizio 3 Funzioni - Soluzione int potenza(int x,int y) { int i, P=1; /* P: accumulatore di prod.*/ for(i=1; i<=y; i++) P = P * x; return P; int somma_potenze(int a, int n) { int i, s=0; for(i=1; i<=n; i++) s = s + potenza(a,i); return s; Lab06 10

Esercizio 3 Funzioni - Soluzione Un possibile main int main() { int N1,N2,SP; printf("inserisci due interi"); scanf("%d,%d", &N1,&N2); SP = somma_potenze(n1,n2); printf( La somma delle potenze vale %d",sp); return 0; Lab06 11

Esercizio 4 - Funzioni Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x. Creare un altra funzione, di nome float cube(float x), che restituisce invece il cubo del valore x. Progettare quindi e codificare un programma che legge un float da tastiera e restituisce il suo quadrato ed il suo cubo. Per calcolare il quadrato ed il cubo si devono utilizzare le due funzioni sopra definite. Lab06 12

Esercizio 4 Funzioni - Soluzione float square(float x) { return x*x; float cube(float x) { return x*x*x; Lab06 13

Esercizio 5 - Funzioni Si scriva una funzione int somma2(int n); che dato n deve calcolare S S j n i i=1 j=1 A tal fine si sfrutti una funzione int somma(int n); che dato n deve calcolare S k n k=1 Lab06 14

Esercizio 5 Funzioni - Soluzione int somma(int n) { int k, s=0; for (k=1; k<=n; k++) s = s + k; return s; int somma2(int n) {int i, s2 = 0; for (i=1; i<=n; i++) s2 = s2 + somma(i); return s2; NOTA: Nel file sorgente prima del main e necessario definire la funzione somma2 e prima di somma2 bisogna definire somma Lab06 15

Esercizio 5 Funzioni - Soluzione Un possibile main int main() { int N, S; printf("inserisci un intero"); scanf("%d", &N); S = somma2(n); printf( La somma vale %d",s); return 0; Lab06 16

Esercizio 6 - Funzioni Codificare in C la funzione int min_to_sec(int a) che considera il parametro a come minuti e restituisce il numero di secondi corrispondente. Codificare in C la funzione int ore_to_sec(int a) che considera il parametro a come ammontare di ore, e restituisca il numero di secondi corrispondente. Si utilizzi la funzione definita precedentemente. Definire un possibile main che prende in ingresso tre valori interi, rappresentanti ore, minuti e secondi della durata di un CD Audio. Il programma deve stampare il valore corrispondente in secondi. Lab06 17

Esercizio 6 Funzioni - Soluzione int min_to_sec(int a) { return a*60; int ore_to_sec(int a) { return a*60*60; Lab06 18

Esercizio 7 - Funzioni Codificare in C la funzione float ipotenusa(int a, int b) che, dati i cateti a e b di un triangolo rettangolo, restituisce il valore dell ipotenusa. A tal scopo si utilizzi il Teorema di Pitagora: 2 Ipotenusa = a + Per calcolare la radice quadrata si utilizzi la funzione di libreria sqrt(x). Per utilizzare quest ultima si aggiunga la direttiva #include <math.h> e l opzione -lm per il linker. b 2 Definire un possibile main che legga da tastiera due valori che rappresentino i cateti di un triangolo rettangolo, e stampi il valore dell ipotenusa. Lab06 19

Esercizio 7 Funzioni - Soluzione float ipotenusa(float a, float b) { return sqrt(a*a + b*b); Lab06 20

Esercizio 8 - Funzioni Codificare in C la funzione int perimetro(int a, int b, int c) che, dati i lati a,b,c di un triangolo, ne calcola il perimetro. Codificare in C la funzione float area(int a, int b, int c) che restituisce l area di un triangolo i cui lati misurano a, b, c. A tal scopo si usi la formula di Erone: Area = p( p - a)( p - b)( p - c) Dove p è la metà del perimetro. A tal scopo si includa l header <math.h> e si utilizzi la funzione sqrt(x). Definire un possibile main che prende in ingresso i tre lati di un triangolo e stampa perimetro ed area. Lab06 21

Esercizio 8 Funzioni - Soluzione float perimetro(float a, float b, float c) { return a + b + c; float area(float a, float b, float c) { float p; float area; p = perimetro(a, b, c) / 2; area = sqrt( p * (p-a) * (p-b) * (p-c) ); return area; Lab06 22

Esercizio 9 - Funzioni Codificare in C la funzione int primo(int x) che restituisce: 1 se x è un numero primo 0 altrimenti. Si utilizzi a tal proposito l operatore modulo (%). Si progetti un programma che legge da tastiera un numero N, e stampa a video tutti i numeri primi compresi tra 0 e N. Lab06 23

Esercizio 9 Funzioni - Soluzione int primo(int x) { int i; for (i=2; i<x; i++){ if (x%i==0) return 0; return 1; int main(){ int i, N; printf("inserisci il numero N: "); scanf("%d", &N); for (i=0; i<n; i++){ if (primo(i)==1) printf("%d\n", i); return 0; Lab06 24