![]() |
Struktogramm
Hallo Leute,
ich muss zu folgendem Code ein Struktogramm malen, habe aber keine Ahnung wie das funktioniert. könnte mir vielleicht einer von euch helfen?
Code:
procedure TviewWizWerbemittelVersandDetails.refreshData;
var lRow, lCol: Integer; lLastAdrID: Double; begin FWEMList.Clear; lLastAdrID := -1; //alle Zeilen ausser Header löschen grdDetails.Cells.RowCount := 0; //Spalten 5 - x löschen grdDetails.Cells.ColCount := 4; //Werbemittel einlesen CheckClose(qryWerbemittel); CheckOpen(qryWerbemittel); grdDetails.BeginUpdate; try while not (qryWerbemittel.Eof) do begin //Spalte erzeugen lCol := grdDetails.Cells.AddColumn; //es gibt wohl keine Möglichkeit, Daten in einer Header-Zelle zu speichern, also //speichern wird die WEM-IDs in einer Liste FWEMList.Add(TFloatClass.Create(qryWerbemittelwem_id.AsFloat)); grdDetails.cells.Columns[lCol].Caption := qryWerbemittelwem_display_name.AsString; grdDetails.cells.Columns[lCol].Tag := qryWerbemittelwem_verfuegbar.AsInteger; qryWerbemittel.Next; end; CheckClose(qryWerbemittel); //Transfers einlesen lRow := 0; CheckClose(qryWerbemitteltransfer); CheckOpen(qryWerbemitteltransfer); while not (qryWerbemitteltransfer.Eof) do begin //neue Adresse, neue Spalte if (lLastAdrid <> qryWerbemitteltransferwmt_adrid.AsFloat) then begin lRow := grdDetails.cells.AddRow; grdDetails.Cells[0, lRow].Data := TFloatClass.Create(qryWerbemitteltransferwmt_adrid.AsFloat); grdDetails.Cells[0, lRow].Text := qryWerbemitteltransferadr_schluessel.AsString; grdDetails.Cells[0, lRow].CanEdit := false; grdDetails.Cells[0, lRow].CanEnter := false; end; //Spalten 2 bis 4 editierbar machen grdDetails.cells[2, lRow].Value := 0; grdDetails.cells[2, lRow].CanEdit := true; grdDetails.cells[2, lRow].CanEnter := true; // enthält die plz zum sortieren (-> sortData.value) grdDetails.cells[1, lRow].FormatString := qryWerbemitteltransferadr_plz.AsString; if (-1 <> getIndexFromAdrList(qryWerbemitteltransferwmt_adrid.AsFloat)) then begin grdDetails.cells[3, lRow].Value := 1; end else begin grdDetails.cells[3, lRow].Value := 0; end; grdDetails.cells[3, lRow].CanEdit := true; grdDetails.cells[3, lRow].CanEnter := true; //Spalte suchen for lCol := 4 to grdDetails.Cells.ColCount - 1 do begin if (TFloatClass(FWEMList[lCol - 4]).FData = qryWerbemitteltransferwmt_wemid.AsFloat) then begin grdDetails.cells[lCol, lRow].Alignment := taCenter; grdDetails.Cells[lCol, lRow].Text := qryWerbemitteltransferwmt_anzahl.AsString; if qryWerbemitteltransferwmt_vertroestetdatum.IsNull then begin end else begin grdDetails.Cells[lCol, lRow].Color := clLime; end; end; grdDetails.Cells[lCol, lRow].CanEdit := false; grdDetails.Cells[lCol, lRow].CanEnter := false; end; lLastAdrID := qryWerbemitteltransferwmt_adrid.AsFloat; qryWerbemitteltransfer.Next; end; CheckClose(qryWerbemitteltransfer); finally grdDetails.EndUpdate; end; lblCount.Caption := IntToStr(grdDetails.Cells.RowCount); sortData; end; |
AW: Struktogramm
Hallo-
Hast du verstanden, was ein Struktogramm ist? ![]() Bekommst du denn selbst ein kleines Struktogramm für etwas in der Art von "Wenn etwas gilt, dann schreibe nacheinander 1 bis 10"? |
AW: Struktogramm
jaa das würde ich hinkriegen mit den 1-10.
aber auch mit dem artikel kann ich das nicht .. zu kompliziert für mich :( |
AW: Struktogramm
Und was konkret nicht?
|
AW: Struktogramm
naja erstmal kommt ein whlile dann noch eins dann if else und wieder das ist mir zu komöiziert ich komm dann durcheinander versteht ihr?
|
AW: Struktogramm
Wenn du es im Endeffekt kannst, es dir aber zu komöiziert ist, was erwartest du dann? Möchtest du die Lösung zu dem Quellcode-Block von oben haben?
|
AW: Struktogramm
Zitat:
![]() |
AW: Struktogramm
also wenn es jemand machen würde dann gerne, aber wenn nicht ist es auch nicht so schlimm.
dann versuch ich das halt anders hinzukriegen |
AW: Struktogramm
Das schöne an Pascal ist ja, dass man es tatsächlich, wie du sagst, von oben nach unten lesen kann. Also fängst am besten genau so an wie du es geschrieben hast.
Erst ein while ... da innerhalb der while (gekennzeichnet durch begin/end) keine weitere Abfrage ist, kannst darunter dann die 2. while machen. Nun wird's spannend ... innerhalb der 2. while-schleife hats mehrere if-Abfragen (alle gleichwertig, weil nicht weiter verschachtelt), also die musst dann auch da mit reinpacken. Die for-Schleife innerhalb der while-schleife ist auf selber Ebene wie die if-Abfragen. Zum Schluss hast noch eine if-Abfrage innerhalb der for-Schleife, also hast du insgesamt eine Verschachtelungstiefe von 3 Ebenen in der for-Schleife. |
AW: Struktogramm
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 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 by Thomas Breitkreuz