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

начало


 

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

77527. Уход за пациентами с пролежнями 41 KB
  В стадии некротических изменений и нагноения II стадия происходит некроз кожи и подлежащих тканей клетчатки фасции и др. обычно развивается влажная гангрена с прогрессирующим некрозом окружающих...
77528. Термометрия: лихорадка, типы, периоды 140 KB
  Общие правила измерения температуры тела Температурная кривая объективно отражает течение заболевания помогает глубже определить тяжесть состояния больного эффективность проводимого лечения точнее судить о сроках выздоровления больного.Необходимо строго соблюдать методику измерения температуры тела. Место измерения температуры тела определяют в зависимости от характера заболевания. При заболеваниях прямой кишки поносах или запорах такой способ измерения температуры неприемлем.
77529. Простейшие физиотерапевтические процедуры постановка банок, горчичников, пузыря со льдом, грелки, компресса, гирудотерапия 239 KB
  Кроме того в целом физиотерапевтические процедуры оказывают общеукрепляющий эффект улучшают сон повышают настроение. Применение холода Суть холодовой процедуры компресс пузырь со льдом заключается в местном охлаждении участка тела что вызывает сужение кровеносных сосудов кожи и соответствующих близлежащих внутренних органов. Цели холодовой процедуры: Ограничение воспаления.
77530. Особенности ухода за пациентами пожилого и старческого возраста 92 KB
  Активность участие пожилых и старых людей в профессиональной общественной жизни стали необходимыми для большинства людей переступивших пенсионный возраст. В специальной литературе все чаще подчеркивается различие между хронологическим и биологическим возрастом высказывается мнение о возможности деления людей одного и того же возраста на молодых старых и старых старых основываясь на состоянии здоровья и социальных показателях. У пожилых и тем более старых людей снижается частота сердечных сокращений в состоянии покоя.
77531. Фреймовое представление знаний 1.36 MB
  Термин фрейм frme рамка остов каркас предложен в 1975 г. Фрейм это единица представления знаний заполненная в прошлом детали которой могут быть изменены согласно текущей ситуации т. Получается что фрейм это абстрактный образ объект или ситуация.
77532. Экспертные системы. Приобретение (извлечение) знаний 255.5 KB
  В экспертных системах знания отделены от данных и мощность ЭС обусловлена в первую очередь мощностью базы знаний и только во вторую очередь используемыми методами решения задач. системы функциональные возможности которых являются в первую очередь следствием их наращиваемой базы знаний БЗ и только во вторую очередь определяется используемыми методами принятия решения. Правильное функционирование ЭС как систем основанных на знаниях зависит от качества и количества знаний хранимых в их БЗ. Поэтому приобретение знаний для ЭС является очень...
77533. Нечеткая логика: история проблемы, практические приложения 1.22 MB
  Для этого значения степень принадлежности физической величины к терму будет равна единице а для всех остальных значений в зависимости от выбранной функции принадлежности. Здесь необходимо описать лингвистические переменные которые вы будете использовать; их функции принадлежности; описать стратегию управления посредством нечетких правил которые вы сможете объединить в единую базу правил или знаний о системе. Другими словами множество А образуют такие объекты элементы для которых указанная выше функция называемая функцией...
77534. НЕЙРОННЫЕ СИСТЕМЫ И СЕТИ. БИОЛОГИЧЕСКИЕ НЕЙРОННЫЕ СЕТИ 463 KB
  С появлением дешевых компьютеров появилась возможность использовать в этой области нейронные сети НС. Крупный толчок развитию нейрокибернетики дал американский нейрофизиолог Френк Розенблатт предложивший в 1962 году свою модель нейронной сети персептрон. Хопфилд предложил оригинальную модель нейронной сети названную его именем.
77535. Проблемно-ориентированные языки. Языки представления знаний 97.5 KB
  Стремление к эффективной программной реализации моделей представления знаний привело к разработке большого числа языков представления знаний от простых, предназначенных для решения отдельных специальных задач, до мощных универсальных.