Введение
В процессе обучения я не раз сталкивался с задачами, в которых нужно было применять различные математические формулы. Задачи, в которых нужно было найти площадь фигуры натолкнули меня на мысль о том, что можно написать программу, которая будет находить площадь вместо меня. Это уменьшит время решения задачи и исключит возможность появления вычислительной ошибки.
Цель работы: создание программы для нахождения площади прямоугольника и площади круга.
Задачи:
Изучить на начальном уровне один из простейших языков программирования Pascal.
Создать компьютерную программу для вычисления площади прямоугольника и круга.
Практическая значимость: учащиеся могут применять данную программу для решения геометрических задач. Программа позволит им проверить правильность математических вычислений и избежать ошибок в решении.
Основная часть «Программирование – шаг в будущее»
История возникновения программирования
Программирование по своей сути – это инструмент взаимодействия программиста с техникой. Программирование в большинстве случаев невозможно без компьютера, так как определённые программы, подходящие исключительно для компьютеров, являются переводчиками с языка программирования на машинный код (Приложение А). Машинный код, в свою очередь, понятен не только компьютеру, но и любой другой технике.
Первый прототип компьютера появился ещё в 1888 году благодаря инженеру Герману Холлериту. Это была электромеханическая счётная машина. Она работала с помощью перфокарт (Приложение А). Перфокарта с отверстиями в определённых местах вставлялась в компьютер, после чего он выдавал ответ. (Приложение Б. Рис 1).
Следующее поколение компьютеров появилось только спустя 50 лет. Эти компьютеры были огромны и весили не одну тонну, при этом их возможности ограничивались простейшими математическими операциями – сложением и вычитанием. В основном, эти огромные машины работали так же с помощью перфокарт. (Приложение Б. Рис.2).
Компьютеры развивались довольно быстро. Инженеры увеличивали их быстродействие, изменяли внутреннюю структуру, добавляли новые детали. На замену перфокартам пришли клавиатура и низкоуровневые языки программирования. Одним из первых таких языков был Ассемблер. Он переводил команды, задаваемые программистом, в машинный код, после чего они выполнялись компьютером. Этот язык имел свои недостатки. Например, он был сложен в изучении и имел ограниченные возможности, но именно он положил начало высокоуровневым языкам программирования.
Вместе с языками высокого уровня появились программы-трансляторы. Языки высокого уровня стали более понятны для человека, а трансляторы переводили эти языки в машинный код, который понятен машине. Таким образом, был найден компромисс в общении между человеком и машиной.
Одним из первых высокоуровневых языков стал язык С (Си). Этот язык разрабатывался с 1969 по 1973 год группой программистов Он был неудобен в использовании, но давал огромные возможности для решения различных задач. Довольно быстро на базе языка Си стали появляться другие языки, более удобные и понятные для программиста.
Сфера программирования постоянно развивается. Появляются новые задачи, требующие решения, а вместе с ними появляются новые языки программирования и методы решения определённых задач. Новые языки программирования разрабатываются, как правило, на базе уже существующих. Программисты стараются сделать их как можно более простыми, чтобы большую часть важных для правильной работы программы моментов выполняла среда разработки, а не программист.
1.2. Язык программирования Pascal
Язык Pascal был разработан в 1970 году Никлаусом Виртом и был назван в честь французского математика Блейза Паскаля. Основное назначение этого языка – обучение студентов и школьников основам программирования, поэтому Pascal прост в освоении и интуитивно понятен.
Для того, чтобы писать программы, программисту необходима другая программа, которая будет позволять запускать изначальную программу, редактировать её и изменять. Такая программа называется среда разработки (Приложение А). Для одного и того же языка может существовать несколько сред разработки. Более того, некоторые среды разработки могут поддерживать несколько языков программирования. То есть, независимо от того, на каком языке будет написана программа, среда разработки сможет её запустить и продемонстрировать работу программы. Чтобы написать свою программу, я выбрал среду разработки PascalABC.Net, так как она бесплатная и наиболее простая из других сред разработки, которые могут работать с языком Pascal.
В каждом языке программирования существует понятие синтаксиса (Приложение А), то есть набора правил, по которым пишется программа. Для того, чтобы написать мою программу необходимы следующие правила:
Исполняемая часть программы начинается со слова begin и заканчивается словом end.
Используемые в программе переменные (Приложение А) должны быть выписаны до исполняемой части программы в специальном блоке под названием var. Так же в этом блоке переменным должны быть присвоены типы данных (Приложение А).
Типов данных существует очень много, но для написания простейшей программы, как правило, достаточно трёх:
- integer – целые числа. Пример: -1, 2, 3, 4, 5 и т.д.
- real – дробные и целые числа. Пример: -1, -1.5, 1, 2.5 и т.д.
- char – символы и знаки. Пример: а, б, в, г, ?, :, и т.д.
Для вывода текста на экран необходимо использовать функцию writeln(), при этом текст должен быть заключён в одинарные кавычки. Если необходимо вывести числовое значение, хранящееся в переменной, то одинарные кавычки не нужны.
Для ввода числа с клавиатуры необходимо использовать функцию readln(). Если нужно ввести несколько значений, то переменные записываются через запятую.
В конце каждой выполняемой строчки программы необходимо поставить точку с запятой (;), чтобы обозначить конец строчки для среды разработки.
После последнего end в программе должна стоять точка.
Чтобы присвоить переменной числовое значение, необходимо использовать оператор присваивания (:=) (Приложение А).
Чтобы округлить результат, полученный программой, необходимо вывести результат в виде writeln(s:0:2), где
s – переменная, хранящая результат работы программы,
0 – показывает, что до запятой может быть любое число,
2 – указывает программе, что ответ должен быть округлён до двух знаков после запятой.
Чтобы программа имела несколько вариантов исполнения, можно использовать блок case…of. Этот блок должен заканчиваться словом end, так как это блок внутри исполнительной программы. В этом блоке должно быть не менее двух исполнительных подблоков, которые будут считать разные формулы. Блок case…ofиспользует некоторую переменную, заданную программистом и, в зависимости от того, что это за переменная, блок исполняет определённый подблок. Каждый подблок должен начинаться с названия, заключённого в одинарные кавычки, и включать в себя begin и end.
Практическое использование программирования, или шаг в будущее
Программирование охватывает огромную сферу применения. Любая техника имеет в основе своей программы, по которым она работает и которые были написаны программистами. Так же, для разной техники и разных программ, как правило, используются разные языки программирования, так как разные языки имеют разные функции. Ниже я приведу основные сферы применения программирования:
- Разработка сайтов и приложений. Сайты и страницы в интернете, офисные приложения (Word, Excel, PowerPoint и прочее), другие программы любого назначения, которыми пользуется человек – это результат работы группы программистов.
- Разработка программного обеспечения для техники. Автоматизированные станки на заводах, медицинское оборудование, бортовые компьютеры самолётов, автомобилей, кораблей и ракет, а также телефоны, планшеты и вообще любая техника, используемая человеком имеет в основе своей не только грамотную работу инженеров, но и работу программистов, задача которых научить технику работать строго определённым образом.
- Разработка игр. Эта сфера постоянно развивается, потому что имеет большой спрос. Она включает в себя любые развлекательные программы – от простых мобильных приложений до сложных игр, над которыми трудятся группы программистов и дизайнеров в течение нескольких лет.
- Развитие искусственного интеллекта. Это сфера исследований, в которой программисты пытаются создать компьютер, обладающий свойством самостоятельно принимать решения на основании имеющихся данных. В наше время полноценного искусственного интеллекта ещё не существует, но уже сейчас есть программы, которые умеют распознавать голос человека и отвечать ему. Например, это Сири от компании Apple, Алиса, от компании Яндекс и Ассистент google от компании google. Так же существует такой проект как «Умный дом», где техника способна выполнять определённые домашние задачи с минимальным участием человека. Этот проект разрабатывается отдельно друг от друга разными компаниями и ещё не завершён полностью, но уже сейчас некоторую домашнюю технику можно запустить с помощью голоса или программы на телефоне.
Практическая часть. «Работа по созданию программы»
До написания программы мне нужно составить блок-схему, которая наглядно будет показывать, как именно работает программа. Я решил написать программу таким образом, чтобы она давала пользователю выбрать, какую именно площадь он хочет посчитать – круга или прямоугольника. Для этого сначала нужно дать пользователю ввести с клавиатуры букву «k», если он хочет посчитать площадь круга, или букву «p», если площадь прямоугольника. Это тоже нужно будет указать на блок-схеме.
Составление блок-схемы всегда начинается с блока «Начало». Следом за ним идёт блок, в котором программа должна прочитать букву с клавиатуры и определить, какие ей данные нужны, чтобы посчитать площадь. Поэтому следующий блок – это выбор внутри программы. Если пользователь введёт букву «k», то мы переходим к левому блоку, где программа должна напечатать текст «Введите радиус:» и прочитать значение радиуса, введённое с клавиатуры. Если пользователь введёт букву «p», то мы переходим к правому блоку программы, где программа должна напечатать «Введите ширину и длину:» и прочитать значения, введённые пользователем с клавиатуры. Независимо от того, что именно считает программа, дальше идёт блок «Вывод результата», в котором программа должна вывести площадь фигуры. После вывода площади программа считается завершённой, поэтому последний блок в блок-схеме – «Конец». (Приложение В рис. 1).
Теперь нам нужно написать эту программу на языке Pascal и запустить её. Для написания программы я установил среду разработки PascalABC.NET.
Первый блок моей программы – это блок описания переменных, в котором я укажу все переменные, используемые в программе и запишу их тип данных. В общей сумме мне понадобится пять переменных:
переменная r, которая будет обозначать радиус круга,
переменные a и b, которые будут обозначать ширину и длину прямоугольника,
переменная s, которая будет обозначать площадь фигуры
переменная ch, которая будет принимать одно из двух значений («k» или «p») и, в зависимости от того, что это за значение, будет считать площадь прямоугольника или площадь круга.
Переменные r, a, b, s должны хранить число. Соответственно, для них подходят типы данных real или integer. Как я писал ранее, integer – это целые числа, а real – дробные. Поэтому, если я отнесу переменные r, a, b, s к типу real, то это сделает мою программу более многозадачной, так как она сможет работать с дробными числами.
Переменная ch должны хранить символ, поэтому её мы отнесём к типу char.
На этом первый блок программы заканчивается и мы переходим к написанию исполнительной части программы. (Приложение В. Рис. 2)
Второй блок – это алгоритм, который необходимо выполнить. В начале я пишу begin и end. Между ними будет располагаться вся исполнительная часть программы.
Первое действие моей программы – спросить у пользователя, площадь какой фигуры нужно посчитать и прочитать букву, которую введёт пользователь. Для этого сначала я использую функцию writeln(), чтобы вывести на экран подсказку «Круг (k) или прямоугольник (p)», а затем функцию readln(), чтобы прочитать эту букву. (Приложение В. Рис.3).
Второе действие – это расчёт площади в зависимости от введённой пользователем буквы. Для того, чтобы создать два варианта, я использую блок caseof. В этом блоке я напишу два подблока – по одному на каждую букву «k» или «p». Я начну с подблока «k».
Подблок «k» будет считать площадь круга. Площадь круга будет находиться по формуле
Соответственно, для нахождения площади мне нужна переменная r, а число pi есть в среде разработки как числовое значение, его узнавать у пользователя не нужно.
Подблок начинается со слова begin и заканчивается словом end, при этом после end должна стоять точка с запятой, так как это не конец программы. Между ними программа должна вывести на экран текст «Введите радиус» с помощью функции writeln(), а потом прочитать числовое значение с помощью функции readln() и переменной r. Теперь, когда я знаю радиус, я пишу формулу для нахождения площади (Приложение В. Рис. 4).
Подблок «p» будет считать площадь прямоугольника. Площадь будет находиться по формуле
Для нахождения площади прямоугольника мне нужны ширина и длина. Их нужно узнать у пользователя. Для этого программа выводит на экран текст «Введите ширину и длину» с помощью функции writeln(), а потом читает числовые значения с помощью функции readln() и переменных a и b. После этого я пишу формулу для нахождения площади. Здесь можно заметить, что у меня в первом и во втором подблоках присутствует переменная s. Это объясняется тем, что при каждом запуске программы срабатывает только один из двух подблоков, поэтому переменная s при каждом запуске хранит только одну площадь.
После того, как я закончил работать с подблоками, я ставлю ещё один end, чтобы показать программе, что других вариантов исполнения больше нет. (Приложение В. Рис. 5)
Третье и последнее действие моей программы - это вывод результата. В следующей строчке после end, который показывает завершение блока case of, я пишу функцию writeln(), чтобы вывести на экран текст «Площадь:». В следующей строчке с помощью той же функции я вывожу ответ, используя запись writeln(s:0:2). Запись «s:0:2» нужна для округления ответа до двух знаков после запятой. На этом программа закончена. (Приложение В. Рис. 6)
Теперь, чтобы проверить правильность работы программы, мне необходимо провести несколько тестов. (Приложение В. Рис.7) Сначала проверим площадь для круга. Для этого сравним результат работы программы с результатом, полученным с помощью калькулятора (Приложение В. Рис. 8-9). Результаты совпадают! Моя программа получила правильный ответ и округлила его.
Далее сделаем то же самое для прямоугольника, но используем простые числа. Например, 2 и 6. Зная таблицу умножения, мы должны получить в ответе 12. И опять же, результаты совпадают (Приложение В. Рис.10-12), но после запятой стоят два нуля. Это следствие того, что программа должна округлить число до двух знаков после запятой. Так как при перемножении двух целых чисел я получил целое число, то есть остатка у него нет или можно сказать, что он нулевой, то в результате программа самостоятельно дописала два нуля.
И сделаем последнюю проверку для прямоугольника, где ширина и длина – дробные числа. Так же сравним результат работы программы с результатом, полученным вручную. (Приложение В. Рис. 13). Результаты совпадают.
На основании тех проверок, которые приведены здесь я сделал вывод, что моя программа работает правильно и удовлетворяет моим требованиям.
Заключение
Изучив литературу по выбранной теме, написав программу и обобщив полученные данные, были сделаны следующие выводы:
Программирование используется практически во всех сферах жизни человека, связанных с техникой или интернетом.
Одна из важнейших сфер программирования – создание программного обеспечения для любой техники.
Развитие искусственного интеллекта и сферы программирования – это огромный шаг в будущее, который значительно упростит жизнь человека.
Мне удалось написать программу для вычисления площади круга и прямоугольника. Я убедился, что эти вычисления достоверны.
Таким образом, цель работы достигнута. Я смог в домашних условиях написать программу для вычисления площади круга и прямоугольника, убедился, что вычисления достоверны и я смогу применять её на практике. Так же я планирую усовершенствовать программу и добавить в неё формулы для подсчёта других площадей.
Список литературы
Информатика и компьютерные технологии: Основные термины: Толковый словарь. /А.Я. Фридланд, Л.С. Ханамирова. Москва.: ООО Издательство «Астрель», 2003г.
Попов В.Б., Turbo Pascal для школьников: Учеб. Пособие. – 3-е доп. изд. – М.: Финансы и статистика, 2003 – 528 с.
Тюгашев А.А. Основы программирования. /Учебное пособие. Часть 1. /Университет ИТМО г. Санкт-Петербург, 2016г.
Описание блок-схем и примеры их составления https://ru.wikipedia.org/wiki/Блок-схема
https://www.m24.ru/articles/kompyutery/12082014/52795 История ЭВМ (Электронно-вычислительных машин)
https://habr.com/ru/post/114588/ История языка Си
http://labaka.ru/likbez/gde-primenyaetsya-programmirovanie Применение программирования
https://ru.wikipedia.org/wiki/Домашняя_автоматизация. Проект «умный дом»
http://moul49.narod.ru/informatika/PascalABC.pdf Методическое пособие по языку Pascal (пдф-файл)
I
Приложение А
Словарь
var (от англ. variable – переменная) – блок программы, в котором переменным присваиваются их типы данных.
Блок-схема – схема, наглядно описывающая работу программы
Машинный код– язык, понятный машине и состоящий из нулей и единиц.
Оператор – элемент синтаксиса языка, задающий описание действия, которое необходимо выполнить.
Оператор присваивания (:=) – оператор, позволяющий записать в переменную числовое значение.
Переменная – буква английского алфавита, которая может хранить числовое значение.
Перфокарта – карточка из картона определённой формы для записи электронной информации при помощи кодового расположения отверстий.
Синтаксис языка программирования – это набор правил, по которым пишется программа.
Среда разработки - программа, которая позволяет запускать изначальную программу, а также редактировать и изменять её.
Тип данных – тип множества чисел, имеющих общую характеристику.
Транслятор – программа, которая переводит высокоуровневый язык программирования в машинный код.
.
II
Приложение Б
Рис.1 Перфокарта. Информация представляется наличием или отсутствием отверстия определённой позиции
Рис.2 Эниак. Первый электронный компьютер общего назначения
III
Приложение В
Рис.1. Блок-схема программы
Рис.2 Блок описания переменных
Рис.3 Программа спрашивает, какую площадь нужно посчитать и читает букву
Рис.4 Пишу подблок для подсчёта площади круга
Рис.5 Пишу подблок для подсчёта площади прямоугольника
Рис.6 Текст законченной программы
Рис. 7. Начинаю проверку работы программы
Рис. 8. Считаю площадь круга с помощью калькулятора
Рис.9 Проверка результата работы программы для круга
Рис.10. Считаю площади прямоугольников вручную
Рис.11. Результаты подсчётов для прямоугольников
Рис. 12 Результат работы программы для прямоугольника
Рис.13 Результат работы программы для прямоугольника