Файл: Основы программирования на языке Pascal (история и развитие).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 22.04.2023

Просмотров: 72

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Предыдущие примеры позволяют нам возводить числа только в целые положительные степени. Но встречаются задачи, где необходимо возвести число в дробную степень. При написании такой программы нам необходимо знание свойств логарифмов. В частности: ab=eb ln a. Исходя из этого, нужный фрагмент нашей программы будет иметь вид: r:=exp(b*ln(a)). Но здесь мы сталкиваемся с тем, что этот оператор не работает с нулем и отрицательными числами. Для того, чтобы наша программа выполняла возведение в степень 0, нужно задать условие: If b=0 Then r:=1 Else r:=exp(b*ln(a)). Но как же для отрицательного числа выглядит возведение в степень?

Паскаль снова заставляет нас задуматься. Здесь приходится производить данную операцию с модулем нашего числа и брать данные с отрицательным результатом. Затем проверить четность степени: если наша степень была четной, тогда мы берем от результата модуль. В таком случае наша программа будет иметь вид: r:=(-1)*exp(b*ln(abs(a))); If Round(b/2)=b/2 Then r:=abs(r). Условие здесь проверяет, четная или нет степень.

В итоге мы подходим к более универсальной модели нашей программы, которая будет работать с любыми числами. То есть теперь мы должны объеденить в единое целое все вышеизложенное. В изображении справа вы можете ознакомиться с полным текстом нашей готовой программы. Обратите внимание на заданный тип данных. В отличие от первой программы, здесь используется Real, т.к. здесь мы уже работаем с любыми числами, а не только с целыми. Итак, возведение в степень действительных чисел нами полностью рассмотрено. Осталось рассмотреть лишь один вопрос.

Переходя к нему, следует отметить, что при решении данной задачи необходимы достаточно глубокие знания в программировании. Это возведение в степень комплексного числа. Здесь можно пробовать использовать различные варианты решения, допустим, формулу Муавра, но там есть трудности с переводом комплексного числа в тригонометрическую форму. Есть решение данной задачи в задании процедуры перемножения двух комплексных чисел и простого цикла со счетчиком, т.е. повторение этой процедуры равное степени число раз. На предоставленном примере вы можете более детально разобраться с текстом этой программы.

При программировании на языке Паскаль (Pascal) необходимо выбирать типы данных Паскаль-программы. Программисту важно понимать, что для запуска его программы в оперативной памяти выделяется место для хранения не только команд, но и данных, с которыми эти команды работают.

Все типы данных в Pascal делятся на две группы: простые и структурированные. Для каждого типа данных отводится некоторое количество байт. К простым типам относятся: целые типы (byte, integer и др.), вещественные типы (real, single и др.), логический тип (boolean), символьный тип (char), перечисляемый и интервальный тип. Все они, за исключением вещественных типов, являются порядковыми типами и характеризуются тем, что имеют ограниченный упорядоченный набор значений. Например, переменная, имеющая тип byte, может принимать значения в интервале от 0 до 255 включительно. Такие типы данных в Паскале позволяют применять функции Pred (вычисляет предыдущее значение) и Succ (вычисляет последующее значение), Low (вычисляетет наименьшее значение типа) и High (вычисляет наибольшее значение типа), Ord (вычисляет порядковый номер текущего значение переменной)[8].


Переменная простого типа в качестве значения имеет только одно данное, т.е. одно целое число, дробное число или один символ. Переменные, имеющие простые типы данных, в Паскале должны быть описаны в разделе Var (сокр. от Variables – переменные).

Переменная в программе на языке Паскаль считается полностью заданной, если она имеет название (идентификатор), тип и начальное значение. Название переменной используется при обращении к ней посредством какого-либо оператора. Тип данных определяет диапазон представления (какие значения может принимать переменная), операции, в которых она может участвовать, объем памяти, который требуется для хранения переменной в оперативной памяти. Поэтому при решении задачи следует склоняться к уменьшению количества переменных и рациональному подбору их типов.

Структурированные типы представляют собой упорядоченный набор переменных простых типов. К ним относятся: массивы (array), множества (set of), строки (string), файлы (file), записи (record). Структурированные типы данных в Паскале описываются в разделе type (раздел описания типов).

Массив - самый распространенный из структурированных типов, используется тогда, когда требуется хранить и обрабатывать упорядоченный набор переменных одного типа (любого простого типа). Массивы бывают одномерные, двумерные, многомерные. Примером одномерного массива может служить список учеников в классном журнале, отсортированный по алфавиту, где у каждого ученика есть уникальный порядковый номер. Примером двумерного массива – расположение мест в зрительном зале кинотеатра (каждое место определяется двумя измерениями – номером ряда и номером места).

Элементы множества в отличие от массива неупорядочены, а количество элементов ограничено числом 255. Строка представляет собой упорядоченный набор символов и этим очень похожа на массив, однако элементами строки могут быть только символы .

Файл – это тот же массив, но количество элементов в нем может меняться по ходу выполнения программы. Запись представляет собой набор разнотипных данных.

Начнём, пожалуй, с возведения в квадрат. Возведение в квадрат является частным случаем возведения в степень. Для этого в паскале предусмотрена стандартная процедура sqr(x). Она возведёт наше число x в квадрат, эта запись равна записи x*x.

Очень часто этого вполне достаточно, но не всегда программа может ограничиться одним лишь возведением в квадрат. Как же возводить в более высокие степени? Об этом читаем далее и просвещаемся.


В паскале существует два метода для возведения числа в степень: exp(ln(x)*y) и метод power(x, y). Процедура exp() имеет ограничение: x должно быть больше 0, т.к. нельзя извлечь натуральный логарифм из неположительного числа, но эта функция считается устаревшей и неудобной для использования, поэтому дальше мы о ней говорить не будем. Функция power() принимает два значения, первое число (x) - которое нужно возвести в степень, второе число (y) - степень, в которую нужно возвести и возвращает x в степени y. Следует помнить, что числа х и у - вещественные, то есть типа real.

Но тут есть один недостаток, эта функция есть не во всех версиях паскаля. Да и вообще, иногда возведение в степень должно производиться без использования операторов. Идём дальше и разбираем следующий способ.

Как мы уже поняли, возведение числа в степень - это последовательное умножение числа на само себя несколько раз. Повторить какое-то действие несколько раз в программировании гораздо легче, чем в жизни.

Разберемся, что и как тут работает. Для начала мы вводим два числа: x и y. Затем берём за результат единицу, для чего это - ниже. Выполняем цикл до модуля нашей степени, т.к. если степень будет отрицательной, то цикл не пойдёт. В цикле мы умножаем наш результат на само число x. Так зачем мы присваивали результату 1? Во-первых, если бы мы умножали на 0, то программа всегда выдавала бы 0. Во-вторых, наша степень может быть равна 0, тогда программа должна вернуть нам 1, т.к. любое число в 0 степени это 1. Затем мы проверяем, является степень отрицательным числом или положительным: если она отрицательна, то делим единицу на наш результат. Выполнение этой задачи при помощи цикла while делается почти так же.

Использование цикла while более правильно, нежели for, но для понимания проще предыдущий вариант. Вряд ли можно стоит ограничиваться одним лишь циклом for, для понимания будет лучше посмотреть несколько примеров, да и задача бывает поставлена по-разному, кому-то одним циклом, кому-то другим, именно поэтому мы разберём ещё один способ возведения в степень[9].

Всё почти так же, как и раньше. Вводим два числа х и у. Присваиваем нашему результату значение единицы, чтобы возводить в нулевую степень. Затем создаём счётчик i и присваиваем ему значение модуля нашей степени. Цикл идёт до тех пор, пока счётчик не равен нулю, если степень с самого начала равна нулю, то цикл не будет выполняться, результат так и останется единицей, как и должно быть, ведь любое число в нулевой степени - это единица. В самом цикле мы всё так же считаем результат, умножая уже полученный результат на наше число х, не забываем вычитать из нашего счётчика единицу, иначе мы никогда не дойдём до нуля. Ну а затем так же, как выше, преобразование, если степень была отрицательной.


Научившись применять типы данных в Паскале, можно реализовать достаточно сложные и интересные задачи.

Заключение

Язык Паскаль был разработан в 1970 г. Никлаусом Виртом как язык, обеспечивающий строгую типизацию и интуитивно понятный синтаксис. Он был назван в честь французского математика, физика и философа Блеза Паскаля.

Одной из целей создания языка Паскаль Никлаус Вирт считал обучение студентов структурному программированию. До сих пор Паскаль заслуженно считается одним из лучших языков для начального обучения программированию. Его современные модификации, такие как Object Pascal, широко используются в промышленном программировании (среда Delphi).

Наиболее популярным решением для персональных компьютеров в 80-е - начале 90 годов стал компилятор и интегрированная среда разработки Turbo Pascal фирмы Borland. Встроенный компилятор обеспечивал высокую скорость компиляции и высокое качество кода (отсюда приставка Turbo). Среда Turbo Pascal обеспечивала также отладку кода, содержала богатый набор примеров. Все эти качества позволили Turbo Pascal стать стандартом Паскаля де-факто.

Выпущенная в 1995 г. как продолжение среды Turbo Pascal система программирования Delphi стала одной из лучших сред для быстрого создания приложений. Delphi ввела в язык Паскаль ряд удачных объектно-ориентированных расширений; обновленный язык получил название Object Pascal. Начиная с версии Delphi 7.0, язык Delphi Object Pascal стал называться просто Delphi, однако, старое название используется часто. Последняя версия среды - Delphi XE.

