Вы находитесь на странице: 1из 11

Работа с простыми типами данных. Числа. Строки.

1. Дана сторона равностороннего треугольника a. Вычислить высоту этого


треугольника h, его площадь S и периметр p.
2. Отрезок задан координатами (x1, y1) и (x2, y2). Вычислить его длину l и угол наклона
к оси абсцисс φ.
3. Заданы внешний (R) и внутренний (r) радиусы кольца. Найти длины внешней (L) и
внутренней (l) окружностей, а также площадь кольца S.
4. Задана длина окружности l. Найти диаметр d и площадь круга S, ограниченного
этой окружностью.
5. Треугольник задан координатами вершин (x1, y1), (x2, y2) и (x3, y3). Найти периметр p
этого треугольника.
6. Заданы две диагонали ромба d1 и d2. Найти его сторону a и площадь S.
7. Точка задана декартовыми координатами (x, y). Найти ее полярные координаты
(ρ,φ).
8. Парабола y=x2 касается некоторой прямой в точке с координатами (x, y). Какие
отрезки a и b отсекает эта прямая на осях координат?
9. Уравнение параболы имеет вид y=x2+bx+c. Парабола пересекает ось абсцисс в двух
точках – x1 и x2. Найти коэффициенты b и c.
10. Парабола y=ax2+bx+c пересекает ось абсцисс в двух точках – x1 и x2. Каково
расстояние s между этими точками?
11. Известны три стороны треугольника a, b и c. Вычислить его площадь S и периметр
p.
12. У прямоугольного треугольника известны катеты a и b. Найти его гипотенузу c и
углы α и β.
13. У равнобочной трапеции известны высота h и основания a и b. Найти среднюю
линию этой трапеции c, площадь S и периметр p.
14. Равносторонний треугольник вписан в круг радиуса r. Найти сторону этого
треугольника a, площадь S и периметр p.
15. Заданы три ребра прямоугольного параллелепипеда a, b и c. Вычислить его
главную диагональ d, и три диагонали его граней dab, dbc и dac, образованных парами
ребер (a,b), (b,c) и (a,c) соответственно.
16. Два сосуда объемами V1 и V2 содержат растворы медного купороса при
концентрациях c1 и c2 соответственно. Какова концентрация смеси c?
17. В стакан с чаем объема Vсм3 при температуре t1ºС опустили ложечку массой m2 г
при температуре t2ºС. Какой окажется температура чая t после этого? (Плотность
чая считать равной 1г/см3, а теплоемкости чая и материала ложечки – c1 и c2,
соответственно.)
18. Лодка движется по реке со скоростью v относительно воды – сначала вниз по
течению на расстояние s, а затем обратно на такое же расстояние. Скорость течения
– u. Сколько времени t потребовалось на это, и какова была средняя скорость лодки
vср?
19. Расстояние между пунктами A и B равно s. Половину этого расстояния
велосипедист едет со скоростью v1, а вторую половину – v2. Сколько времени t
займет поездка, и какова средняя скорость v велосипедиста?
20. Расстояние между пунктами A и B равно s. Два велосипедиста едут из них
навстречу друг другу со скоростями v1 и v2 соответственно. Через какое время t они
встретятся, и каковы будут расстояния a и b (от пунктов A и B соответственно)
места встречи?
21. Тело свободно падает с высоты h. Какова его скорость v в момент приземления, и
сколько времени t длилось падение? (Ускорение свободного падения g считать
константой, равной 9,81м/сек2.)
22. Ускорение свободного падения g на поверхности Земли равно 9,81м/сек2, а радиус
Земли R=6000км. Радиус орбиты спутника – Rsp. Каковы скорость спутника v и
период обращения T?
23. Стрелки часов показывают ровно полдень. Сколько часов h, минут m и секунд s
пройдет до момента, когда минутная стрелка вновь накроет часовую?
24. Диаметр колеса паровоза – d метров. Сколько оборотов в минуту n делает колесо
при скорости поезда v км/ч?
25. Радиус железнодорожного закругления r метров. Длина рельсового пути на нем – s
метров. Сколько градусов φ в дуге закругления?
26. В вершинах A, B и C правильного треугольника расположены массы mA, mB и
mC. На каких расстояниях a, b, и c соответственно от вершин A, B и C
расположен цент масс этих точек?
27. В одном дюйме – 2,54 см, а один фут равен – 12 дюймов. Каков рост человека в
футах и дюймах, если его рост в сантиметрах – h?
28. Даны три числа a, b и c. Вычислить суммы их кубов (S3), четвертых (S4) и пятых (S5)
степеней.
29. Заданы два числа a и b. Вычислить их среднее арифметическое (ma),
геометрическое (mg) и гармоническое (mh).
30. Заданы два члена a1 и a2 некоторой прогрессии. Какова будет сумма n членов этой
прогрессии, если она арифметическая (Sa), и какова она будет, если прогрессия
геометрическая (Sg)?

