Obiective Tablouri n car!" #nu$irea %odului de lucru cu clae n &iual '(" 'lae $i %e%bri tatici" Func)ii cu nu%!r *ariabil de +ara%etri" Lucrul cu ar,u%entele liniei de co%and!. -. Tablouri n car! Studai exemplele de mai jos i rspundei n scris la urmtoarele ntrebri: o Ce semnificaie are valoarea ntoars de ctre metoda GetLength()? o Care sunt diferenele (d.p.d.v. al rezultatului furnizat dintre proprietatea Length i metoda GetLength()? Int[, ,] arr = new int[10, 11, 12]; arr[0, 0, 1] = 23; Console.WriteLine(arr.Length); Console.WriteLine(arr.GetLength(0)); Console.WriteLine(arr.GetLength(1)); Console.WriteLine(arr.GetLength(2)); Console.WriteLine("arr[0,0,1]=" arr[0,0,1]); !!"a#lo$ri in s%ara !!&' . nr1. ( ele)entele $n$i ast*el +e ta#lo$ s$nt, la ran+$l lor,tot !!ta#lo$ri int[][] ,n$)ere = new int[][] - new int[] - 1, 3, . /, new int[] - 2, 0, 1, 2, 10 / /; 34ste).Console.WriteLine(,n$)ere[1][0]);!!=5 3e a*isea6a "10" !!&' . nr2. ( 7#s. 8ie%are ta#lo$ are $n n$)ar +i*erit +e ele)ente int[][] arr9rIntregi = new int[.][]; arr9rIntregi[0] = new int[2]; arr9rIntregi[1] = new int[3]; arr9rIntregi[2] = new int[0]; arr9rIntregi[3] = new int[.]; arr9rIntregi[0] = new int[1]; PROGRAMAREA INTERFEELOR UTILIZATOR int i, ,; !!%itirea ele)entelor ta#lo$l$i *or (i = 0; i : arr9rIntregi.Length; i) *or (, = 0; , : arr9rIntregi[i].Length; ,) - Console.Write("arr9rIntregi[-0/][-1/]=", i, ,); arr9rIntregi[i][,] = Int32.;arse(Console.<ea+Line()); / !!a*isarea ele)entelor ta#lo$l$i *or (i = 0; i : arr9rIntregi.Length; i) - *or (, = 0; , : arr9rIntregi[i].Length; ,) Console.Write(arr9rIntregi[i][,] " "); Console.WriteLine(); / !odificai codul anterior astfel nc"t s #sii rspunsul la urmtoarea ntrebare: o Ce semnificaie are valoarea furnizat de ctre proprietatea Length pentru cazul unui tablou n scar (ex.: arrNrIntregi.Length? .. 'lae n &iual '( Studiai clasa Complex i modalitatea de utilizare a acesteia$ Creai o aplicaie %isual C& pentru testarea clasei 'o%+le/$ 'du#ai clasei 'o%+le/ noi metode( pentru: o diferena a dou numere complexe$ o produsul a dou numere complexe$ o modulul unui numr complex. 'du#ai clasei 'o%+le/( posibilitatea de contorizare a numrului de instanieri. Indica)ie: vei utiliza o dat membr static privat i o metod static public. %lass Co)=le' - !!+ate )e)#re =ri>ate *loat re, i); !!)eto+e PROGRAMAREA INTERFEELOR UTILIZATOR !!$n %onstr$%tor *ara =ara). =$#li% Co)=le'() - re = i) = 0; / !!$n %onstr$%tor %$ 2 =ara)etri =$#li% Co)=le'(*loat ?re, *loat ?i)) - re = ?re; i) = ?i); / !!$n %onstr$%tor %e %onstr$ieste o %o=ie a o#ie%t$l$i =ri)it %a !!=ara)etr$ =$#li% Co)=le'(Co)=le' o#,Co)=l) - re = o#,Co)=l.re; i) = o#,Co)=l.i); / !!s$)a a +o$a n$)ere %o)=le'e =$#li% Co)=le' 3$)a(Co)=le' o#,Co)=l) - ret$rn new Co)=le'(re o#,Co)=l.re, i) o#,Co)=l.i)); / !!setarea =artii reale a n$)ar$l$i %o)=le' =$#li% >oi+ set<e(*loat ?re) - re = ?re; / !!setarea =artii i)aginare a n$)ar$l$i %o)=le' =$#li% >oi+ setI)(*loat ?i)) - i) = ?i); / !!a*isarea n$)ar$l$i %o)=le' =$#li% >oi+ @*is() - 34ste).Console.WriteLine(re (i) 5= 0 A "" B "(") "iC" Dath.@#s(i))); / / stati% >oi+ Dain(string[] args) - Co)=le' o#,C1 = new Co)=le'(); Co)=le' o#,C2 = new Co)=le'(2.38, (*loat)(3.0); Co)=le' o#,C3 = new Co)=le'((*loat)2, (*loat)23.12); 34ste).Console.Write("C1 B "); o#,C1.@*is(); 34ste).Console.Write("C2 B "); o#,C2.@*is(); 34ste).Console.Write("C3 B "); PROGRAMAREA INTERFEELOR UTILIZATOR o#,C3.@*is(); Co)=le' o#,3$)a = o#,C2.3$)a(o#,C3); 34ste).Console.Write("C2C3 B "); o#,3$)a.@*is(); !!$n no$ o#ie%t i+enti% (+=+> al +atelor )e)#re) %$ C2 Co)=le' o#,C0 = new Co)=le'(o#,C2); 34ste).Console.Write("C0 B "); o#,C0.@*is(); !!o re*erinta la o#,C0 EEE Co)=le' o#,C. = o#,C0; !!3e )o+i*i%a =artea reala a n$)ar$l$i %o)=le' o#,C. =5 !!se )o+i*i%a =artea reala si a n$)ar$l$i %o)=le' o#,C0 o#,C..set<e(.); 34ste).Console.Write("C0 B "); o#,C0.@*is(); 34ste).Console.Write("C. B "); o#,C..@*is(); / 0. Ar,u%entele liniei de co%and! Studiai exemplul de mai jos i instruciunea 1itc2. )recizai diferenele dintre instruciunea 1itc2 din C*C++ i cea din C&. using System; using System.Collections.Generic; using System.Text; namespace ExParametri { class Program { static void Main(string[] args) { if (args.Length !) System.Console."rite(#Linia $e coman$a n% contine arg%mente#); else { //afisarea numarului de argumente System.Console."riteLine(#&%mar%l $e arg%mente este' #(args.Length); //afisarea argumentelor liniei de comanda foreach (string )aram in args) System.Console."riteLine()aram); //exemplificare instructiune switch switch (args[!]) { case #a*o%t#' case #$es)re#' System.Console."riteLine(#Pi% la*orator nr.+#); PROGRAMAREA INTERFEELOR UTILIZATOR break; case #tema#' System.Console."riteLine(#Exem)li,icare mo$ $e l%cr% c% arg%mentele liniei $e coman$a#); break; default' System.Console."riteLine(#Coman$a nec%nosc%ta#); break; - - - - - 4. Func)ii cu nu%!r *ariabil de +ara%etri Studiai exemplul de mai jos: =$#li% stati% *loat *%t9rFar;ar(=ara)s 7#,e%t[] n$)ere) - int s$)a = 0; *orea%h (7#,e%t nr in n$)ere) s$)a = Con>ert."oInt32(nr."o3tring()); ret$rn (*loat)(s$)a) ! (*loat) (n$)ere.Length); / A+el3 34ste).Console.Write("De+ia = " *%t9rFar;ar(1,3,2,G,2,2)); !odificai exemplul considerat( dup cum urmeaz: o scriei o funcie cu numr variabil de parametri care va fi utilizat pentru ordonarea unui ir de numere ntre#i de lun#ime oarecare$ o elementele vor putea fi specificate n linia de comand( sub urmtoarea form: Nu%eA+licatie 45%edie6 45ort43ordine66 4576 nr- nr. ... unde: %edie( ort reprezint comanda de executat$ ordine poate fi ' sau 8( pentru cresctor sau descresctor. PROGRAMAREA INTERFEELOR UTILIZATOR o dac nu s,a introdus nimic n linia de comand( numerele dorite pot fi introduse ulterior( iar selectarea operaiei se va realiza pe baza unui meniu. Te%! de laborator3 -. 9crie)i o :unc)ie cu nu%!r *ariabil de +ara%etri care *a reali;a concatenarea unui nu%!r oarecare de $iruri de caractere la :<r$itul unui ir dat" .. Modi:ica)i e/e%+lul ExParametri at:el nc<t3 o 8ac! linia de co%and! nu con)ine nici un ar,u%ent e *a a:i$a ur%!torul %ea= >Linia de co%anda nu contine ar,u%ente.?" o 8ac! +ri%ul ar,u%ent ete >7? e *a a:i$a nu%ele autorului" o 8ac! linia de co%and! con)ine n nu%ere ntre,i @E/. - 0 4 . ABC acetea *or :i ad!u,ate ntrDun *ectorC a+oi e *a ordona $i a:i$a *ectorul. Pentru ordonare $i a:i$are *e)i utili;a %etodele BSort $i Afis din ExVectori @lucrarea de laborator nr. 0B. 0. I%+le%enta)i claa '( +entru T8A 9ti*a. PROGRAMAREA INTERFEELOR UTILIZATOR Te%! +entru aca!3 -. 9crie)i o a+lica)ie &iual 9tudio .E-E +entru ,etiunea unei a,ende tele:onice. #n acet co+C *e)i de:ini o cla! denu%it! Agena!elefonica care *a +er%ite reali;area ur%!toarelor o+era)ii3 ini)iali;area a,endei" ad!u,area unui nou contact" %odi:icarea5$ter,erea contactelor e/itente" c!utarea unui contact etc. .. 9crie)i o a+lica)ie &iual '( care *a citi ar,u%entele liniei de co%and! $i a+oi *a toca toate cu*intle ntrDun tablou n car!C du+! cu% ur%ea;!3 in +ri%a co%+onentaC cu*intele care ince+ cu litera FaF au FAF" in cea deDa doua co%+onent!C cu*intele care ince+ cu litera FbF au FGF etc A:i$a)i tabloul ob)inut.