![]() |
|
#1
|
|||
|
|||
![]() У меня написана программа с while а мне надо с repeat until... подскажите как сделать?
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Grids; type TForm1 = class(TForm) StringGrid1: TStringGrid; Label1: TLabel; LabeledEdit1: TLabeledEdit; procedure FormClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormClick(Sender: TObject); const m=3; n=3; type klop=array[1..m,1..n] of byte; var x,y:klop;i,j,k:byte; begin i:=1; while i<=stringgrid1.ColCount do begin j:=1; while j<=stringgrid1.RowCount do begin k:=strtoint(labelededit1.Text); x[i,j]:=strtoint(stringgrid1.Cells[i-1,j-1]); if x[i,j]<0 then y[i,j]:=x[i,j]*k else y[i,j]:=x[i,j]; label1.Caption:=label1.Caption+#9+floattostr(y[j,i]); i:=i+1; end; j:=j+1; label1.Caption:=label1.Caption+#13; end; end; end. |
#2
|
||||
|
||||
![]() Если в этом алгоритме все работало как надо, то вот так:
Код:
procedure TForm1.FormClick(Sender: TObject); const m=3; n=3; type klop=array[1..m,1..n] of byte; var x,y:klop;i,j,k:byte; begin i:=0; repeat j:=0; j:=j+1; repeat i:=i+1; k:=strtoint(labelededit1.Text); x[i,j]:=strtoint(stringgrid1.Cells[i-1,j-1]); if x[i,j]<0 then y[i,j]:=x[i,j]*k else y[i,j]:=x[i,j]; label1.Caption:=label1.Caption+#9+floattostr(y[j,i]); until j<=stringgrid1.RowCount; label1.Caption:=label1.Caption+#13; until i<=stringgrid1.ColCount; end; end. От корректности формулировки поставленной задачи зависят: качество, скорость и желание её реализации!
|
#3
|
||||
|
||||
![]() Код:
Задача: Посчитать сумму чисел от 1 до 100 Код:
Решение с помощью While: ... i := 1; s := 0; while i >= 100 do begin s := s + i; Inc(i); end; ... Код:
Решение с помощью Repeat-Until: i := 1; s := 0; repeat s := s + i; Inc(i); until i > 100; |
#4
|
|||
|
|||
![]() Цитата:
а можно поподробнее о том что у меня тут нарушено...а то программа как-то не правильно работает... мне дана матрица 3х3 и если элемент отрицательный, то надо его умножить на заданный коэффициент. |