Курсовая работа по программированию


Скачать 131.91 Kb.
НазваниеКурсовая работа по программированию
Дата14.02.2013
Размер131.91 Kb.
ТипКурсовая


МЕЛИТОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ БОГДАНА ХМЕЛЬНИЦКОГО

Кафедра информатики и кибернетики


(№ регистрации)______________ оценка_________________

“______” _____________2011р. протокол №_____________

_____________________подпись члены комисии__________

_______________________

_______________________


РАЗРАБОТКА ПРОГРАММНОГО ПРИЛОЖЕНИЯ ДЛЯ ВОЗВЕДЕНИЯ ЧИСЛА В СТЕПЕНЬ СРЕДСТВАМИ TURBO PASCAL

курсовая работа

по программированию


студента 230-и группы

факультета информатики

и математики

Саенка Сергея Сергеевича

Научный руководитель:

Сердюк И.Н.


Мелитополь – 2012

СОДЕРЖАНИЕ
ВВЕДЕНИЕ………………………………………………………………………..3

РАЗДЕЛ I ПОНЯТИЕ СТЕПЕНИ………………………………………………..4

1.1. История возникновения степени числа………………...………...…………4

1.2. Степень с натуральным показателем и ее свойства ……………...………..5

1.2.1. Свойства степени с натуральным показателем………...………….6

1.3. Степень с отрицательным показателем……………………………………..7

1.4. Степень с рациональным показателем…………………………...…………7

РАЗДЕЛ II РАЗРАБОТКА ПРОГРАММНОГО ПРИЛОЖЕНИЯ………..…....9

2.1 Возведение в степень средствами TPascal …………………………….……9

2.2 Описание программы…………………………………………….…….........11

ВЫВОД…………………………………………………………………………...15

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ………………………………...16

ПРИЛОЖЕНИЕ А. Листинг программы……………………………………….18

ВВЕДЕНИЕ


Актуальность работы

Pascal является одним из самых распространенных в мире алгоритмических языков. Он характеризуется широкими возможностями, хорошо развитой библиотекой модулей, позволяющих использовать возможности операционной системы, создавать оверлейные структуры, организовать ввод-вывод, форматировать графические изображения. Turbo Pascal включает в себя как сам язык программирования — одно из расширений языка Pascal для персональных компьютеров, так и среду, предназначенную для написания, отладки и запуска программ.

Как известно, ядро Паскаля предельно компактно, и многие математические функции в модуле system просто отсутствуют. Поэтому у людей, изучающих основы программирования именно на этом языке, типовые математические расчеты зачастую вызывают проблемы.

Функция возведения в степень широко используется во многих вычислениях и необходима для решения математических и прочих задач. Отсутствие функции возведения в степень в стандартных библиотеках языка TurboPascal представляет собой определенные трудности.

Объект исследования - язык программирования TPascal.

Предмет исследования- метод возведения в степень потенцированием и реализация данного алгоритма на языке TurboPascal.

Целью работы является создание программного приложения для возведения чисел в степень на TurboPascal 7.0.

Для реализации цели исследования необходимо выполнить следующие задания:

  1. выполнить обзор литературы по данной теме;

  2. охарактеризовать арифметическую операцию возведения в степень;

разработать программу с помощью наиболее эффективного способа возведения в степень.

РАЗДЕЛ I

ПОНЯТИЕ СТЕПЕНИ


1.1. История возникновения степени числа


Сложение, вычитание, умножение и деление идут первыми в списке арифметических действий. У математиков не сразу сложилось представление о возведении в степень как о самостоятельной операции, хотя в самых древних математических текстах Древнего Египта и Междуречья встречаются задачи на вычисление степеней.

В своей знаменитой «Арифметике» Диофант Александрийский описывает первые натуральные степени чисел так:

«Все числа… состоят из некоторого количества единиц; ясно, что они продолжаются, увеличиваясь до бесконечности. …среди них находятся: квадраты, получающиеся от умножения не­которого числа самого на себя; это же число называется стороной квадрата, затем кубы, получающиеся от умножения квадратов на их сторону, далее квадрато-квадраты — от умножения квадратов самих на себя, далее квадрато-кубы, получающиеся от умно­жения квадрата на куб его стороны, далее кубо-кубы — от умножения кубов самих на себя».

Немецкие математики Средневековья стремились ввести единое обозначение и сократить число символов. Книга Михеля Штифеля «Полная арифметика» (1544 г.) сыграла в этом значительную роль.

«Сумма знаний…» Луки Пачоли была одним из первых опубликованных сочинений. Но математики продолжали искать более простую систему обозначений так как его обозначения были не удобны.

Француз, бакалавр медицины Никола Шюке (? - около 1500 г.) смело ввёл в свою сим­волику не только нулевой, но и отрицательный показатель степени. Он писал его мелким шрифтом сверху и справа от коэффициента.

В XVI в. итальянец Раффаэле Бомбелли в своей «Алгебре» использовал ту же идею. Он обозначал неизве­стное специальным символом 1, а символами 2, 3,... - его степени. Обозначе­ния Бомбелли также оказали влияние и на символику нидерландского математика Симона Стевина (1548—1620). Он обозначал неиз­вестную величину кружком О, внутри которого указывал показатели степени. Стевин предложил называть степени по их показателям - четвёртой, пятой и т. Д. и отверг Диофантовы составные выражения «квадрато-квадрат», «квадрато-куб».

У Рене Декарта в его «Геометрии» (1637) мы находим современное обозначение степеней а?, а?,... Любопытно, что Декарт считал, что а*а не занимает больше места, чем а2 и не пользовался этим обозначением при записи произведения двух одинаковых множителей. Немецкий ученый Лейбниц считал, что упор должен быть сделан на необходимости применения символики для всех записей произведений одинаковых множителей и применял знак а2.


    1. Степень с натуральным показателем


Степенью числа a с натуральным показателем n, большим 1, называется произведение n множителей, каждый из которых равен a:

a^n =

В выражении a^n :

- число а (повторяющийся множитель) называют основанием степени

- число n (показывающее сколько раз повторяется множитель) – показателем степени

Например:
2^5 = 2·2·2·2·2 = 32,
здесь:
2 – основание степени,
5 – показатель степени,
32 – значение степени

Отметим, что основание степени может быть любым числом.

Вычисление значения степени называют действием возведения в степень. Это действие третьей ступени. То есть при вычислении значения выражения, не содержащего скобки, сначала выполняют действие третьей ступени, затем второй (умножение и деление) и, наконец, первой (сложение и вычитание).

Для записи больших чисел часто применяются степени числа 10. Так, расстояние от земли до солнца примерно равное 150 млн. км, записывают в виде 1,5 · 108

Каждое число большее 10 можно записать в виде: а · 10n , где 1 < a < 10 и n – натуральное число. Такая запись называется стандартным видом числа.


      1. Свойства степени с натуральным показателем


1. При умножении степеней с одинаковыми основаниями основание остается прежним, а показатели степеней складываются

am · an = am + n

2. При делении степеней с одинаковыми основаниями основание остается прежним, а показатели степеней вычитаются

am / an = am — n ,

где, m > n,

3. При возведении степени в степень основание остается прежним, а показатели степеней перемножаются.

(am )n = a m · n

4. При возведении в степень произведения в эту степень возводится каждый множитель

(a · b)n = an · b n,

например:(2·3)3 = 23 · 33,

5. При возведении в степень дроби в эту степень возводятся числитель и знаменатель

(a / b)n = an / bn

например: (2 / 5)3 = (2 / 5) · (2 / 5) · (2 / 5) = 23 / 53

Степень с нулевым показателем.

Степень любого ненулевого числа с нулевым показателем равна 1:

а0 = 1

Например: 20 = 1, (-5)0 = 1, (3 / 5)0 = 1


    1. Степень с отрицательным показателем.


Степень некоторого числа с отрицательным (целым) показателем определяется как единица, делённая на степень того же числа с показателем, равным абсолютной величине отрицательного показателя:

а – n = ( 1 / an )

Теперь формула am / an = am — n может быть использована не только при m , большем, чем n , но и при m , меньшем, чем n .

Все правила действий со степенями сохранятся и при введении степеней с отрицательными показателями


    1. Степень с рациональным показателем


Степенью числа а > 0 с рациональным показателем , где m – целое число, а n – натуральное (n > 1), называется число

Итак,

Например,

Из определения степени с рациональным показателем следует, что для любого положительного а и любого рационального r число ar положительно.

Любое рациональное число допускает различные записи его в виде дроби, поскольку для любого натурального k. Значение аr также не зависит от формы записи рационального числа r.

При а < 0 рациональная степень числа а не определяется.

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

РАЗДЕЛ II

РАЗРАБОТКА ПРОГРАММНОГО ПРИЛОЖЕНИЯ



    1. Возведение в степень средствами TPascal


