Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Nybörjar hjälp...

Postades av 2001-12-03 15:45:44 - Rasmus Hörstedt, i forum c++, Tråden har 11 Kommentarer och lästs av 991 personer

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å. :-)

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-mus


Svara

Sv: Nybörjar hjälp...

Postades av 2001-12-03 17:24:58 - Thomas Tydal

Låter som du inte har definierat funktionen plus. Void betyder att den inte tar några parametrar.

Om du klistrar in källkoden här kan jag peka på felet.


Svara

Sv: Nybörjar hjälp...

Postades av 2001-12-03 20:36:17 - Rasmus Hörstedt

Här kommer källkoden varsågo', den är inte färdig eftersom jag fasnade i början redan.

#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;
}


Svara

Sv: Nybörjar hjälp...

Postades av 2001-12-03 21:04:44 - Thomas Tydal

Här är felet:

> 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)


Svara

Sv: Nybörjar hjälp...

Postades av 2001-12-03 21:35:07 - Rasmus Hörstedt

Ok... men jag ändrade

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 // =)


Svara

Sv: Nybörjar hjälp...

Postades av 2001-12-03 21:46:06 - Thomas Tydal

> men då blir det det här felmedelandena:
> 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.


Svara

Sv: Nybörjar hjälp...

Postades av 2001-12-04 13:59:17 - Rasmus Hörstedt

ok....tack, men vad har rad 8 för fel?? eller har det med rad 24 att göra??

Tack så himla mycket, nån gång kanske jag kan få
hjälpa nån annan // R-mus


Svara

Sv: Nybörjar hjälp...

Postades av 2001-12-04 16:32:03 - Thomas Tydal

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.


Svara

Sv: Nybörjar hjälp...

Postades av 2001-12-04 20:24:49 - Rasmus Hörstedt

Nu blir jag tamme f** tokig.... det funkar ju aldrig... =(

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-mus


Svara

Sv: Nybörjar hjälp...

Postades av 2001-12-04 21:27:31 - Thomas Tydal

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.

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')


Svara

Sv: Nybörjar hjälp...

Postades av 2001-12-05 14:07:03 - Rasmus Hörstedt

Aha....usch vad jag känner mig dum... =)

Då vet jag, Nogranhet är A & O i C++

Thanx a Lot // R-mus


Svara

Sv: Nybörjar hjälp...

Postades av 2001-12-19 21:27:44 - Rasmus Hörstedt

Så här blev koden när jag blev färdig med den....


#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;
}


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 615
27 953
271 709
637
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies