AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Digitaltechnik: Wahrheitstabelle generieren
Thema durchsuchen
Ansicht
Themen-Optionen

Digitaltechnik: Wahrheitstabelle generieren

Ein Thema von mr-unbekannt · begonnen am 4. Mai 2006 · letzter Beitrag vom 7. Mai 2006
Antwort Antwort
mr-unbekannt

Registriert seit: 29. Okt 2005
Ort: tirol
104 Beiträge
 
Delphi 7 Personal
 
#1

Digitaltechnik: Wahrheitstabelle generieren

  Alt 4. Mai 2006, 20:12
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;
  Mit Zitat antworten Zitat
marabu

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

Re: Digitaltechnik: Wahrheitstabelle generieren

  Alt 4. Mai 2006, 21:00
Hallo.

Da gibt es ein paar threads:

Wahrheitstabellen
Alle Boolschen Operatoren

Was das Befüllen der Spalte E0 angeht, so solltest du mal eine Skizze machen, wie deine Tabelle aussehen soll.

Delphi-Quellcode:
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;
Grüße vom marabu
  Mit Zitat antworten Zitat
mr-unbekannt

Registriert seit: 29. Okt 2005
Ort: tirol
104 Beiträge
 
Delphi 7 Personal
 
#3

Re: Digitaltechnik: Wahrheitstabelle generieren

  Alt 5. Mai 2006, 19:42
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:
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;
sreenshot von falsch angeordneten zahlen dabei
Miniaturansicht angehängter Grafiken
snap_189.gif  
  Mit Zitat antworten Zitat
marabu

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

Re: Digitaltechnik: Wahrheitstabelle generieren

  Alt 5. Mai 2006, 20:09
Kopf hoch - du schaffst das:

Delphi-Quellcode:
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;
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
marabu

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

Re: Digitaltechnik: Wahrheitstabelle generieren

  Alt 7. Mai 2006, 11:47
Die Zuweisung in der inneren Schleife sollte besser so aussehen:

Cells[ColCount - iCol, FixedRows + iRow] := IntToStr(iRow shr Pred(iCol) mod 2); Hat den gleichen Effekt, ist aber didaktisch wertvoller.

marabu
  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 22:33 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