Avatar billede ultragames Nybegynder
22. september 2003 - 22:43 Der er 14 kommentarer og
1 løsning

hjælp til funktioner

hej eksperter, jeg har nogle problemer til et skole projekt (jeg er total ny til c++), jeg skal indtaste 3 variable til en funktion, men jeg skal bruge de variable i mere end en funktion:

dvs.. jeg er igang med at lave et program som kan tegne grafer for en indtastet funktion.. og jeg har lavet hele koden til det... jeg mangler nu bare at samle funktionerne i en fil, og få erklæret nogle variable som jeg kan indtaste i den funktion, og beregne videre på de tal i en anden funktion..

jeg har følgende variable:

int a, b, c;
de skal promtes i funktionen, og derefter gemmes til senere brug i en anden funk.

hvordan gør jeg det?
Avatar billede arne_v Ekspert
22. september 2003 - 22:46 #1
Noget a la:

int a, b, c;
cout << "Enter a: ";
cin >> a;
cout << "Enter b: ";
cin >> b;
cout << "Enter c: ";
cin >> c;
f1(a,b,c);
f2(a,b,c);
f3(a,b,c);

?
Avatar billede ultragames Nybegynder
22. september 2003 - 22:48 #2
hmm!.. der bliver jeg da spurgt om a,b,c med det samme i programmet.. jeg skal først spørges om a,b,c når jeg vælger funktionen.. jeg har en "switch" kørende som menu!.. og når "case 1".. så skal jeg promptes med a,b,c og funktionen skal køres.. skal der så ikke pormptes i funktionen?
Avatar billede ultragames Nybegynder
22. september 2003 - 22:50 #3
hmm!. min lærer gennemgik noget på tavlen!.. men knai kke huske helt præcis hvordan det var.. men jeg har en funktion som hedder "indtast()".. så lavede han noget  lignende det her:

a = indtast("a");
b = indtast("b");
c = indtast("c");

ved ikke om det blev nemmere =/
Avatar billede arne_v Ekspert
22. september 2003 - 22:56 #4
Den kunne laves som:

int indtast(char *name)
{
  int res;
  cout << "Indtast " << name << ": ";
  cin >> res;
  return res;
}
Avatar billede arne_v Ekspert
22. september 2003 - 22:58 #5
Nu lyder som du skal lave noget a la:

int a,b,c;
int funk = indtast("funktion");
switch(funk)
{
  case 1:
      a = indtast("a");
      b = indtast("b");
      c = indtast("c");     
      f1(a,b,c);
      break;
...
Avatar billede arne_v Ekspert
22. september 2003 - 22:59 #6
Men jeg kan kun hjælpe dig med den C++ tekniske side af sagen.

Du må selv få logikken til at virke.
Avatar billede ultragames Nybegynder
22. september 2003 - 23:19 #7
jeg giver dig lige lidt at koden:

#include <iostream.h>
#include <stdlib.h>


void main(void)
{
char a;
char b;
char c;
a = indtast("a");
b = indtast("b");
c = indtast('c');



int menu_valg; //definerer tallet som skrives i menuen
cout << "--------------------------------" << endl;
cout << "Menu:" << endl;
cout << "--------------------------------" << endl;
cout << "(1). Tegn en graf " << endl;
cout << "(2). Find Differential kvotient " << endl;
cout << "(3). Find Intergrale " << endl;
cout << "(4). Luk Program " << endl;
cout << endl << "Indtast et tal: ";
cin >> menu_valg;

switch (menu_valg) {
      case 1:
      indtast(a, b, c);
      system("pause");
      break;

      case 2:
      cout << "Her skal der beregnes en differential kvotient" << endl;
      system("pause");
      break;

      case 3:
      cout << "Her skal der beregnes integrale" << endl;
      system("pause");
      break;


      case 4:
      cout << "Her skal der lukkes" << endl;
      system("pause");
      break;

      default:
      cout << "Der blef ikke tastet noget gyldigt" << endl;
      system("pause");
      break;
system("pause");
      }
}

//////////////////////////////////////////////////////////////////

void indtast(int a , int b , int c)
    {
  ??? HJÆÆÆÆLP!
    }

og jeg er ærligt talt lidt blank. har læst lidt i bogen.. men den gør mig mere forvirret :S
Avatar billede arne_v Ekspert
22. september 2003 - 23:27 #8
Det her compiler ihvertfald:

#include <iostream>
#include <cstdlib>

using namespace std;

//////////////////////////////////////////////////////////////////

void indtast(int *a , int *b , int *c)
{
  cout << "Enter a: ";
  cin >> *a;
  cout << "Enter b: ";
  cin >> *b;
  cout << "Enter c: ";
  cin >> *c;
}

int main(void)
{
  int a,b,c;

int menu_valg; //definerer tallet som skrives i menuen
cout << "--------------------------------" << endl;
cout << "Menu:" << endl;
cout << "--------------------------------" << endl;
cout << "(1). Tegn en graf " << endl;
cout << "(2). Find Differential kvotient " << endl;
cout << "(3). Find Intergrale " << endl;
cout << "(4). Luk Program " << endl;
cout << endl << "Indtast et tal: ";
cin >> menu_valg;

switch (menu_valg) {
      case 1:
      indtast(&a, &b, &c);
      system("pause");
      break;

      case 2:
      cout << "Her skal der beregnes en differential kvotient" << endl;
      system("pause");
      break;

      case 3:
      cout << "Her skal der beregnes integrale" << endl;
      system("pause");
      break;


      case 4:
      cout << "Her skal der lukkes" << endl;
      system("pause");
      break;

      default:
      cout << "Der blef ikke tastet noget gyldigt" << endl;
      system("pause");
      break;
system("pause");
      }
}
Avatar billede ultragames Nybegynder
22. september 2003 - 23:29 #9
det ser fornuftigt ud.. men vil de 3 a'variable kunne blive brugt i en ny funktion?.. hvor dan vil det se ud?... hvis jeg fx. har en funktion som slaæ ligge de 3 tal sammen:

beregn()
{
res = a+b+c;
}

?
Avatar billede arne_v Ekspert
22. september 2003 - 23:33 #10
case 1:
      indtast(&a, &b, &c);
      cout << beregn(a,b,c);
      system("pause");
      break;


...

int beregn(int a,int b,int c)
{
  retur a+b+c;
}
Avatar billede arne_v Ekspert
22. september 2003 - 23:33 #11
int beregn(int a,int b,int c)
{
  return a+b+c;
}

[jeg havde glemt n'et]
Avatar billede ultragames Nybegynder
22. september 2003 - 23:35 #12
ok!.. så de er gemt som variale som alle funktioner kan bruge?
Avatar billede ultragames Nybegynder
22. september 2003 - 23:35 #13
er det pga. du har sat en "*" foran varablen?
Avatar billede arne_v Ekspert
22. september 2003 - 23:40 #14
Hvis du skal ændre værdien af et argument, så skal de *'er sættes
på som i eksemplet.
Avatar billede arne_v Ekspert
22. september 2003 - 23:40 #15
Det står der sikkert også noget om i din bog.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester