Тема 1. Линейные программы

advertisement
Алгоритмический язык PASCAL
Контрольные задания
1
Ко нт роль ные за да ния по о с нов ам ст ру ктур ног о
про г рамм иро вания на яз ык е Pas cal
Тема 1. Линейные программы ............................................................................... 2
Тема 2. Разветвляющиеся программы................................................................... 3
Тема 3. Циклические программы .......................................................................... 5
Тема 4. Обработка данных строкового типа ........................................................ 8
Темы 5 - 8. Система типов языка Pascal. Перечисляемый тип, тип-диапазон,
множественный тип ................................................................................................ 9
Тема 9. Массивы в языке Pascal ........................................................................... 10
Тема 10. Графика в языке Pascal .......................................................................... 12
Тема 11. Подпрограммы в языке Pascal .............................................................. 14
Тема 12. Тип данных запись (Record) ................................................................. 15
Тема 13. Работа с файлами в языке Pascal .......................................................... 16
Тема 14. Динамические переменные в языке Pascal ......................................... 17
Алгоритмический язык PASCAL
Контрольные задания
2
Тема 1. Линейные программы
Контрольные задания
1.1.
Составить программу, которая вычислит длину окружности и
площадь круга заданного радиуса.
1.2.
Составить программу, которая вводит трехзначное число и выво-
дит число-перевертыш (т.е. число, полученное из введенного перестановкой
цифр слева направо).
1.3.
ного
S
Составить программу вычисления площади треугольника, задандлинами
своих
p( p  a)( p  b)( p  c) , где p 
1.4.
сторон
(по
формуле
Герона
abc
).
2
Составить программу вычисления площади треугольника, задан-
ного координатами своих вершин на плоскости (по формуле Герона
S
p ( p  a )( p  b)( p  c) , где p 
1.5.
abc
).
2
Составить программу, которая поменяет местами значения двух
переменных:
a.) с использованием третьей переменной;
b.) без использования третьей переменной.
1.6.
«Из градусов в радианы». Угол α задан в градусах, минутах и се-
кундах. Найти его величину в радианах с максимально возможной точностью.
1.7.
«Из дюймов в метры». Длина отрезка задана в дюймах (1 дюйм =
2,54 см). Выразить длину отрезка в метрах, сантиметрах и миллиметрах.
Например, 21 дюйм = 0 м 53 см 3,4 мм.
1.8.
«Временной интервал». Заданы моменты начала и конца некото-
рого промежутка времени в часах, минутах и секундах (в пределах одних суток). Найти продолжительность этого промежутка в тех же единицах измерения.
Алгоритмический язык PASCAL
Контрольные задания
3
Тема 2. Разветвляющиеся программы
Контрольные задания
2.1.
Составить программу, которая определит, в какой координатной
четверти лежит точка с координатами (X,Y).
2.2.
Составить программу, которая вычислит корни квадратного
уравнения ax2+bx+c=0.
2.3.
Составить программу, которая определит, поместится ли квадрат
со стороной А в круг радиуса R, или круг в квадрат.
2.4.
«Вид треугольника». Треугольник задан координатами своих
вершин на плоскости. Составить программу, которая определит, является ли
он прямо-, остро- или тупоугольным.
2.5.
«Посылка». Составить программу, которая определит, можно ли
коробку размером axbxc упаковать в посылку размером rxsxt? «Углом» укладывать нельзя.
2.6.
«Кирпич». Составить программу, которая определит, пройдет ли
кирпич со сторонами a, b и c сквозь прямоугольное отверстие со сторонами r
и s? Стороны отверстия должны быть параллельны граням кирпича.
2.7.
«Треугольник и точка». Составить программу, которая опреде-
лит, лежит ли точка М(x,y) внутри треугольника, заданного координатами
своих вершин A, B и C?
2.8.
Составить программу, которая определит, является ли введенное
шестизначное число номером «счастливого» билета (т.е. сумма первых трех
цифр равна сумме последних трех цифр). Указание: используйте тип
LongInt.
2.9.
Три шахматиста играют в шахматы. Известно количество очков,
набранных каждым из них. Составить программу, которая определит, на
сколько очков победитель оторвался от самого слабого игрока.
2.10. Составить программу, которая вводит текущую дату (число, номер месяца и год) и выводит следующую дату. Например, 31 12 2005  1
января 2006.
Алгоритмический язык PASCAL
Контрольные задания
4
2.11. Составить программу, которая вводит текущую дату (число, номер месяца и год) и выводит предыдущую дату. Например, 1 05 2005  30
апреля 2005.
2.12. Составить программу, которая вводит число, обозначающее количество килограммов, и выводит для этого числа наименование «килограмм», «килограмма» или «килограммов». Например, «14 килограммов»,
«73 килограмма», «151 килограмм».
2.13. Составить программу, которая вводит целое число (с произвольным количеством цифр – от одной до пяти) и выводит число-перевертыш.
Например, 21  12; 358  853.
Алгоритмический язык PASCAL
Контрольные задания
5
Тема 3. Циклические программы
Контрольные задания
3.1.
Составить программу, которая позволяет вводить пароль до тех
пор, пока не будет введен верный ответ, либо количество попыток превысит 5.
3.2.
Составить программу, которая выведет на экран все члены убы-
вающей геометрической последовательности с первым членом B и знаменателем q= 0.3, большие числа 1.
3.3.
Задана функция и ее разложение в ряд. Численно убедиться в
справедливости равенства, для чего для заданного значения аргумента вычислить значение функции при помощи стандартной функции языка и разложение с заданной погрешностью. Вывести число итераций, необходимых
для достижения заданной точности.
x3 x5
x 2 n1
n 1
sin x  x 

 ...  (1)
 ...
3! 5!
(2n  1)!
3.4.
Задана функция и ее разложение в ряд. Численно убедиться в
справедливости равенства, для чего для заданного значения аргумента вычислить значение функции при помощи стандартной функции языка и разложение с заданной погрешностью. Вывести число итераций, необходимых
для достижения заданной точности.
2n
x2 x4
n x
cos x  1    ...  (1)
 ...
2! 4!
(2n)!
3.5.
Составить программу нахождения НОД (наибольшего общего де-
лителя) двух чисел. Используйте алгоритм Евклида: большее из двух чисел
заменяется их разностью до тех пор, пока числа не станут равными – это и
есть НОД.
3.6.
«Тренажер». Составить программу, проверяющую знание табли-
цы умножения. Программа должна выводить примеры вида «a*b=», вводить
ответ пользователя, проверять его и выводить одно из сообщений «Верно»
Алгоритмический язык PASCAL
Контрольные задания
6
или «Неверно». В конце работы пользователя должно выводиться количество
правильно решенных примеров и количество сделанных пользователем ошибок, а также выставляться отметка.
3.7.
Изменить программу «Тренажер» так, чтобы в случае неверного
ответа программа предоставляла пользователю сделать еще несколько попыток (например, три). Если же правильный ответ так и не был получен, программа должна сама вывести его на экран.
3.8.
«Расписание звонков». В учебном заведении задается начало
учебного дня, продолжительность «пары» или урока, продолжительность перемены, количество «пар» (уроков). Получить расписание звонков на весь
учебный день.
3.9.
«Расписание». Известно время начала и окончания работы неко-
торого пригородного автобусного маршрута с одним автобусом на линии, а
также протяженность маршрута в минутах (в один конец) и время отдыха на
конечных остановках. Составить суточное расписание этого маршрута (т.е.
время отправления с конечных пунктов).
3.10. На склад поступают груза на машинах различной грузоподъемности. Одновременно на компьютер, обслуживающий склад, поступает информация о весе груза на каждой машине. Составить программу, определяющую
количество машин, прибывших с грузом до полного заполнения склада, если
известно, что склад вмещает 1000 тонн груза.
3.11. Составить программу, которая выведет на экран таблицу умножения на заданное число.
3.12. «Бегущая строка». Составить программу, которая изобразит в
нижней части экрана строку, «бегущую» справа налево. Строка должна менять свой цвет.
3.13. Составить программу, которая выведет на экран таблицу Пифагора размера M x N.
3.14. Составить программу, которая выведет на экран четные числа из
интервала от 1 до N, а также вычислит их сумму.
Алгоритмический язык PASCAL
Контрольные задания
7
3.15. Составить программу, которая выведет на экран нечетные числа
из интервала от 1 до N, а также вычислит их произведение.
3.16. Составить программу, которая выведет на экран все числа из заданного интервала, кратные введенному числу.
3.17. Составить программу, которая вводит сумму баллов, набранных
каждым участником шахматного турнира, и определяет победителя, а также
количество баллов, на которое он оторвался от самого слабого участника.
3.18. Составить программу, которая определит, является ли введенное
число простым (число называется простым, если оно не имеет других делителей, кроме 1 и самого себя).
3.19. Составить программу, которая выведет на экран все простые числа из заданного интервала.
3.20. «Гуси и кролики». У гусей и кроликов вместе 2n лап. Сколько
может быть гусей и кроликов (вывести все возможные сочетания).
3.21. Составить программу, которая формирует случайным образом
числовую последовательность и определяет количество в ней отрицательных
чисел, сумму положительных, а также наименьшее по модулю число.
3.22. Составить программу, которая формирует случайным образом
числовую последовательность и определяет количество четных чисел в ней.
3.23. Составить игровую программу «Угадайка». Программа должна
«загадывать» число из заданного пользователем интервала. Пользователь
угадывает это число, вводя свои варианты ответа, а программа выдает подсказки «Больше» или «Меньше» и ведет подсчет сделанных попыток. После
того, как число отгадано, игру можно повторить.
Алгоритмический язык PASCAL
Контрольные задания
8
Тема 4. Обработка данных строкового типа
Контрольные задания
4.1.
Составить программу, которая удалит из введенной строки все разде-
лители.
4.2.
Составить программу, которая удалит из введенной строки все цифры.
4.3.
Составить программу, которая определит, является ли перевертышем
введенное:


4.4.
слово;
предложение.
Составить программу, которая вводит предложение и выводит те его
слова, которые:





4.5.
имеют заданную длину;
имеют длину больше заданной;
имеют длину меньше заданной;
начинаются с заданной буквы;
заканчиваются на заданную букву.
Составить программу, которая заменит во введенном предложении од-
но слово на другое (слова могут разделяться произвольным набором разделителей).
4.6.
Составить программу, которая вычислит сумму чисел (не цифр!) во
введенном предложении.
4.7.
Составить программу, которая вводит две строки и выводит символы,
которые содержатся как в первой, так и во второй строке.
4.8.
Составить программу, которая вводит две строки и выводит символы
первой строки, которых нет во второй.
4.9.
Составить программу, которая вводит строку и заменяет в ней все
группы пробелов на один пробел (т.е. удаляет все лишние пробелы).
4.10. Составить программу, которая вводит предложение и находит самое
длинное слово в нем.
4.11. Составить программу, которая вводит предложение и находит самое
короткое слово в нем.
Алгоритмический язык PASCAL
Контрольные задания
9
Темы 5 - 8. Система типов языка Pascal.
Перечисляемый тип, тип-диапазон, множественный тип
Контрольные задания
8.1. Составить программу, которая вводит с клавиатуры N чисел и
помещает четные из введенных в множество А, а нечетные – в множество В.
Элементы полученных множеств распечатать.
8.2. Составить программу, которая вводит предложение и формирует
три множества: множество гласных, множество согласных, множество разделителей. Элементы полученных множеств вывести на экран.
8.3. Составить программу, которая вводит с клавиатуры N целых чисел и формирует 5 множеств: одно-, дву-, трех-, четырех- и пятизначных чисел. Элементы полученных множеств вывести на экран.
8.4. Составить программу-тренажер по проверке знания таблицы
умножения на заданное число N (оно должно вводиться с клавиатуры). Программа должна вразброс выводить 10 примеров вида «K * N =» (К изменяется от 1 до 10), причем так, чтобы примеры не повторялись. Пользователь
вводит ответ, после чего программа должна выводить сообщение «Верно»
или «Неверно».
8.5.
«Решето Эратосфена». Алгоритм с таким названием позволяет
выделить простые числа из интервала от 2 до N. Он состоит в следующем:
создаем исходное множество чисел от 2 до N. Множество простых чисел не
начальном этапе пусто. Берем первое число – это 2. Оно является простым
числом, включаем это число в множество простых чисел. Удаляем из исходного множества чисел все числа, кратные 2 (т.е. 2, 4, 6 и т.д.). Вновь берем
первое число из исходного множества чисел. Это 3 – простое число. Включаем его в множество простых чисел, а из исходного множества исключаем все
числа, кратные 3. Снова берем первое число из исходного множества (это
число 5 - простое). Включаем его в множество простых, а из исходного исключаем все числа, кратные числу 5. Эти действия повторяем до тех пор, пока исходное множество чисел не станет пустым.
Алгоритмический язык PASCAL
Контрольные задания
10
Тема 9. Массивы в языке Pascal
Контрольные задания
9.1. Составить программу, которая формирует случайным образом
одномерный массив из N элементов и:
a.) выводит те его элементы, которые встречаются только один раз;
b.) выводит повторяющиеся элементы (примечание: повторяющийся
элемент должен выводиться один раз независимо от того, сколько раз он встречается в массиве).
9.2. Составить программу, которая формирует случайным образом
два одномерных массива из N элементов и:
a.) выводит элементы первого массива, которые не встречаются во
втором;
b.) выводит элементы, встречающиеся как в первом, так и во втором
массивах (примечание: элемент должен выводиться один раз
независимо от того, сколько раз он встречается в массивах);
c.) формирует третий массив из элементов, которые встречаются
только в одном из массивов.
9.3. Составить программу, которая вводит информацию о сотрудниках (фамилия и стаж работы) и:
a.) выводит список сотрудников, фамилии которых начинаются на
заданную букву;
b.) выводит список сотрудников с заданным стажем работы;
c.) выводит список сотрудников, имеющих стаж работы выше среднего;
d.) выводит список сотрудников в алфавитном порядке;
e.) выводит список сотрудников в порядке убывания стажа работы.
9.4. Составить программу, которая формирует случайным образом
массив NxN целых чисел и:
a.) выводит его в виде матрицы;
b.) вычисляет сумму элементов каждой строки;
Алгоритмический язык PASCAL
Контрольные задания
11
c.) находит максимальные элементы каждого столбца;
d.) вывод элементы под главной диагональю;
e.) упорядочивает по возрастанию каждую строку массива.
9.5. «Студенты». Составить программу, которая вводит следующую
информацию о результатах студенческой сессии:
- список студентов,
- список экзаменов,
- оценки студентов за каждый из экзаменов.
Программа должна вывести введенную информацию в виде ведомости.
Например:
Программирование Психология
Педагогика
Математика
1
Иванов
5
5
5
5
2
Петров
2
3
3
2
3
Сидоров
3
4
5
3
…
…
…
…
… …
После этого программа должна обработать эту информацию следующим образом:
a.) вывести список студентов, сдавших сессию на повышенные
оценки;
b.) вывести список отличников;
c.) вывести список неуспевающих (а также названия предметов, по
которым они имеют неудовлетворительные отметки);
d.) вычислить и вывести средний балл каждого студента;
e.) вывести список в порядке убывания среднего балла;
f.) определить предмет, по которому студенты учатся хуже всего, и
предмет, по которому студенты учатся лучше всего.
Алгоритмический язык PASCAL
Контрольные задания
12
Тема 10. Графика в языке Pascal
Контрольные задания
10.1. Составить программу, которая построит произвольный пейзаж.
10.2. Составить программу, которая нарисует на экране мишень из n колец.
10.3. Составить программу, которая нарисует на экране пирамидку из n
уменьшающихся прямоугольников.
10.4. Составить программу, которая нарисует на экране пирамидку из n увеличивающихся прямоугольников.
10.5. Составить программу, которая нарисует на экране многоэтажный дом.
10.6. Составить программу, изображающую лодку, плывущую по реке.
10.7. Составить программу, изображающую в центре экрана отрезок длины
L, вращающийся вокруг одного из своих концов.
10.8. Составить программу, изображающую на экране солнышко с n лучиками длины l.
10.9. Составить программу, изображающую на экране снежинку с n лучиками длины l.
10.10.Составить программу построения графика функции:
a.) y = ax2;
b.) y = sin x;
c.) y = 1/x;
d.) y = tg x;
Построить и подписать также оси координат.
10.11.Дополнить программу, составленную для решения задачи 10.8, движением точки по построенному графику функции.
10.12.Составить программу построения графика функции, заданной параметрически:
a.) астроида:
x = a cos3 t,
y = a sin3 t, где t  [0, 2)
Алгоритмический язык PASCAL
Контрольные задания
13
b.) кардиоида
x = a cos t (1 + cos t),
y = a sin t (1+ cos t), где a>0, t  [0, 2)
c.) спираль:
x = R cos t ,
y = R sin t , где R=t/2, <= t <= 2N
d.) улитка Паскаля:
x = a cos2t + b cos t,
y = a cos t sin t + b sin t, где a>0, b>0, t  [0, 2)
e.) строфоида:
x = a (t 2 – 1)/(t 2 + 1),
y = at (t 2 – 1)/(t 2 + 1), где a>0, t  (-, +)
f.) эпициклоида:
x = (a + b) cos t – a cos ((a + b)t/a),
y = (a + b) sin t – a sin ((a + b)t/a),
где a>0, b>0, t  [0, 2), b/a должно быть целым положительным
числом
g.) циссоида:
x = a t 2 /(1 + t 2),
y = a t 3 /(1 + t 2), где a>0, t  (-, )
10.13.Составить программу, изображающую на экране модель солнечной системы: в центре должно располагаться солнце, вокруг которого с разными угловыми скоростями вращаются две – три планеты, вокруг одной из них должен
обращаться спутник.
Алгоритмический язык PASCAL
Контрольные задания
14
Тема 11. Подпрограммы в языке Pascal
Контрольные задания
11.1. Составить программу, которая вычислит площадь треугольника,
заданного координатами своих вершин. Использовать формулу Герона. Вычисление расстояния между двумя точками оформить в виде процедуры или
функции.
11.2. Составить программу определения НОД трех чисел (по алгоритму Евклида) с использованием процедуры нахождения НОД двух чисел (по
алгоритму Евклида).
11.3. Составить программу, проверяющую гипотезу Гольдбаха. Она
состоит в том, что любое четное число, большее 2, можно представить в виде
суммы двух простых слагаемых. Программа должна вводить четное положительное число и выводить все его возможные представления в виде суммы
двух простых слагаемых. Для определения, является ли число простым, использовать подпрограмму.
11.4. Составить программу, которая изображает на экране:
a. лес
b. аллею
из елей и берез. Рисование ели и березки оформить в виде процедур.
11.5. «Диаграммы». Составить программу, которая вводит N числовых
данных и интерпретирует их в виде столбиковой, круговой, линейной диаграмм. Программа должна в алфавитно-цифровом режиме предоставлять
пользователю меню – список видов диаграмм, позволять выбрать (например,
ввести номер) нужной диаграммы, после чего в графическом режиме построить нужную диаграмму. Каждый из режимов работы программы (ввод данных, построение каждого вида диаграмм) оформить в виде отдельной процедуры.
Алгоритмический язык PASCAL
Контрольные задания
15
Тема 12. Тип данных запись (Record)
Контрольные задания
12.1. Составить программу, которая обрабатывает информацию о
a.) книгах;
b.) товарах на складе;
c.) кинофильмах;
d.) школах города;
e.) факультетах университета;
f.) сотрудниках фирмы.
Информация об объекте должна представлять собой совокупность разнотипных полей (не менее четырех). Программа должна:
1. вводить информацию;
2. выводить информацию на экран;
3. позволять редактировать ее (т.е. изменять значения некоторых
полей);
4. осуществлять поиск по нескольким признакам;
5. выполнять сортировку по нескольким полям.
Алгоритмический язык PASCAL
Контрольные задания
16
Тема 13. Работа с файлами в языке Pascal
Контрольные задания
13.1. Составить две программы. Первая из них записывает в текстовый
файл N строк текста. Вторая должна выводить текст из файла на экран в виде
строк заданной длины.
13.2. «Роза ветров». Файл содержит информацию о том, направлении
ветра в течение каждого для прошедшего года в некотором населенном пункте. Составить программу, которая определяет, в каком направлении от города
нужно строить металлургический комбинат. Файл должен создаваться вспомогательной программой.
12.2. «База данных». Составить программу, которая создает и обрабатывает базу данных о:






книгах;
товарах на складе;
кинофильмах;
школах города;
факультетах университета;
сотрудниках фирмы.
Информация об объекте в базе данных должна представлять собой совокупность разнотипных полей (не менее четырех). Программа должна предлагать пользователю следующие режимы работы:
1.
2.
3.
4.
5.
6.
7.
Ввод данных.
Вывод данных на экран.
Дополнение базы данных.
Редактирование базы данных.
Поиск данных.
Сортировка данных.
Завершение работы.
Программа должна предлагать меню, запрашивать номер требуемого
режима работы, выполнять необходимые действия до тех пор, пока пользователь не выберет режим «Завершение работы».
Алгоритмический язык PASCAL
Контрольные задания
17
Тема 14. Динамические переменные в языке Pascal
Контрольные задания
14.1. Составить программу, которая создает стек из N элементов (произвольного типа) и:
a.) выводит содержимое стека на экран;
b.) вставляет элемент в стек на k-е место;
c.) удаляет элемент с номером k из стека.
14.2. Составить программу, которая создает очередь из N элементов
(произвольного типа) и:
a.) выводит элементы очереди на экран;
b.) вставляет элемент в очередь на k-е место;
c.) удаляет элемент с номером k из очереди.
14.3. Составить программу, которая формирует двунаправленный список из N элементов (произвольного типа) и:
a.) выводит элементы списка на экран;
b.) вставляет элемент в список на k-е место;
c.) удаляет элемент с номером k из списка.
Download