AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bruchrechnung und das kürzen...

Offene Frage von "Anigmos"
Ein Thema von Anigmos · begonnen am 12. Feb 2007 · letzter Beitrag vom 12. Mai 2009
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#11

Re: Bruchrechnung und das kürzen...

  Alt 13. Feb 2007, 10:23
Informatik Klasse 11???
Ich hab so was auch mal gemacht (siehe Anhang).

Ich bin auch dumm ...
Man muss ja gar nicht mehr runden (rein theoretisch) => es kommt ja ne Ganzzahl raus (wegen ggt).
Aber ob der Compiler das auch weis kann ich jetzt gar nicht sagen...
Hast du noch ein Problem oder funkt das jetzt so?

PS: Zitiere bitte nicht immer ganze Posts (wegen übersichtlichkeit und Platz)
Angehängte Dateien
Dateityp: zip brueche_195.zip (162,6 KB, 55x aufgerufen)
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg
  Mit Zitat antworten Zitat
Anigmos

Registriert seit: 6. Sep 2006
15 Beiträge
 
#12

Re: Bruchrechnung und das kürzen...

  Alt 13. Feb 2007, 11:34
Jop info klasse 11 genau so ein programm sollten wir schreiben...
Wenn ich bei mir jetzt 15/15 * 15/15 bekomme ich ein error mit dem fehler division durch 0...Irgendwas ist noch faul
  Mit Zitat antworten Zitat
Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#13

Re: Bruchrechnung und das kürzen...

  Alt 13. Feb 2007, 11:38
dann musst du mal Haltepunkte in dein Prog einfügen und wenn es dann unterbrochen wurde, musst du mit F7 jede Zeile einzeln weiterrücken und gucken an welcher stelle genau dein Prog den Error verursacht! Und wenn du dir das nicht erklären kannst warum, dann poste die Stelle, die nicht geht!
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg
  Mit Zitat antworten Zitat
Anigmos

Registriert seit: 6. Sep 2006
15 Beiträge
 
#14

Re: Bruchrechnung und das kürzen...

  Alt 13. Feb 2007, 11:44
wie macht man denn die haltepunkte?
  Mit Zitat antworten Zitat
Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#15

Re: Bruchrechnung und das kürzen...

  Alt 13. Feb 2007, 11:46
bei einer Quelltextzeile links auf den grauen rand klicken, da dürfte dann so ein roter punkt erscheinen
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg
  Mit Zitat antworten Zitat
Anigmos

Registriert seit: 6. Sep 2006
15 Beiträge
 
#16

Re: Bruchrechnung und das kürzen...

  Alt 13. Feb 2007, 12:04
das problem liegt beim ggt?!
          result:= a mod b;
und hier nochmal der Code wie er jetzt ist...

Delphi-Quellcode:
// Z1 ist der 1. Zähler
// Z2 der 2. Zähler
// n1 der erste nenner
// n2 der zweite nenner
// zerg Zählerergebnis
//nenner Nennerergebnis
//ganerg Ganzzahlenergebnis
unit mBruchrechnen;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Zaehler1Edit: TEdit;
    Nenner1Edit: TEdit;
    OperatorEdit: TEdit;
    Zaehler2Edit: TEdit;
    Nenner2Edit: TEdit;
    RechnenButton: TButton;
    ErgebnisZaehlerEdit: TEdit;
    ErgebnisNennerEdit: TEdit;
    GanzzahlEdit: TEdit;
    EndeButton: TButton;
    procedure EndeButtonClick(Sender: TObject);
    procedure RechnenButtonClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
// GGT Bestimmung
function ggT(a, b:integer):integer;
begin
   repeat
          result:= a mod b;
          a:=b;
          b:=result;
   until b <> 0;
end;

//Kürzen
procedure B_kuerzen(var z1,z2,n1,n2,zerg,nennerg,ganerg:integer);
begin
zerg:=zerg div(ggt(zerg,nennerg));
nennerg:=nennerg div (ggt(zerg,nennerg));
end;
// Brüche Multiplizieren
procedure B_multiplizieren(var z1,z2,n1,n2,zerg,nennerg:integer);
begin
zerg:= z1*z2;
nennerg:=n1*n2;
end;

// Brüche Dividieren
procedure B_dividieren(var z1,z2,n1,n2,zerg,nennerg:integer);
begin
zerg:= z1*n2;
nennerg:=n1*z2;
end;
// Brüche addieren
procedure b_addieren(var z1,z2,n1,n2,zerg,nennerg:integer);
begin
zerg:=(z1*n1)+(z2*n1);
nennerg:=n1*n2
end;
// Brüche subtrahieren
procedure B_subtrahieren(var z1,z2,n1,n2,zerg,nennerg:integer);
begin
zerg:=(z1*n1)-(z2*n1);
nennerg:=n1*n2
end;

procedure TForm1.EndeButtonClick(Sender: TObject);
begin
close
end;

procedure TForm1.RechnenButtonClick(Sender: TObject);
var z1,z2,n1,n2,zerg,nennerg,ganerg:integer;
begin
//eingabe
z1:=strtoint(Zaehler1Edit.text);
z2:=strtoint(Zaehler2Edit.text);
n1:=strtoint(nenner1edit.text);
n2:=strtoint(nenner2edit.text);
// Abfrage des Operators und ausführen der jeweiligen Funktion
if operatoredit.text = '*then B_multiplizieren(z1,z2,n1,n2,zerg,nennerg);
if operatoredit.text = '/then B_dividieren(z1,z2,n1,n2,zerg,nennerg);
if operatoredit.text = '+then B_addieren(z1,z2,n1,n2,zerg,nennerg);
if operatoredit.text = '-then B_subtrahieren(z1,z2,n1,n2,zerg,nennerg);
// Kürzen
B_kuerzen(z1,z2,n1,n2,zerg,nennerg,ganerg);
// Ausgabe
GanzzahlEdit.text:=inttostr(ganerg);
ErgebnisZaehlerEdit.text:=inttostr(zerg);
ErgebnisNennerEdit.text:=inttostr(nennerg);
end;

end.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#17

Re: Bruchrechnung und das kürzen...

  Alt 13. Feb 2007, 12:23
Hallo Anigmos,

ich fürchte du verwendest den euklidischen Algorithmus ohne ihn zu verstehen. Betrachte zumindest mal die Rechenregeln im Wikipedia-Artikel. Und wenn du hier nach [dp]Euklid*[/dp] suchst, dann erhältst du auch noch jede Menge Lesestoff.

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#18

Re: Bruchrechnung und das kürzen...

  Alt 13. Feb 2007, 12:35
Hier mal als Referenz meine ggt-Funktion!
Delphi-Quellcode:
function ggT(a,b: integer):integer;
   var x :integer;
begin
   if b <> 0 then
   repeat
     x:=a mod b;
     a:=b;
     b:=x;
   until x = 0;
     result := abs(a); //falls a, oder b negativ
end;
Edit: die habe ich verstanden, aber vorher auch nur von dsdt.info kopiert
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: Bruchrechnung und das kürzen...

  Alt 13. Feb 2007, 12:54
Ich habe mal ein kleines Beispiel zum Thema Brüche kürzen angehängt, weis aber nicht, ob du sowas meintest.
Angehängte Dateien
Dateityp: zip br_che_459.zip (5,9 KB, 37x aufgerufen)
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Anigmos

Registriert seit: 6. Sep 2006
15 Beiträge
 
#20

Re: Bruchrechnung und das kürzen...

  Alt 14. Feb 2007, 14:55
So noch langem hin und her hab ich 1. den fehler bei meinem algorithmus gefunden hab anstatt b = 0 b <> 0 gehabt Tja aber nun ist noch das problem mit der Ausgabe wie kann ich diese einbinden??
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz