515

Обработка одномерных массивов. Формирование новых массивов

Лабораторная работа

Информатика, кибернетика и программирование

Получить навыки разработки и реализации типовых алгоритмов обработки одномерных массивов на языке Delphi. Научиться формировать новые массивы из заданных массивов в соответствии с некоторым условием.

Русский

2013-01-06

246 KB

64 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

«ГОМЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ П.О. СУХОГО»

Факультет автоматизированных и информационных систем

Кафедра «Информатика»

Отчёт по лабораторной работе №8

«Обработка одномерных массивов. Формирование новых массивов»

Выполнил студент гр. ГА-11

Луцко А.Н.

Принял преподаватель

Мисюткин В.И.

Дата допуска к защите __________

Дата защиты __________

Гомель 2012


Цель работы
: Получить навыки разработки и реализации типовых алгоритмов обработки одномерных массивов на языке Delphi. Научиться формировать новые массивы из заданных массивов в соответствии с некоторым условием.

Задание: В каждой из задач заданы два массива чисел произвольной длины. Требуется сформировать новый массив по алгоритму, указанному в задании.

Программа должна:

вводить размерности и элементы исходных массивов;

выполнять действия в соответствии с условием задачи;

выводить:

исходные массивы,

сформированный массив, если он был сформирован. В противном случае –соответствующее сообщение.

Исходные данные для отладки программы выбрать самостоятельно. Для ввода и вывода массива использовать визуальный компонент StringGrid. Тесты составлять таким образом, чтобы были учтены различные возможные случаи.

Задача: Сформировать  массив из отрицательных элементов первого массива и элементов второго массива, небольших 3.

Вид окна формы

Таблица свойств компонентов

Элемент интерфейса

Компонент

Свойство

Значение свойства

Заголовок окна

Form1

Caption

Лабораторная работа8

Размер массива A

Label1

Caption

Размер массива A:

Размер массива B

Label2

Caption

Размер массива B:

Исходные данные

Label4

Caption

Исходные данные:

Результат

Label5

Caption

Результат:

Поле ввода размера массива A

Edit1

Text

Поле ввода размера массива B

Edit2

Text

Кнопка Вычислить

Button1

Caption

Вычислить

Таблица для ввода значений массива A

StringGrid1

FixedRows

FixedCols

ColCount

RowCount

goEditing

0

0

20

1

True

Таблица для ввода значений массива B

StringGrid2

FixedRows

FixedCols

ColCount

RowCount

goEditing

0

0

20

1

True

Таблица для вывода значений

StringGrid3

FixedRows

FixedCols

ColCount

RowCount

goEditing

0

0

20

1

False

Таблица используемых событий

Компонент

Событие

Имя процедуры обработки события

Реализуемый алгоритм

Button1

OnClick

TForm1.Button1Click

Вычисление

Edit1

OnChange

TForm1.Edit1Change

Изменение размера массива A

Edit2

OnChange

TForm1.Edit2Change

Изменение размера массива B

Таблица используемых переменных

Имя переменной в задаче

Имя переменной в программе

Тип переменной

Комментарий

-

a

array[1..20] of real

Массив значений A

-

b

array[1..20] of real

Массив значений B

-

c

array[1..20] of real

Массив конечных значений

-

i

integer

Текущий элемент массива

N

n

integer

Размер  массива A

M

m

integer

Размер  массива B

-

kol

integer

Размер  массива C

Тест 1

Исходные данные: n = 5, m = 5

1

2

3

4

5

5

6

7

8

9

Ожидаемый результат : Сообщение “Нет таких элементов”

Результат в программе:

 

Тест 2

Исходные данные: n = 5, m = 5,

-1

-2

3

4

5

6

7

8

9

10

Ожидаемый результат :  

-1

-2

Результат в программе:  

Тест 3

Исходные данные: n = 5, m = 5,

1

2

3

4

5

3

2

1

1

0

Ожидаемый результат :  

3

2

1

1

0

Результат в программе:  

Тест 4

Исходные данные: n = 5, m = 5,

-1

-2

8

4

5

3

2

-1

4

4

Ожидаемый результат :  

-1

-2

3

2

-1

Результат в программе:   


                                                               
Cхема алгоритма


Текст
 модуля

unit Unit1;

//Выполнил: Луцко А.Н.

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, Grids;

type

 TForm1 = class(TForm)

   Edit1: TEdit;

   Label1: TLabel;

   StringGrid1: TStringGrid;

   Button1: TButton;

   StringGrid2: TStringGrid;

   Label4: TLabel;

   Label5: TLabel;

   StringGrid3: TStringGrid;

   Label2: TLabel;

   Edit2: TEdit;

   procedure Button1Click(Sender: TObject);

   procedure Edit1Change(Sender: TObject);

   procedure Edit2Change(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var a,b,c:array[1..20] of real;

i, n, m, kol: integer;

begin

 n := StrToInt(Edit1.Text);

 m := StrToInt(Edit2.Text);

 for i := 1 to n do begin

   a[i] := StrtoFloat(StringGrid1.Cells[i - 1,0]);

 end;

 for i := 1 to m do begin

   b[i] := StrtoFloat(StringGrid2.Cells[i - 1,0]);

 end;

 kol := 1;

 for i := 1 to n do begin

   if a[i] < 0 then  begin

     c[kol] := a[i];

     kol := kol + 1;

   end;

 end;

 for i := 1 to m do

 begin

   if b[i] <= 3 then

   begin

     c[kol] := b[i];

     kol := kol + 1;

   end;

 end;

 if kol > 1 then begin

   StringGrid3.ColCount := kol - 1;

   for i := 1 to kol - 1 do begin

     StringGrid3.Cells[i - 1,0] := FloatToStr(c[i]);

   end;

 end

 else ShowMessage('Нет таких элементов');

end;

procedure TForm1.Edit1Change(Sender: TObject);

begin

 StringGrid1.ColCount := StrToInt(Edit1.Text);

end;

procedure TForm1.Edit2Change(Sender: TObject);

begin

 StringGrid2.ColCount := StrToInt(Edit2.Text);

end;

end.

Вывод: Получил навыки разработки и реализации типовых алгоритмов обработки одномерных массивов на языке Delphi. Научился формировать новые массивы из заданных массивов в соответствии с некоторым условием.


конец

Нет таких элементов

Вывод C

Нет

Да

kol>1

i = i + 1

c[kol] = b[i]

kol = kol+1

Нет

Да

b[i]<=3

Нет

Да

i<=m

i  = 1

i = i + 1

kol = kol+1

c[kol] = a[i]

Нет

Да

a[i]<0

Нет

Да

i  = 1

i<=n

kol = 1

Ввод D, элементов массивов A, B

начало


 

А также другие работы, которые могут Вас заинтересовать

77139. ИСКУССТВО РОССИИ 70 – 80-Х ГОДОВ 119 KB
  Конечно, каждое новое поколение отличается от предыдущего, и те, кто вступил на стезю искусства в 70-80-е годы, работают и видят мир иначе, чем те, кто, скажем, менял лицо советского искусства в 60-е.
77140. ИСКУССТВО РОССИИ РУБЕЖА ХХ – XXI ВЕКОВ 43 KB
  Так называемое постсоветское искусство конца II тысячелетия от Рождества Христова укладывается в слишком малые временные рамки чтобы можно было отобрать для по возможности объективной исторической картины какие-либо имена.
77141. ЖИВОПИСЬ РУБЕЖА XIX –ХХ ВЕКОВ 334.5 KB
  С кризисом народнического движения, в 1990-е годы, «аналитический метод реализма XIX века», как его называют в отечественной науке, себя изживает. Многие из художников-передвижников испытывали творческий упадок, ушли в «мелкотемье» развлекательной жанровой картины.
77142. Роль профессии в жизни человека 54.95 KB
  Выбор профессии та точка где сходятся интересы личности и общества где возможно и необходимо гармоничное сочетание личных и общих интересов. Удачный выбор профессии человеком одно из решающих условий всестороннего развития личности что имеет громадное значение для общества в целом...
77143. Российское местное самоуправление: итоги муниципальной реформы 2003-2008 годов 629 KB
  Местное самоуправление представляет собой один из важнейших институтов современного общества. Сегодня оно является одновременно формой самоорганизации граждан и – в этом качестве – составной частью гражданского общества, уровнем публичной власти...
77144. Транспорт. Типы транспортна 369 KB
  При транспортировке грузов в сельском хозяйстве как и в других сферах производства стоимость созданная трудом рабочих занятых на транспорте присоединяется к стоимости перевозимых товаров. Транспорт общего пользования - удовлетворяет потребности всех отраслей экономики и населения...
77146. Сетевые анализаторы 556.5 KB
  Компьютеры подключенные к сети Ethernet в состоянии перехватывать информацию адресованную своим соседям. Объединение компьютеров в сети ломает старые аксиомы защиты информации. Защита с помощью межсетевых экранов МСЭ может оказаться нецелесообразной для корпоративных сетей...
77147. Юстус Либих 4.67 MB
  Общественно-исторические условия в Германии, да и в Европе целом, на момент жизни Ю. Либиха (а это шел XIX в) нельзя охарактеризовать как однозначно благоприятные или неблагоприятные для развития науки о почве.