- •Введение
- •1 Цели и задачи дисциплины
- •2 Методы и технологии разработки алгоритмов и программ
- •2.1 Сущность структурного программирования
- •2.1.1 Базовые управляющие структуры
- •2.1.2 Дополнительные управляющие структуры
- •2.2 Сущность процедурного программирования
- •2.3 Сущность модульного программирования
- •2.4 Сущность объектно-ориентированного программирования
- •3 Методические указания к выполнению лабораторных работ
- •Лабораторная работа №1 Работа с файлами в интегрированной среде программирования
- •Лабораторная работа №2 Отладка и тестирование программы
- •Текст программы
- •Лабораторная работа №3 Поразрядные логические операции
- •Варианты индивидуальных заданий
- •Пример решения для варианта задания вида:
- •Пример программы
- •Лабораторная работа №4 Поиск экстремума
- •Варианты индивидуальных заданий
- •Пример схемы алгоритма и текста программы определения экстремума для варианта задания вида:
- •Пример программы
- •Лабораторная работа №5 Определение принадлежности точки выделенным областям на плоскости
- •Варианты индивидуальных заданий
- •Пример схемы алгоритма и текст программы определения местоположения точки на плоскости для варианта задания вида:
- •Текст программы
- •Лабораторная работа №6 Многовариантные вычисления по ключу
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №7 Циклические вычисления на заданное число повторений.
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №8 Циклические вычисления с заданной точностью
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №9 Обработка одномерных массивов
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №10 Обработка двумерных массивов
- •Варианты индивидуальных заданий
- •Пример программы
- •4 Методические указания к выполнению контрольных работ
- •Контрольная работа №1 Преобразование чисел из одной системы счисления в другие
- •Варианты индивидуальных заданий
- •Пример выполнения задания
- •Контрольная работа №2 Арифметические операции в двоичной, восьмеричной и шестнадцатеричной системах счисления
- •Варианты индивидуальных заданий
- •Пример выполнения задания
- •Библиографический список
Пример программы
Program ObrMatr;
{Программа поиска и перестановки в матрице двух строк:
строки с минимальным и строки с максимальным элементом}
Const
R=10; {Размер строки (столбца) матрицы}
Type
TInd=1..R; {Тип индекса элемента матрицы}
TElem=Integer; {Тип элемента матрицы}
TVect=Array[Tind] Of TElem; {Тип вектор}
TMatr=Array[Tind] Of TVect; {Тип матрица}
{$R+}
Procedure InMatr(kStr,kStb:TInd;Var M:TMatr);
{Процедура ввода значений элементов матрицы.
Входные данные: kStr - количество строк матрицы,
kStb - количество столбцов матрицы.
Выходное данное: M - матрица.}
Var
i,j:TInd; {Локальные переменные}
Begin
WriteLn('Вводите матрицу по строкам:');
For i:=1 To kStr
Do Begin
For j:=1 To kStb
Do Read(M[i,j]);
ReadLn;
End;
End;{InMatr}
Function NomMin(kStr,kStb:TInd; Const M:TMatr):TInd;
{Функция определения номера строки с минимальным элементом.
Входные данные: kStr - количество строк матрицы,
kStb - количество столбцов матрицы,
M - матрица.
Выходное данное: NomMin - номер строки с миним. элементом.}
Var
i,j,nmin:TInd;
min:TElem; {Локальные переменные}
Begin
min:=M[1,1]; nmin:=1;
For i:=1 To kStr
Do For j:=1 To kStb
Do If M[i,j]<min
Then Begin
min:=M[i,j];
nmin:=i;
End;
NomMin:=nmin;
End; {NomMin}
Function NomMax(kStr,kStb:TInd; Const M:TMatr):TInd;
{Функция определения номера строки с максимальным элементом.
Входные данные: kStr - количество строк матрицы,
kStb - количество столбцов матрицы,
M - матрица.
Выходное данное: NomMax - номер строки с макс. элементом.}
Var
i,j,nmax:TInd;
max:TElem; {Локальные переменные}
Begin
max:=M[1,1]; nmax:=1;
For i:=1 To kStr
Do For j:=1 To kStb
Do If M[i,j]>max
Then Begin
max:=M[i,j];
nmax:=i;
End;
NomMax:=nmax;
End; {NomMax}
Procedure ObmenStr(kStr,kStb:TInd; Var M:TMatr);
{Процедура перестановки строк с минимальным и максимальным элементом.
Входные данные: kStr - количество строк матрицы,
kStb - количество столбцов матрицы,
M - матрица целых чисел.
Выходное данное: M - преобразованная матрица.}
Var
strM:TVect;
nmin,nmax:TInd; {Локальные переменные}
Begin
nmin:=NomMin(kStr,kStb,M);
nmax:=NomMax(kStr,kStb,M);
If nmin<>nmax
Then Begin
strM:=M[nmin];
M[nmin]:=M[nmax];
M[nmax]:=strM;
End;
End; {ObmenStr}
Procedure OutMatr(kStr,kStb:TInd; Const M:TMatr);
{Процедура вывода матрицы.
Входные данные: kStr - количество строк матрицы,
kStb - количество столбцов матрицы,
M - матрица.}
Var
i,j:TInd; {Локальные переменные}
Begin
For i:=1 To kStr
Do Begin
For j:=1 To kStb
Do Write(M[i,j]:3);
WriteLn;
End;
End;{OutMatr}
Var
n,m,nStb:TInd;
Matr:TMatr;
Begin
Write('Размеры матрицы? ');
ReadLn(n,m);
InMatr(n,m,Matr); {Ввод матрицы}
WriteLn('Исходная матрица:');
OutMatr(n,m,Matr); {Вывод матрицы}
ObmenStr(n,m,Matr); {Перестановка строк}
WriteLn('Матрица после перестановки строк:');
OutMatr(n,m,Matr); {Вывод матрицы}
ReadLn;
End.