Написание программ с ветвлениями и циклами.


1. Даны три числа a, b и c. Найти произведение наибольшего из этих чисел на
наименьшее.
2. Три числа a1, a2 и a3 образуют прогрессию. Какая это прогрессия: арифметическая
или геометрическая?
3. Решить квадратное уравнение ax2+bx+c=0.
4. Часы показывают h часов m минут и s секунд. Через какое время минутная и
часовая стрелки окажутся на одной линии?
5. Даны три числа a, b и c. Если все они положительные, вычислить среднее
геометрическое этих чисел, в противном случае – среднее арифметическое.
6. Даны три числа a, b и c. Могут ли они быть сторонами треугольника?
7. В какой четверти лежит точка M с координатами (x,y)?
8. Какая из трех точек M(x1,y1), N(x2,y2) или K(x3,y3) ближе к началу координат?
9. Радиус круга – r, сторона правильного треугольника – a, а сторона квадрата – b.
Какая из этих фигур имеет большую площадь?
10. Лежит ли точка M(x,y) внутри кольца с центром в начале координат, внешним
радиусом R и внутренним радиусом r?
11. Стороны двух прямоугольников – a1,b1 и a2,b2 соответственно. Может ли один из
них лежать внутри другого?
12. Ферзь находится на поле xy, где x – буква от ‘a’ до ‘h’, а y – цифра (от 1 до 8).
Угрожает ли он полю x1y1?
13. Как расположена точка M(x,y) относительно прямой y=ax+b? Выше, ниже или на
ней?
14. Лежат ли три точки M(x1,y1), N(x2,y2), K(x3,y3) с целочисленными координатами на
одной прямой?
15. Дано действительное число x. Принадлежит ли оно области определения функции
 1 + cos a x  sin x
f ( x ) = ln sin x ⋅ + ?

 ax ⋅ sin ( ax ) 
 x

16. С заданной точностью ε вычислить сумму ряда 1


( − 1) 1 + ( − 1) 2 +  + ( − 1) n + 
4 + 5 2 4 2 + 53 4 n + 5 n +1
.
17. Дано действительное число x. С заданной точностью ε вычислить сумму ряда

1−
x2 x4
+ − +
( − 1) n x 2 n +  .
2! 4! ( 2n )!
18. Дано натуральное число n. Вычислить произведение
 1  1   1 
P = 1 + 1 +   1 +  .
 1 ⋅ 2  2 ⋅ 3   n ⋅ ( n + 1) 
