СБОРНИК ПРАКТИЧЕСКИХ ЗАДАНИЙ Задачи и решения по теме «Программирование на языке PASCAL» по предмету «Основы информатики и ИКТ » Автор: преподаватель высшей категории Рожкова Г.Е. г.Лермонтов 2012 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения 2 СОДЕРЖАНИЕ Введение 1. 2. 3 Практические задания 4 1.1. Тема 1: Ввод, вывод данных. Арифметические действия 4 1.2. Тема 2: Ветвление в программе. Условный оператор, оператор выбора 5 1.3. Тема 3: Циклы 6 Решения 9 2.1. Тема 1: Ввод, вывод данных. Арифметические действия 9 2.2. Тема 2: Ветвление в программе. Условный оператор, оператор выбора 14 2.3. Тема 3: Циклы 19 Заключение 34 Список рекомендуемой литературы 35 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения 3 ВВЕДЕНИЕ В современном мире специалисту любого профиля, да и вообще любому человеку, необходимо уметь мыслить логически для решения самых разнообразных задач, как жизненных, так и профессиональных. Ничто так не развивает логическое мышление, как занятие разработкой алгоритма решения поставленной задачи и непосредственно процесс программирования. Именно поэтому основы программирования на какомлибо алгоритмическом языке изучают в рамках учебной дисциплины «Основы информатики и ИКТ». Кроме того, программирование – это очень творческое, увлекательное занятие. Как сказал Дональд Кнут в своей монографии «Искусство программирования», «оно может вызвать эстетические переживания, подобные тем, которые испытывают творческие личности при написании музыки или стихов». В данном сборнике приведены задачи, для решения которых надо составить программы (раздел 1), и их решение (раздел 2) на языке Pascal в системе PascalABC, а именно, исходный текст программы и окно выполнения. Для некоторых задач, где есть ветвление, приведено два варианта выполнения программы. Существует несколько модификаций языка программирования Pascal, наиболее популярная из них – TurboPascal. PascalABC отличается от TurboPascal незначительно, в основном различия касаются типов данных. Следует иметь в виду, что многие действия можно реализовать в программе разными способами. В данном сборнике в каждом случае приводится один из возможных вариантов решения. Цель настоящего пособия – помочь учащимся освоить основы программирования на языке Pascal. Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения 4 1. ПРАКТИЧЕСКИЕ ЗАДАНИЯ 1.1.Тема: Ввод, вывод данных. Арифметические действия Задача № 1. Ввести два целых числа. Вычислить их сумму. Результат вывести на экран. Задача № 2. Ввести длину и ширину прямоугольника (два целых положительных числа). Вычислить площадь и периметр прямоугольника. Результат вывести на экран. Задача № 3. Вычислить площадь круга по формуле: S = 3,14R2. Радиус вводить с клавиатуры. Результат вывести на экран в виде: «Радиус равен . . . , площадь равна . . .» Задача № 4. Ввести с клавиатуры четырехзначное число. Вычислить произведение цифр этого числа. Результат вывести на экран. Задача № 5. Ввести координаты (x, y) точки на плоскости. Вычислить расстояние от точки до начала координат. Результат вывести на экран. Задача № 6. Составить программу, организующую следующий диалог. ЭВМ: Меня зовут IBM. А тебя? Студент: < имя > ЭВМ: А фамилия? Студент: < фамилия > ЭВМ: Какое твое любимое занятие? Студент: < хобби > ЭВМ: Понятно. Твое хобби - . . . . Тебя зовут . . . , фамилия . . . . Задача № 7. Составить программу, организующую следующий диалог. ЭВМ: В каком городе ты живешь? Студент: ввести ответ < название города > ЭВМ: Как называется твоя улица? Студент: < название улицы > ЭВМ: А номер дома? Студент: < номер дома > ЭВМ: Понял, ты живешь по адресу: г. . . . , ул. . . . , дом № . . . . Задача № 8. Составить программу, организующую следующий диалог. ЭВМ: Я компьютер. А как тебя зовут? Студент: ввести ответ < имя > ЭВМ: Привет, . . .! ЭВМ: А фамилия? Студент: ввести ответ < фамилия > Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения ЭВМ: учишься? Студент: ЭВМ: ЭВМ: Студент: ЭВМ: Студент: ЭВМ: Студент: ЭВМ: ЭВМ: Студент: ЭВМ: Студент: ЭВМ: Студент: 5 Я знаю еще одного студента с фамилией . . . . На каком курсе < номер курса > Так ты уже < номер курса >- курсник! А в какой группе ты учишься? < шифр группы > Итак, ты учащийся . . . курса . . . группы Да, скоро перейду на . . . курс А "двойки" у тебя есть? < ответ (да \ нет) > У моего приятеля тоже . . . Какое у тебя хобби? < ответ > Так ты занимаешься в секции . . . а? < ответ (да \ нет) > Приятно было познакомиться, . . . ! Пока, компьютер 1.2.Тема: Ветвление в программе. Условный оператор, оператор выбора Задача № 9. Ввести с клавиатуры два целых числа из диапазона от 0 до 255. Если первое из них больше второго, то вычислить их сумму, а иначе вычислить их произведение. Результат вывести на экран. Задача № 10. Ввести с клавиатуры вещественное число M. Вычислить значение функции N по следующему алгоритму: N = 4 M + 5 при M ≥ 2 N = 3 M – 8 при M < 2 Вывести на экран значение M и результат. Задача № 11. Составить программу, организующую следующий диалог. ЭВМ: В каком городе ты живешь? Студент: ввести ответ < название города > ЭВМ: (при ответе «Лермонтов») Рядом с колледжем живешь! (при других ответах) Приходится ездить? ЭВМ: (в любом случае) Надо учиться! Задача № 12. Решить квадратное уравнение вида ах2+вх+с. Коэффициенты а, в, с вводить с клавиатуры. Напечатать количество корней и значения корней. Задача № 13. Написать программу, которая по номеру дня недели (целому числу от 1 до 7) печатает на экране название этого дня. Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения 6 Задача № 14. Написать программу, которая по номеру дня недели (целому числу от 1 до 7) печатает на экране, является ли этот день будним или выходным и печатает название этого дня. Задача № 15. Написать программу, которая по числу (целому числу от 1 до 31) печатает на экране, является ли этот день мая праздником (и каким), или субботой, или воскресеньем, или рабочим днем. 1.3.Тема: Циклы Задача № 16. Напечатать в столбик все натуральные числа от 1 до 20 включительно. Задача № 17. Напечатать в одной строке через пробел все натуральные числа от 1 до 20 включительно. Задача № 18. Ввести натуральное число M. Напечатать все натуральные числа от 1 до M включительно. Задача № 19. Вычислить сумму натуральных чисел от 1 до 100 включительно. Результат вывести на экран Задача № 20. Ввести с клавиатуры любое натуральное число ли ноль. Подсчитать количество цифр в этом числе. Результат вывести на экран. Задача № 21. У гусей и кроликов вместе 64 лапы. Сколько может быть кроликов и гусей (указать все сочетания и количество вариантов)? Задача № 22. Определить, являются ли результаты вычислений по формуле х2+х+17 при 0 х 15 простыми числами. Все результаты вывести на экран. В конце напечатать «Все числа простые» или «Не все числа простые» (простыми называют числа, которые делятся без остатка только на себя и на 1). Задача № 23. Составить алгоритм решения ребуса КОТ + КОТ + 100 = ТОК (различные буквы обозначают различные цифры, старшая – не 0). Задача № 24. Ежемесячная стипендия студента составляет А руб., а расходы на проживание превышают стипендию и составляют В руб. в месяц. Рост цен ежемесячно увеличивает расходы 3%. Составьте программу расчета суммы денег, которую необходимо единовременно попросить у родителей, чтобы можно было прожить учебный год (10 месяцев), используя только эти деньги стипендию. Задача № 25. Вычислить количество точек с целочисленными координатам, находящимися в Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения 7 круге радиуса R (R>0). Точки, лежащие на окружности, также входят в это число. Результат вывести на экран. Задача № 26. 1 1 1 Найти сумму гармонического ряда: 1 ... . Суммирование прекращается, когда 2 3 i слагаемое становится меньше е или i достигает значения MaxInt (максимальное целое). Задача № 27. Ввести символьную строку. Удалить все пробелы. Полученную строку вывести на экран. Задача № 28. Ввести символьную строку. Вставить пробел после каждого символа. Полученную строку вывести на экран. Задача № 29. Ввести символьную строку. Является ли она палиндромом (т.е. читается ли одинаково слева направо и справа налево)? Ответ вывести на экран. Задача № 30. Сформировать и вывести на экран матрицу: Задача № 31. Сформировать и вывести на экран матрицу: Задача № 32. Сформировать и вывести на экран матрицу: Задача № 33. Сформировать и вывести на экран матрицу: Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача № 34. Вычислить и напечатать таблицу умножения от 1 до 9 в виде: Задача № 35. Сформировать и вывести на экран квадратную матрицу (число строк равно числу столбцов): 10 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 1 Задача № 36. Ввести целое положительное двоичное число (последовательность нулей и единиц). Преобразовать его в десятичное число. Результат вывести на экран. 8 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения 9 2. РЕШЕНИЯ 2.1.Тема: Ввод, вывод данных. Арифметические действия Задача 1 Замечание: при вводе с клавиатуры данные разделяются пробелом, в конце нажать Enter. Например: ввести число 5, затем нажать клавишу Пробел, затем – число 12, затем нажать клавишу Enter. Задача 2 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения 10 Задача 3 Задача 4 Замечание: в фигурных скобках вводятся так называемые «комментарии». Они служат для пояснений к тексту программы, на работу программы они не влияют. Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 5 A(x, y) Задача 6 11 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 7 12 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 8 13 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения 2.2.Тема: Ветвление в программе. Условный оператор, оператор выбора Задача 9 Задача 10 14 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 11 При другом ответе – выполнение по другой ветви программы: 15 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 12 16 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 13 При другом ответе: 17 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 14 При другом ответе: 18 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 15 2.3.Тема: Циклы Задача 16 19 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 17 Задача 18 20 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 19 Задача 20 Та же задача с другим оператором цикла: 21 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 21 22 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 22 23 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 23 24 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 2 4 25 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 25 26 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 2 6 Задача 2 7 27 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 2 8 Задача 2 9 28 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 3 0 Задача 3 1 29 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 3 2 Задача 3 3 30 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 3 4 31 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 3 5 32 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения Задача 3 6 33 Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения 34 ЗАКЛЮЧЕНИЕ Знакомство с азами программирования полезно для всех учащихся, так как помогает развитию у них логического мышления, а это необходимо при решении самых разных проблем, в том числе, и при работе в различных областях профессиональной деятельности. В настоящем пособии приведены задачи и их решения на языке Pascal. Задачи сгруппированы по темам: «Ввод, вывод данных. Арифметические действия», «Ветвление в программе. Условный оператор, оператор выбора» и «Циклы». Рассматриваются задачи на вычисление, на составление программы-диалога, работу с массивами, со строковыми данными и др. Пособие призвано помочь учащимся познакомиться с языком программирования Pascal, научиться создавать программы с использованием различных операторов конструкций в программе. для реализации основных алгоритмических Рожкова Г.Е. Программирование на языке PASCAL. Задачи и решения 35 СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ 1. О.Н.Перминов. Программирование на языке Паскаль. Москва, Радио и связь, 2002 2. И.Г.Семакин, А.П.Шестаков. «Академия», 2004. – 432 Основы программирования. М.,