METODI 1 PARTE Giampaolo Brancatello Sommario 2 Metodi
METODI (1° PARTE) Giampaolo Brancatello
Sommario 2 Metodi Passaggio di parametri Tipi di metodo Senza valore di ritorno Con valore di ritorno Nessun Parametro Passaggio per valore Passaggio per riferimento ref out
Usiamo sempre dei metodi …. 3 Interruttore Password Input 1 Input 2 “Apriti” Calcolatore Output
Metodi Predefiniti in C# 4 Console. Write. Line(” Hello world!”); Hello world! Console. Write. Line double n = Math. Sqrt(9); parametri 9 Math. Sqrt 3
Metodi Predefiniti in C# 5 int N = int. Parse(” 5”); double risp =Math. Max(9, 2); String “ 5” 9 2 int. Parse Math. Max Int 5 9
Cosa sono i metodi ? 6 Un Metodo è una funzione/procedura situata all’interno di una Classee System. Console. Write. Line(“Hello World!”);
Tipi di metodo 7 1. Metodi senza valore di ritorno Procedura Console. Write. Line(“Hello World!”); Nome Classe Nome metodo Parametro 2. Metodi con valore di ritorno J = Math. Max(5, 20); Nome Classe J=20 parametro Nome Metodo Funzione
Tipi di Metodo 8 Hello world! Console. Write. Line n 1 n 2 Math. Max di n 1 & n 2 Senza valore di ritorno (void) Con valore di ritorno
Metodi : Esempio * ** 9 Program End using System; Monitor Classe Metodo_Esempio { 0 static void Main() { displaybox(); Console. Write. Line("Program End"); } 1 static void displaybox() { Console. Write. Line("x"); 2 Console. Write. Line("xx"); } 3 }
Sommario 10 Metodi: nozioni di base Utilizzo dei Metodi Modalità di passaggio dei parametri Passaggio per valore Passaggio per riferimento
Utilizzo dei metodi 11 1. Definire il metodo Metodo 2. Richiamare il Metodo Nota: spesso si usa il termine “invocare” il metodo per indicare il passo 2
Definizione di metodi in C# 12 static <return-tipo> <nome-metodo>(<lista parametri>) { <const/ dichiarazione di variabile>; <istruzioni>; } #note sul: tipo di ritorno può essere int, double, string, … ed è necessario utilizzare return - void = Senza valore di ritorno
Esempi di dichiarazione di metodi 13 static void displaybox () { } static int calage () { } static int calbox(int x, int y) { }
Esempio 1: Senza valori di ritorno 14 using System; Classe NReturned { static void Main() { Console. Write. Line(”Hello, Pippo”); } } Hello. P Hello, Pippo
Esempio 1: Non-Returned Value 15 using System; Classe NReturned { static void Hello. P() { Console. Write. Line(”Hello, Pippo”); } static void Main() { Hello. P(); Hello Pippo } Hello Pippo
Esempio 2: Senza valori di ritorno con parametri 16 using System; Classe NReturned { static void Main() { Console. Write. Line(”Ciao, } } string Nome AAA”); BBB”); CCC”); Ciao, Nome
Esempio 2: Senza valori di ritorno con parametri 17 using System; Classe NReturned { static void Ciao(string Nome) { Console. Write. Line(”Ciao, {0}”, Nome); string Nome } static void Main() { Ciao(”AAA”); Ciao Monitor Ciao(”BBB”); Ciao(”CCC”); Ciao, AAA Ciao, BBB Nome } Ciao, CCC }
Esempio 3 18 static void Main(){ int i, j, n; Console. Write. Line("Square size = 2"); for(i=0; i<2; i++){ int n for(j=0; j<2; j++) Console. Write("*"); Console. Write. Line(); Draw. Square } Console. Write. Line(); } ** Console. Write("*"); Console. Write. Line(); . . . * Video **** Console. Write. Line("Square size = 4"); . . . =*2 Square size **** for(i=0; i<4; i++){ ** ****. . . * for(j=0; j<4; j++). . . **** Square size =*4 ****
Esempio 3 static void Main(){ Console. Write. Line("Square size = 2"); 19 draw. Square(2); Console. Write. Line("Square size = 4"); draw. Square(4); Monitor } int =n 2 Square size static void draw. Square(int n){ int i, j; for(i=0; i<n; i++){ for(j=0; j<n; j++) Console. Write("*"); Console. Write. Line(); } ** ** Draw. Square size = 4 **** ****. . . *
Self Test 1 20 Scrivi il metodo Print. Number(n) Riceve come n (intero e positivo) Stampa a video 1234. . . n Esempio int n 7 Print. Number 1234. . . n 1234567
Self Test 1 int n 21 Write the Metodi. Print. Number(n) Recieve parametro n Show 1234. . . n Print. Number 1234. . . n static void Print. Number(int n) { int i; for(i=1; i<=n; i++) Console. Write(i); }
Sommario 22 Metodo tipo di Metodo Senza valore di ritorno Con valore di ritorno Passaggio parametri Nessun parametro Passaggio per valore Passaggio per riferimento ref out
Sintassi in C# 23 static <tipo di ritorno> <Nome metodo>(<lista parametri>) { <dichiarazione variabili locali>; <istruzioni>; } #nota tipo di ritorno - può essere: int, double, string, … necessita dell’ istruzione return - void = Senza valore di ritorno
Metodo con valore di ritorno 24 static void Print. Number(int n) { double n, risp; n = int. Parse(Console. Read. Line()); risp = Math. Sqrt(n); n Console. Write(“Root {0} is equal {1}", n, risp); } n Math. Sqrt n
Esempio 1 (valori di ritorno) 25 using System; Classe Returned { static void Main() { int j; j = 2*2; Console. Write. Line(”{0}”, j); j = 5*5; Console. Write. Line(”{0}”, j); } } n Quad n 2
Esempio 1 26 using System; Classe Returned { static int Quad(int n) { return n*n; } static void Main() { int j; j = Quad(2); //j=2*2; Console. Write. Line(”{0}”, j); j = Quad(5); //j=5*5; Console. Write. Line(”{0}”, j); } } n Quad n 2 Video 4 25
Esempio 2: ricerca dei numeri primi 27 static void Main() { int n, i, count=0; n = int. Parse(Console. Read. Line()); for(i=1; i<=n; i++) if(n%i==0) count++; if(count==2) Console. Write("{0} è primo. ", n); } Procedura per vedere se n è primo
Esempio 2 28 static void Main() { int n, i, count=0; n = int. Parse(Console. Read. Line()); for(i=1; i<=n; i++) if(n%i==0) count++; if(count==2) Console. Write("{0} è primo. ", n); } x Is_Prime True if x è primo. False if x non è primo
Esempio 2 29 static bool Is_Prime(int x){ int i, count=0; for(i=1; i<=x; i++) if(x%i==0) count++; if(count==2) return true; else return false; } x Is_Prime True if n è primo. False if n non è primo static void Main(){ int n = int. Parse(Console. Read. Line()); if(Is_Prime(n) == true) Console. Write("{0} è primo. ", n); }
Esempio 3: calcolo volume cilindro 30 static void Main() { double r, h, V; r = double. Parse(Console. Read. Line()); h = double. Parse(Console. Read. Line()); V = Math. Pi*r*r*h; Console. Write("V = {0}", V); r } h v_cilindro V
Esempio 3: Returned Value 31 h r v_cilindro V static double v_cilindro(double r, double h){ return Math. PI*r*r*h; } static void Main() { double r, h, V; r = double. Parse(Console. Read. Line()); h = double. Parse(Console. Read. Line()); V = v_cilindro(r, h); Console. Write("V = {0}", V); }
Self Test 1 32 Creare un metodo Power 4(n) Deve restituire il valore n*n*n*n Es. int j = Power 4(3); //Return 81 int Power 4(__________) int n static ____ { int risp; return risp = n*n*n*n; return risp; }
Self Test 2 33 Definire metodo Max(x, y, z) Return Max Value Es. int j = Max(5, 20, 12); //Return 20 int MAX(__________) int x, int y, int z static ____ { int risp; if(x >= y && x >= z) return risp = x; else if(y >= x && y >= z) risp return = y; else risp return = z; return risp; }
Struttura C# - Metodi multipli 34 Namespace Class Main() Metodo 1() Metodo 2() Metodo 3() Metodo. N()
Esempio 5 : metodi multipli 35 static double Punto. Medio(double n 1, double n 2) { return (n 1+n 2)/2; } static void Stampa (double x, double y) { Console. Write("P. medio = {0} ", Punto. Medio(x, y)); } static void Main(string[] args) { Console. Write(“Inserire 2 valori: "); double a 1 = double. Parse(Console. Read. Line()); double a 2 = double. Parse(Console. Read. Line()); Stampa (a 1, a 2); }
DOMANDE ?
- Slides: 36