C++: Van ennél rövidebb alak?
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
system("chcp 1250 > nul");
int osztando2,oszto2,egesz,maradek;
float osztando,oszto,hanyados;
cout <<"Írd be az osztandót!\n";
cin >>osztando;
cout <<"Írd be az osztót!\n";
cin >>oszto;
osztando2=int(osztando);
oszto2=int(oszto);
hanyados=osztando/oszto;
egesz=osztando2/oszto2;
maradek=osztando2%oszto2;
system("cls");
cout <<"Osztandó: "<<osztando<<", Osztó: "<<oszto<<"\n";
cout <<"Hányados: "<<hanyados<<"\n";
cout <<"Egész: "<<egesz<<"\n";
cout <<"Maradék: "<<maradek<<"\n";
cin.get();
return 0;
}
//másfél napnyi C++ tudás :)
Kevésbé gányul megírva:
#include <iostream>
using namespace std;
int main()
{
float osztando, oszto;
cout << "Osztandó: ";
cin >> osztando;
cout << "Osztó: ";
cin >> oszto;
cout << "Osztandó: " << osztando << ", Osztó: " << oszto << "\n";
cout << "Hányados: " << osztando / oszto << "\n";
cout << "Egész: " << (int)osztando / (int)oszto << "\n";
cout << "Maradék: " << (int)osztando % (int)oszto <<" \n";
return 0;
}
#2 Azért maradt még ott hely a szépítésre. A duplikációkat kapásból ki tudod szervezni függvénybe (pl. promptFloat és printResult, vagy akármi).
De ha igazán "gánytalanul" akarod megírni, akkor mondjuk egy Prompt, egy Division és egy DivisionPrinter osztállyal indul a történet. Sőt, valamelyik kolléga simán előállhat egy jobb megoldással, mert ez is csak hasraütésből jött.
Mivel kérdező még csak másfél napja bontogatja a szárnyait, természetesen nem várhatjuk el, hogy magától elsőosztályú kódot írjon, és hacsak nem egy puszta showing-off az ember célja, akkor érzésem szerint a "gánytalanítás" mellé kedves gesztus némi magyarázattal is szolgálni, mitől jobb ami jobb, hogy okuljon is, ne csak bemásolja nótpadba.
@kérdező: A rövidebb általában jobb, de nem minden esetben, nem minden értelemben. A tömörség elsődleges célja a jó olvashatóság (azon keresztül pedig a jó karbantarthatóság), nem pedig a billentyűzeted élettartamának növelése, így azt általában inkább egy-egy egységen/részfeladaton belül szokás értelmezni, mintsem globálisan, az összes létező kódsor számának tekintetében. Ha ez esetleg zavarosan hatna, lásd a választ záró tanácsomat, hogy idővel kikristályosodjanak a dolgok.
A fenti, osztályos példa egy ilyen egyszerű feladatra ugyan már karcolgatja talán az ágyúval verébre kategóriát, mégis van benne ráció, mivel a kód egyes részei első ránézésre is magától értetődő lesznek, épp annyi információval, amire a fejlesztőnek pl. egy main-re nézve szüksége van (nevezetesen, hogy milyen problémát old meg a program). Ugyanakkor azt javaslom, az OOP-t halaszd későbbre.
Másfél nap alatt teljesen korrekt a szinted, a kérdésedből pedig adja magát, hogy ideje elkezdeni a függvényekkel foglalkozni, azok majd megfelelő választ adnak jelen kérdésedre is.
#5: Okoskodás? :D
Szakmai berkekben ezt a fajta okoskodást knowledge transfernek hívják.
Amit idedobtál egy "fúúdegány, majd én jól megmutatom" kíséretében, azzal nemigen lesz beljebb. Felesleges feszengened, csak mert rá mertem mutatni, hogy nem eszik azt olyan forrón.
A kérdező feltehetőleg nem azért kérdezte, hogyan lehetne rövidebb a megoldása, mert pont az a 200 bájt hiányzik, hogy felférjen a Minecraft, hanem mert szeretné tudni, hogyan/merre lehet fejlődni*. Ez pedig becsülendő, és jobb helyeken nem intézik el annyival, hogy "Na, nesze, megcsináltam neked, mert te nem tudod", hanem elemzik a kérdést, ha szükséges visszakérdeznek, és ha kell "okoskodnak" egy kicsit. Így működik a senior fejlesztő, t.i. minél kevesebb a tapasztalata valakinek egy témakörben, annál nehezebb még azt is felmérnie, hogy egyáltalán jó kérdést tesz-e fel.
A felesleges utasításoktól, változóktól nyilván meg kell szabadulni, de a valóságban ez a kód akkor kezd csak el ténylegesen jobb lenni, ha elkezdni megfelelően újrafelhasználható szubrutinokba kiszervezni az egyes teendőket.
*rossz esetben azért, mert a házi feladat korlátjába nem sikerült beleférni, de ezt a lehetőséget most jóhiszeműen elvetném, másfél nap után amúgy sem osztanak ilyen házi feladatot
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!