Nu är det så att jag har lämnat VB-stadiet och begätt mig mot det omtalade C++. Jag har läs och läs och läs, så nu e det dax att testa på riktigt tänkte jag, och självklart gav jag mig in på något svårt nog att räka åt två. :-) Låter som du inte har definierat funktionen plus. Void betyder att den inte tar några parametrar. Här kommer källkoden varsågo', den är inte färdig eftersom jag fasnade i början redan. Här är felet: Ok... men jag ändrade > men då blir det det här felmedelandena: ok....tack, men vad har rad 8 för fel?? eller har det med rad 24 att göra?? På rad 8 är funktionen plus definierad till att ta inga argument och på rad 24 försöker du anropa funktionen plus med inga argument. Fast i verkligheten tar funktionen plus tre argument, och därför blir det fel. Nu blir jag tamme f** tokig.... det funkar ju aldrig... =( Det som är svårt med C++ i början är det att man måste vara så noggrann, just för att det är ett avancerat språk som man kan göra så mycket med. Aha....usch vad jag känner mig dum... =) Så här blev koden när jag blev färdig med den....Nybörjar hjälp...
Jag har pillat med det här programmet rätt länge nu, (2 timar), men jag får bara en massa felmedelanden.
Först var det många fel men så fattade jag gallopen och så nu e det bara ett fel kvar. Det här e felmeddelandet jag får:
d:\mina dokument\c++ program i utveckling\matte1.o(.text+0x17c):matte1.cpp: undefined reference to `plus(void)'
Vad i helsike betyder det?? min plus funktion har ju inte med void att göra... (tror jag)
Tack för ev. hjälpen // R-musSv: Nybörjar hjälp...
Om du klistrar in källkoden här kan jag peka på felet.Sv: Nybörjar hjälp...
#include <stdio.h>
#include <iostream.h>
int intalt;
int intaltt;
int x;
int plus();
int valj(int,int,int);
int main()
{
cout << "\n\nVälj det alternativ som du vill jobba med:\n\n";
cout << "1. Plus 5. Kontroll(igen rest)\n";
cout << "2. Minus 6. Flertal\n";
cout << "3. Multiplikation\n";
cout << "4. Divition\n\n";
cout << "Alternativ: ";
cin >> intalt;
if (intalt == 1)
{
plus();
}
return 0;
}
int plus(int valjtal1,int valjtal2,int x)
{
int valj(int,int);
x = valjtal1 + valjtal2;
cout << "Svar: " << x;
return 0;
}
int valj(int valjtal1,int valjtal2)
{
cout << "Välj de tal du vill arbeta med!\n\n";
cout << "Tal 1: ";
cin >> valjtal1;
cout << "\n";
cout << "Tal 2: ";
cin >> valjtal2;
cout << "\n";
return 1;
}Sv: Nybörjar hjälp...
> int plus();
Du har definierat plus till att inte ta några variabler, men när du sedan gör själva funktionen så vill att du plus ska ta in tre variabler. Alltså hittar den inte någonstans någon funktion där plus inte tar några variabler eftersom du inte skrivit någon sådan.
> int plus(int valjtal1,int valjtal2,int x)Sv: Nybörjar hjälp...
int plus();
till
int plus(int,int,int);
men då blir det det här felmedelandena:
8 matte1.cpp too few arguments to function `int plus(int, int, int)'
och:
24 matte1.cpp at this point in file
Så nu fattar jag noll igen... *suck*.....vad e det jag ska skriva för att få det rätt?? Ska nog gå och lägga mig nu, har varit uppe i 40timar streight.
Tack så mycket // =)Sv: Nybörjar hjälp...
> 8 matte1.cpp too few arguments to function `int plus(int, int, int)'
> 24 matte1.cpp at this point in file
Om du kollar på rad 24 så ser du att där står:
plus();
Dvs du försöker anropa funktionen plus med inga argument, istället för tre stycken som du har bestämt att det ska vara.Sv: Nybörjar hjälp...
Tack så himla mycket, nån gång kanske jag kan få
hjälpa nån annan // R-musSv: Nybörjar hjälp...
Sv: Nybörjar hjälp...
nu ser koden ut så här:
#include <stdio.h>
#include <iostream.h>
int intalt;
int intaltt;
int x;
int valjtal1, valjtal2;
int plus(int valjtal1,int valjtal2,int x);
int valj(int,int);
int main()
{
cout << "\n\nVälj det alternativ som du vill jobba med:\n\n";
cout << "1. Plus 5. Kontroll(igen rest)\n";
cout << "2. Minus 6. Flertal\n";
cout << "3. Multiplikation\n";
cout << "4. Divition\n\n";
cout << "Alternativ: ";
cin >> intalt;
if (intalt == 1)
{
int plus(int,int,int);
}
return 1;
}
int plus(int valjtal1,int valjtal2,int x)
{
int valj(int,int);
x = valjtal1 + valjtal2;
cout << "Svar: " << x;
return 0;
}
int valj(int valjtal1,int valjtal2)
{
cout << "Välj de tal du vill arbeta med!\n\n";
cout << "Tal 1: ";
cin >> valjtal1;
cout << "\n";
cout << "Tal 2: ";
cin >> valjtal2;
cout << "\n";
return valjtal1,valjtal2;
}
Men den verkar inte komma till IF-satsen, för den avslutar programmet förre.... har jag missat nåt igen??
Tack // R-musSv: Nybörjar hjälp...
Men felet ligger mycket riktigt i if-satsen:
> cin >> intalt;
> if (intalt == 1)
Om du för skojs skull skulle lägga in raden:
cout << intalt;
alldeles efter cin så skulle du få se att intalt har värdet 49 när du trycker en etta. Och det är det som är problemet här.
På tangentbordet matar du nämligen in tecken. Du matar inte in siffran 1, utan du matar in tecknet för 1. Och tecknet för ett har värdet 49. Så det du ska kolla istället är om intalt == 49.
Men det här med vad olika tecken har för värden behöver man faktiskt inte hålla reda på, utan man kan istället skriva värdet för tecknet 1 så här:
'1'
Och du kan därmed skriva om if-satsen så här:
if (intalt == '1')Sv: Nybörjar hjälp...
Då vet jag, Nogranhet är A & O i C++
Thanx a Lot // R-musSv: Nybörjar hjälp...
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
float bertal;
int intalt;
int intaltt;
float valjtal1, valjtal2,volym;
int exit();
int kon(int valjtal1,int valjtal2);
int div(int valjtal1,int valjtal2);
int multi(int valjtal1, int valjtal2);
int minus(int valjtal1,int valjtal2);
int plus(int valjtal1,int valjtal2);
int valj(int,int);
int main()
{
clrscr();
cout << "Välj det alternativ som du vill jobba med:\n\n";
cout << "1. Plus\n";
cout << "2. Minus\n";
cout << "3. Multiplikation\n";
cout << "4. Divition\n";
cout << "5. Kontroll(igen rest)\n\n";
cout << "Alternativ: ";
cin >> intalt;
if (intalt == 1)
{
valj(valjtal1,valjtal2);
cout << "Svar: " << plus(valjtal1,valjtal2) << "\n";
exit();
return 0;
}
if (intalt==2)
{
valj(valjtal1,valjtal2);
cout << "Svar: " << minus(valjtal1,valjtal2) << "\n";
exit();
return 0;
}
if (intalt==3)
{
valj(valjtal1,valjtal2);
cout << "Svar: " << multi(valjtal1,valjtal2) << "\n";
exit();
return 0;
}
if (intalt==4)
{
valj(valjtal1,valjtal2);
cout << "Svar: " << div(valjtal1,valjtal2) << "\n";
exit();
return 0;
}
if (intalt==5)
{
valj(valjtal1,valjtal2);
if (kon(valjtal1,valjtal2)==0)
{
cout << "Det GÅR att dela jämt!\n";
exit();
return 0;
}
else
{
cout << "Det går INTE att dela jämt\n";
exit();
return 0;
}
}
if (intalt==6)
{
cout << "Dina beräkningar: ";
cin >> (bertal);
cout << "Svar: " << bertal << "\n";
exit();
return 0;
}
return 0;
}
plus(int valjtal1,int valjtal2)
{
return valjtal1 + valjtal2;
}
minus(int valjtal1,int valjtal2)
{
return valjtal1 - valjtal2;
}
multi(int valjtal1,int valjtal2)
{
return valjtal1 * valjtal2;
}
div(int valjtal1,int valjtal2)
{
return valjtal1 / valjtal2;
}
kon(int valjtal1,int valjtal2)
{
return valjtal1 % valjtal2;
}
exit()
{
cout << "Push Enter to exit...";
getchar();
return 0;
}
valj(int,int)
{
cout << "Välj de tal du vill arbeta med!\n\n";
cout << "Tal 1: ";
cin >> valjtal1;
cout << "\n";
cout << "Tal 2: ";
cin >> valjtal2;
cout << "\n";
return valjtal1,valjtal2;
}