Hirdetés
- Samsung Galaxy S23 Ultra - non plus ultra
- iPhone topik
- Xiaomi Watch 2 - fast fashion
- Netfone
- Apple Watch
- Xiaomi 15 - kicsi telefon nagy energiával
- Amazfit Bip 6 - jót olcsón
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Milyen hagyományos (nem okos-) telefont vegyek?
Új hozzászólás Aktív témák
-
kingabo
őstag
válasz
Dr. Student
#2700
üzenetére
Metódust nem tudsz osztályon kívül írni.

Attól függ, hogy mire akarod használni kell eldöntened, hogy hova teszed.
-
fatal`
titán
válasz
Dr. Student
#2700
üzenetére
Nem, ez elméletben mindenre. Ha osztályon belül írsz egy másik osztályt arra is igaz ez. Metódust osztályon kívülre nem is lehet írni szerintem (illetve structba lehet, de az csak annyiban tér el az osztálytól, hogy alapból minden public), bár ilyet még nem próbáltam.
-
fatal`
titán
válasz
Dr. Student
#2698
üzenetére
Ha jól tudom, ha kívülre írod akkor az egész namespacere érvényes, ha belülre, akkor meg osztályon belül.

-
Jester01
veterán
válasz
Dr. Student
#2695
üzenetére
Te magát az F függvényt írod, az a feladat. És attól lesz rekurzív, hogy saját magát hívja.
-
Jester01
veterán
válasz
Dr. Student
#2693
üzenetére
Ez azt akarja jelenteni, hogy mindegyik szám az előző kettő összege. n-ből közvetlenül így nem számolható, azért kell a rekurzió (bár ugye van rá képlet, de most nem az a feladat).
A definíció így hangzik:
1) F(0) = 0
2) F(1) = 1
3) F(n) = F(n-1) + F(n-2)Pontosan ezt kell leprogramozni is. Így már megy vagy mondjam tovább?
MOD: mondom még egy kicsit. F(2) a definíció alapján F(1) + F(0) tehát 1+0=1. F(3) = F(2) + F(1), vagyis 1+1=2.
-
Jester01
veterán
válasz
Dr. Student
#2691
üzenetére
Fibonaccival hol akadtál el? Igazából sehol nem lehet benne elakadni, ha az alapképletet már megkerested. Jóformán szó szerint csak le kell másolni a definíciót.
-
ArchElf
addikt
válasz
Dr. Student
#2681
üzenetére
de maradhat így is, csak ne nullára vizsgáld, hanem float.NaN-re... [link]
A while ciklus az elején is egyszerűsíthető, másrészt a hibákat célszerű az error stream-re írni a sima output stream helyett:
float a;
Console.Write("Kérem az (a) szám értékét: ");
while ((a = int.Parse(Console.ReadLine())) == 0)
{
Console.Error.WriteLine("Az (a) értéke nem lehet 0.");
Console.Write("Kérem az (a) szám értékét: ");
}Harmadrészt célszerű volna lekezelni az az esetet is, ha az int.Parse hibára fut (nem szám lett beadva):
int a;
Console.Write("Kérem az (a) szám értékét: ");
while (!int.TryParse(Console.ReadLine(), out a) || a == 0)
{
Console.Error.WriteLine("Az (a) értéke nem lehet 0.");
Console.Write("Kérem az (a) szám értékét: ");
}AE
-
fatal`
titán
válasz
Dr. Student
#2678
üzenetére
Az a baj, hogy egyből négyzetgyököt számolsz, ami negatív esetén nem negatív lesz, hanem "nem szám".
Előbb számold a d-t négyzetgyök nélkül, ha kisebb mint nulla, akkor hiba, egyébként pedig kiszámolod a négyzetgyökét és úgy számolod a két x-et.
-
Jester01
veterán
válasz
Dr. Student
#2678
üzenetére
A négyzetgyököt túl hamar számolod, már a d-ben.
-
ArchElf
addikt
válasz
Dr. Student
#2662
üzenetére
Dobd be ide a kódod és megmondjuk, mi a gebasz.
AE
-
Jhonny06
veterán
válasz
Dr. Student
#2668
üzenetére
Ja hogy Sergyán
(Ugyanarra az előadásra járunk) Amúgy igen, a "ciklus amíg" a while-ra vonatkozott, tehát az előző hsz-embe lévő első változattal jó lesz a prímszámos feladat. Ezeket az algoritmusokat egyébként nem kell szó szerint betanulni, mert sok fölösleges dolog van bennük, ami megzavar.Illetve a while(i != szam) azért nem jó, mert önmagát már nem fogja figyelembe venni. Tehát inkább while(i <= szam) és ezzel jó.
A teljes programkód:
-
Jhonny06
veterán
válasz
Dr. Student
#2666
üzenetére
Most akkor ciklus amíg kell, vagy nem? Mert az elején azt írod, aztán meg hogy azért vontak le pontot.
Mindegy, while-al is csak úgy lehet, ha van egy index változód, amit mindig növelsz. Belinkelhetnéd a diát.while(i != szam)
{
...
i++;
}vagy
for(int i = 0; i < szam; i++)
{
...
} -
Jhonny06
veterán
válasz
Dr. Student
#2663
üzenetére
Bekérsz egy számot, majd írsz egy for ciklust ami addig a számig fog menni. A for cikluson belül lesz egy feltétel, ami megvizsgálja, hogy az adott index érték (i) osztható-e maradék nélkül a bekért számmal. Ha igen, akkor a program elején létrehozott mondjuk db nevű változódat növeled 1-el. Ha a ciklus végén a db == 2, akkor a szám prím. Nyilván vannak hatékony algoritmusok erre, de ez a legegyszerűbb, "no-brainer" fajta.
-
ArchElf
addikt
válasz
Dr. Student
#2663
üzenetére
Használd a keresőt

AE
-
Dr. Student
senior tag
válasz
Dr. Student
#2662
üzenetére
Közbe kicsit tovább haladtam, még egy probléma adódott, egy másik programmal, itt az eldöntés tételével vagyok kicsit hadilábon...főleg, ez a prim számos program, tehát döntsük el egy számról, hogy prim-e...ez nem akar működni sehogy, nem akarok hülyeséget írni, kb 2 perc alatt megírja aki tudja, megköszönném, aki bemásolja...

Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Battlefield 6
- Samsung Galaxy S23 Ultra - non plus ultra
- Elemlámpa, zseblámpa
- Xbox Series X|S
- Okos Otthon / Smart Home
- Kerékpárosok, bringások ide!
- Vezetékes FÜLhallgatók
- Székesfehérvár és környéke adok-veszek-beszélgetek
- HiFi műszaki szemmel - sztereó hangrendszerek
- Olcsó vs. drága egér: melyiknél érzed meg igazán a különbséget?
- További aktív témák...
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest


(Ugyanarra az előadásra járunk) Amúgy igen, a "ciklus amíg" a while-ra vonatkozott, tehát az előző hsz-embe lévő első változattal jó lesz a prímszámos feladat. Ezeket az algoritmusokat egyébként nem kell szó szerint betanulni, mert sok fölösleges dolog van bennük, ami megzavar.


