Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Лабораторные работы № 12 – 13



Тема. Обработка одномерных массивов

Цель работы: приобретение навыков работы с одномерными массивами

Теоретическая часть

Понятие массива

Массив, в отличие от простой переменной, представляет собой не одно значение, а множество значений, объединенных одним именем. В языке Turbo Delphi все значения из этого множества должны иметь один и тот же тип.

Каждое из значений массива называется элементом массива.

Доступ к элементам массива производится посредством указания имени массива и номера элемента массива, заключенного в квадратные скобки.

Номер элемента массива называется индексом элемента массива.

Использование элемента массива не отличается от использования простой переменной, имеющей тот же тип, что и элемент массива.

В Turbo Delphi’е массив объявляется при помощи ключевого слова array, после которого в квадратных скобках указываются границы индексов – верхняя, а после двух точек нижняя. После квадратных скобок после ключевого слова of указывается тип элементов массива.

Пример определения массивов:

Var

A: Array [1..10] of integer; //массив A, состоящий из 10 элементов

целого типа с индексами от 1 до 10

B: Array [5..8] of real; //массив B, состоящий из 4 элементов

вещественного типа с индексами от 5 до 8

 

Прежде, чем работать с массивом, его нужно описать. Описание массива в программе осуществляется двумя способами:

Вариант описания массива с использованием раздела TYPE

TYPE < имя типа> =array[тип индекса] of < тип компонент>;

VAR < имя массива1, имя массива2, …, имя массива n>: < имя типа>;

Пример:

TYPE MAS=array[1..20] of real;

VAR A, B, C: MAS;

 

Вариант описания массива в разделе VAR

VAR

< имя массива1, имя массива2, …, имя массиваn>: array [тип индекса] of < тип компонент>;

Пример: VAR A, B, C: array [1..20] of real;

Решение типового примера

 

Пример 12.1. Дан массив вещественных чисел х1, х2, …, хn. Найти максимальный элемент массива.

 
 

 


max: =x[i]

 

 
 


 

 

 


Рисунок 11

Программа   Program Project1; Var max: real; x: array[ 1..40] of real; i, n: integer; Begin   //ввод размера массива Write('n='); Readln(n);   //ввод значений элементов массива for i: =1 to n do   read(x[i]);   max: =x[1];   //нахождение максимального //элемента массива for i: =2 to n do if x[i]> max then max: =x[i];   writeln('max=', max: 6: 2); readln; end.    

Пример 11.2. Элементам массива b присвоить значения элементов массива a.

 

program Project2;

const m=20;

type mas=array[1..m] of real; // описание типа одномерного массива

var a, b: mas; // описание переменных одномерного массива,

// массивы a и b – идентичные массивы

i: integer;

begin

 

for i: =1 to m do

a[i]: =0; // инициализация массива а

 

b: =a; // присваивание значений массива а массиву b

 

for i: =1 to m do

write(b[i]: 3: 1, ' '); // вывод значений массива b

 

readln;

end.

 

 

Пример 12.3. Найти сумму элементов одномерного массива.

 

program Project3;

const m=10;

type m1=array[1..m] of real;

var a: m1; i: integer; s: real;

begin

s: =0;

for i: =1 to m do

begin

write('a[', i, ']=');

readln(a[i]); // ввод значений массива a

s: =s+a[i];

end;

write('s=', s: 3: 1); // вывод результата

readln;

end.

 

 

Пример 12.4. Найти сумму и количество положительных и отрицательных элементов одномерного массива а.

 

program Project4;

const m=10;

type m1=array[1..m] of real;

var a: m1; i, kp, ko: integer; sp, so: real;

begin

sp: =0; kp: =0; so: =0; ko: =0;

for i: =1 to m do

begin

write('a[', i, ']=');

readln(a[i]); // ввод значений массива a

if a[i]> 0 then begin sp: =sp+a[i]; kp: =kp+1; end;

if a[i]< 0 then begin so: =so+a[i]; ko: =ko+1; end;

end;

writeln('sp=', sp: 3: 1, ' kp=', kp); // вывод суммы и количества положительных

//элементов

write('so=', so: 3: 1, ' ko=', ko); // вывод суммы и количества отрицательных

// элементов

readln;

end.

 

 

Пример 12.5. Найти значение максимального элемента одномерного массива а.

 

program Project5;

const m=10;

type m1=array[1..m] of real;

var a: m1; i, kp, ko: integer; max: real;

begin

 

for i: =1 to m do

begin

write('a[', i, ']=');

readln(a[i]); // ввод значений массива a

end;

 

max: =a[1];

for i: =1 to m do

if a[i]> max then max: =a[i];

writeln('max=', max: 3: 1); // вывод значения максимального элемента одномерного массива

readln;

end.

Варианты заданий (2 задания)

Задание 1

1. Дан массив вещественных чисел А(А1, А2, …, Аn) и В(В1, В2, …, Вn). Уменьшить положительные элементы массива А на величину К, а положительные элементы массива В увеличить на величину К, где К – заданное число.

2. Дан массив вещественных чисел А(А1, А2, …, Аn). Заполнить массив В(В1, В2, …, Вn), элементы которого рассчитываются следующим образом:

.

3. Дан массив вещественных чисел Х(Х1, Х2, …, Хn). Найти сумму элементов массива Х, удовлетворяющих условию G ≤ Хn ≤ E, где Е и G – заданные числа.

4. Составить программу для вычисления длины n-мерного вещественного вектора Х = (Х1, Х2, …, Хn) по формуле L =

5. Дан массив вещественных чисел Х(Х1, Х2, …, Хn). Найти произведение положительных элементов массива и подсчитать их число.

