Sunteți pe pagina 1din 7

PROGRAMAREA INTERFEELOR UTILIZATOR

Lucrarea de laborator nr. 4


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.

S-ar putea să vă placă și