C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

EAN-Prüfziffer

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
Johannes Henkel
Guest





PostPosted: Tue Nov 14, 2006 7:43 pm    Post subject: EAN-Prüfziffer Reply with quote



Hallo,

ich hab hier ein Programm zur berechnung der EAN-Prüfziffer geschrieben.
Doch leider zeigt mir der Compiler noch irgendwo ein Fehler an.
Könnt ihr mir weiterhelfen was ich da falsch gemacht habe?

Gruss
Johannes



#include<stdio.h>
void main()
{
int Nutzziffer1, Nutzziffer2, Nutzziffer3, Nutzziffer4, Nutzziffer5,
Nutzziffer6, Nutzziffer7;
int Pruefziffer;
int SummeEinzelProdukte;
int modulo10;

printf("Nutzziffer1 eingeben: ");
scanf("%i" ,&Nutzziffer1);
printf("Nutzziffer2 eingeben: ");
scanf("%i" ,&Nutzziffer2);
printf("Nutzziffer3 eingeben: ");
scanf("%i" ,&Nutzziffer3);
printf("Nutzziffer4 eingeben: ");
scanf("%i" ,&Nutzziffer4);
printf("Nutzziffer5 eingeben: ");
scanf("%i" ,&Nutzziffer5);
printf("Nutzziffer6 eingeben: ");
scanf("%i" ,&Nutzziffer6);
printf("Nutzziffer7 eingeben: ");
scanf("%i" ,&Nutzziffer7);

SummeEinzelProdukte=Nutzziffer1*3+Nutzziffer2*1+Nutzziffer3*3+Nutzziffer4*1+Nutzziffer5*3+Nutzziffer6*1+Nutzziffer7*3;modulo10=SummeEinzelProdukte10;Pruefziffer=(10-modulo10)%10; printf("DiePruefziffer ist: %i \n",Pruefziffer);}
Back to top
Torsten Robitzki
Guest





PostPosted: Tue Nov 14, 2006 11:08 pm    Post subject: Re: EAN-Prüfziffer Reply with quote



Johannes Henkel wrote:

Quote:
Hallo,

ich hab hier ein Programm zur berechnung der EAN-Prüfziffer geschrieben.
Doch leider zeigt mir der Compiler noch irgendwo ein Fehler an.
Könnt ihr mir weiterhelfen was ich da falsch gemacht habe?

Dann schreib uns doch, was der Compiler sagt, nur weil Du es nicht
verstehst, bedeutet es ja noch nicht, das es nicht evtl. jemand anderes
hier versteht.

mfg Torsten

P.S. und den Code mal anständig formatieren und noch mal das Kapitel
über Schleifen lesen Wink
Back to top
Thomas Maeder
Guest





PostPosted: Tue Nov 14, 2006 11:12 pm    Post subject: Re: EAN-Prüfziffer Reply with quote



"Johannes Henkel" <wsk1234 (AT) congster (DOT) de> writes:

Quote:
ich hab hier ein Programm zur berechnung der EAN-Prüfziffer geschrieben.
Doch leider zeigt mir der Compiler noch irgendwo ein Fehler an.

Was für einen Fehler?
Für welche Zeile?


Quote:
Könnt ihr mir weiterhelfen was ich da falsch gemacht habe?

Gruss
Johannes



#include<stdio.h
void main()

Der Rückgabetyp von main() muss int sein.


