- Mindenki Z Fold7-et akar
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- Samsung Galaxy A55 - új év, régi stratégia
- Samsung Galaxy S23 Ultra - non plus ultra
- Samsung Galaxy A54 - türelemjáték
- Honor 200 Pro - mobilportré
- Samsung Galaxy S24 FE - később
- Szívós, szép és kitartó az új OnePlus óra
- Realme GT 5G - versenyképes
- Yettel topik
Hirdetés
Ú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!
- DDR5 16GB 8GB 32GB 4800MHz 5600MHz RAM Több db
- Microsoft Surface Pro 6 fekete
- REFURBISHED és ÚJ - HP USB-C/A Universal Dock G2 docking station (5TW13AA) (DisplayLink)
- HP EliteBook 830 G8 i5-1135G7 16GB 256GB 1 év garancia
- HP ZBook 15 G6 i7-9850H 32GB RAM 1000GB SSD NVIDIA Quadro T2000 15.6 FHD 1 év garancia
Állásajánlatok
Cég: FOTC
Város: Budapest