Пример программы на языке Turbo Pascal




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

Program Primer4;

var

rez: array[1..9] of integer;

i, j, s: integer;

begin

randomize;

writeln;

writeln('Неупорядоченный массив:');

for i:=1 to 9 do begin rez[i]:=random(101); write(rez[i]:5); end;

writeln;

for i:=1 to 8 do

for j:=i+1 to 9 do

if rez[i]>rez[j] then

begin

s:=rez[j]; rez[j]:=rez[i]; rez[i]:=s;

end;

writeln('Упорядоченный массив:');

for i:=1 to 9 do write(rez[i]:5);

end.

 

Рис. 10 – Схема алгоритма работы программы

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

1. Что понимают под массивом данных?

2. Что называют размерностью массива?

3. Что понимают под индексом элемента массива?

4. Какой массив называется одномерным?

5. Приведите примеры одномерных массивов.

6. Как описываются одномерные массивы на языке Turbo Pascal?

7. Как задается диапазон изменения индексов массива?

8. Как обозначаются индексы массивов на языке Turbo Pascal?

9. Какого типа могут быть элементы массива?

10. Какого типа могут быть индексы элементов массива?

11. Какие стандартные алгоритмы по работе с одномерными массивами Вы знаете?

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

13. Как будет выглядеть блок схема для решения задачи сортировки одномерного массива?

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

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


Лабораторная работа № 5.
Работа с двухмерными массивами

Цель работы: изучение принципов работы с двухмерными массивами на языке программирования Turbo Pascal. Получение навыков применения основных алгоритмов для решения задач с использованием двухмерных массивов.

Теоретические сведения

Исходные данные для решения многих задач удобно представить в виде таблицы. Колонки и строки таблицы, как правило, содержат однородную информацию, если использовать терминологию Turbo Pascal – данные одинакового типа. Поэтому в программе для хранения и обработки табличных данных можно использовать совокупность одномерных массивов или двухмерный массив.

В общем виде описание двумерного массива выглядит следующим образом:

<Имя>: array [<нижняя_граница_индекса1>.. <верхняя_граница_индекса1>, <нижняя_граница_индекса2>.. <верхняя_граница_индекса2>] of <тип>;

Здесь:

<Имя> – имя массива;

array – ключевое слово, показывающее, что объявляемый элемент данных является массивом;

<нижняя_граница_индекса1>, <верхняя_граница_индекса1>, <нижняя_ граница_индекса2>, <верхняя_граница_индекса2> – целые константы, определяющие диапазоны изменения индексов и, следовательно, число элементов массива;

<тип> – тип элементов массива.

Пример объявления двумерного массива:

Product: array[1..3,1..4] of integer;

Количество элементов массива может быть вычислено по формуле:

(<верхняя_граница_индекса1> – <нижняя_граница_индекса1> + 1)*(<верхняя_граница_индекса2> – <нижняя_граница_индекса2> + 1),

Таким образом, массив Product состоит из 12 элементов типа integer ((3–1+1)*(4–1+1)=3*4=12).

Приведем еще примеры описания двумерных массивов в Pascal–программах:

Type MATR=array[1..4,1..5] of integer;

Type B= array[2..9,0..6] of real;

Type C= array[–1..4,–1..4] of char.

Также допускается указание имени другого типа массива в качестве типа элементов массива, например:

Type VEC= array[1..4] of real;

MAS= array[1..5] of vec.

В результате приведенного выше описания тип массива MAS будет объявлен как тип двумерного массива, первый индекс которого будет меняться от 1 до 5, а второй индекс – от 1 до 4, т.е. размерность массива составит 5*4 элементов.

Чтобы использовать элемент массива, нужно указать имя массива и индексы элемента. Первый индекс обычно соответствует номеру строки таблицы, второй – номеру колонки. Двумерные массивы, в которых диапазоны индексов начинаются с 1, также называются иногда матрицами. Если число строк матрицы равняется числу столбцов, то матрицы такого вида называются квадратными. Элементы квадратной матрицы вида B[1,1], B[2,2]< B[3,3] составляют главную диагональ матрицы. Иногда вводят понятие побочной диагонали квадратной матрицы, которую составляют элементы B[1,N], B[2,N–1], B[3,N–2],.. B[N,1], где N – число строк (столбцов) матрицы.

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

