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
начало
А также другие работы, которые могут Вас заинтересовать | |||
70142. | Завод по производству стальных пространственных конструкций в городе Екатеринбург | 134 KB | |
Завод выпускает металлические конструкции – колонны, несущие конструкции покрытия и узлы трубопроводов по целевому назначению, пространственные стальные конструкции. В производственный корпус металл подаётся электротележкой, проходит очистку. | |||
70143. | Проектирование режущего инструмента | 650.5 KB | |
В данном курсовом проекте представлены расчеты круглого фасонного резца и шпоночной протяжки. Профилирование резца представлено в графическом и аналитическом методе. Объем графической части включает в себя: Графическое определение профиля резца формат А2. | |||
70146. | Одноэтажное промышленное здание. Проект центра сервисного обслуживания автомобилей LADA в городе Новосибирске | 61.5 KB | |
Проект - одноэтажное промышленное здание выполняется на 2-х листах формата А1. Помимо этого к проекту прилагается пояснительная записка. Схема промышленного здания выдаётся преподавателем, а также задаются основные размеры... | |||
70147. | Расчет и выбор посадок с зазором, с натягом, колец подшипников качения | 989.5 KB | |
Взаимозаменяемостью издедий (машин, приборов, механизмов и т.д.), их частей или других видов продукции (сырья, материалов, полуфабрикатов и т.д.) называют их свойство равноценно заменять при использовании любой из множества экземпляров изделий, их частей или иной продукции... | |||
70149. | Отопление и вентиляция жилого четырехэтажного здания | 143.02 KB | |
Система отопления Выбор системы отопления и типа нагревательных приборов; Тепловой расчет стояка; Гидравлический расчет системы отопления; Расчет элеваторной установки; Расчет нагревательных приборов; Вентиляция Нормы вытяжки воздуха... | |||
70150. | Отопление и вентиляция жилого четырёхэтажного здания (жилого дома) | 336.12 KB | |
Назначение здания - жилой дом. СНиП- 23-02-03 «Тепловая защита зданий» СНиП- 23-01-99 «Строительная климатология» Район постройки г.Татарск Число этажей- 4 Температура воздуха наиболее холодной пятидневки, обеспеченностью 0,92 t= - 39 Температура наиболее холодных суток, обеспеченностью 0,92 t= - 41... | |||