19. Сколько “счастливых” билетов в полной катушке? (Катушка начинается с билета
000000 и кончается билетом 999999.)
20. Является ли введенное с клавиатуры число n простым? (Простым называется
натуральное число, большее единицы и не делящееся ни на какие целые числа,
кроме его самого и единицы.)
21. Распечатать таблицу ASCII. Для каждого символа привести его десятичный и
шестнадцатеричный коды. (Внимание! Первые 32 символа таблицы ASCII не
имеют графического изображения. Эти символы изображать пробелом.)
22. С клавиатуры вводится действительное число x, целое число n и n+1
действительных чисел an,an-1,…,a0, являющиеся коэффициентами многочлена
a n x n + a n −1 x n −1 +  + a 0 . Вычислить значение этого многочлена в точке x.
23. С клавиатуры вводится целое число n и последовательность из n чисел a1,a2,…,an.
Какова длина максимальной подпоследовательности, состоящей из одних нулей?
24. С клавиатуры вводится целое число n и последовательность из n чисел a1,a2,…,an.
Какова длина максимальной монотонной (неважно, возрастающей или убывающей)
подпоследовательности?
25. С клавиатуры вводится действительное число x, целое число n и
последовательность из n чисел a1,a2,…,an. Каков номер числа, наиболее близкого к
x.
26. С клавиатуры вводится целое число n и последовательность из n чисел a1,a2,…,an.
Вывести номера наибольшего и наименьшего из этих чисел.
27. С клавиатуры вводится целое число n и последовательность из n чисел a1,a2,…,an.
Найти три наибольших числа в этой последовательности.
28. С клавиатуры вводится целое число n и последовательность из n чисел a1,a2,…,an.
Вычислить матожидание M и дисперсию D этих чисел. Воспользуйтесь формулами
n

∑(a −M)
2
i
1 n
.
M = ∑
n i =1
ai D = i =1
n −1
29. С клавиатуры вводится целое число n и последовательность из n пар (x1,y1),
(x2,y2), …, (xn,yn). Рассматривая каждую пару как декартовы координаты точки,
найти наименьший радиус круга, содержащего все эти точки.
30. Натуральные числа из диапазона [1,n] вводятся в произвольном порядке.
Одно из этих чисел (и только одно) оказалось введенным дважды вместо
какого-то другого числа. Что это за число, и вместо какого числа оно введено?
31. Натуральные числа из диапазона [1,n] вводятся в произвольном порядке. Одно (и
только одно) из этих чисел “забыли” ввести. Что это за число?
32. Машинным нулем называется наименьшее положительное действительное число ε
такое, что 1+ε=1. Найти машинный ноль.
33. Заданное неотрицательное целое число n представить в шестнадцатеричной
системе.

Работа с массивами.
1. Заменить максимальный и минимальный элементы массива средним
арифметическим элементов того же массива.
2. Поменять местами минимальный и максимальный элементы массива.
3. Записать массив в обратном порядке.
4. Выполнить циклический сдвиг массива влево так, чтобы на месте 1-го элемента
оказался 2-ой, на месте 2-го – 3-ий …, а на месте последнего – 1-ый.
5. Выполнить циклический сдвиг массива вправо так, чтобы 1-ый элемент оказался на
месте 2-го, 2-ой – на месте 3-го …, а последний перешел на место 1-го.
6. В заданном целочисленном массиве переставить элементы так, чтобы в начале
находились четные, а за ними – нечетные числа.
7. Расположить элементы заданного массива так, чтобы элементы, не превосходящие
заданное значение M, располагались левее всех остальных.
8. Заменить все нулевые элементы массива, предшествующие первому
отрицательному элементу, на –1.
9. Заменить все отрицательные элементы массива, следующие за последним
положительным элементом, на 0.
10. В заданном массиве заменить все наибольшие элементы на –1.
i

11. По заданному массиву A вычислить массив кумулятивных сумм S i = ∑ A j .


j =1