Вопросы "возведение в степень pascal" или "возведение в степень на Паскале" являются наиболее популярными в своей тематике. Не всегда представляется возможным умножать число само на себя (например x := x * x;) в силу динамично изменяющихся параметров задачи, да и при больших показателях степени размер кода может увеличиться во много раз. Кроме того, подобное выражение не предусматривает возможность возведения числа в дробную степень.

Возведение в степень в паскале можно реализовать несколькими способами. Рассмотрим их, установив преимущества и недостатки каждого.

Универсальная функция возведения в степень в pascal

Самый эффективный и правильный способ - взятие экспоненты от логарифма Exp(X*Ln(Y)), где X - степень числа, Y - основание. Однако, необходимо учитывать частные случаи когда основание или степень отрицательные числа, либо когда один из них является нулем. Также необходимо учесть тот факт, что при возведении отрицательного числа в четную степень, результат становится положительным

if (x < 0) then pow := (-1)*Exp(y*Ln(Abs(x))) else

if (x > 0) then pow := Exp(y*Ln(Abs(x))) else

Pow := 0;

l := round(y);

if (l mod 2 = 0) then R:=Abs(pow);

if (y = 0) then Pow :=1;

Возведение в степень с помощью цикла

Является одним из самых простых и быстрых способов. Задается цикл от единицы до требуемого показателя, в котором основание складывается с самим собой. Организовать подобный алгоритм можно использовав как for, так и while или repeat.

readln(x,pow);

for i:=1 to pow-1 do

x:= x + x;

if ((not odd(pow)) and (pow<0)) then x := x * (-1);

writeln('x^Pow=', x);

Возведение в степень с помощью рекурсии

Аналогично предыдущему итерационному способу. Отличие заключается только в том, что вместо очередного вызова тела цикла используется вызов функции (рекурсия).

Возведение в степень в pascal для целого показателя, вычисляемого за время log2(pow)

Данный алгоритм также, как и два предыдущих работает только с целыми показателями степени. Однако, время затрачиваемое на вычисление существенно сокращается.

function power (x,pow:integer):integer;

var res: integer;

begin

res := 1;

while (pow > 0) do

begin

if (pow and 1 = 1) then res := res * x;

x := x + x;

pow := pow shr 1;

end;

power := res;

end;

Таким образом, возвести число в степень в паскале с дробным показателем может позволить только универсальная функция возведения в степень. Использование первого способа является наиболее быстродейственным. Это особенно заметно, при больших значениях степени и большого числа знака после запятой. Следует отметить, что помимо перечисленных выше способов существуют и другие алгоритмы, реализующие в Turbo Pascal возведение в степень.


    1. Описание программы


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

Целесообразно на разных этапах создания и эксплуатации программы использовать различные наборы ключей компилятора.

Использование константных выражений в программе не увеличивает размер исполняемого файла и время выполнения программы, т. к. их значения вычисляются на этапе компиляции.

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

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

Использование оператора над записями with обычно уменьшает размер исполняемого файла и увеличивает быстродействие программы.

Целесообразно при использовании параметров порядкового типа вместо операций многократного сравнения с граничными значениями использовать операцию in, если диапазон изменения параметра допускает использование множеств. Например, вместо выражения (X >= 'A') and (X <= 'Z') лучше написать: Xin ['A'..'Z'].

Всюду, где можно, следует использовать короткие - в пределах от 0 до 7 (либо от 0 до 15) - множества, т. к. работа с ними осуществляется очень быстро.

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

Не используемые программой подпрограммы, переменные и типизированные константы не увеличивают ее размер, т. к. не включаются в исполняемый файл.

Целесообразно всюду, где только можно, использовать "ближнюю" (near) адресацию подпрограмм, т. к. это экономит память и увеличивает быстродействие.

Для увеличения программы (правда, в ущерб ее размеру) целесообразно параметры располагать, начиная с четных адресов, используя директиву компилятора {$А+}.

Укороченные логические вычисления, как правило, увеличивают быстродействие программы.

При умножении и делении целых чисел на число, являющееся целой степенью числа 2 (2, 4, 8 и т.д.), вместо операций умножения и деления следует использовать операции shr и shl.

Те части программы, которые используются довольно часто (отдельные подпрограммы, циклы, выполняющиеся большое число раз и т.д.) целесообразно писать на языке ассемблера.

