Организация и описание процессов обработки данных с помощью одномерных массивов и подпрограмм

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

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

Практическое занятие № 5

Одномерные массивы

Оглавление

Тема. 1

Цель. 1

Изучаемые понятия. 1

Задачи. 1

Примеры решений задач. 2

З а д а ч а  № 1. 2

З а д а ч а  № 3. 4

З а д а ч а  № 4. 5

З а д а ч а  № 6. 6

З а д а ч и  № 7, 8, 9. 8

З а д а ч а   № 10. 12


Тема

Одномерные массивы (векторы).

Цель

Сформировать практические навыки организации и описания процессов обработки данных с помощью одномерных массивов и подпрограмм.

Изучаемые понятия

Тип индекса. Тип компонентов. Размер массива. Индексное выражение. Интервальные типы. Типы диапазона. Доступ к компонентам массива. Размещение массивов в памяти.

Задачи

1.  Написать и оттестировать функцию. Функция получает через параметр одномерный массив вещественных переменных и возвращает сумму значений компонентов массива.

2.  Написать и оттестировать функцию. Функция получает через параметр одномерный массив целых переменных и возвращает сумму четных значений компонентов массива.

3.  Написать и оттестировать функцию. Функция получает через параметр одномерный массив вещественных переменных и возвращает сумму компонентов массива с нечетными значениями индексов.

4.  Написать и оттестировать функцию. Функция получает через параметр одномерный массив вещественных переменных и возвращает компонент массива с максимальным значением среди всех компонентов массива.

5.  Написать и оттестировать функцию. Функция получает через параметр одномерный массив вещественных переменных и возвращает минимальный по значению элемент этого массива и номер его индекса.

6.  Написать и оттестировать процедуру. Процедура получает через параметр одномерный массив вещественных переменных. В полученном массиве процедура переставляет значения компонентов массива в обратном порядке.

7.  Написать и оттестировать процедуру. Процедура получает через параметр одномерный массив вещественных переменных. Процедура изменяет массив циклическим сдвигом его элементов влево на одну позицию.

8.  Написать и оттестировать процедуру. Процедура получает через параметр одномерный массив вещественных переменных и целое – параметр сдвига. Процедура изменяет массив циклическим сдвигом его элементов вправо на число позиций, равное параметру сдвига.

9.  Написать и оттестировать процедуру. Процедура получает через параметр одномерный массив вещественных переменных и целое – параметр сдвига. Процедура изменяет массив циклическим сдвигом его элементов на заданное число позиций, равное параметру сдвига в указанном направлении. Направление сдвига задаётся знаком параметра сдвига: вправо, если параметр больше нуля; влево, если он отрицателен.

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

11. Написать и оттестировать функцию. Функция получает через параметр одномерный массив вещественных переменных (типа Vector). Вычисляет и возвращает максимальное значение среди элементов массива с чётными значениями индекса и значение индекса (через параметр).

Например:

Const

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

Type

     Index = 0.. Columns – 1;

     Vector = array [Index] of real;

Var

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

                                                    //значениями

Исходный массив

Компоненты

A[0]

A[1]

A[2]

A[3]

A[4]

Значения

1

5

–3

2

7

Максимальное значение

    7

Индекс компонента

    4

12. Написать и оттестировать функцию. Функция получает через параметр одномерный массив вещественных переменных (типа Vector) и возвращает минимальное значение среди элементов массива с нечётными значениями индекса и значение индекса (через параметр).

Например:

Const

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

Type

     Index = 0.. Columns – 1;

     Vector = array [Index] of real;

Var

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

                                                    //значениями

Исходный массив

Элемент

A[0]

A[1]

A[2]

A[3]

A[4]

Значение

1

5

–3

2

7

Минимальное значение

     2

Индекс элемента

     3

Примеры решений задач

З а д а ч а  № 1

Условие

Написать и оттестировать функцию. Функция получает через параметр одномерный массив вещественных переменных и возвращает сумму значений компонентов массива.

Решение

Для вычисления суммы значений компонентов массива необходимо перебрать все компоненты, добавляя их значения к накопителю (переменная Sum). Перед началом цикла значение накопителя необходимо установить в 0. Для организации цикла воспользуемся управляющей структурой FORDO.

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

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

program PSum;

{$APPTYPE CONSOLE}

uses

  SysUtils;

Const

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

Type

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

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

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

function Sum(const a: array of real): Real; //константный открытый

                                                                    //параметр-массив

//Возвращает сумму значений компонентов одномерного массива.

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

var i: integer;

begin

  result:= 0;

  for i:= Low(a) to high(a) do

    result:= result + a[i]

end;

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

var

  S: real;//Сумма значений компонентов массива

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

begin

//----------Вызов функции-------------------------------------------------------

  S:= Sum(A);

  writeln('Summa = ',S:6:2);

//----------Вызов функции------------------------------------------------------

writeln('Summa = ',Sum(A):6:2);

  readln;

end.

З а д а ч а  № 3

Написать и оттестировать функцию. Функция получает через параметр одномерный массив вещественных переменных и возвращает сумму значений компонентов массива с нечётными значениями ин-
дексов.

Для нахождения суммы значений компонентов с нечётными значениями индексов необходимо перебрать все компоненты массива, начиная с первого. Значение компонента добавляется к сумме, если его индекс – нечётное значение. Перед началом цикла в значение суммы необходимо установить значение 0. Для просмотра значений компонентов массива необходимо организовать цикл. Для этой цели воспользуемся управляющей структурой FORDO.

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

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

program PSumOdd;

{$APPTYPE CONSOLE}

uses

  SysUtils;

Const

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

Type

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

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

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

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

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

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