Quote:
{
int Nutzziffer1, Nutzziffer2, Nutzziffer3, Nutzziffer4, Nutzziffer5,
Nutzziffer6, Nutzziffer7;
int Pruefziffer;
int SummeEinzelProdukte;
int modulo10;

printf("Nutzziffer1 eingeben: ");
scanf("%i" ,&Nutzziffer1);

scanf() kann scheitern. Ob es das tut, teilt es dem Aufrufer über den
Rückgabewert mit. Bevor Du den (angeblichen) Wert von Nutzziffer1
liest, solltest Du Dich durch Prüfung des Rückgabewerts vergewissern,
dass die Eingabeoperation auch geklappt hat.
Back to top
Ole Hinz
Guest





PostPosted: Tue Nov 14, 2006 11:19 pm    Post subject: Re: EAN-Prüfziffer Reply with quote

Hallo Johannes,

Johannes Henkel wrote:
Quote:
Hallo,

ich hab hier ein Programm zur berechnung der EAN-Prüfziffer geschrieben.
Doch leider zeigt mir der Compiler noch irgendwo ein Fehler an.
Könnt ihr mir weiterhelfen was ich da falsch gemacht habe?

Gruss
Johannes

Ich hoffe, dass Du sonst mehr Zeilenumbrüche verwendest, damit Dein
Compiler die richtigen Stellen anziegen kann. (Zeilennummern etc.)

Ich habe gcc 3.3.5 von meinem debian genommen.

Es gab zwei Meldungen zu Deinem Programm:
1. "SummeEinzelProdukte10" nicht deklariert.
Dies lag in dem konkreten Fall daran, dass Du nicht
"modulo10=SummeEinzelProdukte10", sondern
"modulo10=SummeEinzelProdukte%10" schreiben wolltest.


2. Rückgabewert von "main()" ist nicht "int".
Normal sollte man einen Return-Code an das OS zurückliefern.


mfg
Ole Hinz
Back to top
Johannes Henkel
Guest





PostPosted: Wed Nov 15, 2006 4:30 am    Post subject: Re: EAN-Prüfziffer Reply with quote

"Ole Hinz" <ole.hinz@tu-berlin.de> schrieb im Newsbeitrag
news:4ruc5bFt5aseU1 (AT) mid (DOT) dfncis.de...
Quote:

Es gab zwei Meldungen zu Deinem Programm:
1. "SummeEinzelProdukte10" nicht deklariert.
Dies lag in dem konkreten Fall daran, dass Du nicht
"modulo10=SummeEinzelProdukte10", sondern
"modulo10=SummeEinzelProdukte%10" schreiben wolltest.


Hallo Ole,

vielen Dank. Daran lag es. Ich muss da ein % Zeichen einsetzen jetzt klappt
das Programm auch.
Ich programmiere mit C++. Wie kann ich den Anzeigen lassen an welcher stelle
sich der Fehler befindet und um was für ein Fehler es sich handelt? Bisher
hab ich das immer so gemacht:
STRG+F7 drücken um zu Kompilieren. Dann hat mir das Programm angezeigt
wieviel Fehler ich habe!

Gibt es da eine bessere möglichkeit?

Gruss
Johannes
Back to top
Stefan Suffa
Guest





PostPosted: Wed Nov 15, 2006 12:37 pm    Post subject: Re: EAN-Prüfziffer Reply with quote

Hallo Johannes,

bin zwar nicht Ole, schreib aber trotzdem ;-)

Also, auf Grund Deiner vorangegangenen E-Mails denke ich, dass Du gerade
anfängst C zu programmieren (von C++ sehe ich da im Moment nicht viel
(außer, dass Du evt. einen Microsoft Visual C++ Compiler verwendest)).

Womit ich auch schon bei Deiner eigentlichen Frage wäre ...
'STRG+F7 drücken um zu Kompilieren. Dann hat mir das Programm angezeigt
wieviel Fehler ich habe!'

1) Wäre es für die Leute, die Deine Mails lesen hilfreich, wenn Du etwas
mehr Informationen mitliefern würdest (Bei Deiner ersten Mail, wie es
schon jemand anderes erwähnt hat, z.B. die (Fehler)meldungen des
Compilers, und bei der letzten Mail z.B. den Namen und die Version der
verwendeten Entwicklungsumgebung)

2) Wenn es sich um MS VS handeln sollte, dann kannst Du (in vielen
Fällen) durch einen Doppelklick auf die Fehlermeldung des Compilers zur
betroffenen Zeile gelangen.

Hoffe, dass die Infos weiterhelfen ...

Gruß,
Stefan

Johannes Henkel schrieb:
Quote:
"Ole Hinz" <ole.hinz@tu-berlin.de> schrieb im Newsbeitrag
news:4ruc5bFt5aseU1 (AT) mid (DOT) dfncis.de...
Es gab zwei Meldungen zu Deinem Programm:
1. "SummeEinzelProdukte10" nicht deklariert.
Dies lag in dem konkreten Fall daran, dass Du nicht
"modulo10=SummeEinzelProdukte10", sondern
"modulo10=SummeEinzelProdukte%10" schreiben wolltest.


Hallo Ole,

vielen Dank. Daran lag es. Ich muss da ein % Zeichen einsetzen jetzt klappt
das Programm auch.
Ich programmiere mit C++. Wie kann ich den Anzeigen lassen an welcher stelle
sich der Fehler befindet und um was für ein Fehler es sich handelt? Bisher
hab ich das immer so gemacht:
STRG+F7 drücken um zu Kompilieren. Dann hat mir das Programm angezeigt
wieviel Fehler ich habe!

Gibt es da eine bessere möglichkeit?

Gruss
Johannes
Back to top
Josef Puerstinger
Guest





PostPosted: Wed Nov 15, 2006 12:44 pm    Post subject: Re: Reply with quote

Hallo Johannes,

Johannes Henkel wrote:
Quote:
Ich programmiere mit C++. Wie kann ich den Anzeigen lassen an welcher stelle
sich der Fehler befindet und um was für ein Fehler es sich handelt? Bisher
hab ich das immer so gemacht:
STRG+F7 drücken um zu Kompilieren. Dann hat mir das Programm angezeigt
wieviel Fehler ich habe!

Ich weiss jetzt nicht, in welchem Editor/IDE man den Compiler mittels
<CTRL>-<F7> startet, aber i.d.R. wird eine Liste mit Fehlern und
Warnungen ausgegeben. Da oft Folgefehler vorkommen, ist es wichtig, in
dieser Liste oben zu beginnen.

HTH,
Puersti
Back to top
Ole Hinz
Guest





PostPosted: Wed Nov 15, 2006 1:03 pm    Post subject: Re: EAN-Prüfziffer Reply with quote

Johannes Henkel wrote:

Quote:
Hallo Ole,

Ich programmiere mit C++. Wie kann ich den Anzeigen lassen an welcher stelle
sich der Fehler befindet und um was für ein Fehler es sich handelt?

Das hängt jeweils von Deiner Programmierumgebung ab. Ich benutze g++ als
Kommandozeilenwerkzeug unter Linux. Der wirft einem Zeilennummer und
eine Fehlermeldung aus.
Ich weiß aber auch, dass man unter Visual Studio sich die Fehler
anzeigen lassen kann und mit einem Doppelklick direkt auf die Position
gesetzt wird, wo der Fehler auftrat.

Ich habe auch mal mit einem Borland C++-CommandLineTool und MultiEdit
gearbeitet. Auch dort wurden Fehlermeldungen und Zeilennummern ausgegeben.


Es hängt also von Deiner Entwicklungsumgebung ab, wie Du Dir die Fehler
anzeigen lassen kannst.


Mit freundlichen Grüßen
Ole Hinz
Back to top
Markus Wichmann
Guest





PostPosted: Wed Nov 15, 2006 11:07 pm    Post subject: Re: EAN-Prüfziffer Reply with quote

Johannes Henkel schrieb:
Quote:
"Ole Hinz" <ole.hinz@tu-berlin.de> schrieb im Newsbeitrag
news:4ruc5bFt5aseU1 (AT) mid (DOT) dfncis.de...
Es gab zwei Meldungen zu Deinem Programm:
1. "SummeEinzelProdukte10" nicht deklariert.
Dies lag in dem konkreten Fall daran, dass Du nicht
"modulo10=SummeEinzelProdukte10", sondern
"modulo10=SummeEinzelProdukte%10" schreiben wolltest.


Hallo Ole,

vielen Dank. Daran lag es. Ich muss da ein % Zeichen einsetzen jetzt klappt
das Programm auch.
Ich programmiere mit C++. Wie kann ich den Anzeigen lassen an welcher stelle
sich der Fehler befindet und um was für ein Fehler es sich handelt? Bisher
hab ich das immer so gemacht:
STRG+F7 drücken um zu Kompilieren. Dann hat mir das Programm angezeigt
wieviel Fehler ich habe!

Gibt es da eine bessere möglichkeit?

Gruss
Johannes

Hi,

ich vermute jetzt einfach mal, dass du irgendeine IDE verwendest. Deiner
(Nicht-)Beschreibung nach tippe ich auf VC++. Wenn Visual Studio dir nur
anzeigt, _dass_ du Fehler gemacht hast, aber nicht _welche_: Hau wech
den Sch**ß Wink . Ich kenne mich mit Visual Studio auch nicht aus. Aber
ich gebe dir mal einen Tipp zu einer deiner Zeilen:
SummeEinzelProdukte=Nutzziffer1*3+Nutzziffer2*1+Nutzziffer3*3+Nutzziffer4*1+Nutzziffer5*3+Nutzziffer6*1+Nutzziffer7*3;modulo10=SummeEinzelProdukte10;Pruefziffer=(10-modulo10)%10;

(Makrierung als Zitat fehlt, da Zeile zu lang dafür; Markierung wäre in
der Zeile darüber gelandet)
Das kann man besser und lesbarer machen, nämlich so:

SummeEinzelProdukte = Nutzziffer1 * 3
+ Nutzziffer2 * 1
+ Nutzziffer3 * 3
+ Nutzziffer4 * 1
+ Nutzziffer5 * 3
+ Nutzziffer6 * 1
+ Nutzziffer7 * 3;
modulo10 = SummeEinzelProdukte % 10;
Pruefziffer = (10 - modulo10) % 10;

Da sieht man plötzlich, dass es sich um drei Zuweisungen handelt, nicht
um eine. Außerdem haben die verehrten Konsolen-Benutzer den Vorteil,
alles auf dem Bildschirm sehen zu können, ohne sich die Augen zu
verrenken. Das da oben ist ein Design-Vorschlag den man beherzigen
/kann/, aber nicht muss. Es schadet jedenfalls nicht.
Nebenbei hätte ich das Problem mit Feldern gelöst, da ich da 10mal das
gleiche tippen muss. Aber das sei jedem Coder freigestellt (ich für
meinen Teil bin faul und stehe dazu).
--
Menschen reden den ganzen Tag Unsinn. Sie gehen zum Kühlschrank, machen
ihn auf und fragen: 'Wo ist die Butter?' Ja, wo wird sie sein? Im Kino?
-- Jürgen von der Lippe
Back to top
Thomas Thiele
Guest





PostPosted: Fri Nov 17, 2006 12:33 am    Post subject: Re: EAN-Prüfziffer Reply with quote

Johannes Henkel schrieb:

Hallo,

deinen Fehler hast du ja gekärt. Was die aber niemand gesagt hat, ist
wie man das statt in C in C++ programmiert.

Quote:
#include<stdio.h

Das hiesse in C++
#include <cstio>

wenn du es brauchen würdest. Brauchst du aber nicht.
Was du brauchst ist:

#include <iostream>

Quote:
void main()

int main(int argc, char** argv)

Quote:
printf("Nutzziffer1 eingeben: ");

std::cout << "Nutzziffer1 eingeben: " << std::endl;

(Falls du noch "using namespace std;" vorher hnschreibst, kannst du dir
das std:: jeweils sparen. Ich schreibs aber immer mit)

Quote:
scanf("%i" ,&Nutzziffer1);

std::cin >> Nutzziffer2;

Quote:
SummeEinzelProdukte=Nutzziffer1*3+Nutzziffer2*1+Nutzziffer3*3+Nutzziffer4*1+Nutzziffer5*3+Nutzziffer6*1+Nutzziffer7*3;modulo10=SummeEinzelProdukte10;Pruefziffer=(10-modulo10)%10; printf("DiePruefziffer ist: %i \n",Pruefziffer);}

Das kann man schöner formatieren. (ich übertreibs mal)

SummeEinzelProdukte = Nutzziffer1 * 3
+ Nutzziffer2 * 1
+ Nutzziffer3 * 3
+ Nutzziffer4 * 1
+ Nutzziffer5 * 3
+ Nutzziffer6 * 1
+ Nutzziffer7 * 3;
modulo10 = SummeEinzelProdukte % 10;
Pruefziffer = (10 - modulo10 ) % 10;
std::cout << "DiePruefziffer ist: " << Pruefziffer << std::endl;

Da wäre dir das auch mit dem vergessenen % aufgefallen.
Geschmacksache, aber ich bin "Fan" davon die Variablen dort zu
deklarieren, wo man sie zuerst braucht.

Also nicht oben.
Quote:
int Pruefziffer;
int SummeEinzelProdukte;
int modulo10;

Sondern

int SummeEinzelProdukte = Nutzziffer1 * 3
+ Nutzziffer2 * 1
+ Nutzziffer3 * 3
+ Nutzziffer4 * 1
+ Nutzziffer5 * 3
+ Nutzziffer6 * 1
+ Nutzziffer7 * 3;
int modulo10 = SummeEinzelProdukte % 10;
int Pruefziffer = (10 - modulo10 ) % 10;

Wobei man natürlich die temporären Variablen modulo10 und
SummeEinzelProdukte nicht braucht. Aber der Compiler sollte das eh
wegoptimieren.

Gruß Thomas
Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.