Комментарии к задачам

Задача 1. Вывод натурального числа

Бывод числа в десятичном виде очевиден. При выводе числа в двоичном ви­де используются битовые операции AND,ShL,ShR (Pascal), &,<<,>> (C), или би­товые функции IAND,ISHL (FORTRAN). Очевидно, что число содержит не более 20 значащих двоичных цифр. Босьмеричное представление числа получено в Pascal-программе и Fortran-программе точно так же, а в языке C есть специаль­ный восьмеричный формат. Шестнадцатеричное представление числа получено в C-программе и FORTRAN-программе средствами формата, а на языке Pascal для этого пришлось записать специальный алгоритм.

Задача 2. Сумма ряда

Решение задачи записывается практически идентично на трех языках, ре­зультат вычисляется с абсолютной компьютерной точностью.

Задача 3. Медленная сортировка

Алгоритм сортировки очевиден. Программы иллюстрируют обработку одно­мерных массивов.

Задача 4. Быстрая сортировка

Алгоритм сортировки бинарными вставками состоит в следующем: первый элемент массива есть упорядоченный массив длиной 1. Бозьмем первый элемент неупорядоченного массива (второй элемент исходного массива) и вставим его в упорядоченный массив, не нарушая упорядоченности. Получим упорядоченный массив длиной 2 и неупорядоченный массив длиной n-2. Будем повторять эту операцию до тех пор, пока длина неупорядоченного массива не станет равной нулю. Место вставки нового элемента в упорядоченный массив ищется методом бисекции, это позволяет понизить сложность всего алгоритма до nln(n). Про­граммы иллюстрируют использование подпрограмм и встроенного генератора случайных чисел.

Задача З. Слова

Программы иллюстрируют способы обработки текстовых файлов и работу с символьными строками. Б этих программах заметны отличия в представлении символьных данных в языках Pascal, C и Fortran. Б Fortran-программе пришлось записать функцию Length для вычисления фактической длины строки, так ка язык не предоставляет таких средств. Обратите внимание, что остаток строки может быть заполнен пробелами или нуль-символами. Pascal-программа очень продуктивно использует возможность описания массива с символьными индек­сами и переменные типа "множество".

Задача б. График

Pascal-программа и C-программа практически идентичны, так как использу­ют один и тот же графический интерфейс, графические средства языка Fortran существенно отличаются. Б C-программе использовано макроопределение F(x), а в Fortran-программе - оператор-функция F(x). Бсе три программы предполагают, что в текущем каталоге есть все необходимые файлы поддержки (графический драйвер для Pascal-программы и C-программы и шрифтовые файлы для всех трех программ).

Задача У. Кубическое уравнение

Программы реализуют решение Кардано кубического уравнения с вещест­венными коэффициентами (см.: Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. М.: Иаука, 1970. С.43). Б виде исключения приведено четыре решения - на языках Pascal, C, Fortran и C++. Языки Fortran и C++ поддерживают комплексный тип данных, поэтому алгоритм записывается в этих двух программах просто и естественно. Б Pascal-программе и C-программе пришлось моделировать комплексные числа записями (структурами) и написать несколько функций для обработки таких данных.

Задача в. Собственное число

Использованный в программах итерационный метод вычисления наибольше­го собственного числа L и соответствующего собственного вектора X квадратной матрицы А заключается в следующем : задается некоторый достаточно произ­вольный вектор X0. Бычисляется вектор AX0 и его норма (максимум из абсолют­ных величин компонентов), которая дает первое приближение L1 для собствен­ного числа, а первое приближение для собственного вектора X1 получается нор­мировкой вектора AX0. Бторая и все остальные итерации выполняются анало­гично. Итерационный процесс заканчивается, когда либо относительная погреш­ность собственного числа станет меньше заданной предельно допустимой ошиб­ки, либо количество итераций достигнет заданного предельного значения.