Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Modul

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
11.04.2008, 21:46 Uhr
orlandoo



Hallo,

Kann mir jemand bei der Aufgabe helfen.. und zwar sollen 4 Umsätz eingelesen werden in ein Modul sprich nicht im Hauptprogramm main und die Ausgabe der Umsätze soll im Hauptprogramm erfolgen.

Aufgabe heisst:
Für eine Fiale sollen Umsätze eingelesen werden.
Diese Erfassung soll als erster Menüpunkt dem Bediener angeboten werden und von einem
separaten Programm – Modul übernommen werden.
Ein weiterer Menüpunkt soll der tabellarischen Ausgabe aller Umsätze beider Filialen dienen und
ebenfalls von einem separaten Programm – Modul übernommen werden.

Mir reichts erstmals zu wissen wie das mit dem Modul funktioniert bezogen auf dem Beispiel.

C++:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include "conio.h"


int ausgabe();


int main()
{

const int n=4;
int i;
int umsatz[12];

for (i=0;i<=n;i++)
    {
    
        printf("%5i",umsatz[i]);  //Ausgabe Umsatz
    }

}


int ausgabe(int summand , int summand1, int summand2)

{

float umsatz[12];
const int n =4;
int i;

for(i=0; i <=n; i++)

{
printf("\nBitte geben Sie 4 Umsätze ein! \n");
scanf("%f",&umsatz[i]);
}

}




gruß

Dieser Post wurde am 11.04.2008 um 22:16 Uhr von orlandoo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.04.2008, 04:30 Uhr
Hans
Library Walker
(Operator)


Hi,

ich nehme mal an, was der Aufgabensteller da mit Modul meint, müsste eigentlich Funktion heissen, denn ein Modul ist in C noch was komplizierteres.
Wenn es so ist, dann hast Du mit der ausgabe-funktion schon ein Beispiel, allerdings mit einem Fehler drin:

C++:
int ausgabe(); /* <--- in der Klammer muss das gleiche stehen, wie unten auch. */

int main()
{
  ...
}

int ausgabe(int summand , int summand1, int summand2)
{
  ...
}


Also, entweder:

C++:
int ausgabe(); /* <--- in der Klammer muss das gleiche stehen, wie unten auch. */
  ...

int ausgabe()
{ ... }


oder

C++:
int ausgabe(int summand , int summand1, int summand2); /* <--- in der Klammer muss das gleiche stehen, wie unten auch. */
  ...

int ausgabe(int summand , int summand1, int summand2)
{ ... }



Ach ja, da die Funktion zur Ausgabe dienen soll, wie ihr Name auch sagt, kannst Du die Schleife mit scanf daraus lassen. Die Werte gehen auch verloren, sobald der Prozessor wieder in main arbeitet; - main bekommt die nie zu sehen.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.04.2008, 10:01 Uhr
~orlandoo
Gast


Hi,

Zitat von Hans:


ich nehme mal an, was der Aufgabensteller da mit Modul meint, müsste eigentlich Funktion heissen, denn ein Modul ist in C noch was komplizierteres.



Ja Funktion mein ich damit ..

Wollt mich nochmal korrigieren, das die Umsätze in einer FUnktion eingabe eingelesen sollen werden, und in einer seperaten sprich einer anderen Funktion ausgegeben werden sollen. Die Funktion soll das ausgabe heißen die die Umsätze ausgibt..


C++:
#include <stdlib.h>
#include <stdio.h>
#include "conio.h"


int eingabe(); // Deklaration
int ausgabe(int summand1, int summand2, int summand 3 ); // Deklaration


int main()
{

    int eingabe();
    int ausgabe();

}


int eingabe() // benötigt also keine parameter

{

float umsatz[12];
const int n =4;
int i;

for(i=0; i <=n; i++)

{
printf("\nBitte geben Sie 4 Umsätze ein! \n");
scanf("%f",&umsatz[i]);
}

}

