
- •Введение
- •Глава 1. Основные сведения о работе на персональном компьютере
- •1.1. Конфигурация персонального компьютера
- •Клавиатура
- •Системный блок
- •Монитор
- •1.2. Файловая система ms dos
- •Примеры записи имен файлов
- •1.3. Команды ms dos
- •Системные команды
- •Команды работы с каталогами
- •Команды работы с файлами
- •Команды работы с группой файлов
- •Команды работы с дисками
- •1.4. Инструментальная система nc
- •Основные приемы работы в nc
- •1.5. Контрольные вопросы и задание
- •Тема 1. Конфигурация пк. Клавиатура
- •Тема 2. Файловая система ms dos
- •Тема 3. Команды ms dos
- •Тема 4. Работа в среде nc
- •Глава 2. Работа в интегрированной среде Турбо Паскаль 7.0
- •2.1. Организация вычислений в среде Турбо Паскаль
- •2.2. Главное меню
- •Команда File
- •Команда Edit
- •Команда Search
- •Команда Run
- •Команда Compile
- •2.3. Работа с окнами
- •2.4. Текстовый редактор
- •2.5. Интегрированный отладчик
- •Глава 3. Простейшие конструкции языка Турбо Паскаль
- •3.1. Алфавит языка
- •3.2. Константы и переменные
- •Пример раздела описания переменных
- •3.3. Арифметические выражения
- •Стандартные функции
- •Возведение в степень
- •Примеры программирования арифметических выражений
- •3.4. Контрольные задания
- •1. Составить раздел описания для заданных переменных
- •2. Записать на языке Турбо Паскаль числовые константы
- •3. Записать на языке Турбо Паскаль арифметические выражения
- •4. Записать в виде алгебраической формулы
- •Глава 4. Линейные вычислительные процессы
- •4.1. Оператор присваивания
- •Примеры использования оператора присваивания
- •4.2. Операторы ввода-вывода
- •Операторы ввода исходных данных с клавиатуры
- •Операторы вывода данных на экран
- •4.3. Структура основной программы
- •Общий вид основной программы
- •Пример линейной программы
- •4.4. Контрольные задания
- •1. Записать на языке Турбо Паскаль операторы присваивания
- •Глава 5. Разветвляющиеся вычислительные процессы
- •5.1. Логические выражения
- •Отношения
- •Примеры записи отношений на языке Турбо Паскаль
- •Логические операции
- •Порядок выполнения операций в логических выражениях
- •1. Not. 2. And. 3. Or. 4. Отношения.
- •Примеры записи логических выражений
- •5.2. Условные операторы
- •Короткий условный оператор
- •Полный условный оператор
- •Вложенные структуры условных операторов
- •5.3. Оператор выбора
- •5.4. Контрольные задания
- •1. Записать на языке Турбо Паскаль логические выражения
- •2. Записать на языке Турбо Паскаль логические выражения, принимающие значение true для точек, принадлежащих заштрихованной области (рис. 5.1).
- •3. Начертить на плоскости область, в которой логическое выражение имеет значение true
- •Глава 6. Циклические вычислительные процессы
- •6.1. Операторы цикла с условием
- •Оператор цикла while
- •Оператор цикла repeat…until
- •Основные отличия оператора цикла while от оператора цикла repeat…until
- •6.2. Операторы цикла с параметром
- •Правила использования операторов цикла с параметром
- •6.3. Базовые алгоритмы
- •6.4. Кратные циклы
- •Глава 7. Массивы
- •7.1. Понятие массива
- •7.2. Одномерные массивы
- •Описание одномерного массива
- •Индексные переменные
- •X[I] – индексная переменная (элемент массива).
- •Ввод-вывод одномерных массивов
- •Обработка одномерных массивов
- •7.3. Двухмерные массивы
- •Описание двухмерного массива
- •Ввод-вывод двухмерного массива
- •Обработка матриц
- •Глава 8. Подпрограммы
- •8.1. Структура сложной программы
- •8.2. Процедуры
- •Общий вид описания процедуры
- •Обращение к процедуре
- •Глобальные и локальные переменные
- •Пример программы с процедурой
- •Согласование параметров
- •Механизм замены параметров
- •8.3. Функции
- •Общий вид описания функции
- •Обращение к функции
- •Пример программы с функцией
- •8.4. Параметры-массивы
- •8.5. Примеры программирования задач с использованием подпрограмм
- •Задача 1
- •Задача 2
- •Задача 3
- •Задача 4
- •Глава 9. Текстовые данные
- •9.1. Символьный тип данных
- •Ввод-вывод символьных данных
- •Обработка символьных данных
- •9.2. Строковый тип данных
- •Ввод-вывод строковых данных
- •Обработка строковых данных
- •Пример программирования текстовой задачи
- •9.3. Контрольное задание
- •Глава 10. Записи и файлы данных
- •10.1. Понятие записи
- •10.2. Файлы данных
- •Способы объявления файлов данных
- •Доступ к файлам данных
- •Инициация файла
- •Стандарные функции и процедуры обработки текстовых файлов
- •Пример программирования задачи с использованием файлов данных
- •10.3. Пример решения задачи создания документа
- •4 5 5 Андреева с.В.
- •10.4. Контрольное задание
- •Заключение
- •Библиографический список
- •Приложение 1. Сообщения об ошибках
- •Приложение 2. Таблица альтернативной кодировки символов
Задача 3
На плоскости декартовыми координатами заданы 10 точек:
(x1, y1), (x2, y2), …, (x10, y10).
Вывести полярные координаты точки, имеющей наибольший полярный радиус. Вычисление полярных координат одной точки оформить подпрограммой. Расчетные формулы для вычисления полярных координат следующие:
,
где a и b
– координаты точки.
Вариант c процедурой
Program P3_P;
Type
vect = array[1..10] of real;
Var
X, Y, R, F: vect;
i, n: integer;
max: real;
Procedure PK(a, b: real; var ro, fi: real);
begin
ro := sqrt(aa + bb);
fi := arctan(b/a);
end;
Begin
writeln(‘Введите абсциссы точек’);
for i :=1 to 10 do read(x[i]);
writeln(‘Введите ординаты точек’);
for i := 1 to 10 do read(y[i]);
max := 0;
for i := 1 to 10 do
begin
PK(x[i], y[i], r[i], f[i]);
if r[i]>max then
begin
max := r[i];
n := i;
end;
end;
writeln(‘romax=’, r[n]:6:2, ‘ fimax=’, f[n]:6:2);
End.
Вариант c функцией
В данной задаче результатом вычисления подпрограммы являются два значения (ro, fi). По правилам языка Турбо Паскаль имени функции может быть присвоено только одно значение, например ro. Однако при оформлении функции допускается в списке формальных параметров указывать не только параметры-значения (входные переменные), но и параметры-переменные (выходные переменные). Согласно этому правилу в приведенной ниже программе параметр fi записывается как выходной в списке формальных параметров функции.
Program P3_F;
Type
vect = array[1..10] of real;
Var
X, Y, R, F: vect;
i, n: integer;
max: real;
Function PK(a, b: real; var fi: real): real;
var
ro: real;
begin
ro := sqrt(aa + bb);
fi := arctan(b/a);
PK := ro;
end;
Begin
writeln(‘Введите абсциссы точек’);
for i :=1 to 10 do read(x[i]);
writeln(‘Введите ординаты точек’);
for i := 1 to 10 do read(y[i]);
max := 0;
for i := 1 to 10 do
begin
r[i] := PK(x[i], y[i], f[i]);
if r[i]>max then
begin
max := r[i];
n := i;
end;
end;
writeln(‘romax=’, r[n]:6:2, ‘ fimax=’, f[n]:6:2);
End.
Задача 4
Для заданных квадратных матриц:
и
вычислить симметричные матрицы по правилу:
.
Вариант c процедурой
Program P4_P;
Type
matr = array[1..4, 1..4] of real;
Var
A, B, C, D: matr;
i, j: integer;
Procedure SM(Y: matr; n: integer; var X: matr);
var
i, j: integer;
begin
for i := 1 to n do
for j := i to n do
begin
x[i,j] := (y[i,j] + y[j,i])/2;
x[j,i] := x[i,j];
end;
end;
Begin
writeln(‘Введите матрицу A’);
for i := 1 to 3 do
for j := 1 to 3 do read(a[i,j]);
writeln(‘Введите матрицу В’);
for i := 1 to 4 do
for j := 1 to 4 do read(b[i,j]);
SM(A, 3, C);
SM(B, 4, D);
writeln(‘Симметричная матрица C’);
for i := 1 to 3 do
begin
for j := 1 to 3 do write(c[i,j]:6:2);
writeln;
end;
writeln(‘Симметричная матрица D’);
for i := 1 to 4 do
begin
for j := 1 to 4 do write(d[i,j]:6:2);
writeln;
end;
End.
Вариант c функцией
В задаче результатом вычисления подпрограммы является массив (симметричная матрица). Чтобы оформить вариант программы с функцией, можно ввести фиктивный оператор, присваивающий имени функции произвольное число, например SM:=1;. В основной программе в этом случае объявляется фиктивная переменная (например, L), которой присваивается значение функции. Такие действия необходимы для того, чтобы после обращения к функции произошел возврат в основную программу и продолжалось ее выполнение.
Program P4_F;
Type
matr = array[1..4, 1..4] of real;
Var
A, B, C, D: matr;
i, j, L: integer;
Function SM(Y: matr; n: integer; var X: matr): integer;
var
i, j: integer;
begin
for i := 1 to n do
for j := i to n do
begin
x[i,j] := (y[i,j] + y[j,i])/2;
x[j,i] := x[i,j];
end;
SM := 1;
end;
Begin
writeln(‘Введите матрицу A’);
for i := 1 to 3 do
for j := 1 to 3 do read(a[i,j]);
writeln(‘Введите матрицу В’);
for i := 1 to 4 do
for j := 1 to 4 do read(b[i,j]);
L := SM(A, 3, C);
L := SM(B, 4, D);
writeln(‘Симметричная матрица C’);
for i := 1 to 3 do
begin
for j := 1 to 3 do write(c[i,j]:6:2);
writeln;
end;
writeln(‘Симметричная матрица D’);
for i := 1 to 4 do
begin
for j := 1 to 4 do write(d[i,j]:6:2);
writeln;
end;
End.