Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Решение задач на ЭВМ. Программирование на языке Pascal. Учебное пособие
.pdf
23. В массивах a и b длины n+1 и k+1 хранятся коэффициенты
двух многочленов степеней n и k. Поместить в массив c длины
n+k+1 коэффициенты их произведения.
24. Дано множестве n точек на плоскости, заданных координатами
(х,y). Найти вторую по удаленности пару в списке всех пар то-
чек данного множества.
25. По матрице a размером 2n*2m построить матрицу b размером
nxm, элементы которой есть суммы четырех элементов соот-
ветствующей ячейки 2*2.
26. Умножить две матрицы порядков m*n и n*k.
27. Транспонировать матрицу относительно главной диагонали.
28. Транспонировать матрицу относительно побочной диагонали.
29. Ряд Фибоначчи задается формулой a1 =1, a2 =2, an = a
n-1
+a
n-2
. Вывести на экран члены ряда от 1 до 35 в четыре столбика по
10 членов (последний неполный). Можно использовать дополнительный массив.
30. Число называется совершенным, если оно равно сумме своих
делителей, включая 1. Например, 6=1+2+3. Найти все совершенные числа от 1 до n и вывести их на экран.
31. В строке определить правильность расстановки круглых скобок
(соответствие открывающих и закрывающих).
32. Написать функцию преобразования целого числа в двоичную
строку.
33. Написать функцию преобразования двоичной строки в целое
число.
Группа C
1. Дан массив A целых чисел, расположенных в возрастающем
порядке. Длина массива – 1024. Для заданного числа x не более чем за 20 сравнений найти номер j элемента, для которого
A[j]x<A[j+1].
2. Слить два упорядоченных по возрастанию массива a и b в мас-
сив c.
3. Не используя другого массива и не используя сортировки, пе-
реставить элементы массива a длины n так, чтобы вначале шли
элементы меньше b, а затем элементы больше b (b задано).
4. Заданную последовательность v длины n преобразовать таким
образом, чтобы вначале шли неположительные, а затем поло-
191

жительные элементы. Не использовать других массивов и не
сортировать массив.
5. Вывести на дисплей календарь января 1997г.
6. Дан массив a целых чисел. Не используя дополнительных мас-
сивов, переставить элементы массива так, чтобы вначале шли
четные, а затем нечетные числа.
7. Дан массив целых чисел a длины m+n, рассматриваемый как
соединение двух его отрезков: начала длины m и конца длины
n. Не используя дополнительных массивов, переставить начало
и конец.
8. Написать процедуру сортировки (любым способом) строк мат-
рицы размером N*N в порядке убывания длины строки (строка
рассматривается как вектор).
9. Дана матрица размером N*N. Определить, где положительных
чисел больше - над главной диагональю (включая ее) или под
ней (не включая главную диагональ). Построить функцию или
фрагмент программы.
10. Определить, есть ли среди делителей числа n два, отличаю-
щихся на единицу.
11. Подсчитать количество делящихся на 11 чисел от 1 до n, в за-
писи которых нет двоек и семерок.
12. Подсчитать сумму всех простых делителей данного числа n
(кратные считать столько раз, какова их кратность).
13. Поместить в массив a все простые делители числа n в порядке
возрастания (с учетом кратности).
14. Проверить правильность расстановки круглых и квадратных
скобок в символьной строке. Указание: хранить дополнительную строку открытых к текущему моменту скобок. Закрывающая скобка должна соответствовать типу последней открытой
скобки.
15. Подсчитать количество слов в заданной строке. Разделителями
считать пробел, точку, запятую и точку с запятой.
16. Написать функцию, удаляющую из строки все повторяющиеся,
лидирующие и замыкающие пробелы.
17. Построение и вывод символьной строки, изображающей n-
ричное представление целого числа, n16.
18. Расставить на шахматной доске восемь ферзей, не бьющих
друг друга.
192

