Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
НИУ “Московский энергетический институт”
Лабораторная работа №8
«Разработка оконных приложений, использующих автономные модули»
Вариант №3
студента группы ЭР-02-11
Вершанского Евгения Александровича
Принял Щербин Владимир Максимович.
Дата сдачи__________________
Условие
Задача 3.4.
Составьте подпрограмму, исходными данными которой являются числовые массивы C и (или) D из n элементов. Основной её результат также массив, получающий некоторое множество элементов. Их количество (оно может быть равно нулю) ещё один результат. Требуемые результаты подпрограммы и прочие данные указаны в вариантах.
Множество элементов массива C, следующих за первым нулевым элементом массива C (пустое множество, если в C нулей нет); число нулей в массиве C.
Состав данных для программы
Имя |
Смысл |
Тип |
Структура |
Исходные данные |
|||
n |
Число столбцов матрицы |
Целый |
Простая переменная |
С |
Заданный массив |
Вещественный |
Одномерный массив |
Выходные данные |
|||
D |
Множество элементов массива C, следующих за первым нулевым элементом массива C |
Вещественный |
Одномерный массив |
Промежуточные данные |
|||
j |
Счетчик столбцов |
Целый |
Простая переменная |
Состав данных для подпрограммы nul
Имя |
Смысл |
Тип |
Структура |
Входные параметры |
|||
n |
Число столбцов матрицы |
Целый |
Простая переменная |
С |
Заданный массив |
Вещественный |
Одномерный массив |
Выходные параметры |
|||
k |
Число нулей в массиве C |
Целый |
Простая переменная |
Промежуточные данные |
|||
j |
Счетчик столбцов |
Целый |
Простая переменная |
Состав данных для подпрограммы mnog
Имя |
Смысл |
Тип |
Структура |
Входные параметры |
|||
n |
Число столбцов матрицы |
Целый |
Простая переменная |
С |
Заданный массив |
Вещественный |
Одномерный массив |
Выходные параметры |
|||
D |
Множество элементов массива C, следующих за первым нулевым элементом массива C |
Вещественный |
Одномерный массив |
Промежуточные данные |
|||
j |
Счетчик столбцов |
Целый |
Простая переменная |
g |
Счетчик цикла |
Целый |
Простая переменная |
Форма ввода
Блок-схема программы
начало
ввод n, Cj nj=1
Вывод nul(c,n)
Mnog(c,d,n)
Вывод Djnj=1
конец
Блок-схема для подпрограммы mnog
Передача C,D,n
j:=0; g:=0
j<=n-1
C[j-1]=0
h:=j
i:=h
h<=n-1
D[g]:=c[i]
G:=g+1
H:=h+1
Выход из цикла
Передача D[j]
передача n, Ci nj=1
Блок-схема подпрограммы nul
k:=0
J:=0
j<=n-1
C[j]=0
k:=k+1
j:=j+1
nul:=k
Программный код автономного модуля
unit Unit2;
interface
function nul(var c:array of real; n:integer):integer;
procedure mnog(var c,d:array of real; var n,g:integer);
implementation
function nul;
var j,k:integer;
begin
for j:=0 to n-1 do
if c[j]=0 then
k:=k+1;
nul:=k;
end;
procedure mnog;
var j,i,h:integer;
begin
g:=0;
For j:=0 To n-1 do
if c[j-1]=0 then
begin
h:=j;
For i:=h to (n-1) do
begin
d[g]:=c[i];
g:=g+1;
end;
break;
end;
end;
end.
Программный код основных обработчиков.
procedure TForm1.Button2Click(Sender: TObject);
var c,d:array of real; i,j,g:integer; a:real;
begin
setlength(c,n);
setlength(d,n);
for j:=0 to n-1 do
if stringgrid1.Cells[j,1]='' then
c[j]:=0
else
c[j]:=strtofloat(stringgrid1.Cells[j,1]);
mnog(c,d,n,g);
stringgrid2.ColCount:=g;
for j:=0 to g-1 do
StringGrid2.Cells[j,0]:=IntToStr(j+1);
for j:=0 to g-1 do
stringgrid2.cells[j,1]:=floattostr(d[j]);
edit2.text:=inttostr(nul(c,n));
end;
Тесты
1)Входные данные:
Выходные данные: