Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 26

Thema: [Top Pascal] 3 mathematische Aufgaben

  1. #1
    Registered User
    Registriert seit
    Oct 2000
    Beiträge
    212
    Renommee
    17

    [Top Pascal] 3 mathematische Aufgaben

    hi ho

    Ich habe da 3 Aufgaben von der Tochter meines Chefs bekommen, die im Programm Top Pascal gelöst werden müssen. Hm, ich kenn mich darin nicht so gut aus und frage deshalb euch, ob ihr mir da weiterhelfen könnt. Ich liste jetzt mal die 3 Aufgaben auf, vielleicht fällt jemanden gerade was ein :

    1. Brüche kürzen

    Man muss einen Bruch eingeben können, welcher dann abgecheckt werden muss, ob er bereits gekürzt ist oder ob es eine ganze Zahl ist. Wenn ungekürzt, soll er gekürzt werden.

    2. Mischen (random?)

    Man muss 10 Namen eingeben können, welche dann gemischt ausgegeben werden müssen.

    3. Primzahlenzerlegung

    Man muss eine beliebige Zahl eingeben können, welche dann in ihren Primzahlen ausgegeben werden müssen. Z.B. 18 = 2 x 3 x 3


    Danke jetzt schon für eure Hilfe
    Was kann demütigender sein als das Gefühl, dass man deshalb nicht an die
    Früchte herangekommen ist, weil einem der Mut fehlte den Baum zu schütteln?

    Logan Pearsall Smith

  2. #2
    Registered User
    Registriert seit
    Mar 2001
    Beiträge
    1.100
    Renommee
    42
    3. Primfaktorzerlegung:

    Code:
    Schleife
      if n mod i (i=2,3,5,7,...) = 0 then 
       1. Primfaktor = 1;
       n = n/i;
    ... bis n=1.
    Das Ganze musst du noch in Top Pascal umsetzten. Ist ja jetzt nicht mehr so schwer.

    Mit diesem Wissen kannst du nun auch Aufgabe 1 lösen. Du teilst den Zähler und den Nenner einfach in die einzelnen Prifaktoren auf und schaust welche oben und unten doppelt vorkommen.

    Bei Aufgabe 2 kann ich dir nicht helfen, da ich nicht weiß wie die Randomfunktion bei Top Pascal genau aussieht und ob es überhaupt eine gibt.
    Die Schule ist in Deutschland kostenlos, für die meisten Schüler ist sie sogar umsonst.

  3. #3
    Moderator
    Registriert seit
    Jan 2001
    Beiträge
    1.253
    Renommee
    421
    Moin!

    1. Mit dem Euklidische Verfahren(Wenn u größer als v ist, ist der größte gemeinsame Teiler von u und v gleich dem größten gemeinsamen Teiler von v und u - v.) sollte es schneller gehen den größten gemeinsamen Teiler zu berechnen:


    Code:
    function ggT(u, v: integer): integer [blau]// Funktion berechnet den größten  gemeinsamen Teiler[/blau]
     var t: integer;
     begin
       repeat
         if u<v then begin t:=u; u:=v; v:=t; end;
         u:=u-v;  
       until u=0;
       ggT:=v;
     end;
    2. Hmm, steh aber nicht wie und wie stark gemischt werden soll. Also, brauchst du nicht unbedingt eine Zufallsfunktion.

    mfg Benjamin
    Wir denken nur, wenn wir mit einem Problem konfrontiert werden. John Dewey

  4. #4
    Moderator
    Registriert seit
    Jun 2000
    Beiträge
    1.634
    Renommee
    658
    2. : zb so:
    Code:
    for i:=1 to 9 do
      if(random(1)=0 then
      begin
        z[i]:=z[i]+z[i+1];
        z[i+1]:=z[i]-z[i+1];
        z[i]:=z[i]-z[i+1];
      end;
    das in ner schleife n paarmal durchlaufen lassen, je öfter desto gemischter.
    (kommt mir jez nich mit effizienz und geschwindigkeit und so )
    Quelle heure est-il au paradis?

  5. #5
    Moderator
    Registriert seit
    Jan 2001
    Beiträge
    1.253
    Renommee
    421
    @Simon Moon:

    Man muss 10 Namen eingeben können
    1. Du mischst nur 9 Sätze.
    2. Können heißt nicht müssen!

    ...

    mfg Benjamin
    Wir denken nur, wenn wir mit einem Problem konfrontiert werden. John Dewey

  6. #6
    Registered User
    Registriert seit
    Mar 2001
    Beiträge
    1.100
    Renommee
    42
    Ich seh grad, dass ich enen kleinen Flücjtgskeitsfehler in meinem Code drin habe:

    Code:
    --------------------------------------------------------------------------------Schleife
      if n mod i (i=2,3,5,7,...) = 0 then 
       Primfaktor = n ;
       n = n/i;
    ... bis n=1.
    Jetzt müsste er stimmen.
    Die Varable Primfaktor muss natürlich ein Array sein, in der alle Primfaktoren gespeichert werden können.
    Die Schule ist in Deutschland kostenlos, für die meisten Schüler ist sie sogar umsonst.

  7. #7
    Moderator
    Registriert seit
    Jun 2000
    Beiträge
    1.634
    Renommee
    658
    @Bunny, nein, mein algorythmus mischt 10 Datensätze, die Schleife geht nur bis 9, weil z[i] mit z[i+1] vertauscht wird.
    Man muss das ganze aber mindestens 10 mal durchlaufen lassen, wenns ordentlich gemischt sein soll.
    Quelle heure est-il au paradis?

  8. #8
    Moderator
    Registriert seit
    Jan 2001
    Beiträge
    1.253
    Renommee
    421
    Ok, mein Fehler
    Wir denken nur, wenn wir mit einem Problem konfrontiert werden. John Dewey

  9. #9
    Registered User
    Registriert seit
    Oct 2000
    Beiträge
    212
    Renommee
    17
    Array?
    Wie kann ein User jetzt eine Zahl eingeben? Diese muss dann wohl als eine Variable gespeichert werden, oder? In Simons Beispiel wäre es dann "z"...stimmts? mensch, das ist eine Frau, der ich das erklären soll.... Hilft mir auf die Sprünge.
    Was kann demütigender sein als das Gefühl, dass man deshalb nicht an die
    Früchte herangekommen ist, weil einem der Mut fehlte den Baum zu schütteln?

    Logan Pearsall Smith

  10. #10
    Moderator
    Registriert seit
    Mar 2002
    Beiträge
    1.231
    Renommee
    423
    Geht's etwas verständlicher? Redest du von Beispiel 2? Da sollen doch Namen eingegeben werden keine Zahlen.

  11. #11
    Registered User
    Registriert seit
    Apr 2001
    Beiträge
    171
    Renommee
    82
    Code:
    {Zufallszahlen müssen und sind immer zw. 1 und 10}
    
    program Test;
    var i, o:Integer;                  [Color=Dark-BLUE]//* Brauchen wir fürs Würfeln...[/Color]
        n: Array[1..10] of String;     [Color=Dark-BLUE]//* Variablen für die 10 Namen.[/COLOR]
        
    procedure Name_lesen; 
    Begin
      WriteLn('Bitte geben sie zehn Namen ein!');
      for i := 1 to 10 do             [Color=Dark-BLUE]//* Wiederhole Code 10 mal[/COLOR]
      begin
        Write('Name');
        Write(i);
        Write(': ');
        ReadLn(n[i]);                 [Color=Dark-BLUE]//* Name einlesen un in n1 bis n10 speichern[/COLOR]
      end;
    end;
    
    procedure Name_randomOut;
    begin
      for i:=10 downto 1 do
      begin
        o:=uRandom1n(10);             [Color=Dark-BLUE]//* Zufallszahl in o speichern[/COLOR]
        WriteLn(n[o]);                [Color=Dark-BLUE]//* Name ausgeben[/COLOR]
      end;
    end;
    
    begin
      Name_Lesen;
      Name_randomOut;
      WriteLn('Use the Source, Luke!');
    end.
    Mein erstes TopPascal Prog!
    Also PunkFace, das ist, um die 10 Namen einzulesen und
    gemischt wieder auszugeben.

    P.S. Tut mir leid, ich bin nicht so gut im Kommentare schreiben.
    Geändert von Lexy (04.12.2002 um 13:50 Uhr)
    Worin liegt der Sinn, dem Blinden zu zeigen, was er nicht sehen soll - dem Tauben zu sagen, was er nicht hören darf und dem Stummen darüber das Wort zu verbieten?

  12. #12
    Moderator
    Registriert seit
    Mar 2002
    Beiträge
    1.231
    Renommee
    423
    @lexy: bei deiner ausgabe werden aber die gleichen namen wiederholt ausgegeben.

  13. #13
    Registered User
    Registriert seit
    Apr 2001
    Beiträge
    171
    Renommee
    82

    Re: [Top Pascal] 3 mathematische Aufgaben

    Ja, die gleichen Namen werden ausgegeben, aber nicht in der gleichen Reinfolge.

    [ZITAT]Original geschrieben von PunkFace
    2. Mischen (random?)

    Man muss 10 Namen eingeben können, welche dann gemischt ausgegeben werden müssen.
    [/ZITAT]

    Oder hab ich da was falsch verstanden?!?

    [COLOR=DARK-BLUE]//* Ach so meinst du das! Ja, kann passieren, aber bei meinen drei Testläufen ist das nicht passiert...[/COLOR]
    Geändert von Lexy (04.12.2002 um 13:56 Uhr)
    Worin liegt der Sinn, dem Blinden zu zeigen, was er nicht sehen soll - dem Tauben zu sagen, was er nicht hören darf und dem Stummen darüber das Wort zu verbieten?

  14. #14
    Moderator
    Registriert seit
    Mar 2002
    Beiträge
    1.231
    Renommee
    423
    ich meinte: es werden nicht zwingend alle 10 namen wieder ausgegeben. es könnte theoretisch auch 10 mal der gleiche ausgeben werden. lass das programm doch einfach mal laufen...

  15. #15
    Registered User
    Registriert seit
    May 2001
    Beiträge
    64
    Renommee
    24
    [ZITAT]Original geschrieben von Number of the Beast
    if n mod i (i=2,3,5,7,...) = 0 then
    Primfaktor = n ;
    n = n/i;
    ... bis n=1.
    [/ZITAT]

    muss das nicht
    Code:
      if n mod i (i=2,3,5,7,...) = 0 then 
       Primfaktor = i ;
       n = n/i;
    ... bis n=1.
    heissen??
    Auch wenn alle einer Meinung sind, können alle Unrecht haben.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Aufgaben Problem :(
    Von Moonwalker im Forum Java
    Antworten: 6
    Letzter Beitrag: 26.02.2006, 15:51
  2. [PHP] Mathematische Genauigkeit?
    Von spectrumizer im Forum PHP, Perl und ASP
    Antworten: 8
    Letzter Beitrag: 25.09.2003, 23:02
  3. Mathematische Begriffe
    Von Amageddon im Forum Naturwissenschaften & Elektronik
    Antworten: 1
    Letzter Beitrag: 16.05.2002, 21:02
  4. 3D - Mathematische Grundkenntnisse
    Von walkingdeath im Forum Algorithmen und sonstige Programmiersprachen
    Antworten: 13
    Letzter Beitrag: 01.08.2001, 19:21

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •