Рудник_Э-11_Лабораторная_работа_7
.docxУчреждение образования
Гомельский государственный технический университет имени П.О. Сухого
Кафедра «Информатика»
Лабораторная работа № 7
по дисциплине: “Информатика”
Обработка одномерных массивов
Дата сдачи отчета Выполнил студент группы Э-11
Рудник Роман
Допуск к защите
Принял преподаватель
Дата защиты Богданова Н.С.
Цель работы: Получить навыки разработки и реализации на языке Delphi типовых алгоритмов обработки одномерных массивов. Научиться вводить и выводить элементы массива, используя визуальный компонент StringGrid; вычислять сумму, произведение, количество, среднее арифметическое элементов массива, удовлетворяющих заданному условию, и находящихся на разных местах в массиве.
19 |
Вычислить сумму неотрицательных чисел, стоящих на местах, кратных 3, и количество чисел равных заданному T. |
Вид окна проекта
Таблица используемых ВК
Элемент интерфейса |
Компонент |
Свойство |
Значение свойства |
||
Заголовок окна |
Form1 |
Caption |
Лабораторная работа 7 |
||
Число элементов массива |
Label1 |
Caption |
Число элементов массива |
||
T |
Label2 |
Caption |
T |
||
|
|
|
|
||
Кнопка решить |
Button1 |
Caption |
Решить |
||
Поле ввода числа элементов массива |
Edit1 |
Text |
|
||
Поле ввода Т |
Edit2 |
Text |
|
||
|
|
|
|
||
Условие задачи |
Memo1 |
lines |
Вычислить сумму неотрицательных чисел, стоящих на местах, кратных 3, и количество чисел равных заданному T. |
||
Таблица для ввода массива |
Stringgrid1 |
Colcount Rowcount Fixsedcols Fixsedrows Options.goediting Options.gotabs |
9 1 0 0 True true |
||
Таблица для вывода массива |
Stringgrid2 |
Colcount Rowcount Fixsedcols Fixsedrows Options.goediting Options.gotabs |
9 1 0 0 True true |
||
Место для вывода результата |
Memo2 |
lines |
|
Таблица используемых событий
Компонент |
Событие |
Имя процедуры обработки события |
Реализуемый алгоритм |
Button1 |
OnClick |
Tform1.Button1Click |
Расчёт массива |
Таблица используемых переменных
Имя переменной в задаче |
Имя переменной в программе |
Тип переменной |
Комментарий
|
i |
i |
byte |
Номер элемента |
n |
n |
byte |
Кол-во элементов |
k |
k |
real |
Кол-во элементов суммы |
s |
S |
real |
сумма |
t |
T |
real |
переменная |
kv |
kv |
real |
Кол-во элементов ранных Т |
x[i] |
x[i] |
real |
Элемент массива |
|
|
|
|
|
|
|
|
Схема олгаритма
Рукописные тесты
Тест1
Исходные данные: Число элементов массива=6
Т=4
массив: 1, 4, -1, 4, 5, 6
Ожидаемый результат : Сумма=6
Количество=2
Тест2
Исходные данные: Число элементов массива=6
Т=-1
массив: -1, -1, -1, -1, -1, -1
Ожидаемый результат : “Нет элементов”
Количество=6
Тест3
Исходные данные: Число элементов массива=6
Т=2
массив: -1, -1, 3, -1, -1, 3
Ожидаемый результат : Сумма=6
“Ошибка”
Распечатка текста процедуры
procedure TForm1.Button1Click(Sender: TObject);
var x:array[1..100] of real;
i,n:byte;
k, s, t, kv:real;
begin
n:=strtoint(edit1.Text);
t:=strtofloat(edit2.Text);
stringgrid1.colcount:=n;
for i:=1 to n do
x[i]:=strtofloat(stringgrid1.cells[i-1,0]);
with stringgrid2 do
begin
colcount:=n;
visible:=true;
for i:=1 to n do
cells[i-1,0]:=floattostr(x[i]);
end;
s:=0;
kv:=0;
i:=3;
while i<=n do
begin
if x[i]>=0 then
begin
s:=s+x[i];
kv:=kv+1;
end;
i:=i+3;
end;
if kv=0 then
showmessage('нет элементов')
else
memo1.Lines.ADD('сумма'+floattostr(s));
k:=0;
i:=1;
while i<=n do
begin
if x[i]=t then
begin
k:=k+1;
end;
i:=i+1;
end;
if k=0 then
showmessage('ошибка')
else
memo1.Lines.ADD('количество'+floattostr(k));
end;
Распечатка формы с результатами работы
Вывод: Получил навыки разработки и реализации на языке Delphi типовых алгоритмов обработки одномерных массивов. Научился вводить и выводить элементы массива, используя визуальный компонент StringGrid; вычислять сумму, произведение, количество, среднее арифметическое элементов массива, удовлетворяющих заданному условию, и находящихся на разных местах в массиве.