Permalänk
Medlem

Hjälp en nybörjare i c++

Hej!

Jag går Tekninkprogrammet och har precis börjat med programmering, har endast haft en lektion men jag har börjat experimenterat lite

Det är så att jag har gjort en enkel räknare, den ser ut såhär:

{ int tal1; int tal2; cout << "Enter the first number: "; cin >> tal1; cout << "Enter the second number: "; cin >> tal2; cout << endl; cout << "Sum: " << tal1 + tal2 << endl; cout << endl; cout << endl; cout << "Quotient: " << tal1 / tal2 << endl; cout << endl; cout << "Difference solution 1: " << tal1 - tal2 << endl; cout << "Difference solution 2: " << tal2 - tal1 << endl; cout << endl; cout << "Product:" << tal1 * tal2 << endl; cout << endl; cout << "Exponentiation for the first number: " << tal1*tal1 << endl; cout << "Exponentiation for the second number: " << tal2* tal2 << endl; }

Efter att man har skrivit in sina tal och sett svaren så står det ''Tryck ner valfri tangent för att fortsätta'' och sedan stängs programmet ner.
Jag vill att man ska kunna fortsätta mata in värden, och efter lite googling kom jag fram till att jag måste göra en loop.
Problemet är att jag inte vet vilken slags loop som passar till detta ändamål? Det verkar som att de flesta bygger på att medans något är något, tex tal1 >100 så ska något hända, men jag vill att man ska kunna mata in vad som helst och att den ska loopa det här segmentet med kod konstant tills man stänger ner programmet.

Hoppas ni förstår hur jag menar, är väldigt ny inom detta. Har som mest skrivit 100 rader kod

Läste här men vart inte klokare på det...

C++ Loop Types

Visa signatur

Stationär: mITX 4670k GTX770 16gb RAM
Bärbar: Lenovo y50-70 4720HQ 960M 8GB RAM

Permalänk
Hedersmedlem

"tal1 >100" resulterar bara i "sant" eller "falskt", så om man vill köra tills man avbryter på något annat sätt kan man helt enkelt byta ut det mot true. Och för att hoppa ur kan man till exempel använda break.

while(true) { cin >> tal1; if(tal1 > 100) break; }

Permalänk
Medlem
Skrivet av Ainok:

Hej!

Jag går Tekninkprogrammet och har precis börjat med programmering, har endast haft en lektion men jag har börjat experimenterat lite

Det är så att jag har gjort en enkel räknare, den ser ut såhär:

Enklaste är väl att använda en while-loop. Smidigt att läsa på om funktioner också, så att du kan plocka ut miniräknaren ur main().

char ch{}; do { calc(); cout << "again? Enter \"q\" to quit"; cin >> ch; } while (ch != 'q');

Permalänk
Medlem
Skrivet av Elgot:

"tal1 >100" resulterar bara i "sant" eller "falskt", så om man vill köra tills man avbryter på något annat sätt kan man helt enkelt byta ut det mot true. Och för att hoppa ur kan man till exempel använda break.

while(true) { cin >> tal1; if(tal1 > 100) break; }

Dold text
Skrivet av Hundkex:

Enklaste är väl att använda en while-loop. Smidigt att läsa på om funktioner också, så att du kan plocka ut miniräknaren ur main().

char ch{}; do { calc(); cout << "again? press \"q\" to quit"; cin >> ch; } while (ch != 'q');

Dold text

Tack för så snabba svar!

Förstår tyvärr inte riktigt vad ni menar, men jag ska klura på det.

Visa signatur

Stationär: mITX 4670k GTX770 16gb RAM
Bärbar: Lenovo y50-70 4720HQ 960M 8GB RAM

Permalänk
Medlem
Skrivet av Ainok:

Tack för så snabba svar!

Förstår tyvärr inte riktigt vad ni menar, men jag ska klura på det.

OK, mitt tips är isf att gå igenom guiden på länken nedan och sedan följer kursen med resten av klassen för att lära dig c++-specifika uttryck.

www.codecademy.com/tracks/javascript

Permalänk
Medlem
Skrivet av Hundkex:

OK, mitt tips är isf att gå igenom guiden på länken nedan och sedan följer kursen med resten av klassen för att lära dig c++-specifika uttryck.

www.codecademy.com/tracks/javascript

Japp, tror det blir bäst så.
Märker ju att jag inte har tillräckliga kunskaper för att kunna förstå era instruktioner :/

Tack ändå för hjälpen!

Visa signatur

Stationär: mITX 4670k GTX770 16gb RAM
Bärbar: Lenovo y50-70 4720HQ 960M 8GB RAM

Permalänk

int tal1,tal2;
bool continue=true;
string cont;
while(continue==true){

//inläsning med valfri kod

cout << "Tryck Q för att avsluta";
getline(cin, cont);

if(cont == "Q" || cont =="q"){
exit(0);
}

Finns säkert många sätt man kan göra det, men vill du lära dig något så ska du titta på if,while och for loopar så kommer du en bra bit in i c++ världen iaf

Permalänk
Medlem
Skrivet av Ainok:

Japp, tror det blir bäst så.
Märker ju att jag inte har tillräckliga kunskaper för att kunna förstå era instruktioner :/

Tack ändå för hjälpen!

Det var inte så jag menade.

Javascript har i stort sett samma syntax som C++, så om du lär dig grundläggande saker om programmering i javascript, blir det lättare att komma igång med C++. Sedan är det ju bara att köra på, men det är ju viktigt att du lär dig vad som gås igenom på kursen också.

Verkar finnas en svensk C++-bok: http://www.adlibris.com/se/bok/c-direkt-9789144076034
Annars rekommenderar jag C++ Primer Plus (6th ed)

Bara att gå igenom sakta men säkert och faktiskt göra övningarna och följa exemplen. Trots att du förstår innehållet i dem, är det viktigt att få erfarenhet av att skriva dem själv, så att du när du kompilerar, upptäcker vad du missar oövad.

Permalänk
Medlem
Skrivet av Hundkex:

Det var inte så jag menade.

Javascript har i stort sett samma syntax som C++, så om du lär dig grundläggande saker om programmering i javascript, blir det lättare att komma igång med C++. Sedan är det ju bara att köra på, men det är ju viktigt att du lär dig vad som gås igenom på kursen också.

Verkar finnas en svensk C++-bok: http://www.adlibris.com/se/bok/c-direkt-9789144076034
Annars rekommenderar jag C++ Primer Plus (6th ed)

Bara att gå igenom sakta men säkert och faktiskt göra övningarna och följa exemplen. Trots att du förstår innehållet i dem, är det viktigt att få erfarenhet av att skriva dem själv, så att du när du kompilerar, upptäcker vad du missar oövad.

Tack för tipsen, men min lärare anser att vi ska lära oss c++ först, för när man kan det så skulle man tydligen kunna lära sig alla andra utan problem (?)

Visa signatur

Stationär: mITX 4670k GTX770 16gb RAM
Bärbar: Lenovo y50-70 4720HQ 960M 8GB RAM

Permalänk
Medlem
Skrivet av Ainok:

Tack för tipsen, men min lärare anser att vi ska lära oss c++ först, för när man kan det så skulle man tydligen kunna lära sig alla andra utan problem (?)

Det är ungefär som att behöva utbilda sig till bilmekaniker innan man får ta B-körkort. Det finns olika aspekter av programmering och syntax är ett av de första man bör lära sig, så att man enklare förstår hur instruktionerna tolkas av datorn. Sedan skadar det ju inte att få upp intresset för programmering innan man börjar plocka isär det. Se skolämnet matematik.

Permalänk
Medlem
Skrivet av Ainok:

Tack för tipsen, men min lärare anser att vi ska lära oss c++ först, för när man kan det så skulle man tydligen kunna lära sig alla andra utan problem (?)

Håll dig till det läraren vill, blanda inte in andra språk.
Du har ju bara haft en lektion och det verkar ju som att du är nyfiken och villig att lära dig.
Ni kommer gå igenom loopar och dylikt framöver.

Fortsätt bara koda, koda, experimentera och var nyfiken så kommer det gå utmärkt.
Vågar man inte göra fel så utvecklas man inte.

Keep it going!!

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770

Permalänk
Medlem

Snabb översikt över loopar som kanske kan hjälpa dig att få en klarare bild över situationen.
"for" loop passar ofta bra om man vet hur många iterationer man vill ha, dvs. man kanske ska iterera igenom en array med känd storlek.
"while" loop är bra då man vill köra någon så länge som ett villkor uppfylls. T.ex. kör detta tills en lösning hittades eller kör detta tills användaren har tröttnat och stänger av, osv...
"do-while" är samma som "while" fast första gången körs den alltid. Kan vara lämpligt när du t.ex. vill fråga om input tills du får indata som är korrekt, dvs. du vill alltid fråga första gången om data och kanske igen om indatan du fick inte var korrekt. Finns många användningsområden men denna är troligtvis den minst vanliga "loop".

Se det som lite översikt så får du studera detaljerna själv, men ibland kan det vara bra att förstå vad man ska ha det till när man ska studera något även om det teoretiskt inte är så svårt att förstå syntaxen i sig.

Permalänk
Medlem

while(true)
{
dinkod..
}

Kommer loopas tills du kryssar programmet.

Visa signatur

Ryzen 1700 @3,8Ghz 1,342V | Corsair Vengeance LPX 2x8Gb (CMK16GX4M2B3000C15) | Asus Prime x370 Pro | KFA2 GTX 1080 Ti

Permalänk
Medlem
Skrivet av NoPaiN^:

Håll dig till det läraren vill, blanda inte in andra språk.
Du har ju bara haft en lektion och det verkar ju som att du är nyfiken och villig att lära dig.
Ni kommer gå igenom loopar och dylikt framöver.

Fortsätt bara koda, koda, experimentera och var nyfiken så kommer det gå utmärkt.
Vågar man inte göra fel så utvecklas man inte.

Keep it going!!

Det ska jag göra, programmering verkar väldigt roligt. Tycker det är väldigt kul så jag är övertygad om att kursen kommer att gå utan problem.

Skrivet av RaBoX:

Snabb översikt över loopar som kanske kan hjälpa dig att få en klarare bild över situationen.
"for" loop passar ofta bra om man vet hur många iterationer man vill ha, dvs. man kanske ska iterera igenom en array med känd storlek.
"while" loop är bra då man vill köra någon så länge som ett villkor uppfylls. T.ex. kör detta tills en lösning hittades eller kör detta tills användaren har tröttnat och stänger av, osv...
"do-while" är samma som "while" fast första gången körs den alltid. Kan vara lämpligt när du t.ex. vill fråga om input tills du får indata som är korrekt, dvs. du vill alltid fråga första gången om data och kanske igen om indatan du fick inte var korrekt. Finns många användningsområden men denna är troligtvis den minst vanliga "loop".

Se det som lite översikt så får du studera detaljerna själv, men ibland kan det vara bra att förstå vad man ska ha det till när man ska studera något även om det teoretiskt inte är så svårt att förstå syntaxen i sig.

Intressant läsning, tack

Visa signatur

Stationär: mITX 4670k GTX770 16gb RAM
Bärbar: Lenovo y50-70 4720HQ 960M 8GB RAM