
- •Алгоритмы, структуры данных и программирование
- •Қасымқанұлы Бөрібай, к.Ф.-м. Н., доцент кафедры высшей математики Костанайского государственного педагогического института
- •Работа №1
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •1 Способ:
- •2 Способ:
- •3 Задачи
- •4 Тесты
- •Работа №2
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №3
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Примеры решения задач
- •3 Задачи
- •4 Тесты
- •Работа №4
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №5
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №6
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №7
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы.
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №8
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №9
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №10
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №11
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №12
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №13
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №14
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №15
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Контрольные вопросы
- •Ответы к тестовым заданиям
4 Тесты
Истина или ложь?
Каждое из представленных ниже утверждений либо верно, либо нет.
Элементы массива могут принадлежать различным типам – как простым, так и структурированным.
Для вычисления количества элементов в массиве в Turbo Pascal существует стандартная процедура.
Номер элемента в линейном массиве не имеет существенного значения при обработке вектора.
К линейному массиву применимы все операции, что и ко множеству.
Для доступа к отдельному элементу вектора в Turbo Pascal достаточно указать имя вектора и в квадратных скобках позиционный номер (индекс) этого элемента.
Массив представляет собой совокупность связанных данных, состоящую из фиксированного числа элементов данного типа.
Количество элементов линейного массива в Turbo Pascal не ограничено.
В качестве типа, индексирующего массив, в Turbo Pascal может быть использован тип longint.
Типы char, boolean, а так же перечислимый тип можно использовать при индексировании вектора.
В Turbo Pascal индексы вектора могут представляться в виде не только явно заданных значений, но и переменных, и выражений.
Работа №8
Тема: Решение задач с использованием двумерных массивов
Цель: Закрепить теоретический материал по двумерным массивам. Научиться решать задачи с использованием двумерных массивов.
1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
Перед тем, как приступить к выполнению лабораторной работы, студенту необходимо ознакомиться со следующим материалом:
понятия многомерного массива и матрицы;
понятие элемента многомерного массива;
способ доступа к элементам многомерного массива;
способы объявления многомерного массива.
2 Пример решения задачи
Поменять местами столбцы двумерного массива, содержащие минимальный и максимальный элементы.
Например:
max min min max
Решение задачи разобьём на четыре этапа:
ввод исходного двумерного массива;
нахождение максимального и минимального элементов массива;
обмен столбцов;
вывод результирующей матрицы.
Для реализации первого этапа потребуются следующие переменные: m – количество строк массива, n – количество столбцов массива, а[1. . 20, 1. .20] – двумерный массив, i,j – для организации обхода матрицы.
Программный код ввода элементов двумерного массива аналогичен программному коду ввода элементов линейного вектора с той разницей, что здесь организуется вложенный цикл для обхода матрицы не только по столбцам, но и по строкам.
writeln(“укажите количество строк матрицы”);
readln(n);
writeln(“укажите количество столбцов матрицы”);
readln(m);
writeln(“укажите элементы матрицы”);
for i:=1 to n do
for j:=1 to m do
begin
writeln(‘укажите элемент, стоящий на ’,i, ‘-ой строке и ’,j, ‘-м столбце матрицы’);
read(a[i,j]);
end;
Второй этап начинается с того, что первый элемент матрицы, т.е. a[1,1] будет считаться сразу и максимальным и минимальным элементом. Для обозначения минимального и максимального элементов введем переменные min и max соответственно. Номера столбцов содержащих минимальный и максимальный элементы обозначим st_min и st_max. Механизм поиска минимального и максимального элементов матрицы схож с поиском в линейной таблице.
min:= a[1,1]; st_min:=1; max:= a[1,1]; st_max:=1;
for i:=1 to m do
for j:=1 to n do
begin
if min>a[i,j] then
begin min:=a[i,j]; st_min:=j; end;
if max< a[i,j] then
begin max:= a[i,j]; st_max:=j; end;
end;
Для организации обмена столбцов на третьем этапе необходимо ввести дополнительную переменную – otvet. Туда поочередно помещаются элементы, стоящие в одном столбце с минимальным. Затем значение данного элемента заменяется на значение элемента, стоящего в одном столбце с максимальным, после чего значение из переменной ответ, помещается на место элемента стоящего в столбце с максимальным элементом (рисунок 6.1).
2
1 3
Рисунок 6.1 – Обмен местами максимального и минимального элементов в двумерном массиве
for i:=1 to m do
begin
otvet:=a[i,st_min];
a[i,st_min]:= a[i,st_max];
a[i,st_max]:=otvet;
end;
На четвертом этапе происходит вывод массива на экран.
writeln(‘результат:’);
for i:=1 to m do
begin
for j:=1 to n do
write(a[i,j]:8:2,’ ’);
writeln();
end;
Таким образом вся программа примет вид:
program min_max;
uses crt;
var
a: array[1. .20, 1. .20] of real;
i,j,m,n,st_min,st_max: integer;
min,max,otvet: real;
begin
clrscr;
writeln(“укажите количество строк матрицы”); readln(m);
writeln(“укажите количество столбцов матрицы”); readln(n);
writeln(“укажите элементы матрицы”);
for i:=1 to n do
for j:=1 to m do
begin
writeln(‘укажите элемент, стоящий на ’,i, ‘-ой строке и ’,j, ‘-м столбце матрицы’);
readln(a[i,j]);
end;
min:= a[1,1]; st_min:=1; max:= a[1,1]; st_max:=1;
for i:=1 to m do
for j:=1 to n do
begin
if min>a[i,j] then
begin min:=a[i,j]; st_min:=j; end;
if max< a[i,j] then
begin max:= a[i,j]; st_max:=j; end;
end;
for i:=1 to m do
begin
otvet:=a[i,st_min];
a[i,st_min]:= a[i,st_max];
a[i,st_max]:=otvet;
end;
writeln(‘результат:’);
for i:=1 to m do
begin
for j:=1 to n do
write(a[i,j]:8:2,’ ’);
writeln();
end;
end.