12. Символьный массив A состоит только из заглавных букв латинского алфавита. Для
каждой буквы подсчитать, сколько раз она входит в этот массив.
13. В заданном целочисленном массиве удалить все повторы. (Т.е. каждое число,
встречающееся более одного раза оставить в единственном экземпляре.)
14. По заданному массиву A составить два массива B и C, поместив в B элементы,
расположенные на четных местах A, а в C – на нечетных.
15. Заданы два целочисленных массива – A и B. Найти тот элемент массива A, который
чаще всего встречается среди элементов B.
16. Заменить каждый элемент массива A на среднее арифметическое его самого,
прешествующего и следующего за ним. Считать, что первому элементу
предшествует, а за последним следует тот же самый элемент.
17. Дана n*n матрица A. Транспонировать ее.
18. Дана m*n матрица A и n-компонентный вектор b. Получить произведение A*b.
19. Дана m*n матрица A. Переставить ее столбцы в обратном порядке.
20. Перестановкой двух строк и двух столбцов матрицы A расположить ее наибольший
элемент в левом верхнем углу.
21. Седловым элементом матрицы называется элемент, являющийся одновременно
наибольшим в своей строке и наименьшим в столбце. Найти седловой элемент
матрицы A.
22. Повернуть квадратную матрицу A против часовой стрелки на 90º так, чтобы левый
верхний элемент оказался на месте левого нижнего, левый нижний – правого
нижнего и т.д.
23. Задана квадратная матрица. Является ли она магическим квадратом? Т.е., равны ли
друг другу все суммы строк, столбцов и диагоналей?
24. Турнирная таблица чемпионата по футболу представлена квадратной матрицей пар
целых чисел. При этом (i,j)-ая пара задает счет матча, в котором i-ая команда
принимала j-ую, где 1-ый элемент пары – число мячей забитых хозяевами, а 2-ой –
гостями. Для каждой команды определить количество набранных очков (3 очка за
выигрыш, 1 – за ничью и 0 – за поражение) и разность забитых и пропущенных.
Определить чемпиона (-ов).
25. Турнирная таблица чемпионата по шахматам представлена квадратной матрицей,
элементы которой принимают 3 возможных значения: ‘w’ (win – победа), ‘d’ (draw –
ничья) и ‘l’ (loose – поражение). Для каждого участника определить сумму
набранных очков (1 очко за выигрыш, 1/2 – за ничью, 0 – за поражение) и рейтинг
(сумма очков участников, у которых данный участник выиграл, плюс половина
очков участников, в матчах с которыми зафиксирована ничья). Определить
победителя (-ей) турнира.
26. В прямоугольной матрице поменять местами строки, содержащие максимальный и
минимальный элементы. (Считать, что такие элементы единственны.)
27. Для прямоугольной матрицы вычислить сумму абсолютных величин наибольших
по модулю элементов строк.
28. Назовем “особым” элементом строки элемент, больший суммы остальных
элементов строки. Для заданной прямоугольной матрицы составить список
“особых” элементов.
29. В прямоугольной матрице заменить каждый элемент средним арифметическим его
самого и соседей слева, справа, сверху и снизу (для крайних элементов значениями
отсутствующих соседей считать значение самого элемента).
30. В квадратной матрице изменить знаки у всех отрицательных элементов,
расположенных над главной диагональю, и всех положительных элементов под
этой диагональю.
31. По заданной прямоугольной матрице составить два вектора. В первый вектор
поместить максимальные элементы строк, а во второй – минимальные элементы
столбцов.