int ausgabe(int summand1, int summand2 , int summand3) // Hier müssten paramaeter rein.
{
const int n=4;
int i;
int umsatz[12];

for (i=0;i<=n;i++)
    {
    
        printf("%5i",umsatz[i]);  //Ausgabe Umsatz
    }
}




lieben gruß orlandoo
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
15.04.2008, 15:35 Uhr
Hans
Library Walker
(Operator)


Hi,

die Deklarationen scheinst du ja jetzt verstanden zu haben, aber mit den Variablen und deren Gültigkeitsbereichen hapert es noch. Ebenso mit den Funktionsaufrufen. Aber bleiben wir erst mal bei den Variablen. Die definierst Du in beiden Funktionen. Das Problem dabei ist, das sie in beiden Funktionen lokal sind. Das heisst, sie sind nur in dieser Funktion bekannt. Das wiederum bedeutet, das sie nur solange existieren, wie der Prozessor die Funktion bearbeitet. Sobald er die Bearbeitung der Funktion eingabe beendet, werden die Variablen der Funktion zerstört, und gewissermassen "vergessen". In der Funktion ausgabe werden neue Variablen angelegt. Auch wenn die die gleichen Namen haben, sind es dennoch nicht die Gleichen, die auch die Funktion eingabe benutzt hat.

Dann erwartet die Funktion ausgabe drei Parameter, Du übergibst beim Aufruf aber keinen Einzigen. Da muss der Compiler ziemlich meckern. Innerhalb der Funktion machst Du aber auch nix mit den Parametern, so das sie im Prinzip sinnlos sind.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.04.2008, 20:18 Uhr
~orlandoo
Gast


Hallo Hans, erstmal danke für deine hilfe!

Du hast geschrieben:


Zitat von Hans:


Dann erwartet die Funktion ausgabe drei Parameter, Du übergibst beim Aufruf aber keinen Einzigen. Da muss der Compiler ziemlich meckern. Innerhalb der Funktion machst Du aber auch nix mit den Parametern, so das sie im Prinzip sinnlos sind.

Hans



Die Funktion erwartet 3 Parameter. In ausgabe sind 3 Parameter angegeben .. Oder muss man die Parameter float umsatz[12],const int n =4, int i übergeben?

Der compiler zeigt 10 Fehler an. Meisten sind Neudefinition.
??Parameter wurden übergeben???


C++:
#include <stdlib.h>
#include <stdio.h>
#include "conio.h"


int eingabe(); // Deklaration
int ausgabe(int summand1, int summand2, int summand 3 ); // Deklaration


int main()
{

    eingabe();
    ausgabe();

}


int eingabe() // benötigt also keine parameter

{

float umsatz[12];
int n =4;
int i;

for(i=0; i <=n; i++)

{
printf("\nBitte geben Sie 4 Umsätze ein! \n");
scanf("%f",&umsatz[i]);
}

ausgabe(float umsatz, int n, int i);

}

int ausgabe(float umsatz, int n, int i) // Hier müssten paramaeter rein.
{

float umsatz[12];
int n=4;
int i;

for (i=0;i<=n;i++)
    {
    
        printf("%5i",umsatz[i]);  //Ausgabe Umsatz
    }
}




Lg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
15.04.2008, 23:26 Uhr
mmc20
puss in boots


hallo, deine "neudefinition"-fehler sind ja logisch, da du umsatz, n und i ja auch neu definierst

C++:
int ausgabe(float umsatz, int n, int i) // umsatz, n, i sind hier bereits definiert, und somit der funktion bekannt
{
//    float umsatz[12]; // bereits im funktionskopf definiert
//    int n=4; // bereits im funktionskopf definiert
//    int i; // bereits im funktionskopf definiert

    for ( i = 0; i <= n; i++ )
    {
        printf( "%5i", umsatz[i] );  //Ausgabe Umsatz
    }
}

// im aufruf von "ausgabe(...)" darf dann
// natürlich auch kein "float" oder "int" stehen
// sondern nur die werte die übergeben werden sollen (bzw variablen)

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: