- •Общее описание
- •Замечания о формулировках заданий
- •Ввод и вывод данных, оператор присваивания
- •Целые числа
- •Логические выражения
- •Условный оператор
- •Оператор выбора
- •Цикл с параметром
- •Цикл с условием
- •Вложенные циклы
- •10 Км. Каждый следующий день он увеличивал длину пробега на p про-
- •Последовательности
- •Вложенные циклы
- •Функции с числовыми параметрами
- •Дополнительные задания на процедуры и функции
- •Минимумы и максимумы
- •Одномерные массивы
- •Формирование массива и вывод его элементов
- •Анализ элементов массива
- •Работа с несколькими массивами
- •Удаление и вставка элементов
- •Сортировка массива
- •Серии целых чисел
- •Множества точек на плоскости
- •Двумерные массивы (матрицы)
- •Формирование матрицы и вывод ее элементов
- •Анализ элементов матрицы
- •Преобразование матрицы
- •Диагонали квадратной матрицы
- •Анализ и преобразование слов в строке
- •Дополнительные задания на обработку строк
- •Двоичные файлы
- •Преобразование файла
- •Обработка нетипизированных двоичных файлов
- •Работа с несколькими числовыми файлами. Файлы-архивы
- •Cимвольные и строковые файлы
- •Использование файлов для работы с матрицами
- •Текстовые файлы
- •Основные операции с текстовыми файлами
- •Анализ и форматирование текста
- •Текстовые файлы с числовой информацией
- •Дополнительные задания на обработку текстовых файлов
- •Разбор выражений
- •Перебор с возвратом
- •3 Непосредственных потомка: a с весом 1, b с весом 0 и c с весом −1.
- •Динамические структуры данных
- •Очередь
- •Двусвязный список
- •Список с барьерным элементом
- •IsBarrier(l) логического типа (возвращает true, если текущий элемент
- •Integer и Boolean) включены в свободно распространяемую бесплатную мини-
- •Операторы цикла
- •Массивы и строки
- •Динамические структуры данных
Замечания о формулировках заданий
При формулировке заданий не используются понятия и имена, специфи-
ческие для конкретного языка программирования, за исключением обозначе-
ния нулевого указателя NIL, которое используется в заданиях группы Dynamic
(«Динамические структуры данных»). Отметим, что группа Dynamic не вклю-
чена в набор заданий для языков Visual Basic и С#.
Если о типе исходных или результирующих числовых данных в задании
ничего не сказано, то предполагаются вещественные данные. Исключение
составляет группа заданий Dynamic, в которой все числовые данные считаются
целыми, и в формулировках заданий это особо не оговаривается.
При обработке наборов вещественных чисел следует предполагать, что
все элементы набора являются различными (таким образом, любой набор
вещественных чисел содержит единственный минимальный и единственный
максимальный элемент). В наборах целых чисел могут присутствовать одина-
ковые элементы; в частности, наборы целых чисел могут содержать несколько
минимальных и максимальных элементов. Аналогичные предположения спра-
ведливы для числовых массивов, а также для файлов, содержащих числовые
данные.
Если в задании не указан максимальный размер исходных массивов, то
его можно считать равным 10 для одномерных и 10 × 10 для двумерных
массивов.
При описании элементов одномерных и двумерных массивов использует-
ся понятие порядкового номера элемента, причем начальный элемент масси-
ва A размера N всегда имеет порядковый номер 1 и обозначается в формули-
ровках заданий как A1, а конечный элемент этого же массива имеет порядковый
номер N и обозначается как AN . Аналогично, начальный элемент двумерно-
6
М. Э. Абрамян. Электронный задачник Programming Taskbook 4.5
го массива B обозначается как B1,1. Кроме того, понятие порядкового номера
применяется к строкам и столбцам двумерных массивов (матриц): начальная
строка и начальный столбец матрицы размера M × N имеют порядковый но-
мер 1, конечная строка — номер M, а конечный столбец — номер N. Подобный
подход не зависит от выбора языка программирования и соответствует тради-
ционно используемой в математике нумерации элементов векторов и матриц.
Максимальный размер исходных файлов не указывается, поэтому при ре-
шении заданий на файлы не следует использовать вспомогательные массивы,
содержащие все элементы исходных файлов, однако допускается использова-
ние вспомогательных файлов. Все исходные файлы считаются существующи-
ми, за исключением специально оговоренных случаев, в которых существова-
ние исходных файлов требуется проверять в ходе выполнения задания.
Ввод и вывод данных, оператор присваивания
Все входные и выходные данные в заданиях этой группы являются веще-
ственными числами.
Begin1◦. Дана сторона квадрата a. Найти его периметр P = 4·a.
Begin2◦. Дана сторона квадрата a. Найти его площадь S = a2.
Begin3◦. Даны стороны прямоугольника a и b. Найти его площадь S = a·b и
периметр P = 2·(a + b).
Begin4◦. Дан диаметр окружности d. Найти ее длину L = π·d. В качестве
значения π использовать 3.14.
Begin5◦. Дана длина ребра куба a. Найти объем куба V = a3 и площадь его
поверхности S = 6·a2.
Begin6◦. Даны длины ребер a, b, c прямоугольного параллелепипеда. Найти
его объем V = a·b·c и площадь поверхности S = 2·(a·b + b·c + a·c).
Begin7◦. Найти длину окружности L и площадь круга S заданного радиуса R:
L = 2·π·R,
S = π·R2.
В качестве значения π использовать 3.14.
Begin8◦. Даны два числа a и b. Найти их среднее арифметическое: (a + b)/2.
р
ческое, то есть квадратный корень из их произведения: a·b.
◦
частное
их квадратов.
Begin9◦.
Даны два неотрицательных числа
a
и
b.
Найти их
с√еднее
геометри-
Begin10
. Даны два ненулевых числа. Найти сумму,
разность, произведение и
Ввод и вывод данных, оператор присваивания
7
Begin11◦. Даны два ненулевых числа. Найти сумму, разность, произведение и
частное их модулей.
Begin12◦. Даны катеты прямоугольного треугольника a и b. Найти его гипо-
тенузу c и периметр P: √
c =
a2 + b2,
P = a + b + c.
◦
Найти площади этих кругов S 1 и S 2, а также площадь S 3 кольца, внешний
радиус которого равен R1, а внутренний радиус равен R2:
S 1 = π·(R1)2,
S 2 = π·(R2)2,
S 3 = S 1 − S 2.
В качестве значения π использовать 3.14.
Begin14◦. Дана длина L окружности. Найти ее радиус R и площадь S круга,
ограниченного этой окружностью, учитывая, что L = 2·π·R,
S = π·R2. В
качестве значения π использовать 3.14.
Begin15◦. Дана площадь S круга. Найти его диаметр D и длину L окружности,
ограничивающей этот круг, учитывая, что L = 2·π·R,
S = π·R2. В качестве
значения π использовать 3.14.
Begin16◦. Найти расстояние между двумя точками с заданными координата-
ми x1 и x2 на числовой оси: |x2 − x1|.
Begin17◦. Даны три точки A, B, C на числовой оси. Найти длины отрезков AC
и BC и их сумму.
Begin18◦. Даны три точки A, B, C на числовой оси. Точка C расположена
между точками A и B. Найти произведение длин отрезков AC и BC.
Begin19◦. Даны координаты двух противоположных вершин прямоугольника:
(x1, y1), (x2, y2). Стороны прямоугольника параллельны осям координат.
Найти периметр и площадь данного прямоугольника.
Begin20◦. Найти расстояние между двумя точками с заданными координатами
(x1, y1) и (x2, y2) на плоскости. Расстояние вычисляется по формуле
(x2 − x1)2 + (y2 − y1)2.
Begin21◦. Даны координаты трех вершин треугольника: (x1, y1), (x2, y2), (x3, y3).
Найти его периметр и площадь, используя формулу для расстояния меж-
ду двумя точками на плоскости (см. задание Begin20). Для нахождения
площади треугольника со сторонами a, b, c использовать формулу Герона:
S = p·(p − a)·(p − b)·(p − c),
где p = (a + b + c)/2 — полупериметр.
Begin22◦. Поменять местами содержимое переменных A и B и вывести новые
значения
A
и
B.
√
Begin13
. Даны два круга с общим центром и
радиусами
R1
и
R2
(R1
>
R2).
8
М. Э. Абрамян. Электронный задачник Programming Taskbook 4.5
Begin23◦. Даны переменные A, B, C. Изменить их значения, переместив содер-
жимое A в B, B — в C, C — в A, и вывести новые значения переменных A,
B, C.
Begin24◦. Даны переменные A, B, C. Изменить их значения, переместив содер-
жимое A в C, C — в B, B — в A, и вывести новые значения переменных A,
B, C.
Begin25◦. Найти значение функции y = 3x6 − 6x2 − 7 при данном значении x.
Begin26◦. Найти значение функции y = 4(x−3)6 − 7(x−3)3 + 2 при данном
значении x.
Begin27◦. Дано число A. Вычислить A8, используя вспомогательную перемен-
ную и три операции умножения. Для этого последовательно находить A2,
A4, A8. Вывести все найденные степени числа A.
Begin28◦. Дано число A. Вычислить A15, используя две вспомогательные пере-
менные и пять операций умножения. Для этого последовательно находить
A2, A3, A5, A10, A15. Вывести все найденные степени числа A.
Begin29◦. Дано значение угла α в градусах (0 < α < 360). Определить значение
этого же угла в радианах, учитывая, что 180◦ = π радианов. В качестве
значения π использовать 3.14.
Begin30◦. Дано значение угла α в радианах (0 < α < 2·π). Определить значение
этого же угла в градусах, учитывая, что 180◦ = π радианов. В качестве
значения π использовать 3.14.
Begin31◦. Дано значение температуры T в градусах Фаренгейта. Определить
значение этой же температуры в градусах Цельсия. Температура по Цель-
сию T C и температура по Фаренгейту T F связаны следующим соотноше-
нием:
T C = (T F − 32)·5/9.
Begin32◦. Дано значение температуры T в градусах Цельсия. Определить зна-
чение этой же температуры в градусах Фаренгейта. Температура по Цель-
сию T C и температура по Фаренгейту T F связаны следующим соотноше-
нием:
T C = (T F − 32)·5/9.
Begin33◦. Известно, что X кг конфет стоит A рублей. Определить, сколько
стоит 1 кг и Y кг этих же конфет.
Begin34◦. Известно, что X кг шоколадных конфет стоит A рублей, а Y кг ири-
сок стоит B рублей. Определить, сколько стоит 1 кг шоколадных конфет,
1 кг ирисок, а также во сколько раз шоколадные конфеты дороже ирисок.
Ввод и вывод данных, оператор присваивания
9
Begin35◦. Скорость лодки в стоячей воде V км/ч, скорость течения реки U км/ч
(U < V ). Время движения лодки по озеру T 1 ч, а по реке (против течения)
— T 2 ч. Определить путь S, пройденный лодкой (путь = время · скорость).
Учесть, что при движении против течения скорость лодки уменьшается
на величину скорости течения.
Begin36◦. Скорость первого автомобиля V 1 км/ч, второго — V 2 км/ч, расстоя-
ние между ними S км. Определить расстояние между ними через T часов,
если автомобили удаляются друг от друга. Данное расстояние равно сум-
ме начального расстояния и общего пути, проделанного автомобилями;
общий путь = время · суммарная скорость.
Begin37◦. Скорость первого автомобиля V 1 км/ч, второго — V 2 км/ч, расстоя-
ние между ними S км. Определить расстояние между ними через T часов,
если автомобили первоначально движутся навстречу друг другу. Данное
расстояние равно модулю разности начального расстояния и общего пути,
проделанного автомобилями; общий путь = время · суммарная скорость.
Begin38◦. Решить линейное уравнение A·x + B = 0, заданное своими коэффи-
циентами A и B (коэффициент A не равен 0).
Begin39◦. Найти корни квадратного уравнения A·x2 + B·x + C = 0, задан-
ного своими коэффициентами A, B, C (коэффициент A не равен 0), ес-
ли известно, что дискриминант уравнения положителен. Вывести внача-
ле меньший, а затем больший из найденных корней. Корни квадратного
уравнения находятся по формуле
x1, 2 = (−B ±
√
D)/(2·A),
где D — дискриминант, равный B2 − 4·A·C.
Begin40◦. Найти решение системы линейных уравнений вида
A1·x + B1·y = C 1,
A2·x + B2·y = C 2,
заданной своими коэффициентами A1, B1, C 1, A2, B2, C 2, если известно,
что данная система имеет единственное решение. Воспользоваться фор-
мулами
x = (C 1·B2 − C 2·B1)/D,
y = (A1·C 2 − A2·C 1)/D,
где
D
=
A1·B2
−
A2·B1.
10
М. Э. Абрамян. Электронный задачник Programming Taskbook 4.5
