[ azraxyz @ 22.02.2021. 07:11 ] @
Treba mi pomoć , zadatak je kreirati lamda izraz za izracunavanje povrsine kruga . Lambdi izrazu se isporucuje poluprecnik , a potrebno je da lambda izraz proizvede tekstualnu poruku (string) koji ce sadrziati rezultat...
Ne mogu da se snadjem, inače sam početnik, tek učim...
Da li mi neko može pomoći?
Hvala Unaprijed
[ plague @ 22.02.2021. 08:20 ] @
Koji deo je problematican? Pisanje funkcije ili konverzija funkcije u lambdu?
[ azraxyz @ 22.02.2021. 09:57 ] @
Citat:
plague: Koji deo je problematican? Pisanje funkcije ili konverzija funkcije u lambdu?
Citat:
plague: Koji deo je problematican? Pisanje funkcije ili konverzija funkcije u lambdu?


Ovako sam uradila zadatak :
namespace PovKruga
{
delegate int Product(int r);
class Program
{
static void Main(string[] args)
{
Product PovK = (r) => r * r;
int result = PovK(5);
Console.WriteLine("Result is :");
Console.WriteLine(result);
Console.Read();
}
}
}

Da li je to dovoljno ili fali drugi nacin za ispis rezultata ? Nisam sigurna ?
[ plague @ 22.02.2021. 11:16 ] @
Ovo je C# koliko vidim, a ne Java.

Mada ideja je ista, samo treba izmenti liniju:

Code:

Action<int> povrsinaKruga = (r) => Console.WriteLine("Result is: " + (r * r));
povrsinaKruga(5);
[ BuzzLightyear @ 22.02.2021. 11:21 ] @
Koliko ja vidim ova tvoja Java je u stvari C#. Rekao bih da je kod ispravan, jedino što ti u zadatku traže da funkcija vrati string, a tvoja funkcija vraća int. Mislim da bi trebalo da promeniš potpis funkcije i da unutar funkcije konvertuješ int u string.

P.S.
Pretekao me je plague. Nije baš najjasnije da li funkcija treba da ispiše poruku ili da vrati string.
[ BuzzLightyear @ 22.02.2021. 11:32 ] @
Code:

namespace PovKruga
{
    using System;
    delegate String Product(int r);
    public class Program
    {
        public static void Main(string[] args)
        {
            Product PovK = (r) => Convert.ToString(r * r * Math.PI);
            Console.WriteLine("Result is : " +  PovK(5));
        }
    }
}


[Ovu poruku je menjao BuzzLightyear dana 22.02.2021. u 12:59 GMT+1]
[ djoka_l @ 22.02.2021. 11:43 ] @
A i fali jedno pi u površini kruga, nije progamiranje, ali je matematika.
[ BuzzLightyear @ 22.02.2021. 11:57 ] @
Da :) nisam ni gledao funkciju, samo sam kopirao. Nije mi uopšte palo na pamet da proveravam. Zanimljivo da ni plague nije primetio.

Dodao sam PI.
[ plague @ 22.02.2021. 12:59 ] @
HAHA. Da, nisam gledao uopste..
[ mjanjic @ 22.02.2021. 16:06 ] @
Ne kontam ovakvu upotrebu Lambda izraza, ja sam navikao da ih koristim samo umesto anonimnih funkcija (kao npr. kod jQuery, kad ima više ugneždenih callback funkcija, lako se pogubiti sa onolikim zagradama, a i bespotrebno se gomila kod).

Takođe, C# ima odličnu podršku za Lambda izraze (ne treba mešati C# Lambda izraze sa LambdaExpression klasom u System.Linq.Expressions, jer je LINQ implementiran u .NET-u tako da se može pisati da više liči na Lambda izraze umesto na SQL upite), pa takve izraze ima smisla koristi recimo u ovakvim situacijama:
Code:
public List<Product> GetNonExpired (DateTime date)
{
    return this.productRepository.GetProducts().Where(p => p.ExpiryDate < date).ToList();
}


Kod je sasvim pregledan, jasno je šta radi, kakve podatke vraća, a praktično sve u jednoj liniji.
Ali, da bi mogao da se piše ovako sažet kod, mora postojati implementacija tih metoda, što je ukonkretnom primeru urađeno u okviru LINQ-a u .NET-u (Queryable assembly).

Ono što je najveći problem kod MS-a je njihova dokumentacija, recimo konkretno za Where() metodu:
https://docs.microsoft.com/en-...System_Int32_System_Boolean___

Tu njihovu dokumentaciju kao da pišu ljudi koji u životu nisu uradili jedan primer funkcionalnog koda koji može da se kompajlira ili da se primeni na neki praktičan slučaj.
[ azraxyz @ 24.02.2021. 07:20 ] @
Citat:
BuzzLightyear:
Code:

namespace PovKruga
{
    using System;
    delegate String Product(int r);
    public class Program
    {
        public static void Main(string[] args)
        {
            Product PovK = (r) => Convert.ToString(r * r * Math.PI);
            Console.WriteLine("Result is : " +  PovK(5));
        }
    }
}


[Ovu poruku je menjao BuzzLightyear dana 22.02.2021. u 12:59 GMT+1]



A tu je greška bila, sad mi je jasno. Znala sam da mi nešto fali ali nisam bila sigurna šta . Hvala Mnogo .
S namjerom sam otišla s formulom r*r bez PI jer mi nikako nije htjelo učitati sa PI i izbacivalo je grešku.
Hvala Vam mnogo
[ azraxyz @ 24.02.2021. 07:26 ] @
Citat:
mjanjic:
Ne kontam ovakvu upotrebu Lambda izraza, ja sam navikao da ih koristim samo umesto anonimnih funkcija (kao npr. kod jQuery, kad ima više ugneždenih callback funkcija, lako se pogubiti sa onolikim zagradama, a i bespotrebno se gomila kod).

Takođe, C# ima odličnu podršku za Lambda izraze (ne treba mešati C# Lambda izraze sa LambdaExpression klasom u System.Linq.Expressions, jer je LINQ implementiran u .NET-u tako da se može pisati da više liči na Lambda izraze umesto na SQL upite), pa takve izraze ima smisla koristi recimo u ovakvim situacijama:
Code:
public List<Product> GetNonExpired (DateTime date)
{
    return this.productRepository.GetProducts().Where(p => p.ExpiryDate < date).ToList();
}


Kod je sasvim pregledan, jasno je šta radi, kakve podatke vraća, a praktično sve u jednoj liniji.
Ali, da bi mogao da se piše ovako sažet kod, mora postojati implementacija tih metoda, što je ukonkretnom primeru urađeno u okviru LINQ-a u .NET-u (Queryable assembly).

Ono što je najveći problem kod MS-a je njihova dokumentacija, recimo konkretno za Where() metodu:
https://docs.microsoft.com/en-...System_Int32_System_Boolean___

Tu njihovu dokumentaciju kao da pišu ljudi koji u životu nisu uradili jedan primer funkcionalnog koda koji može da se kompajlira ili da se primeni na neki praktičan slučaj.


Inače student sam na IT Akademiji, tek sam krenula sa programiranjem, prvi put se susrećem malo ozbiljnije s tim preko akademije. Neke stvari mi je dosta tesko shvatiti po opisima koje oni daju , ali ima net pa se snalazim. Taj primjer koji sam uradila, bas ttako kako sam napisala tu gore u pitanju, predavač mi je prihvatio kao uspiješno odradjen zadatak. Ja sam postavila pitanje ovdje, a uporedo s tim sam poslala zadatak na pregled da čujem šta će mi on reći i kako će me ispraviti. Od njega ispravku nisam dobila. A znam , vidim, da mi fali nesto ali ne mogu dokučiti šta . Vaš odgovor ima smisla i slažem se u potpunosti s Vama , a iskreno se i nadam , da će mi akademsko predavanje postati jasnije, da ću po završetku godine biti spremna da nešto i programiram,da ne bude uzalud bačen novac. Svakako, hvala Vam na odgovoru
[ azraxyz @ 24.02.2021. 07:28 ] @
Citat:
djoka_l:
A i fali jedno pi u površini kruga, nije progamiranje, ali je matematika.


Za PI znam, izbacivalo mi je grešku kada sam ga dodavala, a nisam znala šta dalje da promijenim da bi bilo ispravno,zato sam ostavila tako i onda odlučila da pitam iskusnije od mene :D
[ azraxyz @ 24.02.2021. 07:29 ] @
Citat:
BuzzLightyear:
Koliko ja vidim ova tvoja Java je u stvari C#. Rekao bih da je kod ispravan, jedino što ti u zadatku traže da funkcija vrati string, a tvoja funkcija vraća int. Mislim da bi trebalo da promeniš potpis funkcije i da unutar funkcije konvertuješ int u string.

P.S.
Pretekao me je plague. Nije baš najjasnije da li funkcija treba da ispiše poruku ili da vrati string.


Ja se izvinjavam što sam promašila temu, tek sam ulogovala se na ovaj sajt pa se nisam odmah snašla :D