Kezdőoldal » Számítástechnika » Programozás » Tudnátok segíteni?

Tudnátok segíteni?

Figyelt kérdés

Tömören az a lényeg hogy egy számológépet szeretnék programozni C++-ban. Az a problémám hogy néztem pár videót hogy hogyan kell a hatványt beleírni de nem sikerül,hogyan kéne megoldanom hogy amikor elindítom ne a CodeBlock-ba kelljen írnom a számot amivel hatványozni szeretnék hanem a parancssorba?


Ezen kívül még az lenne a problémám hogy ahogy a képen látható(link: [link] olyan hogy "Legyen szives irja be a masodik erteket!" nos én ezt nem szeretném hogy a hatványozásba és a gyökvonásba benne legyen.Valamint a képen átható "Az eredmeny:" azt be lehet színezni?Már egyszer az egészt beszíneztem,meg lehet csinálni újból?



2018. febr. 12. 18:45
 1/5 anonim ***** válasza:
88%
Kezdjél bele inkább valami oktatóanyagba taknyolás helyett.
2018. febr. 12. 19:11
Hasznos számodra ez a válasz?
 2/5 tabaki ***** válasza:
100%

„amikor elindítom ne a CodeBlock-ba kelljen írnom a számot amivel hatványozni szeretnék hanem a parancssorba?”

Gondolom, ahogyan bármi egyebet is bekérsz, mondjuk:

std::cin >> szam;


„nos én ezt nem szeretném, hogy a hatványozásban és a gyökvonásban benne legyen.”

Feltételezem, hogy négyzetre emelésre és négyzetgyökre gondolsz, mert egyébként itt sem ártana két érték.

Például tartsd számon valami változóban, hogy éppen milyen műveletet végzel, és annak az alapján döntsd el, hogy mit írsz ki, valahogy így:

if (muvelet != negyzet && muvelet != gyok){

      std::cout << "Kérem az első számot: ";

      std::cin >> szam1;

      std::cout << "Kérem a második számot: ";

      std::cin >> szam2;

      }

else{

      // valami más

      }


„Már egyszer az egészt beszíneztem, meg lehet csinálni újból?”

Miért nem próbálod meg?


Egyébként meg mélységesen egyetértek az első hozzászólóval, teljesen fölösleges toldozni-foldozni valamit, amit nem értesz. Kezdd az alapokról.

2018. febr. 12. 20:47
Hasznos számodra ez a válasz?
 3/5 tabaki ***** válasza:

„Például tartsd számon valami változóban”


Hm, én is fáradt lehettem tegnap, hiszen igenis, számon tartod a choice változóban, sőt, azt még vizsgálod is az if(choice == 7) break; utasításban. Még sőtebb: Arról is tudsz, hogy az if-et követheti egy else is, mivel alább éppen így választasz a műveletek között. Ezek után eléggé érthetetlen, hogy mi a problémád a kiírás/beolvasás megváltoztatásával, ott ugyanis pontosan így választhatsz a lehetőségek között.

Mielőtt tovább okoskodom, még közbeszúrnék egy megjegyzést: A kollégák előtt nem titok, hogy én nem tudok C++-ban programozni, ezért a következők azt a kínos látszatot kelthetik, mintha a programodat egyébként rendben lévőnek találnám, horribile dictu én is hasonlóan írnám meg adott esetben. Sietek leszögezni, hogy nem, de te tanulod a nyelvet, neked kell megküzdened a szerencsésebb megoldásokért. Lehet, hogy egy döccenőn átsegítelek, csak éppen nem feltétlenül a kívánatos úton...

Tehát, ha már végre belenéztem, akkor a te (khm) programodnál maradva, mondjuk:


...

if(choice > 4){

      cout << "Legyen szives irja be az erteket: ";

      cin >> value1;

}

else{

      cout << "Legyen szives irja be az elso erteket: ";

      cin >> value1;

      cout << "Legyen szives irja be a masodik erteket: ";

      cin >> value2;

}

...


vagy:


...

if(choice < 5){

      cout << "Legyen szives irja be az elso erteket: ";

      cin >> value1;

      cout << "Legyen szives irja be a masodik erteket: ";

}

else cout << "Legyen szives irja be az erteket: ";

cin >> value2; // négyzetre emeléskor/gyökvonáskor most value2-t használod majd

...


(Folyt. köv.)

2018. febr. 13. 13:20
Hasznos számodra ez a válasz?
 4/5 tabaki ***** válasza:

De ugyanezen az elven akár minden bekérést elkülöníthetsz, a nyögvenyelős „első érték” és „második érték” helyett a számok szerepének pontos megjelölésével:


...

if (choice == 7) break;

cout << endl;

if (choice == 1){

      cout << "OSSZEADAS\nElso tag: "; cin >> value1;

      cout << "Masodik tag: "; cin >> value2;

      }

else if (choice == 2){

      cout << "KIVONAS\nKisebbitendo: "; cin >> value1;

      cout << "Kivonando: "; cin >> value2;

      }

else if (choice == 3){

      cout << "SZORZAS\nElso tenyezo: "; cin >> value1;

      cout << "Masodik tenyezo: "; cin >> value2;

      }

else if (choice == 4){

      cout << "OSZTAS\nOsztando: "; cin >> value1;

      cout << "Oszto: "; cin >> value2;

      }

else if (choice == 5){

      cout << "NEGYZETGYOKVONAS\nSzam: "; cin >> value1;

      }

else if (choice == 6){

      cout << "NEGYZETRE EMELES\nAlap: "; cin >> value1;

      }

...


Persze ilyenkor már praktikusabb lenne egy füst alatt a műveletet is elvégezni.

2018. febr. 13. 13:25
Hasznos számodra ez a válasz?
 5/5 tabaki ***** válasza:

Egyéb megjegyzések:


1. „...a számot, amivel hatványozni szeretnék...”

Ennek az alapján úgy tűnik, hogy mégsem négyzetre, hanem megadott hatványra akarsz emelni, de akkor teljesen érthetetlen, hogy mi a problémád. Az óhajoddal ellentétben, egyszerűen nem kell elhagynod a value2 beolvasását, és az legyen a kitevő.

2. Ennyi else if helyett praktikusabbnak tűnik a switch használata.

3. Fogalmam sincs, mi fán terem a „gyökre emelés”. A programodból látom, hogy a szám kétszeresének pozitív négyzetgyöke, de nem mondhatnám, hogy ettől bölcsebb lettem.

4. Túl sok jóindulatot feltételezel a felhasználóról. A programod még olyan messze van a hibakezeléstől, mint ide Lacháza, de legalább a bevitt számértékek elfogadhatóságát már most is megpróbálhatnád ellenőrizni. Egyelőre nem okoz bajt, ha a művelet számaként kilencet vagy mínusz százhuszonkettőt adsz meg (egyszerűen nem csinál semmit), de lehet, hogy egy összetettebb változatában mindenféle érthetetlen hülyeségeket eredményez ez a lezserség. Az, hogy a túl nagy számok kiakasztják a programot, legyen a későbbi idők problémája, de minek fogad el mínusz számot a négyzetgyökvonásra? Igaz, a math.h-nak van annyi esze, hogy egy könnyed „Not a Number” vállrándítással elintézze, de elegánsabb volna, ha te ennek elébe mennél, és közölnéd a hígagyú felhasználóval, hogy marhaságot írt be, lesz szíves összeszedni magát -- míg csak egy megfelelő számot nem produkál.

5. Törekedhetnél némi stílusegységre. A familiáris „Válassz egy műveletet!” megszólítást követően elég meglepő fordulat a hűvös „Legyen szíves, írja be az első érteket”, ezután már vártam volna az újabb kanyarokat: „Lökd a másodikat, tesó!”, „Őszintén remélem, megelégedéssel tetszik majd fogadni a következő eredményt”, „Búcsúzom, szívecském. Repesve várom az újabb találkozást!”.

2018. febr. 13. 13:35
Hasznos számodra ez a válasz?

További 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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!