Detta flödesschema ska visa ett sätt att beräkna produkten av två icke negativa heltal x och Y genom att adera talet y, x gånger. Om x=3 och Y= 4 så ska svaret bli 4+4+4. Hur ska jag fortsätta för att programmet ska fungera som det ska göra. Hur gör man en for loop. Hur ser den ut i detta flödesschema?
int main()
{
int x;
int y;
int antal;
int svar;
cout << "skriv in det första numret:";
cin >> x;
cout << "skriv in det andra numret:";
cin >> y;
antal = antal++;
svar = svar+y;
if (antal < x)
{ svar +y;
antal ++;
}
else
cout << "svar:" << svar +y << endl;
return 0;
}
Du skulle kunna skriva ut "+" och siffran i loopen (utan endl), eller också (lämpligen) bygger du upp en textsträng med hjälp av en std::stringstream och skriver sedan ut denna.
#include <sstream>
int main()
{
int x;
int y;
int antal;
int svar;
std::stringstream ss;
cout << "skriv in det första numret:";
cin >> x;
cout << "skriv in det andra numret:";
cin >> y;
cout << endl << endl;
antal = 0;
svar = 0;
while(antal < x)
{
svar = svar +y;
antal ++;
ss << y << " + ";
}
ss << y;
cout << "svar:" << ss.str() << " = " << svar << endl;
return 0;
}
Sedan får du fixa tlll specialfall som x, y = 0, 1, negativa tal och liknande.
Var ska jag skriva "+" ? Har inte lärt mig att använda stringstream i kursen.
#include <iostream>
using namespace std;
int main()
{
int x;
int y;
int antal;
int svar;
cout << "skriv in det första numret:";
cin >> x;
cout << "skriv in det andra numret:";
cin >> y;
cout << endl << endl;
antal = 0;
svar = 0;
while(antal < x)
{ svar = svar +y;
antal ++;
}
cout << "svar:" << "y++" << endl;
return 0;
}
int main()
{
int x;
int y;
int antal;
int svar;
cout << "skriv in det första numret:";
cin >> x;
cout << "skriv in det andra numret:";
cin >> y;
cout << endl << endl;
antal = 0;
svar = 0;
while(antal < x)
{ svar = svar +y;
antal ++;
cout << y << "+";
}
cout << "Svar:" << svar << endl;
return 0;
}
Problemet är ju alltså att ett plustecken alltid skrivs ut efter y men att man inte vill ha det så efter det sista. Kan man (till exempel med variablerna antal och x) lista ut när beteendet skall ändras? Och kan man, till exempel med en if-sats modifiera koden ovan?
Nej, forumet är inte till för att folk skall få sina skoluppgifter lösta. Men det går bra att fråga om hjälp om man kör fast (efter att ha försökt ordentligt).