Использование записей.
В следующих заданиях требуется объявить как константу массив не менее чем из 10-ти
записей, содержащих сведения об автовладельцах: фамилия, имя, отчество, годовой доход,
марка автомобиля, регистрационный номер автомобиля, цвет кузова, год выпуска, объем
двигателя, цена.
1. Распечатать список автовладельцев трех самых популярных марок.
2. Распечатать список автовладельцев, чей пятикратный доход не превышает цены
автомобиля.
3. Распечатать список автовладельцев, номера автомобилей которых содержат 3
одинаковые цифры.
4. Определить самый популярный цвет среди автовладельцев, чей доход выше
среднего.
5. Определить самый старый автомобиль среди тех, чья цена ниже средней.
6. Найти 3 марки автомобиля, наилучших по соотношению объем двигателя / цена.
7. Определить наименее популярную марку автомобиля с объемом двигателя более
Vсм3.
8. Какова средняя цена автомобиля, выпушенного до Y-го года?
9. Каков средний доход владельцев автомобилей черного цвета и объемом двигателя
более Vсм3?
10. Владельцы автомобилей какого цвета, имеют наибольший средний доход?
11. Какова средняя цена автомобиля, объем двигателя которых лежит в пределах от
V1см3 до V2см3?
12. Определить количество владельцев автомобилей с объемом двигателя менее Vсм3 и
выпущенных до Y-го года.
13. Определить марку, автомобили которой чаще всего красные.
14. Каков средний доход владельцев автомобилей, чья цена ниже средней?
15. Определить наиболее популярную марку автомобиля, цена которого не превышает
трехлетнего дохода его владельца.
В следующих заданиях требуется объявить как константу массив не менее чем из 10-ти
записей, содержащих сведения о студентах, сдававших зимнюю сессию: фамилия, имя,
отчество, пол, число, месяц и год рождения, домашний адрес с указанием города и улицы,
среднедушевой доход семьи, оценки по физике, математике, программированию и истории
отечества.
16. По каким предметам средний балл девушек выше среднего балла юношей?
17. Подсчитать количество неуспевающих студентов, чей доход выше среднего.
18. Уроженцы какого города чаще учатся на четверки и пятерки?
19. Где больше неуспевающих студентов – среди уроженцев Красноярска или
иногородних студентов?
20. По какому предмету больше всего неуспевающих студенток?
21. Составить список студентов, имеющих не менее трех задолженностей.
22. Составить список юношей старше 18-ти лет и имеющих задолженности.
23. Составить список успевающих студентов, чей средний балл ниже 4-ех, а доход –
5000р.
24. Составить список успевающих иногородних студентов с доходом ниже 5000р.
25. Какую оценку чаще всего получали девушки по программированию?
26. Каких студентов больше: имеющих двойку по программированию и пятерку по
истории или наоборот?
27. По какому предмету самый высокий средний балл среди иногородних студентов?
28. Найти самого молодого студента, учащегося на четверки и пятерки.
29. Среди студентов, получивших пятерки по программированию и математике, найти
четырех с наибольшим средним баллом.
30. Среди студентов, чей доход выше среднего, по какому предмету средний балл
больше всех?

Разработка программ с процедурами и функциями.


В следующих 15-ти заданиях требуется оформить как процедуры ввод, вывод матрицы и
заполнение матрицы случайными числами. Кроме того, для каждого задания потребуется
написать ряд других процедур или функций, в зависимости от задачи.
1. Написать процедуру сортировки строк матрицы в порядке неубывания суммы
абсолютных величин элементов. Оформить как функцию вычисление суммы
абсолютных величин элементов строки и как процедуру – перестановку строк.
2. Написать процедуру сортировки строк матрицы в порядке неубывания
максимального по модулю элемента. Оформить как функцию вычисление
максимального по модулю элемента строки и как процедуру – перестановку строк.
3. Написать процедуру сортировки строк матрицы из натуральных чисел в порядке
неубывания суммы простых элементов строки. Оформить как функции вычисление
суммы простых элементов строки и определение простоты числа и как процедуру –
перестановку строк.
4. Написать процедуру умножения матриц. Вычисление произведения строки на
столбец оформить как функцию.
5. Написать процедуру, вычисляющую для произвольной матрицы A матрицу
( )
1 2 A + A Τ . Транспонирование матрицы, сложение матриц и умножение матрицы
на число оформить как процедуры.
6. Написать процедуру, переводящую в верхний левый угол максимальный по модулю
элемент. Поиск максимального по модулю элемента, перестановку строк и
столбцов оформить как процедуры.
 
7. Написать процедуру решения системы линейных уравнений Ax = b итерационным

методом. В реализуемом методе исходное значение x задается произвольно, а
значение на n-ом итерационном шаге пересчитывается по формуле
 
( 
)
x := x − 1 / n Ax − b . Итерации ведутся, пока величина скалярного произведения
(    
)
Ax − b , Ax − b не станет меньше наперед заданного ε. Вычисление разности
векторов, умножение матрицы на вектор и вектора на число оформить как
процедуры, вычисления скалярного произведения – как функцию.
8. Написать процедуру поиска седловой точки матрицы. Элемент матрицы называется
седловой точкой, если он одновременно максимален в своей строке и минимален в
столбце. Оформить как функции поиск максимума в строке и проверку, будет ли
заданный элемент минимальным в столбце.
9. Элементы матрицы A и вектора b – нули или единицы. Написать процедуру
сортировки строк матрицы A в порядке неубывания количества несовпадений
элемента строки с соответствующим элементом вектора b. Подсчет несовпадений
оформить как функцию, перестановку строк – как процедуру.
10. Написать процедуру, переставляющую две матрицы в том случае, когда норма
первой матрицы больше чем второй. В качестве нормы взять сумму абсолютных
величин максимальных по модулю элементов строк. Оформить как функции
нахождение максимального по модулю элемента строки и вычисление нормы.
11. Написать функцию, определяющую будет ли заданная целочисленная матрица
магическим квадратом. (Матрица называется магическим квадратом, если все
суммы строк, столбцов и диагоналей одинаковы.) Оформить как функции
нахождение сумм элементов строки, столбца и диагоналей.
12. Назовем допустимым преобразованием прибавление к строке матрицы другой
строки, умноженной на некоторое число. Написать процедуру, которая посредством
допустимых преобразований получает в первом столбце нули на всех местах, кроме
первого, затем (не затрагивая первого столбца и первой строки) во втором столбце
нули на всех местах, кроме первого и второго, и так далее, пока матрица не
преобразуется в верхнетреугольную. Допустимое преобразование оформить как
процедуру.
13. Написать процедуру, вычитающую из каждого элемента строки матрицы
минимальный элемент этой строки, а затем, из каждого столбца минимальный
элемент столбца. Поиск минимальных элементов строки и столбца оформить как
функции, а вычитания числа из строки и столбца оформить как процедуры.
14. Написать процедуру, вычеркивающую из матрицы строку и столбец, на
пересечении которых располагается максимальный элемент матрицы. Поиск
максимального элемента, а также вычеркивания строки и столбца оформить как
процедуры.
15. Матрица называется ортогональной, если транспонированная к ней матрица
совпадает с обратной. Написать функцию, проверяющую, является ли заданная
матрица ортогональной. Транспонирование и умножение матриц оформить как
процедуры. Умножение строки на столбец, а также проверку совпадения заданной
матрицы с единичной оформить как функции.
Следующие 15 заданий следует сочетать с предыдущими. Во всех этих заданиях
используется рекурсия.
16. Арифметическое выражение представлено строкой, содержащей идентификаторы
переменных, числовые константы, знаки арифметических операций и скобки.
Написать функцию, проверяющую в заданном арифметическом выражении
правильность расстановки скобок.
17. Маска файла представляет собой строку, состоящую из символов, допустимых в
имени файла, и знаков ‘?’ и ‘*’. Вопросительный знак можно заменять на
произвольный символ, допустимый в имени файла, а ‘*’ – на произвольную (в том
числе пустую) строку из таких символов. Если некоторая строка может быть
получена таким способом, то говорят, что она допускается заданной маской.
Написать функцию, определяющую допускается или нет произвольная строка s
заданной маской m.
18. Задача о Ханойской башне формулируется так:
На трех колышках A, B и C расположены n дисков различных размеров в
порядке убывания размера. Первоначально все диски расположены на колышке
A. Требуется переместить их на колышек B с сохранением порядка. За один
шаг допускается перенос только одного диска с колышка X на Y при
произвольных X и Y.
Написать программу решения этой задачи. В качестве результата программа
должна выдать последовательность команд вида ‘X->Y’. Перенос k дисков с
колышка X на Y оформить как процедуру.
19. Города пронумерованы натуральными числами от 1 до n, а карта дорог
представлена n×n-матрицей, содержащей 1 на (i,j)-ом месте, если города i и j
соединены дорогой, и 0 – в противном случае. Написать функцию, проверяющую
возможность проехать из города i в город j.
20. На шахматной доске расставить 8 ферзей так, чтобы они не били друг друга.
Расстановку k оставшихся ферзей после того, как остальные уже расставлены,
оформить как процедуру. Проверку возможности постановки очередного ферзя на
заданное место оформить как функцию.
21. На шахматной доске расставить 12 коней так, чтобы они не били друг друга, но при
этом пробивали все остальные поля. Расстановку k оставшихся коней после того,
как остальные уже расставлены, оформить как процедуру. Проверку возможности
постановки очередного коня на заданное место оформить как функцию.
22. Логические выражения представлены в функциональной форме в виде строк со
структурой
<выражение>::=false|true|<унарная операция>(<выражение>)|
<бинарная операция>(<выражение>,<выражение>)
<унарная операция>::=not
<бинарная операция>::=and|or
Написать функцию, вычисляющую такие выражения.
23. Написать функцию, вычисляющую сколькими способами можно представить
заданное натуральное число n в виде суммы натуральных чисел. При подсчете
числа вариантов порядок слагаемых игнорируется.
24. Написать процедуру разложения произвольного натурального числа в произведение
вида p1^k1×p2^k2×…×pn^kn, где pi – различные простые числа, а ki – натуральные
числа, отличные от нуля.
25. В монетной системе используется n достоинств монет. Номиналы каждого
достоинства представлены в массиве из n целых чисел. Написать функцию,
вычисляющую сколькими способами можно разменять монету заданного
достоинства.
26. Символьная строка содержит выражение вида ‘A@B@C…’, где буквы заменяются
на заданные числа, а вместо любого символа ‘@’ допускается вставить любой из
знаков ‘+’,’-‘,’*’,’/’, либо один (и только один) знак равенства. Написать процедуру
подбора расстановки, обеспечивающей точное равенство. Вычисление выражений
оформить как функцию.
27. Объем ранца – V. Имеется n предметов. Для каждого предмета заданы его объем и
стоимость. Требуется отобрать часть предметов так, чтобы их стоимость была
максимальной, а суммарный объем не превышал объема ранца. Написать
подпрограмму, решающую эту задачу.
28. Имеется n городов (n<20). Стоимость поездки из города i в город j задана n×n-
матрицей (cij). Коммивояжеру требуется, исходя из заданного города, посетить по
одному разу все остальные города и вернуться в исходный. Составить процедуру,
вычисляющую наименьший по стоимости маршрут.
29. Имеется n сотрудников и n должностей. Каждый сотрудник может, в принципе,
занимать любую должность, однако эффективности использования i-го сотрудника
в j-ой должности – cij – различны и заданы n×n-матрицей. Написать процедуру,
вычисляющую наиболее эффективную расстановку сотрудников.
30. Прямоугольный n×m лабиринт задан матрицей из нулей и единиц, где 0 означает
место, доступное для перемещения, а 1 – занятое стенкой. Написать процедуру,
вычисляющую кратчайший маршрут из пункта (i1,j1) в пункт (i2,j2).
Дополнительные задачи.
31. Натуральное число n называется совершенным, если оно равно сумме его
делителей, исключая единицу и само это число. Написать программу,
определяющую является ли заданное число n совершенным. Вычисление суммы
делителей оформить как функцию.

Сортировка массивов
Во всех вариантах требуется реализовать 2 метода сортировки из приведенного ниже
списка. Для каждого метода предусмотреть подсчет количества операций сравнения
элементов массива, потребовавшихся для его сортировки. Провести серию машинных
экспериментов по определению зависимости числа операций сравнения от длины
сортируемого массива. Построить (от руки) графики. Сравнить между собой
реализованные методы. Сделать выводы.
Методы сортировки:
a. расстановкой
b. “пузырьком”
c. с поиском минимума
d. вставкой
e. слиянием
f. пирамидой
g. “быстрая сортировка”
h. сортировка Шелла
i. деревом
Варианты заданий:
вариант методы вариант методы вариант методы
1 a,b 11 b,e 21 c,i
2 a,c 12 b,f 22 d,e
3 a,d 13 b,g 23 d,f
4 a,e 14 b,h 24 d,g
5 a,f 15 b,i 25 d,h
6 a,g 16 c,d 26 d,i
7 a,h 17 c,e 27 e,f
8 a,i 18 c,f 28 e,g
9 b,c 19 c,g 29 f,g
10 b,d 20 c,h 30 f,h

Работа с файлами.
Текстовые файлы:
1. В файле, содержащем программу на языке Паскаль, проверить правильность
расстановки операторных скобок ‘begin-end’. Считать, что среди комментариев и в
строковых константах эти слова, а также слова ‘record’ и ‘case’ не встречаются.
2. Составить словарь всех слов, встречающихся в заданном текстовом файле. Для
каждого слова определить сколько раз оно встречается.
3. Из заданного текстового файла удалить все слова, содержащие удвоенные гласные.
Разбивка по строкам результирующего текста должна соответствовать
максимальной заполненности строк.
4. Образец слова задается его длиной и расположением гласных букв, например
‘абаба’ (длина 5, гласные на 1-ом, 3-ем и 5-ом месте). В заданном текстовом файле
найти все слова, соответствующие заданному образцу.
5. Из заданного текстового файла удалить все слова, у которых первая буква
встречается еще дважды. Разбивка по строкам результирующего текста должна
соответствовать максимальной заполненности строк.
6. В заданном текстовом файле найти все слова перевертыши.
7. В заданном текстовом файле заменить слова, не встречающиеся в заданном
словаре, на последовательность вопросительных знаков длиной, совпадающей с
длиной заменяемого слова.
8. Из строк заданного текстового файла создать один абзац, выровняв все строки на
заданную длину посредством вставки между словами необходимого числа
пробелов. (Вставляемые пробелы должны равномерно распределяться по строке.)
9. Имеется словарь, в котором слова разбиты для переноса – в местах, где можно
разбить слово, стоят знаки ‘-‘. Текст, содержащийся в заданном текстовом файле,
разбить на строки так, чтобы длина каждой строки была максимальной, но не
превышала заданной константы. Для переноса слов использовать словарь, а если
слово отсутствует в словаре использовать правило: перенос допускается после
гласной, но перед согласной, и при этом каждая из частей слова содержит более
одной буквы.
10. В заданный текстовый файл вставить после каждого вхождения слова ‘Красноярск’
текст ‘ (столица Сибири) ’. Проследить за тем, чтобы длина каждой строки не
превысила заданной константы (при необходимости переносить слова из конца
текущей строки в начало следующей).
11. В заданном текстовом файле заменить слово ‘Канск’, а также все его производные,
на слова, соответствующие слову ‘Красноярск’. Проследить за тем, чтобы длина
каждой строки не превысила заданной константы (при необходимости переносить
слова из конца текущей строки в начало следующей).
12. В заданном тексте заменить все десятичные числа на их шестнадцатеричные
эквиваленты. (Обратите внимание на десятичные дроби – их заменять на
ше стнадцатеричные.)
13. Удалить из заданного текстового файла все предложения, содержащие заданное
слово. Разбивка по строкам результирующего текста должна соответствовать
максимальной заполненности строк.
14. В заданном текстовом файле, содержащем текст на русском языке выполнить
транслитерацию, заменив русские буквы на латинские. Использовать следующие
правила замены: е-je, ш-sh, щ-shch, ъ-‘, ы-y, ж-zh, я-ja, ч-ch, ь-j, ю-ju. Разбивка по
строкам результирующего текста должна соответствовать максимальной
заполненности строк.
15. В текстовом файле округлить те десятичные дроби, что содержат более двух знаков
после запятой до двухзначных дробей.

Динамические структуры данных. Списки.

Разработка структур типа дерево.

Организация диалога.

Вам также может понравиться