![]() |
Digitaltechnik: Wahrheitstabelle generieren
hallo, vielleicht sind ja ein paar hier an digitaltechnik interressiert...
ich habe ein kleines Problem... ich möchte eine Wahrheitstabelle generieren diese soll den kompletten eingangsbereich mit bits ausfüllen ich schaffe es nicht, bei E0 abwechselnd 0 und 1 einzufüllen.. könte mir bitte jemand helfen? vielen dank
Delphi-Quellcode:
procedure TForm1.SpinEdit1Change(Sender: TObject);
var i:Integer; begin sg1.ColCount := SpinEdit1.Value; sg1.RowCount :=Sqr(SpinEdit1.Value)+1; for i := 1 to Sqr(SpinEdit1.Value) do begin sg1.Cells[SpinEdit1.Value-1, i]:= '0'; end; end; |
Re: Digitaltechnik: Wahrheitstabelle generieren
Hallo.
Da gibt es ein paar threads: ![]() ![]() Was das Befüllen der Spalte E0 angeht, so solltest du mal eine Skizze machen, wie deine Tabelle aussehen soll.
Delphi-Quellcode:
Grüße vom marabu
procedure TForm1.SpinEdit1Change(Sender: TObject);
var i: Integer; begin with StringGrid do begin ColCount := SpinEdit.Value; RowCount := Sqr(SpinEdit.Value) + FixedRows; for i := 1 to Sqr(SpinEdit.Value) do Cells[SpinEdit.Value-1, i] := IntToStr(1 - i mod 2); end; end; |
Re: Digitaltechnik: Wahrheitstabelle generieren
Liste der Anhänge anzeigen (Anzahl: 1)
momentan schaffe ich es, die erste reihe abwechselnd mit 1 und 0 zu füllen,
ich bringe es auch zusammen, dass es mir die nächsten spalten auffült, jedoch in falscher reihenfolge.. der Code:
Delphi-Quellcode:
sreenshot von falsch angeordneten zahlen dabei
procedure TForm1.SpinEdit1Change(Sender: TObject);
var i,j: Integer; p: Real; begin p:= 1; for j := 1 to SpinEdit1.Value do p := p*2; with sg1 do begin ColCount := SpinEdit1.Value; RowCount := trunc(p) + FixedRows; for i := 1 to trunc(p) do Cells[SpinEdit1.Value-1, i] := IntToStr(1 - i mod 2); for i := 1 to trunc(p) do Cells[SpinEdit1.Value-2, i] := IntToStr(1 - i div 2 mod 2); for i := 1 to trunc(p) do Cells[SpinEdit1.Value-3, i] := IntToStr(1 - i div 4 mod 2); end; end; |
Re: Digitaltechnik: Wahrheitstabelle generieren
Kopf hoch - du schaffst das:
Delphi-Quellcode:
Freundliche Grüße vom marabu
procedure FillGrid(sg: TStringGrid; bits: Byte);
var iCol, iRow, iRows: Integer; begin iRows := 1 shl bits; with sg do begin ColCount := bits; RowCount := iRows + FixedRows; for iCol := 1 to ColCount do for iRow := 0 to Pred(iRows) do Cells[ColCount - iCol, FixedRows + iRow] := IntToStr(Ord(Odd(iRow shr Pred(iCol)))); end; end; procedure TDemoForm.SpinEditChange(Sender: TObject); begin FillGrid(StringGrid, SpinEdit.Value); end; |
Re: Digitaltechnik: Wahrheitstabelle generieren
Die Zuweisung in der inneren Schleife sollte besser so aussehen:
Delphi-Quellcode:
Hat den gleichen Effekt, ist aber didaktisch wertvoller.
Cells[ColCount - iCol, FixedRows + iRow] := IntToStr(iRow shr Pred(iCol) mod 2);
marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 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