При запуске программы появляется окно запроса нажатия клавиши – Рис 1. При нажатии на пробел появляется окно справки. При нажатии на ESC программа завершает свою работу. После нажатия на клавишу Enter (рис. 2) появляется окно выбора дальнейшей операции: извлечения корня, тоесть возведение в дробную степень, или возведение в степень. При нажатии на Р следуют 2 окна ввода данных – основание и показатель степени. При нажатии на клавишу R следуют 3 окна ввода данных: основание степени, степень корня (знаменатель дробной степени) и степень подкоренного выражения (числитель дробной степени). (Рис 4-6).По завершении ввода необходимой информации, происходит вычисление в программе и появляется окно с результатом операции (Рис. 7). После просмотра пользователем результатов и нажатия любой клавиши, программа возвращается в начальное состояние (Рис. 1).




Рис.1 Окно программы после запуска





Рис. 2 Окно программы при нажатии Enter




Рис. 3 Ввод данных. Извлечение корня





Рис. 4 Ввод данных. Извлечение корня




Рис.5 Ввод данных. Извлечение корня





Рис. 6 Извлечение корня. Результат

ВЫВОДЫ


Систематизация, конкретизация и сравнение существующих методов возведения в степень привели к тому, что возведение в степень при помощи потенцирования эффективнее чем возведение в степень с использованием цикла. Поэтому, проанализировав имеющуюся литературу, была создана программа, базирующаяся на этом методе.

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

Однако, хочется добавить, что те части программы, которые используются довольно часто (отдельные подпрограммы, циклы, выполняющиеся большое число раз и т.д.) целесообразно писать на языке ассемблера.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ


1. Аболрус С.А. Программирование на Pascal. Изд. 3-е, обновл. Символ-Плюс, 2003, 328 стр. ISBN 5-93286-057-Х, 1-55622-805-8

2. Адаменко А.Н. Pascal на примерах из математики: Задачи алгебры; Исследование функций и построение кривых; Приближенные вычисления и др. БХВ-Петербург, 2005, 416 стр. ISBN 5-94157-212-3

3. Бойс Д. Осваиваем Windows 95. Русская версия. 1997.

4. Денисов А., Вихарев И., Белов А.. Самоучитель Интернет. – Спб: Питер, 2001. - 461 с.

5. Джеанини М. Кьоу Дж. Объектно-ориентированное программирование: Учебный курс. Питер,2005, 240 стр. ISBN 5-469-00462-7, 0072253630
6. Евдокимов В.В. и др. Экономическая информатика. Учебник для вузов. Под ред. д. э. н., проф. В.В. Евдокимова. СПб.: Питер паблишинг, 1997.

7. Костерин В.В. Камаев В.А. Технологии программирования: Учебник для вузов. Высшая школа, 2005, 360 стр. ISBN 5-06-004870-5
8. Липаев В. Выбор и оценивание характеристик качества программных средств. М., 2001 228 стр. ISBN 5-89638-053-4

9. Марченко А.И., Марченко Л.А. Программирование в среде Turbo Pascal 7.0 – СПб.: КОРОНА принт, 2004, 464 стр. ISBN 966-7140-32-6.
10. Марысаев В.Б. Персональный компьютер: Программное обеспечение. РИК Русанова Познавательная книга плюс, 2000, 192 стр. ISBN 5-8321-0077-8
11. Милов А.В. Основы программирования в задачах и примерах: Учебный курс. Фолио, 2002, 400 стр. ISBN 966-03-1717-4
12. Павловская Т.А. Паскаль: Программирование на языке высокого уровня: Практикум. Питер, 2006, 317 стр. ISBN 5-94723-008-6
13. Попов В.Б. Паскаль и Дельфи: Элементы языка, типы данных и структура программы; Принципы структурного программирования; Основы объективно-ориентированного программирования; Интегрированная среда программирования; Разработка приложений: Учебный курс. Питер, 2005, 576 стр. ISBN 5-469-00632-8

14. Самойленко В.П. Опалева Э.А. Языки программирования и методы трансляции: Учебное пособие для вузов. БХВ-Петербург, 2005, 480 стр. ISBN 5-94157-327-8
15. Спейнауэр С., Куэрсиа В. Справочник Web-мастера. - К: "BHV", 1997. - 368 с

16. Собейкис В.Г. Азбука хакера 2: Языки программирования для хакеров. Майор, 2005, 512 стр. ISBN 5-98551-011-5
17. Шкаев А.В. Руководство по работе на персональном компьютере. Спра-вочник. М.: Радио и связь, 1994 г.


Добавить документ в свой блог или на сайт

Похожие:

Разместите кнопку на своём сайте:
cat.convdocs.org


База данных защищена авторским правом ©cat.convdocs.org 2012
обратиться к администрации
cat.convdocs.org
Главная страница