Zapfen rechnen

Hallo alle!

Ich gebe zu - ich bin beim Programmieren und mit Mathe ein technisches „Nackerpatzl“. Aber, wer kann mir helfen, ein solches Programm für Zapfen rechnen in Pascal zu erstellen, vermitteln oder eben einen Link dafür zu geben. Ich möchte bei meinem Jungen nicht ganz dumm da stehen. Danke im voraus.

Hallo,
Sorry, aber was ist das?
Eiszapfen?
Bier zapfen?
Zapfenstreich?

*verwirrtbin*

J.

Sorry, aber was ist das?

Diese Frage hab ich mir auch gestellt :wink:

Eiszapfen?
Bier zapfen?
Zapfenstreich?

Tannenzapfen?
die Zapfen in der Netzhaut des Auges…?

Das einzige, was ich mir hier (unter größten Mühen) vorstellen kann, ist, daß „Zapfen“ das Synonym für „Finger“ ist; aber das ist nur ne ganz vage Vermutung. Bin auf die „Auflösung“ gespannt.

*verwirrtbin*

*mirgenausogeht*

Martin

Moin,

Eiszapfen?
Bier zapfen?
Zapfenstreich?

Tannenzapfen?

Tanenbaum? Will er ein Betriebssystem schreiben?

Thorsten

Hallo nochmal!

Na, da hab ich ja was schönes „verzapft“ :smile:))
Tut mir leid, wenn ihr diesen „Zapfen“(umgangssprachlich) nicht kennt! Ich versuche es zu erklären:
Gemeint ist eine x-beliebige mehrstellige Zahlenangabe, die dann mit 2, das Produkt wiederum mit 3, dann weiterhin (immer schön untereinander) mit 4, 5, 6, 7, 8, und 9 multipliziert und dann das Ganze in weiterer Folge mit 2 beginnend bis 9 wieder dividiert wird. Am Ende kommt wieder die Eingabezahl heraus, falls alles richtig gerechnet wurde. Optisch ergibt diese Rechnerei eine Zapfenform. Ist es so irgendwie verständlich erklärt? Vielleicht gibt es dafür einen anderen Namen, den ich nicht kenne.

Ich gebe zu - ich bin beim Programmieren und mit Mathe ein
technisches „Nackerpatzl“. Aber, wer kann mir helfen, ein
solches Programm für Zapfen rechnen in Pascal zu erstellen,
vermitteln oder eben einen Link dafür zu geben. Ich möchte bei
meinem Jungen nicht ganz dumm da stehen. Danke im voraus.

Moin,

Pascal ist leider schon eine Weile her. darum C. Wenn Dir etwas unklar, frage.
Ich hoffe, ich habe das richtig verstanden. Kann nochmal jemand die Lösung bestätigen?

int dieZahl = 123;

printf(dieZahl);

for (int i = 2; i 1; i--)
{
 dieZahl = dieZahl \* i;
 printf(dieZahl);
}

Thorsten

… für Deine prompte Antwort!!!
Vielleicht, bekomme ich es von jemand noch in Pascal:smile:

Hi Pery,

also davon hab ich wirklich noch nie was gehört – womit wieder mal bestätigt wäre, daß man nie auslernt.

Ich hab Dir fix ein kleines Pascal-Proggi für’s Zapfenrechnen zusammengehackt. Ist sogar ne Deluxe-Version mit variabler „Zapftentiefe“. Ich hoffe, es erfüllt Deine Wünsche :smile:.

Mit freundlichem Gruß
Martin

PROGRAM Zapfen;

VAR
 z, z0: LONGINT;
 t : LONGINT;
 i : LONGINT;
 s : STRING;
 e : INTEGER;


FUNCTION IntStr (i: INTEGER): STRING;

VAR s: STRING;

begin
 Str(i,s);
 IF Length(s)=1 THEN s := ' '+s;
 IntStr := s
end;


begin
 WriteLn('Programm Z\_a\_p\_f\_e\_n');
 WriteLn;

 Write('Startwert = ? ');
 ReadLn(z0);

 Write('Zapfentiefe = ? ');
 ReadLn(s);

 t := 9;

 IF s\>'' THEN
 begin
 Val(s,t,e);
 IF NOT (e=0) THEN t := 0
 end;

 WriteLn;
 WriteLn(' ',z0);

 z := z0;

 FOR i := 2 TO t DO
 begin
 z := z\*i;
 WriteLn('\*',IntStr(i),' = ',z)
 end;

 FOR i := 2 TO t DO
 begin
 z := z DIV i;
 WriteLn('/',IntStr(i),' = ',z)
 end;

 WriteLn;
 WriteLn('');
 ReadLn
end.

Hi Martin!
Danke für Deine prompte Antwort von Gestern noch!!!
Habe es jetzt gerade schnell eingetippt, aber entweder habe ich noch etwas übersehen oder es gibt noch kleine Bugs.
Meldung: „Error26=Type missmatch“ - oder so. Kannst Du mir nochmal aushelfen? Bitte - Danke!

PROGRAM Zapfen;

VAR
z, z0: LONGINT;
t : LONGINT;
i : LONGINT;
s : STRING;
e : INTEGER;

FUNCTION IntStr (i: INTEGER): STRING;

VAR s: STRING;

begin
Str(i,s);
IF Length(s)=1 THEN s := ’ '+s;
IntStr := s
end;

begin
WriteLn(‚Programm Z_a_p_f_e_n‘);
WriteLn;

Write('Startwert = ? ');
ReadLn(z0);

Write('Zapfentiefe = ? ');
ReadLn(s);

t := 9;

IF s>’’ THEN
begin
Val(s,t,e);
IF NOT (e=0) THEN t := 0
end;

WriteLn;
WriteLn(’ ',z0);

z := z0;

FOR i := 2 TO t DO
begin
z := z*i;
WriteLn(’*’,IntStr(i),’ = ',z)
end;

FOR i := 2 TO t DO
begin
z := z DIV i;
WriteLn(’/’,IntStr(i),’ = ',z)
end;

WriteLn;
WriteLn(’’);
ReadLn
end.

Hi Pery,

Habe es jetzt gerade schnell eingetippt,

vermeide Eintippen auch beim kleinsten Codestück, wenn es irgendwie möglich ist, denn die Gefahr, daß sich dabei doch ein Fehler einschleicht, ist zu groß (ich spreche auch aus eigener Erfahrung). Besser mit „Copy & Paste“ arbeiten – ist einfach sicherer.

aber entweder habe
ich noch etwas übersehen oder es gibt noch kleine Bugs.

Oh, ich hab den Code nicht bloß so hingeschrieben a la „müßte so gehen“, sondern ihn compiliert und das Proggi getestet. Ich verwende TurboPascal 7, aber das Programm ist so einfach, daß es von jedem Pascal-Compiler ohne Meckereien übersetzt werden sollte (denke ich jedenfalls). Mit welchem Compiler arbeitest Du?

Meldung: „Error26=Type missmatch“ - oder so.

Verrät der Compiler die Nummer der Zeile, in der der Fehler auftritt?

Ich kann Dir selbstverständlich auch das ausführbare Programm (EXE-Datei) mailen; dann kannst Du Dir schon mal ein paar Zapfen ausrechnen lassen.

Mit freundlichem Gruß
Martin

… funktioniert!