Наиболее известной свободной реализаций языка Паскаль является Free Pascal. Помимо открытости исходного кода, его основным преимуществом является мультиплатформенность, а также поддержка различных диалектов Паскаля. На основе FreePascal создана свободная мультиплатформенная среда Lazarus, аналогичная среде Delphi. Однако, бедный и не меняющийся десятилетиями консольный интерфейс интегрированной среды Free Pascal, мало совместимый с современными интерфейсами рабочих столов операционных систем, всё более отталкивает обучаемых, неправильно формируя у них представление, что Паскаль - устаревший язык.

С другой стороны, среда Delphi по мере развития становилась все более громоздкой и малопригодной для обучения программированию. Кроме того, отсутствует бесплатная версия Delphi даже для академического использования. Данные факторы привели к практически полному исчезновению Delphi из сферы образования, а для среды Lazarus, несмотря на ее бесплатность, такие случаи единичны.


Наконец, появление платформ Java и .NET, включающих мощный язык программирования и мощные стандартные библиотеки ослабило позиции языка Delphi. Для обучения программированию стали чаще использоваться такие языки как Java, C, C++, C#, Visual Basic, Python, Haskell.

Одним из ярких событий, связанных с развитием языка Паскаль, стало появление языка и компилятора Oxygene фирмы RemObjects, который создатели заслуженно назвали современным Паскалем 21 века. Oxygene может генерировать код под различные платформы, в том числе под платформы .NET и Java. Основным его недостатком является отсутствие бесплатного компилятора и среды для образовательных целей. Кроме того, Oxygene достаточно сильно отличается от канонического языка Паскаль (методы классов вместо процедур и функций), что отражает его сугубо профессиональную направленность.

Язык и система программирования PascalABC.NET призваны изменить сложившуюся ситуацию и вернуть языку Паскаль былую привлекательность как для обучения, так и для профессионального программирования, помножив ее на мощь платформы .NET.

Библиография

Нормативно-правовые документы

1. Конституция Российской Федерации от 12 декабря 1993 г. (с изм. и доп., вступ. в силу с 21.07.2014)

Произведения из многотомного издания

2. Гейн А.Г. Основы информатики и вычислительной техники. - М.: Просвещение, 2017.

3. Информатика: Базовый курс/ Симонович С.В. и др. – СПб.: Питер, 2018. – 640 с

4. Квасова Л.Б., Подрез Е.А., Симанева Т.А. Язык программирования Турбо Паскаль. Учебно-методическое пособие по изучению языка Турбо Паскаль. – Орел: ОГУ, 2014.

5. Моргун А.Н. Справочник по Turbo Pascal для студентов. – М.: Диалектика, 2015. – 608 с.

6. Никоноров Н. Информатика и информационные технологии. Учебник для 10 – 11 классов. 4-е изд. – М.: Бином. Лаборатория знаний, 2017. – 511с.

7. Окулов С.М. Основы программирования. – М.: ЮНИМЕДИАСТАЙЛ», 2014.

8. Программирование на языке Паскаль: учебник / под ред. Усковой О.Ф. – СПб.: «Питер», 2016.

9. Программирование на языке Паскаль: задачник / под ред. Усковой О.Ф. – СПб.: «Питер», 2016.

10. Попов В.Б. Turbo Pascal для школьников. Версия 7.0: Учебное пособие. – 2-е изд., стереотип. – М.: «Финансы и статистика», 2015.

11. Турбо Паскаль 7.0 Самоучитель. ¬– СПБ.: «Питер», 2017.

12. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. – М.: «Нолидж», 2015.

13. Фаронов В.В. Turbo Pascal. Наиболее полное руководство. – СПб.: Питер, 2018. – 763 с.

  1. Программирование на языке Паскаль: учебник / под ред. Усковой О.Ф. – СПб.: «Питер», 2016.

  2. Программирование на языке Паскаль: задачник / под ред. Усковой О.Ф. – СПб.: «Питер», 2016.

  3. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. – М.: «Нолидж», 2015.

  4. Фаронов В.В. Turbo Pascal. Наиболее полное руководство. – СПб.: Питер, 2018. – 763 с.

  5. Квасова Л.Б., Подрез Е.А., Симанева Т.А. Язык программирования Турбо Паскаль. Учебно-методическое пособие по изучению языка Турбо Пас-каль. – Орел: ОГУ, 2014.

  6. Информатика: Базовый курс/ Симонович С.В. и др. – СПб.: Питер, 2018. – 640 с

  7. Гейн А.Г. Основы информатики и вычислительной техники. - М.: Просвещение, 2017.

  8. Никоноров Н. Информатика и информационные технологии. Учебник для 10 – 11 классов. 4-е изд. – М.: Бином. Лаборатория знаний, 2017. – 511с.

  9. Квасова Л.Б., Подрез Е.А., Симанева Т.А. Язык программирования Турбо Паскаль. Учебно-методическое пособие по изучению языка Турбо Паскаль. – Орел: ОГУ, 2014.