Описание и применение одномерных массивов Object Pascal для обработки данных

Страницы работы

Содержание работы

Лабораторная работа №4. Массивы (одномерные)

Тема: Массивы Object Pascal.

Цель: Сформировать практические навыки описания и применения одномерных массивов Object Pascal для обработки данных.

Задание

1.  В соответствии с приведенными вариантами заданий и приведённой ниже спецификацией реализуйте консольное приложение под Windows.

2.  Разработайте тестовые задания, и протестируйте программу.

Рекомендации к выполнению

1.  Для обработки компонентов одномерного массива используйте оператор цикла for.

2.  Разработанные приложения сохраняйте в отдельной папке.

3.  Работу выполняйте в следующем порядке:

·  разработайте алгоритм и опишите его с помощью блок-схемы;

·  продумайте тестовый набор данных для тестирования программы;

·  с помощью редактора текста напишите текст программы и с помощью компилятора и устраните синтаксические ошибки;

·  протестируйте программу с помощью разработанного набора тестов.

Варианты заданий

В каждом из следующих вариантов задания необходимо обеспечить ввод значений в элементы одномерного массива и вывод их на экран для контроля правильности ввода. Массивы описывайте так:

const n = 5;//количество элементов в массиве

type

index = 0..n -1;//тип значений индекса

vector = array[index] of integer;//одномерный массив целых переменных

1.  Разработайте приложение, которое находит и отображает на экране сумму значений компонентов массива A: vector.

2.  Разработайте приложение, которое обеспечивает скалярное произведение массивов A:vector на B:vector

с отображением результата на экране.

3.  Разработайте приложение, которое вычисляет и выводит элементы массива C:vector (сi= ai - bi), полученного вычитанием массива B:vector из массива A:vector, на экран.

4.  Разработайте приложение, которое находит и отображает на экране минимальное значение компонентов массива A:vector.

5.  Разработайте приложение, которое находит в массиве A:vector заданное значение и отображает на экране индекс, под которым заданное значение хранится в массиве. Если заданное значение в массиве не найдено, выводится значение -1.

6.  Разработайте приложение, которое находит в массиве A:vector первое чётное значение и отображает на экране найденное значение и индекс, под которым оно хранится в массиве. Если чётных значений в массиве не найдено, выводится значение -1.

7.  Разработайте приложение, которое переставляет местами значения компонентов массива A:vector в обратном порядке и отображает на экране полученный результат.

8.  Разработайте приложение, которое упорядочивает значения компонентов массива A:vector в порядке возрастания и отображает на экране полученный результат.

Пример 1.

Пусть требуется написать приложение, которое позволяло бы пользователю:

·  вводить значения в одномерный массив A:Vector целых переменных с клавиатуры;

·  вычислить и отобразить на экране произведение элементов A.

Для решения этой задачи можно построить приложение, блок-схема алгоритма работы которого приведена ниже.

Пример консольного приложения, в котором вычисляется произведение значений компонентов одномерного массива целых переменных, представлен ниже.

//--------------------------------------------------------------

program Product;

//Произведение  компонентов массива

{$APPTYPE CONSOLE}

uses

  SysUtils;

Const

     N = 5; //компонентов в массиве

Type

     Index = 0.. N - 1;// тип индекса

     Vector = array [Index] of integer;// тип массива

var

  p: real;//произведение  компонентов массива

     A: Vector;// массив исходных данных

  I: integer;

begin

  for I:= 0 to N - 1 do begin//ввод значений в элементы массива

    write('A[',I,'] = '); readln(A[I]);

  end;

  p:= 1;//накопление произведения

  for I:= 0 to N - 1 do p:= p*A[I];//вычисление произведения

  writeln('Product = ',p:6:2);

  readln;

end.

//--------------------------------------------------------------

Пример 2.

Написать и протестировать программу, которая в одномерном массиве A:Vector целых переменных находит произведение элементов с чётными значениями.

Для нахождения произведения компонентов с чётными значениями необходимо:

Переменной p - накопителю произведения следует присвоить начальное значение 1.

Поочерёдно, начиная с первого, копировать значения компонента массива, определять его чётность. Если значение компонента чётно - умножать накопитель p на это значение, если – не чётно, то ничего не делать с этим значением.

Для просмотра значений компонентов массива необходимо организовать цикл. Для этой цели воспользуемся управляющей структурой FORDO.

Блок-схема решения представлена ниже на рисунке.

Пример консольного приложения, в котором вычисляется произведение чётных значений компонентов одномерного массива целых переменных, представлен ниже.

//------------------------------------------------------------------------------------------

program Product;

//Произведение компонентов массива с чётными значениями

{$APPTYPE CONSOLE}

uses

  SysUtils;

Const

   N = 5; //компонентов в массиве

Type

   Index = 0.. N - 1;// тип индекса

   Vector = array [Index] of integer;// тип массива

var

  p: real;//произведение  компонентов массива с чётными //значениями

   A: Vector = (-4, 5, -3, 2, 7);// массив, инициированный //начальными значениями

  I: integer;

begin

  p:= 1;

  for I:= Low(A) to high(A) do

    if not Odd(A[I]) then p:= p * A[I];

  writeln('Product = ',p:6:2);

  readln;

end.

//------------------------------------------------------------------------------------------

Пример 3.

Написать и протестировать программу, которая в одномерном массиве A:Vector целых переменных находит произведение элементов с чётными значениями индексов.

Для нахождения произведения компонентов с чётными значениями индекса необходимо:

переменной p - накопителю произведения следует присвоить начальное значение 1;

поочерёдно, начиная с первого чётного индекса 0, копировать значения компонента массива и умножать накопитель p на это значение, увеличивать значение индекса на 2.

Для последовательного доступа к значениям компонентов массива с чётными значениями индекса необходимо организовать цикл. Для этой цели воспользуемся циклом с предусловием (управляющей структурой WHILEDO).

Блок-схема решения представлена ниже на рисунке.

Пример консольного приложения, в котором вычисляется произведение значений компонентов одномерного массива целых переменных с чётными значениями индексов, представлен ниже.

//--------------------------------------------------------------

program Product;

//Произведение  компонентов массива с чётными значениями //индексов

{$APPTYPE CONSOLE}

uses

  SysUtils;

Const

  N = 5; //компонентов в массиве

Type

  Index = 0.. N - 1;// тип индекса

  Vector = array [Index] of integer;// тип массива

var

  p: real;//произведение  компонентов массива с чётными //значениями индексов

     A: Vector = (-4, 5, -3, 2, 7);// массив, инициированный //начальными значениями

  I: integer;

begin

  p:= 1;

  I:= 0;

  while I <= N do begin//цикл для доступа к элементам массива с //чётными значениями индекса

    p:= p * A[I];

    I:= I + 2;

  end;

  writeln('Product = ',p:6:2);

  readln;

end.

//--------------------------------------------------------------

Содержание отчета

1.  Задание.

2.  Блок-схемы алгоритмов.

3.  Текст программы на Object Pascal.

4.  Тестовые наборы данных для тестирования приложения.

Контрольные вопросы

1.  Назовите синтаксические правила описания регулярного типа (массива)?

2.  Какого типа может быть тип компонентов массива?

3.  Какого типа может быть тип индексов массива?

4.  Как подсчитать количество компонентов массива по его описанию?

5.  Как сослаться на компонент массива в тексте программы?

6.  Какая операция определена на всём массиве?

7.  Какие операции определены на компонентах массива?

8.  Что такое размер массива и размерность массива?

9.  Какими должны быть индексные выражения при ссылке на компонент массива?

10. Каким образом распределяется память под массив?

11. Для чего предназначена стандартная функция High?

12. Для чего предназначена стандартная функция Low?

Похожие материалы

Информация о работе

Тип:
Методические указания и пособия
Размер файла:
77 Kb
Скачали:
0