Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LD.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
391.17 Кб
Скачать
  1. Оператор цикла for. Вложенные циклы. Примеры реализации в среде Delphi.

procedure TForm1.Button1Click(Sender: TObject);

var

i, sum : integer;

begin

sum := 0;

for i := 1 to 100 do sum := sum + i;

ShowMessage(IntToStr(Sum));

end;

таблица умножения….. вложеными циклами

procedure TForm1.Button1Click(Sender: TObject);

var

N, K : integer;

begin

for N := 1 to 9 do

begin

for K := 1 to 9 do

begin

Memo1.Lines.Add(IntToStr(N) + ' x ' +

IntToStr(K)+ ' = '+ IntToStr(N*K));

end;

Memo1.Lines.Add('---------------');

end;

end;

  1. Операторы цикла while, repeat.Использование Listbox для вывода результата в среде Delphi. Сочетание циклов и команды ветвления.

procedure TForm1.Button1Click(Sender: TObject);

var

I: Integer;

begin

I := 1;

repeat

memo1.Lines.Add(IntToStr(I) + ' x 3 = '+ IntToStr(I*3));

I := I + 1;

until(I > 10);

end;

 будем рассчитывать сумму первых десяти чисел: 1+2+3+ + 10. Расположим на форме кнопку и Label для вывода информации. Для кнопки сделаем такой обработчик:

procedure TForm1.Button1Click(Sender: TObject);

var

i, sum : integer;

begin

i := 1;

sum := 0;

while (i < 11) do

begin

sum := sum + i;

i := i + 1;

end;

label1.Caption := IntToStr(sum);

end;

ListBox1.Items.Add(цифра)

Итемы –строка, адд –добывить в конец строки

Теперь нам нужно организовать такой цикл, который позволил бы вырезать из текста все слова, а не только первое. В данном случае подойдёт скорее REPEAT, чем WHILE. В качестве условия следует указать Length(Text) = 0, т.е. завершить цикл тогда, когда текст станет пустым, т.е. когда мы вырежем из него все слова.

repeat

Word:=Copy(Text,1,Pos(',',Text)-1);

Delete(Text,1,Length(Word)+1);

ListBox1.Items.Add(Word);

until Length(Text) = 0

Дано натуральное число n. Получить сумму тех чисел вида i^2-3*i*n^2+n , ко-торые являются нечетными.

FOR IF..then

program xxx;

uses crt;

var n,i,s,p:integer;

begin

sum:=0;

for i:=1 to n do

begin

p:=sqr(i)-3*i*sqr(n)+n;

if (abs(p) mod 2 <> 0) then

sum:=sum+p;

end;

label1.caption:=inttostr(sum);

end.

procedure TForm1.Button1Click(Sender: TObject);

var s: string; c: byte;

begin

Button2.Enabled:=True;

Button1.Enabled:=False;

Stop:=False;

while not(Stop) do

begin

s:='';

for c := 1 to 10 do

s:=s+Chr(Random(Ord('Z')-Ord('A')+1)+Ord('A'));

Memo1.Lines.Add(s);

Application.ProcessMessages

end

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Stop:=True;

Button2.Enabled:=False;

Button1.Enabled:=True;

end;

Начнём с кнопки "Стоп" (Button2). При её нажатии:

1) Значение переменной Stop устанавливается в True, т.е. мы подаём сигнал, что нужно остановиться;

2) Кнопку "Стоп" мы снова выключаем;

3) Кнопку "Старт" - наоборот, включаем.

Теперь кнопка "Старт" (Button1):

1) Кнопка "Стоп" включается, кнопка "Старт" выключается;

2) Переменной Stop присваивается значение False (если этого не сделать, то запустить процесс генерации второй раз будет невозможно);

3) Цикл с генерацией строки с условием на переменную Stop - цикл будет работать до тех пор, пока переменная Stop имеет значение False. Как только значение станет True, цикл сам завершит свою работу.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]