Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теор_и_методы_прогр_Отчет Тарабаров А.В 2150.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
213.5 Кб
Скачать

4. 5. Заключение

Программа проверена. Решение задачи закончено

Лабораторная работа 5. Циклическая обработка одномерных массивов

    1. Исходное условие и уточнение постановки задачи

Разработать алгоритм и программу решения задачи обработки одномерного массива (массивов)

  1. Элементы исходного массива (массивов) вводятся пользователем

  2. Элементы исходного массива (массивов) вычисляются случайно.

  3. Элементы исходного массива (массивов) задаются как предусмотренный в программе набор констант.

Уточнение условия: Найти номер наибольшего элемента массива , значения которого также принадлежат отрезку [- 2; 2,5].

5.2. Алгоритм

Алгоритм R3

переменные

X:[0…100]:вещ; {входные параметры}

I,n,imax:целые; {входные параметры}

max:вещ; {выходные данные}

началo блока

n:=memo1.Lines.Count;

max:=-x[0]; imax:=0;

Цикл 1 начало

для i от 0 до n-1

x[i]:=strtofloat(memo1.Lines[i]);

если (x[i]<=2.5) и (x[i]>=-2) и (x[i]>=max) тогда начало max:=x[i]; imax:=I; конец

Цикл 1 конец

Вывести (imax) на экран.

Конец блока.

переменные

X:[0…100]:вещ; {входные параметры}

I,n:целые; {входные параметры}

max:вещ; {выходные данные}

началo блока

Ввод случайных значений;

n:= random(10);

Цикл 1 начало

для i от 0 до n-1

memo2.lines.Add(floattostr(random(10)));

Цикл 1конец

max:=-x[0]; imax:=0;

Цикл 2 начало

для i от 0 до n-1

x[i]:=strtofloat(memo1.Lines[i]);

если (x[i]<=2.5) и (x[i]>=-2) и (x[i]>=max) тогда начало max:=x[i]; imax:=I; конец

Цикл 2 конец

Вывести (imax) на экран.

Конец блока.

Вывести (max) на экран.

Конец блока.

переменные

X:[0…100]:вещ; {входные параметры}

I,n:целые; {входные параметры}

max:вещ; {выходные данные}

началoблока

n:=6;

Цикл 1 начало

для i от 0 до n-1

memo3.lines.Add(inttostr(i));

Цикл 1 конец

max:=-x[0]; imax:=0;

Цикл 2 начало

для i от 0 до n-1

x[i]:=strtofloat(memo1.Lines[i]);

если (x[i]<=2.5) и (x[i]>=-2) и (x[i]>=max) тогда начало max:=x[i]; imax:=I; конец

Цикл 2 конец

Вывести (imax) на экран.

Конец блока.

Вывести (max) на экран;

Конец блока.

5.3. Программа

5.3.1. Интерфейс

5.3.2. Программа на языке Delphi

procedure TForm1.Button1Click(Sender: TObject);

var max: real; x: array[0..100] of real; i,n : integer;

begin

n:=memo1.Lines.Count;

max:=-5;

for i := 0 to n - 1 do

begin

x[i]:=strtofloat(memo1.Lines[i]);

if (x[i]<=2.5)and (x[i]>=-2) and (i>=max) then max:=i;

end;

label1.caption:=floattostr(max);

end;

procedure TForm1.Button2Click(Sender: TObject);

var max: real; x: array[0..100] of real; i,n : integer;

begin

Randomize;

n:=random(10);

for i := 0 to n - 1 do

begin

memo2.lines.Add(floattostr(random(10)));

end;

max:=-5;

for i := 0 to n - 1 do

begin

x[i]:=strtofloat(memo2.Lines[i]);

if (x[i]<=2.5)and (x[i]>=-2) and (i>=max) then max:=i;

end;

label2.caption:=floattostr(max);

end;

procedure TForm1.Button3Click(Sender: TObject);

var max: real; x: array[0..100] of real; i,n : integer;

begin

n:=6;

for i := 0 to n - 1 do

begin

memo3.lines.Add(inttostr(i));

end;

max:=-5;

for i := 0 to n - 1 do

begin

x[i]:=strtofloat(memo3.Lines[i]);

if (x[i]<=2.5)and (x[i]>=-2) and (i>=max) then max:=i;

end;

label3.caption:=floattostr(max);

end;

end.