Пример использования вложенных циклов:

begin

for i:=1 to 3 do

for j:=1 to 4 do

begin

writeln(‘Введите элемент а[‘,i,’,’,j,’]’);

readln(a[i,j]);

end;

end;

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

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

В лабораторной работе требуется разработать программу на языке программирования Turbo Pascal реализующую алгоритмы обработки двухмерных массивов в соответствии с Вашим вариантом. Отчет о проделанной работе должен содержать: название и цель работы; номер варианта для выполнения задания и условие своего варианта; блок–схему решения задачи; тексты программ; полученные при расчетах численные результаты и выводы по проделанной лабораторной работе.

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

1. Разработать программу на языке программирования Turbo Pascal:

а) В матрице поменять местами третий и пятый столбцы.

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

2. Разработать программу на языке программирования Turbo Pascal:

а) В матрице найти среднее арифметическое элементов, расположенных в четных столбцах.

б) Из элементов матрицы , удовлетворяющих условию , построить вектор , заменив недостающие элементы нулями.

3. Разработать программу на языке программирования Turbo Pascal:

а) В матрице поменять местами третий и шестой столбцы. Найти среднее арифметическое всех элементов матрицы.

б) Найти сумму положительных элементов строк матрицы . Результат поместить в вектор .

4. Разработать программу на языке программирования Turbo Pascal:

а) В матрице найти количество положительных элементов.

б) Сложить две матрицы и и найти наибольший элемент в полученной сумме.

5. Разработать программу на языке программирования Turbo Pascal:

а) В матрице найти количество положительных и отрицательных элементов. Определить, каких элементов больше и на сколько.

б) Сложить две матрицы и , найти наибольший и наименьший элементы в полученной сумме. Найденные элементы поменять местами.

6. Разработать программу на языке программирования Turbo Pascal:

а) В матрице найти среднее арифметическое отрицательных элементов и количество положительных элементов.

б) Из матрицы выбрать положительные элементы и разместить их подряд в вектор . Если положительных элементов в будет меньше 56, дополнить их +1.

7. Разработать программу на языке программирования Turbo Pascal:

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

б) В матрице найти максимальный и минимальный элементы и их координаты.

8. Разработать программу на языке программирования Turbo Pascal:

а) В матрице найти среднее арифметическое отрицательных элементов.

б) Произвести сортировку матрицы , записав ее положительные элементы в вектор (подряд), а отрицательные – в вектор (подряд).

9. Разработать программу на языке программирования Turbo Pascal:

а) В матрице поменять местами третью и шестую строки.

б) В матрице выбрать все отрицательные элементы, расположенные выше главной диагонали, и поместить их в вектор подряд.

10. Разработать программу на языке программирования Turbo Pascal:

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

б) Найти суммы отрицательных элементов столбцов матрицы и поместить результат в вектор .

11. Разработать программу на языке программирования Turbo Pascal:

а) Найти среднее арифметическое отрицательных элементов матрицы .

б) В матрице найти минимальный элемент среди элементов, расположенных ниже главной диагонали.

12. Разработать программу на языке программирования Turbo Pascal:

а) В матрице поменять местами первый и последний столбцы, а затем вторую и первую строки.

б) В матрице заменить отрицательные элементы, расположенные ниже главной диагонали, нулями, а положительные – единицами.

13. Разработать программу на языке программирования Turbo Pascal:

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

б) В матрице найти среднее арифметическое отрицательных элементов, расположенных выше побочной диагонали.

14. Разработать программу на языке программирования Turbo Pascal:

а) В матрице найти сумму положительных элементов и сумму элементов третьей строки. Результат вывести с пояснительным текстом.

б) Произвести вычитание из матрицы матрицы и в полученной разности найти минимальный элемент и его номер.

15. Разработать программу на языке программирования Turbo Pascal:

а) В матрице найти среднее арифметическое отрицательных элементов, а также сумму элементов шестой строки.

б) В матрице найти количество положительных элементов, расположенных ниже побочной диагонали.

16. Разработать программу на языке программирования Turbo Pascal:

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

б) Из матрицы выбрать элементы, удовлетворяющие условию , и поместить их в вектор . Если таких элементов меньше 56, то на оставшиеся места поместить 0.

17. Разработать программу на языке программирования Turbo Pascal:

а) В матрице поменять местами первую и седьмую строки и найти среднее арифметическое положительных элементов.

б) Из отрицательных элементов вектора сформировать матрицу . Если отрицательных элементов в меньше 9, дополнить оставшиеся места – 1. Транспонировать полученную матрицу.

18. Разработать программу на языке программирования Turbo Pascal:

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

б) Из элементов вектора , сформированных случайных образом, построить матрицу .

19. Разработать программу на языке программирования Turbo Pascal:

а) В матрице найти среднее арифметическое положительных элементов каждого столбца и сформировать из них вектор.

б) Умножить матрицу на вектор , где , . В полученном произведении произвести сортировку элементов по убыванию .

20. Разработать программу на языке программирования Turbo Pascal:

а) В матрице поменять местами третью и пятую строки и найти среднее арифметическое элементов, расположенных в четных столбцах.

б) Записать на место отрицательных элементов матрицы нули, а на место положительных – единицы. Вывести на печать нижнюю треугольную матрицу в общепринятом виде.

21. Разработать программу на языке программирования Turbo Pascal:

а) В матрице поменять местами третий и пятый столбцы и найти среднее геометрическое элементов, расположенных под главной диагональю.

б) Рассортировать элементы матрицы , где n=5, так, чтобы в массиве были расположены подряд только положительные и нулевые элементы, а в массиве (подряд) – только отрицательные. Расположить элементы массивов и в порядке возрастания их величины.

22. Разработать программу на языке программирования Turbo Pascal:

а) Транспонировать матрицу и вывести на печать элементы главной диагонали и диагонали, расположенной под главной. Результаты разместить в двух строках.

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

23. Разработать программу на языке программирования Turbo Pascal:

а) Найти среднее геометрическое положительных элементов матрицы , где n=6, расположенных на побочной диагонали.

б) Из положительных элементов массивов и сформировать матрицу . Если положительных элементов в массиве будет меньше 20, заполнить свободные места числом +1.

24. Разработать программу на языке программирования Turbo Pascal:

а) В матрице найти среднее арифметическое элементов каждой строки и поместить эти значения в массив .

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

25. Разработать программу на языке программирования Turbo Pascal:

а) Произвести транспонирование матрицы и поменять местами третью и шестую строки.

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

26. Разработать программу на языке программирования Turbo Pascal:

а) В матрице поменять местами третий и пятый столбцы и найти среднее геометрическое положительных элементов, расположенных под главной диагональю.

б) В матрице в каждой строке расположить элементы в порядке их возрастания .

27. Разработать программу на языке программирования Turbo Pascal:

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

б) Из положительных элементов вектора сформировать матрицу . Если положительных элементов в векторе окажется меньше 60, дополнить оставшиеся места числом +1.

28. Разработать программу на языке программирования Turbo Pascal:

а) Найти минимальный элемент матрицы и обнулить строку, где он располагается.

б) В матрице найти сумму отрицательных элементов каждой строки и разместить значения этих сумм в вектор .

29. Разработать программу на языке программирования Turbo Pascal:

а) Найти максимальный элемент матрицы и поместить в строку и столбец, где он находится, число +1.

б) Из положительных элементов матрицы , расположенных выше главной диагонали, сформировать вектор .

30. Разработать программу на языке программирования Turbo Pascal:

а) Найти среднее арифметическое отрицательных элементов матрицы и заменить им все нули матрицы.

б) Из отрицательных элементов вектора сформировать матрицу . Если отрицательных элементов в векторе окажется меньше 70, дополнить оставшиеся места нулями.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: