AGB  ·  Datenschutz  ·  Impressum  







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

Pascalsches Dreieck o0

Ein Thema von AneLSD · begonnen am 27. Mai 2013 · letzter Beitrag vom 27. Mai 2013
Antwort Antwort
AneLSD

Registriert seit: 15. Mai 2013
7 Beiträge
 
#1

Pascalsches Dreieck o0

  Alt 27. Mai 2013, 16:40
Hallo, könnt ihr mir helfen ein Pascalsches Dreieck zu schreiben? ;/

So weit bin ich bis jetzt gekommen aber mehr schaffe ich einfach nicht und eine Rekursive Lösung habe ich bis jetzt noch nicht gefunden ...

Code:
function pas(reihe,wert:byte):longint;
begin
  if (wert=0) or (wert=reihe)
      then pas:=1
      else pas:=pas(reihe-1,wert-1) + pas(reihe-1,wert)
end;

procedure TPascal.b_berechne_zeileClick(Sender: TObject);
var i: integer;
    exponent: byte;
    zeile: string;
begin
  zeile:='';
  exponent:=spe_exponent.value;
  for i:=0 to exponent do
  zeile:=zeile+inttostr(pas(exponent,i))+' ';
  e_ausgabe.Text:=zeile;
end;

procedure TPascal.b_endeClick(Sender: TObject);
begin
  close;
end;

procedure TPascal.b_koeffizientClick(Sender: TObject);
var exponent, koeffizient: integer;
begin
  exponent:=spe_exponent.Value;
  koeffizient:=spe_koeffizient.value;
  e_koeffizient.Text:=inttostr(pas(exponent,koeffizient-1))
end;
Soo, das Dreieck soll dann in einer Memo oder ähnlichem ausgegeben werden

Ich hoffe ihr könnt mir helfen

Mfg Arne
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.196 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Pascalsches Dreieck o0

  Alt 27. Mai 2013, 16:59
Hallo - Du hast schon verstanden was 'rekursiv' ist, oder? Was du angibst ist rekursiv.

Meinst du zufällig eine 'iterative' Lösung?
  Mit Zitat antworten Zitat
AneLSD

Registriert seit: 15. Mai 2013
7 Beiträge
 
#3

AW: Pascalsches Dreieck o0

  Alt 27. Mai 2013, 20:37
Sorry Günther Aah

Also es ging mir eigentlich darum, wie ich das Ergebnis nun in einer Art Memo ausgeben kann, sodass es aussieht wie ein Pascalsches Dreieck - Das was ich bisher geschrieben hab zeigt leider imme rnur eine Zeile an :/
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.196 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Pascalsches Dreieck o0

  Alt 27. Mai 2013, 20:50
Ich kann nur raten, wer oder was bsp. e_koeffizient oder e_ausgabe ist - Ein Edit-Feld, irgendetwas anderes?

Wie auch immer, schaue nochmal auf deine drei Zeilen
Delphi-Quellcode:
  for i:=0 to exponent do
   zeile:=zeile+inttostr(pas(exponent,i))+' ';
   e_ausgabe.Text:=zeile;
Wenn wir die "richtig" einrücken, sieht man es vielleicht etwas deutlicher:

Delphi-Quellcode:
for i:=0 to exponent do
   zeile:=zeile+inttostr(pas(exponent,i))+' ';

e_ausgabe.Text:=zeile;
Jetzt? Du schreibst 'exponent mal' in deine Variable zeile einen neuen Wert, erst danach stellst du in e_ausgabe dar, was am Schluss drinsteht.


Wenn du mehrere Zeilen in z.B. einer TMemo haben möchtest: Eine Zeile fügst du mit meineMemo.Lines.Add('Dies ist eine Zeile'); hinzu.


Kommst du jetzt weiter?
  Mit Zitat antworten Zitat
AneLSD

Registriert seit: 15. Mai 2013
7 Beiträge
 
#5

AW: Pascalsches Dreieck o0

  Alt 27. Mai 2013, 21:07
Ich habe dir eine PM geschrieben Vielen Dank
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.196 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Pascalsches Dreieck o0

  Alt 27. Mai 2013, 21:22
Wenn wir hier weitermachen:

Wir haben zwei Baustellen:
  1. Wir müssen der TMemo eine Zeile hinzufügen. Diese Zeile soll das sein, was wir vorher in das Edit-Feld geschrieben haben
  2. Wir wollen der Memo mehrere Zeilen hinzufügen

Zu 1)

Das Add() ist eine Prozedur die zum Zeilen-Objekt deiner Memo1-Objekt gehört. Das Zeilen-Objekt ("Lines") wiederum gehört zu deinem Memo1-Objekt. Du sagst also richtigerweise Memo1.Lines.Add(...) . Die Zuweisung dahinter brauchst du nicht, du sagst einfach nur "Ihr Zeilen, fügt das hier (der Parameter in den Klammern) hinzu!". In den Klammern gibt man (leider) nicht an, in welche Zeile man es packen will. Das Add() fügt immer eine neue Zeile ganz unten hinzu. Das muss uns erst einmal reichen.

Für die ...-Angabe brauchen wir jetzt allerdings eine Zeichenkette ("String"). Genau wie beim Edit-Feld auch schon: Dazu hast du ja die Variable zeile gemacht.


Alles klar soweit? Statt e_ausgabe.Text:=zeile; fügen wir jetzt ganz billig eine Zeile in die Memo hinzu: Memo1.Lines.Add(zeile); . Tolle Wurst.


Jetzt kommt noch Punkt 2, das ist eigentlich sogar einfacher. Die Frage vorher: Hast du verstanden, was eine for-Schleife so macht?
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 00:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz