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

начало


 

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

2637. Определение емкости конденсатора и батареи конденсаторов 371 KB
  Определение ёмкости конденсатора и батареи конденсаторов  Цель работы: определение ёмкости конденсатора и батареи из двух конденсаторов при их параллельном и последовательном соединении. Описание установки В состав лабораторной установки входят...
2638. Изучение магнитного поля соленоида создаваемых вдоль оси длинной и короткой катушек 493.5 KB
  Изучение магнитного поля соленоида Цель работы: определение магнитных полей, создаваемых вдоль оси длинной и короткой катушек. Описание лабораторной установки и вывод расчётных зависимостей Примерная картина магнитного поля на оси короткой и...
2639. Моделирование электростатических полей 893.5 KB
  Моделирование электростатических полей Цель работы: определение расположения эквипотенциалей, построение силовых линий электрических полей, задаваемых электродами различной конфигурации, и построение качественной зависимости напряжённости электричес...
2640. Україна в часи хрущовської відлиги, застою та перебудови (1965 – 1991 рр.) 148 KB
  Україна в часи хрущовської відлиги, застою та перебудови (1965 – 1991 рр.). План  Україна в період лібералізації суспільно-політичного життя в Радянському Союзі (середина 50-х – середина 60-х ...
2641. Україна в другій світовій війні та перші повоєнні роки (1939-1954 рр.) 122.5 KB
  Україна в другій світовій війні та перші повоєнні роки Зміст  Українські землі напередодні та на початку другої світової війни.  Україна в роки Великої Вітчизняної війни. Україна у повоєнний період (друга половина 40-х – перша п...
2642. Определение работы выхода электрона из металла методом прямых Ричардсона 138.5 KB
  Определение работы выхода электрона из металла методом прямых Ричардсона Приборы и принадлежности. Лабораторная панель, блок питания накала Б5-70, блок питания анода Б5-70, универсальный вольтметр В7-27. Введение. Принцип работы большинства электров...
2643. Залучення випускників шкіл до навчання в МНУ імені В.О. Сухомлинського 126.5 KB
  Виховний захід на тему: «Залучення випускників шкіл до навчання в МНУ імені В.О. Сухомлинського» Миколаївський національний університет імені В. О. Сухомлинеького (до 21 серпня 2010 року — Миколаївський державний університет імені В. О. Сухомли...
2644. Профессиональная ориентация школьников старших классов 58 KB
  Внеклассное мероприятие «Профессиональная ориентация школьников старших классов» В современном мире существует огромное разнообразие профессий. В подростковом возрасте достаточно сложно сделать правильный выбор высшего учебного заведения, без помощи...
2645. Твоя майбутня професія 69 KB
  Тема: твоя майбутня професія. Мета: ознайомити учнів із різноманіттям професій, допомогти виявити здібності до певного виду діяльності, визначити суспільну значущість обраної професії,  виховати повагу до різних типів діяльності. Обладнання: те...