19. Игра "Ханойские башни" состоит в следующем. Есть три
1. 2
7
.
Что такое язык программирования высокого уровня?
1. Язык с большим числом функ-
циональных возможностей
2. Язык программирования,
удобный для человека
3. Язык программирования супер-
ЭВМ
2. 2
8
.
Что такое ключевое
слово?
1. Предназначено для меток в про-
грамме
2. Имеет фиксированное написа-
ние и смысл
3. Специальное слово для пароля
стержня. На первый из них надета пирамидка из n колец
(большие кольца снизу, меньшие сверху). Требуется переместить кольца на второй стержень. Разрешается перекладывать
кольца со стержня на стержень, но класть большее кольцо поверх меньшего нельзя. Написать рекурсивную процедуру, осуществляющую следующую идею: чтобы переложить k верхних
колец с 1-го стержня на 2-ой, надо переложить (k-1) кольцо с 1го стержня на 3-ий, k-ое кольцо переложить на 2-ой стержень, а
затем (k-1) сколько переложить с 3-го стержня на 2-ой.
20. Построить рекурсивную процедуру, определяющую, содержит
ли данное число нечетные простые делители, дающие при делении на 4 остаток 1.
5. Тест для самопроверки
193

3. 2
9
.
Что такое идентификатор?
1. Адрес объекта
2. Указатель на подпрограмму
3.Имя о бъ екта
4. 3
0
.
Алгоритм может быть
выполнен процессором компьютера, если
...
1. Алгоритм записан на алгорит-
мическом языке
2. Алгоритм записан на машинном
языке (в двоичном коде)
3. Алгоритм зафиксирован в виде
блок-схемы
5. 3
1
.
Какие символы можно
включать в идентифи-
каторы?
1. Буквы латиницы, арабские циф-
ры, символ подчеркивания
2. Любые буквы и арабские цифры
3. Буквы латиницы, арабские циф-
ры, специальные символы
6. 3
3
.
Что изменяет операция присваивания?
1. Значение переменной
2. Имя переменной
3. Тип переменной
194

7. 3
4
.
Что такое тип Real?
1. Числа с дробной частью
2. Комплексные числа
3. Целые числа
8. 3
5
.
Что такое тип Integer?
1. Числа с дробной частью
2. Комплексные числа
3. Целые числа
9. 3
6
.
Что такое тип String?
1. Числа с дробной частью
2. Строки
3. Целые числа
10.
Что такое тип Record?
1.Запись, включающую
данные разного типа
2.Комплексные числа
3.Целые числа
195

11.
Чем заканчивается
оператор?
(язык программирования Pascal)
1. Переходом к другой строке
2. Символом точка с запятой
3. Горизонтальным многоточием
12.
Что такое операторные скобки?
(язык программирования Pascal)
1. Фигурные скобки
2. Квадратные скобки
3. Ключевые слова Begin и End,
обрамляющие набор операторов
13.
Для чего используются квадратные скобки?
(язык программирования Pascal)
1. Для указания индексов массива
2. Для иерархической организации
скобок
3. Для размещения внутри них па-
раметров подпрограммы
14.
Для чего используется
горизонтальное двоеточие?
(язык программирования Pascal)
1. Для обозначения продолжения
операции в следующей строке
2. Для задания интервалов
3. Замещает символ пробела
196

15.
Символ операции
присвоения.
(язык программирования Pascal)
1. := без разделителей. Перед
оператором и после него пробелы
не допускаются
2. := без разделителей. Перед
оператором и после него пробелы
допускаются
3. : = Между символами допускается одиночный пробел
№ вопроса
1 2 3 4 5 6 7
8
№ правильного ответа
2 2 3 2 1 1 1
3
№ вопроса
9
10
11
12
13
14
15
№ правильного ответа
2 1 2 3 1 2 2
Таблица проверочных ответов к тесту
197

Федеральное государственное образовательное бюджетное
учреждение высшего профессионального образования
“Поволжский государственный университет
телекоммуникаций и информатики»
443010, г. Самара, ул. Льва Толстого 23
________________________________________________________
Подписано в печать 14.04.14г. Формат 60 x 84/16
Бумага офсетная №1. Гарнитура Таймс.
Заказ 1000751. Печать оперативная. Усл. печ. л. 11,28. Тираж 100 экз.
________________________________________________________
Отпечатано в издательстве учебной и научной литературы
Поволжского государственного университета
телекоммуникаций и информатики
443090, г. Самара, Московское шоссе 77, т. (846) 228-00-44
198
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
