- •Предисловие
- •Содержание курсов "информатика" и "основы алгоритмизации и языки программирования"
- •2.1. Лекционные занятия
- •Тема 9. Разработка и отладка программ с использованием подпрограмм-
- •Тема 10. Разработка и отладка программ с использованием данных
- •Тема 11. Разработка и отладка программ с использованием
- •Приложение
- •2.2. Лабораторные и практические занятия
- •2.3. Рекомендации к бюджету времени при изучении курсов
- •Внимание!
- •Введение Начальные сведения о компьютере ibm pc
- •Клавиатура
- •Особые комбинации клавиш
- •Файлы данных
- •Операционная система ms dos
- •Составные части dos
- •Загрузка и перезагрузка пк
- •Работа с файлами, каталогами и командами
- •Внутренние команды dos
- •Программная оболочка Norton Commander
- •Функциональные клавиши nc
- •Некоторые комбинации клавиш nc
- •Особенности работы интегрированной среды (ide) Турбо Паскаль (Тurbo Рascal)
- •Команды работы с блоками
- •Программирование на языке турбо паскаль Тема № 1 Разработка и отладка программ линейного вычислительного процесса
- •Приоритет выполнения операций
- •Примеры
- •Варианты заданий
- •Тема № 2 Разработка и отладка программ разветвляющегося вычислительного процесса. Логический условный оператор
- •Тема № 3 Разработка и отладка программ разветвляющегося вычислительного процесса. Оператор выбора варианта
- •Варианты заданий
- •15. Введите символ с клавиатуры компьютера и определите, является ли он символом английского алфавита, символом русского алфавита или знаком препинания.
- •16. Введите цифру и распечатайте соответствующий ей знак зодиака. Например единице, соответствует знак зодиака "водолей". Если такой цифры нет, то сделайте сообщение.
- •Тема № 4 Разработка и отладка программ циклического вычислительного процесса. Оператор цикла с параметром
- •Примеры
- •Варианты заданий
- •Тема № 5 Разработка и отладка программ циклического вычислительного процесса. Операторы цикла с постусловием и предусловием
- •Оператор цикла с предварительным условием (предусловием) имеет вид:
- •Тема № 6 Разработка и отладка программ с использованием структурированных типов данных – одномерных массивов
- •Тема № 7 Разработка и отладка программ с использованием структурированных типов данных – двухмерных массивов
- •Тема № 8 Разработка и отладка программ с использованием подпрограмм-функций
- •Подпрограмма-функция Структура функции
- •Примеры
- •11. Даны три массива а(10), в(8), с(12). Подсчитайте для каждого массива среднее арифметическое его положительных элементов, для чего используйте подпрограмму-функцию.
- •13. Составьте подпрограмму-функцию вычисления элементов нового массива на основании элементов массивов а и в по правилу
- •20. Вычислите суммы элементов каждой строки матрицы в(8,8), определите наибольшее значение этих сумм и номер соответствующей строки. Для подсчета сумм и наименьшего значения напишите функции.
- •Тема № 9 Разработка и отладка программ с использованием подпрограмм-процедур
- •Подпрограмма-процедура
- •Структура процедуры
- •Примеры
- •Составьте программу с подпрограммой определения максимальной и минимальной оценок, а также среднего балла, данных девятью судьями каждой из пяти фигуристок.
- •Тема № 10 Разработка и отладка программ с использованием данных символьного и строкового типов
- •Операции над символами
- •Операции над строками
- •Строковые процедуры
- •Строковые функции
- •Варианты заданий
- •Тема № 11 Разработка и отладка программ с использованием структурированных типов данных - файлов
- •Var имя : file of базовый тип;
- •Var имя : имя типа;
- •4.Массив к данных вещественного типа записать в типизированный файл, а затем считать из него средний элемент.
- •Варианты заданий
- •9. Имеется файл с данными целого типа. Считайте эти значения в исходной программе в массив, упорядочьте элементы массива в порядке возрастания (убывания) и запишите его в новый файл.
- •18. Имеется массив температур т[30]. Напишите подпрограмму, находящую среднюю температуру за дни с к1 по к2. Определите самую теплую неделю месяца. Результат запишите в файл.
- •23. Имеется массив температур т[30]. Определите среднюю температуру за месяц, самую теплую и самую холодную температуры в течение месяца. Результаты запишите в файл.
- •Приложения
- •Типы Простые Порядковые Целые
- •Процедурные Файлы
- •Длинные и короткие вещественные типы
- •В) Таблица п.3 Кодировка символов в соответствии с таблицей кодов ascii
- •I. Модуль system
- •II. Модуль dos
- •III. Модуль crt
- •IV. Модуль graph
- •V. Модуль printer
- •VI. Модуль overlay
- •Основные термины
- •Учебная литература по курсу
Тема № 7 Разработка и отладка программ с использованием структурированных типов данных – двухмерных массивов
Студенты должны изучить правила использования двухмерных массивов, а также уметь разрабатывать алгоритмы и методы решения поставленной задачи.
Двухмерный массив является программным аналогом двухмерной матрицы (набору векторов, прямоугольной таблицы), т.е.
A = двухмерная матрица (массив).
Каждый элемент матрицы может рассматриваться как отдельная переменная. Индекс элемента в программе может задаваться непосредственно с помощью чисел, а также косвенно с помощью переменных или выражений A[1,1]; B[I,J]; C[I*2,J].
На первом месте стоит индекс, обозначающий номер строки, в которой находится элемент; на втором месте - индекс, обозначающий номер столбца, в котором находится элемент, например X[3,1] элемент находится в третьей строке и первом столбце.
Как правило, в Паскале двухмерный массив описывается следующим образом:
1) TYPE MATR = ARRAY[1..3,1..4] OF REAL;
VAR A:MATR;
VAR A:ARRAY[1..3,1..4] OF REAL;
Примеры
Ввод/вывод элементов матрицы
PROGRAM PR;
USES CRT;
VAR X:ARRAY[1..40,1..30] OFREAL;
I, J, N, M:INTEGER;
BEGIN
CLRSCR;
{Ввод размерности количества строк и количества столбцов}
WRITELN(‘Введите N, M’);
READLN(N, M);
{ Ввод матрицы}
WRITELN(‘Введите матрицу’);
FOR I:=1 TO N DO
FOR J:=1 TO M DO READ(X[I,J]);
{Вывод матрицы}
WRITELN(‘Матрица’);
FOR I:=1 TO N DO
BEGIN
WRITELN;
FOR J:=1 TO M DO
WRITE(X[I,J],' ');
END;
END.
2. Cформируйте двухмерный массив по правилу
B = .
PROGRAM MASSIV2;
VAR I,J:INTEGER;
B:ARRAY[1..3,1..3] OF INTEGER;
BEGIN
FOR J:=1 TO 3 DO
BEGIN
B[1,J]:=J; B[2,J]:=3+J; B[3,J]:=6+J; END;
FOR I:=1 TO 3 DO BEGIN
FOR J:=1 TO 3 DO
WRITE(B[I,J]:5); WRINELN;
END; END.
3. Задана целочисленная матрица, вычислите сумму элементов матрицы, имеющих четное значение
PROGRAM SUMMA;
USES CRT;
VAR X:ARRAY[1..10,1..10] OF INTEGER;
I,J,N,M,SUM:INTEGER;
BEGIN
CLRSCR;
WRITELN(‘N,M’);
READLN(N,M);
FOR I:=1 TO N DO
FOR J:=1 TO M DO READ(X[I,J]);
SUM:=0;
FOR I:=1 TO N DO
FOR J:=1 TO M DO
IF X[I,J] MOD 2=0 ТHEN SUM:=SUM+X[I,J];
WRITELN('SUM=',SUM);
END.
4. Дана матрица А(5,4). Сформируйте вектор В(5) из третьих элементов строк матрицы А.
PROGRAM VECT;
USES CRT;
VAR A:ARRAY[1..5,1..4] OF INTEGER;
B: ARRAY[1..5]OF INTEGER;
I, J:INTEGER;
BEGIN
CLRSCR;
WRITELN(‘Введите матрицу’);
FOR I:=1 TO 5 DO
FOR J:=1 TO 4 DO READ(A[I,J]);
FOR I:=1 TO 5 DO BEGIN
FOR J:=1 TO 4 DO IF J=3 THEN B[I]:=A[I,J];
WRITELN('B[',I,']=',B[I]);
END.
Во всех задачах для краткости вместо термина "двухмерный массив" используется термин "матрица". Для обозначения размерности матрицы используется запись A(M,N), где M - количество строк, а N - количество столбцов матрицы А.
Варианты заданий
Дана матрица С(m, n). Найти норму матрицы .
Дана матрица А(m, n). Сформировать вектор В(m) из максимальных элементов строк матрицы А.
Дана матрица А(5,7). Сформировать вектор В(7) из минимальных элементов столбцов матрицы А.
Дана матрица А(5,5). Изменить матрицу, прибавив к каждому элементу, лежащему выше главной диагонали, симметрично расположенный элемент, лежащий ниже главной диагонали. Остальные элементы не изменять.
Дана матрица В(m, n). Сформировать вектор Т(m) из сумм элементов каждой строки.
Дана матрица В(4,6). Сформировать вектор Т(6) из произведений элементов каждого столбца.
Дана матрица А(n, n). Определить максимальный элемент матрицы и номера строки и столбца этого элемента.
Дана матрица В(6,7). Сформировать вектор Т(6) из средних арифметических элементов в каждой строке.
Получить массив максимальных элементов столбцов матрицы А(3,6).
Определить индексы минимальных элементов каждой строки матрицы В(m, m).
Дана матрица Т(5,7). Найти среднее арифметическое каждого из столбцов матрицы и записать их в массив Р.
Дана действительная матрица С(5,4), в которой не все элементы равны нулю. Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент.
Дана действительная матрица F(6,7). Найти среднее арифметическое наибольшего и наименьшего значений ее элементов.
В данной действительной матрице С(n, n) найти сумму элементов строки, в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент единственный.
В данной действительной матрице В(n, m) поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением. Предполагается, что эти элементы единственны.
Дана целочисленная матрица К(n, n). Найти наименьшее из значений элементов столбца, который обладает наибольшей суммой модулей элементов. Если таких столбцов несколько, взять первый из них.
Даны матрица А(5,5) и вектор В(5). Получить их произведение.
Дана матрица В(n, n). Найдите строку и столбец, на пересечении которых расположен максимальный элемент главной диагонали. Замените значения этой строки и столбца на полученное максимальное значение.
Вычислить суммы элементов каждой строки матрицы В(8,8). Определить наименьшее значение этих сумм и номер соответствующей строки.
Найти наибольший элемент каждой строки матрицы А(4,6) и записать их в массив Y.
Переписать первые элементы каждой строки матрицы А(n, n), большие С, в массив В. Если в строке нет элемента, большего С, записать ноль в массив В.
Найти минимальные элементы каждой строки матрицы Х(n, n) и поместить их на главную диагональ, а диагональные элементы записать на место минимальных.
Дана матрица Т(5,6). Найти максимальный из минимальных элементов строк, а также номер строки и столбца, на пересечении которых он находится.
Дана матрица Q(n, n). Расположить в каждой строке матрицы элементы по убыванию.
Дана матрица А(m, n), содержащая только два одинаковых числа. Найти эти числа и их индексы.