Problem mit dem Kreisradiusberechnungsprogramm

Tutorials.at
Verfügbare Informationen zu "Problem mit dem Kreisradiusberechnungsprogramm"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: freaky_jan - Dragorad - Dirty Oerty - detewe89 - orluk - wirthi
  • Forum: Tutorials.at
  • Forenbeschreibung: Programmierforum
  • aus dem Unterforum: Pascal
  • Antworten: 19
  • Forum gestartet am: Mittwoch 19.04.2006
  • Sprache: deutsch
  • Link zum Originaltopic: Problem mit dem Kreisradiusberechnungsprogramm
  • Letzte Antwort: vor 16 Jahren, 5 Monaten, 23 Tagen, 22 Stunden, 20 Minuten
  • Alle Beiträge und Antworten zu "Problem mit dem Kreisradiusberechnungsprogramm"

    Re: Problem mit dem Kreisradiusberechnungsprogramm

    freaky_jan - 23.05.2007, 21:12

    Problem mit dem Kreisradiusberechnungsprogramm
    Hallo zusammen
    Habe mich eben registriert. Ich habe seit ein paar Tagen angefangen Pascal zu lernen und bin im Tutorial gerade bei Kapitel 1 beim Kreisradiusbearberechnungsprogramm. Nachdem ich das Programm geschrieben hatte habe ich es natürlich sofort getestet. Ich habe als Umfang 5 genommen. Die Zahl die erscheint lautet: 3,141592654... Ich habe das auch in meinem Taschenrechner nachgerechnet, habe 2 * 5 * pi eingetippt und der sagt es gäbe: 31.41592654... also eine Stelle mehr als beim Programm. Ich habe auch mit dem Taschenrechner meiner Schwester nachgerechnet und der sagt das selbe wie meiner. Könnt ihr mir sagen, warum der Taschenrechner und das Programm unterschiedliche Ergebnisse ausgeben?

    Mfg freaky_jan



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    Dragorad - 24.05.2007, 10:50


    Probier's mal so:

    Code: var r,u:real

    Code: readln(r);{liest den Radius ein}
    u:=2*r*3.14; {berechnet Kreisumfang; statt 2*3.14 kannst du auch 6.28 schreiben}
    writeln(u);



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    freaky_jan - 24.05.2007, 12:11


    nein geht immer noch nicht zeigt genau das gleiche Resultat an wie vorher.



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    Dirty Oerty - 24.05.2007, 14:40


    der taschenrechner hat auf jedenfall recht, das kann ich sagen^^

    weil 10 * PI is nunmal 31,4... :D



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    detewe89 - 24.05.2007, 16:27


    kann es sein dass im Programm das hier steht:

    Code: 3.141...E+2 oder so ähnlich?

    das würde heißen: 3.141 MAL 10 HOCH 2 und wäre richtig...



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    freaky_jan - 24.05.2007, 16:34


    Zitat: kann es sein dass im Programm das hier steht:

    Code:
    3.141...E+2
    oder so ähnlich?

    das würde heißen: 3.141 MAL 10 HOCH 2 und wäre richtig...

    Ja etwa so steht es. Ist diese Zahl denn in Wirklichkeit doch 31,4...?



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    detewe89 - 24.05.2007, 16:47


    Ja ist sie! :D

    Bei Pascal und sonst in der mathematischen Schreibweise gilt:

    E heißt immer "...mal 10 hoch..."

    bei Dir steht da wohl E+1, das bedeutet "mal 10 hoch 1", und zwhn hoch 1 ist nunmal 10, also ergibt das ganze auch 31.415.....



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    freaky_jan - 24.05.2007, 16:50


    detewe89 hat folgendes geschrieben: Ja ist sie! :D

    Bei Pascal und sonst in der mathematischen Schreibweise gilt:

    E heißt immer "...mal 10 hoch..."

    bei Dir steht da wohl E+1, das bedeutet "mal 10 hoch 1", und zwhn hoch 1 ist nunmal 10, also ergibt das ganze auch 31.415.....

    ok dann bin ich beruhigt. trotzdem stört mich diese darstellung ein bisschen. kann man mit zusätzlichen befehlen das ändern?



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    Dragorad - 25.05.2007, 12:45


    Jup, das geht - und zwar so:

    Code: x:=(zahl,5,2)

    die erste Zahl beschreibt die Gesamtstellen (mit dem Komma bzw. Punkt);
    die zweite sagt, wieviele Nachkommastellen es gibt



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    orluk - 31.10.2007, 19:54


    Dragorad hat folgendes geschrieben: Jup, das geht - und zwar so:

    Code: x:=(zahl,5,2)

    die erste Zahl beschreibt die Gesamtstellen (mit dem Komma bzw. Punkt);
    die zweite sagt, wieviele Nachkommastellen es gibt

    Was ist hier was? Wenn die Variable zahl die Eingabe ist deren Ausgabe geändert werden soll, was ist dann x? So funktioniert dass bei mir jedenfalls nicht wenn ich das ganze in eine neue Variable speichere.



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    orluk - 01.11.2007, 21:40


    Problem gelöst. Eine weitere Frage auf die ich merkwürdigerweise keine Antwort finde.

    Wie Deklariert man Char Variablen so, dass sie beispielsweise nur a oder b speichern können?

    e: Ne hab ne bessere Frage:
    Wie mach ich es dass bei einer repeat Scheife, es bei Until 2 optionen geben kann? Also die Schleife soll abgebrochen werden, wenn die Variable x
    entweder a oder b ist.



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    Dragorad - 03.11.2007, 00:05


    zu 1.) da fällt mir erstmal nur var x:char ein ...
    zu 2.) repeat ... until (x=a) or (x=b) ;)



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    orluk - 03.11.2007, 01:57


    Komisch, das hatte ich doch schon ausprobiert, nur jetzt funktioniert es. Vorher nicht.



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    orluk - 03.11.2007, 02:11


    Ok, danke. Hab jetzt aber noch 2 weitere Fragen.

    1. Wieso funktioniert das nicht?

    Code:
    PROGRAM kreis4;
    USES crt;
    CONST Pi = 3.141;
    VAR Radius, Ergebnis: real;
        Ausgang: Char;
        Menge: Set of Char;
    BEGIN
    PROCEDURE neustart;
    REPEAT
    Menge := ['n', 'y'];
    ClrScr;
    Write ('Radius eingeben: ');
    ReadLn (Radius);
    Ergebnis :=  2 * Pi * Radius;
    WriteLn;
    WriteLn ('Der Umfang des Kreises ist ', Ergebnis:5:2);
    WriteLn;
    WriteLn ('Neue Zahlen eingeben? (y/n)');

    Ausgang := Readkey;
    IF Ausgang IN Menge THEN
     BEGIN
     END
     ELSE
     BEGIN
     neustart;
     END;

    END;
    UNTIL (Ausgang = 'n');


    END.


    2. Gibt es eine einfachere Methode eine Abfrage zu machen bei der der Benutzer nur 2 Buchstaben eingeben kann? Das heisst wenn er einen falschen eingibt soll für den Benutzer gar nichts passieren und die Abfrage soll wiederhohlt werden.[/code]



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    detewe89 - 03.11.2007, 12:16


    Zu 1..:

    Ich weiß nicht genau ob das in Pascal auch so ist aber zumindest in C ist es so, dass wenn Du Variablen außerhalb der Prozedur definierst, erkennt die Prozedur diese auch nicht, sie bestehen nur für das Hauptprogramm.

    Zu 2.:

    Ja, es gbt eine etwas elegantere Methode für die Abfrage:

    Code: ausgabe := readkey;
    if ((ausgabe = 'y') or (ausgabe = 'Y'))
       then
       begin
          neustart;
       end;
    else
    begin;
    end;

    P.S.: Gut wäre, wenn Du Dein Problem bei (1.) etwas genauer schildern könntest (Compilermeldungen, ...).


    Gruß, Daniel



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    wirthi - 03.11.2007, 16:08


    detewe89 hat folgendes geschrieben: Zu 1..:

    Ich weiß nicht genau ob das in Pascal auch so ist aber zumindest in C ist es so, dass wenn Du Variablen außerhalb der Prozedur definierst, erkennt die Prozedur diese auch nicht, sie bestehen nur für das Hauptprogramm.
    Hmmm? Natürlich kannst du in C globale Variablen anlegen:
    Code: #include <stdio.h>

    int i=2611;

    int main() {
            printf("%d\n",i);
            return 0;
    }
    Funktioniert einwandfrei.

    Es gibt in C auch kein Hauptprogramm, wie das in Pascal der Fall ist. Wenn du die main-Funktion meinst: die ist eine Funktion wie jede andere auch; natürlich kann auf darin deklarierte Variablen nicht in anderen Funktionen zugegriffen werden.



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    detewe89 - 03.11.2007, 17:40


    s. u.



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    detewe89 - 03.11.2007, 17:41


    naja, da lag ich wohl falsch...

    ich dachte nicht, dass die Variablen von orluk als global gelten ,sondern nur für das PROGRAM kreis4 zur Verwendung stehen, nicht für die PROCEDURE neustart!

    sollte mich mal wieder ins Tutorial einlesen, hab grad nur C und C++ gemacht, also sry :)

    P.S.: Das mit den Variablen in C weiß ich schon... :D



    Re: Problem mit dem Kreisradiusberechnungsprogramm

    wirthi - 03.11.2007, 18:19


    @orluk: Du legst mit VAR globale variablen an. Dann hast du ein BEGIN, mit dem das Hauptprogramm eingeleitet wird. Danach machst du aber eine Prozedur (neustart), und das Hauptprogramm fehlt komplett. Es sollte eher so ausschauen (Pseudocode):
    Code: PROGRAM ...
    VAR ...

      PROCEDURE neustart
      BEGIN
        REPEAT ...
          ..
        UNTIL ...
      END

    BEGIN
      (* hier das Hauptprogramm *)
    END.
    Im Hauptprogramm willst du eigentlich nur neustart aufrufen, vermute ich.



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Tutorials.at

    Text? - gepostet von gs93 am Sonntag 19.11.2006
    Mein Würfelprogramm funktioniert nicht richtig... - gepostet von Godmaster am Samstag 23.09.2006
    Hilfe beim Tutorial - gepostet von toxicity am Mittwoch 23.08.2006
    Pascal - Tutorial fertig - was jetzt ? - gepostet von jan040793 am Sonntag 18.11.2007
    öffnen von dateien mit variablen namen - gepostet von Martix391 am Montag 12.06.2006
    Frage zu Pascal - gepostet von Danny am Montag 12.03.2007
    PROGRAMMSAMMLUNG - gepostet von DrPhil_Guth am Freitag 25.08.2006
    Variablen tauschen - gepostet von Joe am Samstag 03.11.2007



    Ähnliche Beiträge wie "Problem mit dem Kreisradiusberechnungsprogramm"

    Wir haben ein Problem!!! - Langi (Freitag 09.11.2007)
    Hassu N Problem ????? - Anonymous (Montag 13.12.2004)
    schon das erste problem.... :-( - jonnyb (Donnerstag 21.06.2007)
    Ein PC NooB hat ein Sound Problem - Vergil (Mittwoch 31.10.2007)
    Problem - Dragonfly (Samstag 21.07.2007)
    Rießen Problem!!Bitte alle lesen!!!! - Jule14 (Samstag 07.01.2006)
    !!! kleines Problem bei Bundesliga 05/06 !!! - bundesliga0506 (Mittwoch 20.07.2005)
    Point of Existence 2 Mod Singleplayer Problem! - dirtrunner (Dienstag 05.09.2006)
    Und noch ein Altbekannter Aero - BAUR547 (Donnerstag 03.11.2011)
    USKO - ServerLogin Problem "Disconnected from Server&qu - rauron (Freitag 21.04.2006)