- •«Программирование на Turbo Pascal»
- •Введение
- •1. Учебно-методическое пособие по изучению дисциплины
- •1 Семестр Лекции (часы) Лабораторные (час) Практика (час) Форма контроля 12 34 - Экзамен
- •1.1. Цели и задачи дисциплины. Компетенции
- •1.2. Методические рекомендации по изучению дисциплины
- •Тема 1. Алгоритмизация
- •Тема 2. Основы программирования
- •Тема 3. Типовые вычислительные процессы. Ветвления
- •Тема 4. Подготовка текстовых документов на компьютере
- •Тема 5. Операции с индексированными переменными
- •Тема 6. Подпрограммы
- •Тема 7. Языки программирования высокого уровня
- •1.3. Глоссарий
- •1.4. Библиографический список
- •1.5. Форма контроля
- •1.6. Вопросы итогового контроля
- •2. Теоретические сведения
- •2.1. Алгоритмизации
- •2.1.1. Алгоритм и его свойства. Способы записи алгоритма
- •2.1.2. Базовые алгоритмические структуры
- •2.1.3. Базовая структура "следование"
- •2.1.6. Итерационные циклы
- •2.1.7. Вложенные циклы
- •2.1.8. Примеры типовых задач по теме «Алгоритмизация»
- •2.1.9. Вопросы для самоконтроля
- •2.2. Основы программирования
- •2.2.1. Этапы решения задач на эвм
- •2.2.2. Алгоритмический язык Pascal
- •2.2.3. Алфавит языка
- •2.2.4. Типы данных
- •2.2.5. Стандартные функции
- •2.2.6. Структура программы на языке Паскаль
- •2.2.7. Основные операторы
- •2.2.8. Комментарии в программе
- •2.2.9. Примеры типовых задач по теме «Основы программирования»
- •2.2.10. Вопросы для самоконтроля
- •2.3. Типовые вычислительные процессы. Ветвления
- •2.3.1. Операторы проверки условий и перехода
- •2.3.2. Логический оператор
- •2.3.3. Оператор выбора
- •2.3.4. Примеры типовых задач по теме «Типовые вычислительные процессы. Ветвления»
- •2.3.5. Вопросы для самоконтроля
- •2.4. Циклические вычислительные процессы
- •2.4.1. Оператор цикла с параметром
- •2.4.2. Оператор цикла с постусловием
- •2.4.3. Оператор цикла с предусловием
- •2.4.4. Вложенные циклы
- •2.4.5. Оператор прерывания цикла
- •2.4.6. Примеры типовых задач по теме «Циклические вычислительные процессы»
- •2.4.7. Вопросы для самоконтроля
- •2.5. Операции с индексированными переменными
- •2.5.1. Массивы одномерные
- •2.5.2. Двумерные массивы. Матрицы
- •2.5.3. Примеры типовых задач по теме «Массивы одномерные»
- •2.5.4. Примеры типовых задач по теме «Двумерные массивы»
- •2.5.5. Вопросы для самоконтроля
- •2.6. Подпрограммы
- •2.6.1. Функции и процедуры
- •2.6.2. Процедуры
- •2.6.3. Вложенные процедуры. Директива forward
- •2.6.4. Функции
- •2.6.5. Примеры типовых задач на тему «Подпрограммы»
- •2.6.6. Вопросы для самоконтроля
- •2.7. Языки программирования высокого уровня
- •2.7.1. Эволюция языков программирования
- •2.7.2. Классификация языков программирования
- •2.7.3. Дальнейшее развитие языков программирования
- •VbScript
- •2.7.4. Транслятор, компилятор, интерпретатор
- •2.7.5. Интегрированные среды программирования
- •2.7.6. Вопросы для самоконтроля
- •3. Варианты заданий для выполнения практических работ
- •3.1. Варианты для выполнения практических заданий по теме «Следования»
- •3.2. Варианты для выполнения практических заданий по теме «Ветвления»
- •3.3. Варианты для выполнения практических заданий по теме «Циклы»
- •3.4. Варианты для выполнения практических заданий по теме «Одномерные массивы»
- •3.5. Варианты для выполнения практических заданий по теме «Двумерные массивы»
- •3.6. Варианты для выполнения практических заданий по теме «Подпрограммы»
2.5.4. Примеры типовых задач по теме «Двумерные массивы»
1. Составить программу подсчета суммы и произведения элементов двумерного массива вещественных чисел.
Введем обозначения:
a- имя массива;
n- количество строк в массиве;
m- количество столбцов в массиве;
i,j- индексы элементов массива;
s- сумма элементов массива;
p – произведение элементов массива.
Программа |
Пояснения |
program matr_1; var a:array [1...10, 1...10] of real; i, j, n, m: integer; s,p :real; begin writeln(‘ Введите n<=10 , m<=10 ’); readln (n,m); writeln(‘ Введите элементы массива по строкам ’); for i:=1 to n do for j:=1 to m do readln(a[i, j]); s:=0; p:=1; for i:=1 to n do for j:=1 to m do begin s:=s + a[i,j]; p:=p * a[i,j]; end; writeln(‘s=’,s:8:3, ‘p=’,p:8:3); readln; end. |
Имя программы – matr_1 {Описательная часть}
{Исполнительная часть} Вывод сообщения на экран Ввод размера массива Вывод сообщения на экран
Ввод элементов массива по строкам
Вложенные циклы
Подсчет суммы и произведения
Вывод результатов на экран
|
2. Задана целочисленная квадратная матрица. Определить является ли она симметричной относительно главной диагонали.
Введем обозначения:
a- имя массива;
n- количество строк и столбцов в массиве;
i,j- индексы элементов массива;
f- признак симметричности матрицы, допустим f=0 матрица симметрична, f =1 матрица не симметрична.
Программа |
Пояснения |
program matr_2; var a: array [1...10, 1...10] of integer; i, j, n, f : integer; begin writeln(‘ Введите n<=10 ’); readln (n); writeln(‘ Введите элементы массива по строкам ’); for i:=1 to n do for j:=1 to n do readln(a[i,j]); f:=0 for i:=1 to n do for j:=i to n do if a[i,j]<>a[j,i] then f:=1; if f=0 then writeln(‘ матрица симметрична’) else writeln (‘матрица не симметрична’); readln; end. |
Имя программы – matr_2 {Описательная часть}
{Исполнительная часть} Вывод сообщения на экран Ввод размера массива Вывод сообщения на экран
Ввод элементов массива
Определение симметричности матрицы
Вывод результатов на экран
|
При решении этой задачи сравниваются элементы расположенные над главной диагональю ( a[ i,j ] ) с элементами, расположенными под главной диагональю ( a[ j,i ] ) и в случае их равенства матрица считается симметричной.
3. Задана матрица вещественных чисел. Образовать одномерный массив, где каждый j – й элемент равен произведению элементов j-ого столбца двумерного массива.
Введем обозначения:
a- имя двумерного массива;
b- имя одномерного массива;
n- количество строк в массиве;
m- количество столбцов в массиве;
i,j- индексы элементов массива;
Программа |
Пояснения |
program matr_3; var a: array [1...10, 1...10] of integer; b: array [ 1..10 ] of integer; i, j, n, f : integer; begin writeln(‘ Введите n<=10 , m<=10 ’); readln (n,m); writeln(‘ Введите элементы массива по строкам ’); for i:=1 to n do for j:=1 to m do readln (a[i, j]); writeln(‘ Исходная матрица ’); for i:=1 to n do begin for j:= 1 to n do write( a[I,j] , ‘ ‘); writeln; end; writeln(‘ Образованный одномерный массив ’); for j:=1 to m do begin b[ j ]:=1; for i:=1 to n do b[ j ]:= b[ j ] * a[ i, j ]; write( b[ j] , ‘ ‘); end; readln; end. |
Имя программы – matr_3 {Описательная часть} Описание двумерного массива Описание одномерного массива
{Исполнительная часть} Вывод сообщения на экран Ввод размера массива а Вывод сообщения на экран
Ввод элементов двумерного массива
Вывод на экран исходного массива в виде матрицы
Формирование и вывод на экран одномерного массива b
|
4. Составить программу нахождения максимального среди элементов двумерного массива вещественных чисел. Определить номер строки и номер столбца, на пересечении которых был найден максимальный элемент.
Введем обозначения:
a- имя двумерного массива;
n- количество строк в массиве;
m- количество столбцов в массиве;
i,j- индексы элементов массива;
kmax, lmax - номер строки и номер столбца, на пересечении которых находится максимальный элемент.
Программа |
Пояснения |
program matr_4; var a: array [1...10, 1...10] of real; i, j, n, m , kmax , lmax: integer; max :real; begin writeln(‘ Введите n<=10 , m<=10 ’); readln(n,m); writeln(‘ Введите элементы массива по строкам ’); for i:=1 to n do for j:=1 to m do readln(a[i,j]); max:=a[1,1]; kmax:=1; lmax:=1; for i:=1 to n do for j:=1 to m do if a[i,j]>max then begin max:=a[i,j]; kmax:=i; lmax:=j; end; writeln(‘max=’, max:8:3); writeln(‘строка - ‘, kmax,’ столбец - ’,lmax); readln; end. |
Имя программы – matr_4 {Описательная часть}
{Исполнительная часть} Вывод сообщения на экран Ввод размера массива Вывод сообщения на экран
Ввод элементов массива по строкам
Поиск максимального элемента
Вывод результатов на экран
|