6. Дан массив вещественных чисел А(А1, А2, …, Аn) и В(В1, В2, …, Вn). Найти скалярное произведение векторов A и B по формуле .

7. Дан массив вещественных чисел А(А1, А2, …, Аn). Найти среднее арифметическое положительных и среднее арифметическое отрицательных элементов массива.

8. Дан массив вещественных чисел В(В1, В2, …, Вn). Найти сумму положительных и сумму отрицательных элементов массива.

9. Дан массив вещественных чисел А(А1, А2, …, Аn) и В(В1, В2, …, Вn). Найти сумму отрицательных элементов массива А и В.

10. Дан массив вещественных чисел А(А1, А2, …, Аn) и С(С1, С2, …, Сn). Подсчитать число положительных элементов массива А и отрицательных элементов массива С.

11. Дано целое число N и набор из N ненулевых целых чисел. Вывести в том же порядке номера всех нечетных чисел из данного набора и количество K таких чисел.

12. Дан массив вещественных чисел из N элементов и целое число K. Если в массиве присутствует число, меньшее K, то вывести сообщение True; в противном случае вывести False.

13. Дан набор ненулевых целых чисел; признак его завершения — число 0. Вывести количество элементов в наборе.

14. Дан набор ненулевых целых чисел; признак его завершения — число 0. Вывести сумму всех положительных четных чисел из данного набора. Если требуемые числа в наборе отсутствуют, то вывести 0.

15. Дано целое число K и набор ненулевых целых чисел; признак его завершения — число 0. Вывести количество чисел в наборе, меньших K.

16. Дано целое число K и набор ненулевых целых чисел. Вывести номер последнего числа в наборе, меньшего K. Если таких чисел в наборе нет, то вывести 0.

17. Дано целое число N и набор из N целых чисел. Вывести номера тех чисел в наборе, которые меньше своего левого соседа, и количество K таких чисел.

18. Дано целое число N и набор из N целых чисел. Вывести номера тех чисел в наборе, которые больше своего правого соседа, и количество K таких чисел.

19. Дано целое число N и набор из N вещественных чисел. Проверить, образует ли данный набор возрастающую последовательность. Если образует, то вывести True, если нет — вывести False.

20. Дано целое число N и набор из N вещественных чисел. Если данный набор образует убывающую последовательность, то вывести 0; в противном случае вывести номер первого числа, нарушающего закономерность.

21. Дано целое число N и набор из N целых чисел, содержащий по крайней мере два нуля. Вывести сумму чисел из данного набора, расположенных между первыми двумя нулями (если первые нули идут подряд, то вывести 0).

22. Дано целое число N и набор из N целых чисел, содержащий по крайней мере два нуля. Вывести сумму чисел из данного набора, расположенных между последними двумя нулями (если последние нули идут подряд, то вывести 0).

23. Даны целые числа K, N и набор из N вещественных чисел: A1, A2, ..., An. Вывести K-e степени чисел из данного набора: A1K, A2K, ..., AnK.

24. Дано целое число n и набор из N вещественных чисел: A1, A2, ..., An. Вывести следующие числа: A1, A22, ..., An–1n–1, Ann.

25. Дано целое число n и набор из n вещественных чисел: A1, A2, ..., An. Вывести следующие числа: A1n, A2n–1, ..., An–12, An.

Задание 2 (использовать подпрограмму)

1. Найти минимальный и максимальный из данных десяти элементов.

2. Найти номера максимального из данных десяти элементов.

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

4. Найти количество минимальных из данных десяти целочисленных элементов.

5. Найти максимальный четный из данных десяти ненулевых целочисленных элементов. Если требуемые элементы отсутствуют, то вывести 0.

6. Найти минимальный положительный из данных десяти элементов. Если требуемые элементы отсутствуют, то вывести 0.

7. Даны числа a, b (0 < a < b) и набор из десяти элементов. Найти минимальный из элементов, содержащихся в интервале (a, b). Если требуемые элементы отсутствуют, то вывести –1.

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

9. Найти номер последнего экстремального (то есть минимального или максимального) из данных десяти целочисленных элементов.

10. Дан набор из десяти целочисленных элементов. Найти количество элементов, содержащихся между первым и последним минимальным. Если в наборе имеется единственный минимальный элемент, то вывести 0.

11. Найти два наибольших из данных десяти элементов.

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

13. Дан массив размера N. Расположить значения его элементов в обратном порядке: значение a[n] поместить в a[1], a[n-1] в a[2] и т.д. Дополнительный массив не использовать.

14. Дан массив размера N. Вывести вначале его элементы с четными индексами, а затем — с нечетными.

15. Дан целочисленный массив A размера 10. Вывести номер первого из тех его элементов A[i], которые удовлетворяют двойному неравенству: A[1] < A[i] < A[10]. Если таких элементов нет, то вывести 0.

16. Дан целочисленный вектор Т(m). Изменить знак всех элементов с четными индексами на противоположный.

17. Массив К(n) заполнен случайными числами от -15 до 15.Определить количество отрицательных элементов и их индексы.

18. В заданном массиве М(15) заменить нулевые элементы квадратами их индексов.

19. В массиве А(20) поменять местами соседние четные и нечетные по номеру элементы. Дополнительные массивы не использовать.

20. Задан массив А(n). Вычислить сумму произведений всех пар соседних чисел.

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

1. Что такое массив?

2. В каких случаях необходимо использовать массивы?

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

4. Что такое размер массива?

5. Что такое элемент массива, индекс массива?

6. Какие типы данных могут использоваться в качестве индексов для массивов?

7. Как ввести массив чисел?

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-03; Просмотров: 766; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.053 с.)
Главная | Случайная страница | Обратная связь