Giampaolo Brancatello Metodi (1° parte) Giampaolo Brancatello
Sommario Metodi Tipi di metodo Senza valore di ritorno Con valore di ritorno Passaggio di parametri Nessun Parametro Passaggio per valore Passaggio per riferimento ref out
Usiamo sempre dei metodi …. Password Input1 Input2 Interruttore “Apriti” Calcolatore Output
Metodi Predefiniti in C# Console.WriteLine(” Hello world!”); double n = Math.Sqrt(9); parametri Hello world! 9 Console.WriteLine Math.Sqrt 3
Metodi Predefiniti in C# int N = int.Parse(”5”); double risp =Math.Max(9, 2); String “5” 9 2 int.Parse Math.Max Int 5 9
una funzione/procedura situata all’interno di una Classee Cosa sono i metodi ? Un Metodo è una funzione/procedura situata all’interno di una Classee System.Console.WriteLine(“Hello World!”);
Tipi di metodo J = Math.Max(5, 20); 1. Metodi senza valore di ritorno Procedura Console.WriteLine(“Hello World!”); Nome metodo Parametro Nome Classe 2. Metodi con valore di ritorno Funzione J = Math.Max(5, 20); J=20 Nome Classe parametro Nome Metodo
Senza valore di ritorno (void) Tipi di Metodo n1 n2 Hello world! Math.Max Console. WriteLine Max di n1 & n2 Senza valore di ritorno (void) Con valore di ritorno
Metodi : Esempio * ** Program End using System; Classe Metodo_Esempio { static void Main() { displaybox(); Console.WriteLine("Program End"); } static void displaybox() { Console.WriteLine("x"); Console.WriteLine("xx"); Monitor 1 3 2
Sommario Metodi: nozioni di base Utilizzo dei Metodi Modalità di passaggio dei parametri Passaggio per valore Passaggio per riferimento
1.Definire il metodo Metodo Utilizzo dei metodi 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# 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 static void displaybox () { } static int calage () { } static int calbox(int x,int y) { }
Esempio1: Senza valori di ritorno using System; Classe NReturned { static void Main() { Console.WriteLine(”Hello, Pippo”); } HelloP Hello, Pippo
Esempio1: Non-Returned Value using System; Classe NReturned { static void HelloP() { Console.WriteLine(”Hello, Pippo”); } static void Main() { HelloP(); Hello Pippo
Esempio2: Senza valori di ritorno con parametri using System; Classe NReturned { static void Main() { Console.WriteLine(”Ciao, AAA”); Console.WriteLine(”Ciao, BBB”); Console.WriteLine(”Ciao, CCC”); } string string Nome Ciao Ciao, Nome
Esempio2: Senza valori di ritorno con parametri using System; Classe NReturned { static void Ciao(string Nome) { Console.WriteLine(”Ciao, {0}”, Nome); } static void Main() { Ciao(”AAA”); Ciao(”BBB”); Ciao(”CCC”); Ciao string Nome Ciao, Nome Monitor Ciao, AAA Ciao, BBB Ciao, CCC
**** * **** * **** * **** * Esempio 3 static void Main(){ int i,j,n; Console.WriteLine("Square size = 2"); for(i=0;i<2;i++){ for(j=0;j<2;j++) Console.Write("*"); Console.WriteLine(); } Console.WriteLine("Square size = 4"); for(i=0;i<4;i++){ for(j=0;j<4;j++) int n DrawSquare Video ... **** * **** * **** * **** * ... Square size = 2 ** ** Square size = 4 **** **** ... ...
**** * **** * **** * **** * Esempio 3 static void Main(){ Console.WriteLine("Square size = 2"); drawSquare(2); Console.WriteLine("Square size = 4"); drawSquare(4); } static void drawSquare(int n){ int i,j; for(i=0;i<n;i++){ for(j=0;j<n;j++) Console.Write("*"); Console.WriteLine(); Monitor DrawSquare int n **** * **** * **** * **** * ... Square size = 2 ** ** Square size = 4 **** **** **** ****
Self Test 1 Scrivi il metodo PrintNumber(n) Esempio PrintNumber Riceve come n (intero e positivo) Stampa a video 1234...n Esempio int n 7 PrintNumber PrintNumber 1234...n 1234567
Self Test 1 static void PrintNumber(int n) { int i; Write the MetodiPrintNumber(n) Recieve parametro n Show 1234...n 1234...n static void PrintNumber(int n) { int i; for(i=1;i<=n;i++) Console.Write(i); }
Sommario 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# #nota tipo di ritorno 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 static void PrintNumber(int n) { double n, risp; n = int.Parse(Console.ReadLine()); risp = Math.Sqrt(n); Console.Write(“Root {0} is equal {1}",n,risp); } Math.Sqrt n n
Esempio 1 (valori di ritorno) using System; Classe Returned { static void Main() { int j; j = 2*2; Console.WriteLine(”{0}”, j); j = 5*5; } n Quad n2
Esempio 1 n n2 using System; Classe Returned { static int Quad(int n) { return n*n; } static void Main() { int j; j = Quad(2); //j=2*2; Console.WriteLine(”{0}”, j); j = Quad(5); //j=5*5; Quad n n2 Video 4 25
Esempio 2: ricerca dei numeri primi static void Main() { int n,i,count=0; n = int.Parse(Console.ReadLine()); 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
True if x è primo. False if x non è primo Esempio 2 static void Main() { int n,i,count=0; n = int.Parse(Console.ReadLine()); 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
True if n è primo. False if n non è primo Esempio 2 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; } static void Main(){ int n = int.Parse(Console.ReadLine()); if(Is_Prime(n) == true) Console.Write("{0} è primo.",n); Is_Prime x True if n è primo. False if n non è primo
Esempio 3: calcolo volume cilindro static void Main() { double r,h,V; r = double.Parse(Console.ReadLine()); h = double.Parse(Console.ReadLine()); V = Math.Pi*r*r*h; Console.Write("V = {0}",V); } r h v_cilindro V
Esempio 3: Returned Value v_cilindro r V h 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.ReadLine()); h = double.Parse(Console.ReadLine()); V = v_cilindro(r,h); Console.Write("V = {0}",V);
Self Test 1 Creare un metodo Power4(n) Deve restituire il valore n*n*n*n Es. int j = Power4(3); //Return 81 int int n static ____ Power4(___________________) { } int risp; return n*n*n*n; risp = n*n*n*n; return risp;
Self Test 2 Definire metodo Max(x, y, z) Return Max Value Es. int j = Max(5, 20, 12); //Return 20 int int x, int y, int z static ____ MAX(___________________) { } int risp; if(x >= y && x >= z) return x; risp = x; else if(y >= x && y >= z) risp = y; return y; else return z; risp = z; return risp;
Struttura C# - Metodi multipli Namespace Class Main() Metodo1() Metodo2() Metodo3() MetodoN()
Esempio 5 : metodi multipli static double PuntoMedio(double n1, double n2) { return (n1+n2)/2; } static void Stampa(double x, double y) Console.Write("P. medio = {0} ", PuntoMedio(x,y)); static void Main(string[] args) { Console.Write(“Inserire 2 valori: "); double a1 = double.Parse(Console.ReadLine()); double a2 = double.Parse(Console.ReadLine()); Stampa(a1, a2); }
Domande ?