Библиотека Рефераты Курсовые Дипломы Поиск
Библиотека Рефераты Курсовые Дипломы Поиск
сделать стартовой добавить в избранное
Кефирный гриб на сайте www.za4et.net.ru

Компьютеры, Программирование Компьютеры, Программирование     Программное обеспечение Программное обеспечение

Создание библиотек подпрограмм в Turbo Pascal

Горшок торфяной для цветов.
Рекомендуются для выращивания крупной рассады различных овощных и цветочных, а также для укоренения саженцев декоративных, плодовых и
7 руб
Раздел: Горшки, ящики для рассады
Браслет светоотражающий, самофиксирующийся, желтый.
Изготовлены из влагостойкого и грязестойкого материала, сохраняющего свои свойства в любых погодных условиях. Легкость крепления позволяет
66 руб
Раздел: Прочее
Ночник-проектор "Звездное небо и планеты", фиолетовый.
Оригинальный светильник - ночник - проектор. Корпус поворачивается от руки. Источник света: 1) Лампочка (от карманных фонариков) 2) Три
330 руб
Раздел: Ночники

Стандартный язык Pascal не располагает средствами разработки и поддержки библиотек программиста (в отличие, скажем, от языка For ra и других языков программирования высокого уровня), которые компилируются отдельно и в дальнейшем могут быть использованы как самим разработчиком, так и другими. Если программист имеет достаточно большие наработки, и те или иные подпрограммы могут быть использованы при написании новых приложений, то приходится эти подпрограммы целиком включать в новый текст. В urbo Pascal это ограничение преодолевается за счет, во-первых, введения внешних процедур, во-вторых, разработки и использования модулей. В настоящей публикации на примерах рассмотрим работу с теми и другими программными единицами. Начнем с внешних подпрограмм. Такой механизм предусматривает, что исходный текст каждой процедуры или функции хранится в отдельном файле и при необходимости с помощью специальной директивы компилятора включается в текст создаваемой программы. Покажем это на примере задач целочисленной арифметики, где аргументы, результаты и промежуточные величины являются целыми (I eger, Word, Lo gI и т.д.). Вот несколько таких задач. 1. Дано натуральное число . Найти сумму первой и последней цифры этого числа. 2. Дано натуральное число . Переставить местами первую и последнюю цифры этого числа. 3. Дано натуральное число . Дописать к нему цифру k в конец и в начало (если это возможно, т.е. результат не выйдет за диапазон допустимых значений), или сообщить о невозможности выполнения операции. 4. Найти наибольшую цифру в записи данного натурального числа. 5. Дано натуральное число . Переставить его цифры так, чтобы образовалось максимальное число, записанное теми же цифрами. При решении каждой из этих задач может быть использована функция, возвращающая количество цифр в записи натурального числа. Вот возможный вариант такой функции: Fu c io Digi s( : Lo gI ) : By e; Var Kol : By e; Begi     Kol := 0;     While &l ;> 0 Do Begi Kol := Kol 1; := Div 10 E d;     Digi s := Kol E d; Сохраним этот текст в файле с расширением .i c (это расширение внешних подпрограмм в urbo Pascal), например, digi s.i c. Еще необходима функция возведения натурального числа в натуральную степень. Fu c io Power(A, : Lo gI ) : Lo gI ; {файл power.i c} Var I, S : Lo gI ; Begi     S := 1;     For I := 1 o Do S := S A;     Power := S E d; Попробуем использовать функции при решении задачи номер один. Program Example1; Var , S : Lo gI ; {$I digi s.i c} {подключаем внешнюю функцию digi s.i c, возвращающую количество цифр в записи числа} {$I power.i c} {внешняя функция, выполняющая возведение числа A в степень } Begi     Wri e('Введите натуральное число: ');     ReadL ( ); {для определения последней цифры числа берем остаток от деления этого числа на 10, а для определения первой делим на 10 в степени на единицу меньшую, чем количество  цифр в записи числа (нумерация разрядов начинается с 0)}     S := Mod 10 Div Power(10, Digi s( ) - 1);     Wri eL ('Искомая сумма: ', S) E d. Внешние процедуры создаются и внедряются в использующие их программы аналогично функциям, и мы не будем подробно на этом останавливаться.

Далее речь пойдет о модулях: их структуре, разработке, компиляции и использовании. Модуль — это набор ресурсов (функций, процедур, констант, переменных, типов и т.д.), разрабатываемых и хранимых независимо от использующих их программ. В отличие от внешних подпрограмм модуль может содержать достаточно большой набор процедур и функций, а также других ресурсов для разработки программ. Обычно каждый модуль содержит логически связанные между собой программные ресурсы. В основе идеи модульности лежат принципы структурного программирования. Существуют стандартные модули urbo Pascal, которые обычно описываются в литературе по данному языку. Модуль имеет следующую структуру: U i &l ;имя модуля>; {заголовок модуля} I erface     {интерфейсная часть} Impleme a io     {раздел реализации} Begi     {раздел инициализации модуля} E d. После служебного слова U i записывается имя модуля, которое (для удобства дальнейших действий) должно совпадать с именем файла, содержащего данный модуль. Поэтому (как принято в MS DOS) имя не должно содержать более 8 символов. В разделе I erface объявляются все ресурсы, которые будут в дальнейшем доступны программисту при подключении модуля. Для подпрограмм здесь указывается лишь полный заголовок. В разделе Impleme a io реализуются все подпрограммы, которые были ранее объявлены. Кроме того, здесь могут содержаться свои константы, переменные, типы, подпрограммы и т.д., которые носят вспомогательный характер и используются для написания основных подпрограмм. В отличие от ресурсов, объявленных в разделе I erface, все, что дополнительно объявляется в Impleme a io , уже не будет доступно при подключении модуля. При написании основных подпрограмм достаточно указать их имя (т.е. не нужно полностью переписывать весь заголовок), а затем записать тело подпрограммы. Наконец, раздел инициализации (который часто отсутствует) содержит операторы, которые должны быть выполнены сразу же после запуска программы, использующей модуль. Приведем пример разработки и использования модуля. Поскольку рассмотренная ниже задача достаточно элементарна, ограничимся листингом программы с подробными комментариями. Задача. Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над обыкновенными дробями вида P/Q (P — целое, Q — натуральное): 1) сложение; 2) вычитание; 3) умножение; 4) деление; 5) сокращение дроби; 6) возведение дроби в степень ( — натуральное); 7) функции, реализующие операции отношения (равно, не равно, больше или равно, меньше или равно, больше, меньше). Дробь представить следующим типом:       ype Frac = Record                      P : I eger;                      Q : 1. High(Lo gI )                     E d; Используя этот модуль, решить задачи: 1. Дан массив A — массив обыкновенных дробей. Найти сумму всех дробей, ответ представить в виде несократимой дроби. Вычислить среднее арифметическое всех дробей, ответ представить в виде несократимой дроби. 2. Дан массив A — массив обыкновенных дробей. Отсортировать его в порядке возрастания. U i Droby; I erface       ype         a ur = 1.High(Lo gI );         Frac = Record                      P : Lo gI ; {Числитель дроби}                      Q : a ur {Знаменатель дроби}                     E d; Procedure Sokr(Var A : Frac); Procedure Summa(A, B : Frac; Var C : Frac); Procedure Raz os (A, B : Frac; Var C : Frac); Procedure Proizvede ie(A, B : Frac; Var C : Frac); Procedure Chas oe(A, B : Frac; Var C : Frac); Procedure S epe (A : Frac; : a ur; Var C : Frac); Fu c io Me she(A, B : Frac) : Boolea ; Fu c io Bolshe(A, B : Frac) : Boolea ; Fu c io Rav o(A, B : Frac) : Boolea ; Fu c io Me sheRav o(A, B : Frac) : Boolea ; Fu c io BolsheRav o(A, B : Frac) : Boolea ; Fu c io eRav o(A, B : Frac) : Boolea ; {Раздел реализации модуля} Impleme a io {Наибольший общий делитель двух чисел - вспомогательная функция, ранее не объявленная} Fu c io odEvklid(A, B : a ur) : a ur; Begi   While A &l ;> B Do     If A > B he          If A Mod B &l ;> 0 he A := A Mod B Else A := B         Else          If B Mod A &l ;> 0 he B := B Mod A Else B := A;     odEvklid := A E d; Procedure Sokr; {Сокращение дроби} Var M, : a ur; Begi    If A.P

&l ;> 0 he    Begi    If A.P &l ; 0 he M := Abs(A.P)                   Else M := A.P; {Совмещение типов, т.к. A.P - Lo gI }    := odEvklid(M, A.Q);   A.P := A.P Div ; A.Q := A.Q Div    E d E d; Procedure Summa; {Сумма дробей} Begi    {Знаменатель дроби}  C.Q := (A.Q B.Q) Div odEvklid(A.Q, B.Q);    {Числитель дроби}      C.P := A.P C.Q Div A.Q B.P C.Q Div B.Q;    Sokr(C) E d; Procedure Raz os ; {Разность дробей} Begi    {Знаменатель дроби} C.Q := (A.Q B.Q) Div odEvklid(A.Q, B.Q);    {Числитель дроби}     C.P := A.P C.Q Div A.Q - B.P C.Q Div B.Q;    Sokr(C) E d; Procedure Proizvede ie; Begi    {Знаменатель дроби} C.Q := A.Q B.Q;    {Числитель дроби} C.P := A.P B.P;    Sokr(C) E d; Procedure Chas oe; Begi    {Знаменатель дроби}  C.Q := A.Q B.P;    {Числитель дроби}      C.P := A.P B.Q;    Sokr(C) E d; Procedure S epe ; {Степень} Var I : a ur; Begi     C.Q := 1; C.P := 1; Sokr(A);     For I := 1 o Do Proizvede ie(A, C, C) E d; Fu c io Me she; Begi Me she := A.P B.Q &l ; A.Q B.P E d; Fu c io Bolshe; Begi   Bolshe := A.P B.Q > A.Q B.P E d; Fu c io Rav o; Begi Rav o := A.P B.Q = A.Q B.P E d; Fu c io BolsheRav o; Begi BolsheRav o := Bolshe(A, B) Or Rav o(A, B) E d; Fu c io Me sheRav o; Begi Me sheRav o := Me she(A, B) Or Rav o(A, B) E d; Fu c io eRav o; Begi   eRav o := o Rav o(A, B) E d; {Раздел инициализации модуля} Begi E d. Дадим некоторые рекомендации по разработке модулей: 1) спроектировать модуль, т.е. выделить основные и вспомогательные подпрограммы, другие ресурсы; 2) каждую подпрограмму целесообразно отладить отдельно, после чего «вклеить» в текст модуля. Сохраним текст разработанной программы в файле DROBY.PAS и откомпилируем наш модуль. Для этого можно воспользоваться внешним компилятором, поставляемым вместе с urbo Pascal. Команда будет выглядеть так: PC DROBY.PAS. Если в тексте нет синтаксических ошибок, получим файл DROBY. PU, иначе будет соответствующее сообщение с указанием строки, содержащей ошибку. Другой способ компиляции модуля — в среде программирования urbo Pascal выбрать в пункте меню Ru подпункты Make или Build (при этом должна быть включена компиляция на диск). Теперь можно подключить модуль к программе, где планируется его использование. Для примера решим задачу суммирования массива дробей. Program Sum; Uses Droby; Var A : Array Of Frac;     I, : I eger;     S : Frac; Begi     Wri e('Введите количество элементов массива: ');     ReadL ( );     S.P := 0; S.Q := 1; {Первоначально сумма равна нулю}     For I := 1 o Do {Вводим и суммируем дроби}     Begi    Wri e('Введите числитель ', I, '-й дроби: '); ReadL (A.P);    Wri e('Введите знаменатель ', I, '-й дроби: '); ReadL (A, S, S);     E d;     Wri eL ('Ответ: ', S.P, '/', S.Q) E d. Вторую задачу предлагаем решить читателю самостоятельно. Как видно из примера, для подключения модуля используется служебное слово USES, после чего указывается имя модуля и происходит это сразу же после заголовка программы. Если необходимо подключить несколько модулей, они перечисляются через запятую. При использовании ресурсов модуля совсем не нужно знать, как работают его подпрограммы.

Вы изучите только практические аспекты, необходимые для создания работающей системы. В течение всей книги я буду проводить эксперименты на компьютере, а вы будете повторять их за мной и ставить свои собственные эксперименты. Я буду использовать Turbo Pascal 4.0 и периодически буду включать примеры, написанные в TP. Эти примеры вы будете копировать себе в компьютер и выполнять. Если у вас не установлен Turbo Pascal вам будет трудно следить за ходом обучения, поэтому я настоятельно рекомендую его поставить. Кроме того, это просто замечательный продукт и для множества других задач! Некоторые тексты программ будут показаны как примеры или как законченные продукты, которые вы можете копировать без необходимости понимания принципов их работы. Но я надеюсь сделать гораздо больше: я хочу научить вас КАК это делается, чтобы вы могли делать это самостоятельно, и не только повторять то что я делаю но и улучшать. Такую задачу не решить на одной странице. Я попытаюсь сделать это в нескольких статьях. Каждая статья раскрывает один аспект теории создания компиляторов и может быть изучена в отдельности от всех других

1. Обучение начальных курсов методам программирования на языке Turbo Pascal

2. Отчет по практике по Turbo Pascal

3. Понятие алгоритма, его свойства. Описание алгоритмов с помощью блок схем на языке Turbo Pascal

4. Учебник по языку Turbo Pascal в задачах и примерах

5. Язык Turbo-Pascal

6. Модуль Graph в программе Turbo Pascal
7. Программы в среде Turbo Pascal
8. Разработка программы формирования перестановок, сочетаний, размещений (Turbo Pascal 7.0.)

9. Составить программу на языке Turbo Pascal для параллельной сортировки чисел

10. Записи в языке Turbo Pascal

11. База данных "Домашняя библиотека"

12. Строковый тип данных в языке Pascal

13. Проектирование базы данных Библиотека

14. Программа обработки данных в библиотеке

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

16. Типы данных в Object Pascal

Автокружка с подогревом (450 мл).
Подключается к стандартному автомобильному прикуривателю. Сохраняет жидкость теплой, пока подключена к прикуривателю. Может подогреть
540 руб
Раздел: Прочее
Сумка-переноска "Фёрби" с наушниками.
Сумочка для переноски Furby от бренда Famosa предназначена для пушистого игрушечного зверька, который тоже нуждается как любой питомец в
460 руб
Раздел: Детские
Ретро телефон к мобильному устройству.
Телефон работает по принципу наушников. Кнопки регулировки громкости нет. Стандартный штеккер 3,5 мм. Материал: пластик. Цвет: черный.
1263 руб
Раздел: Гарнитуры и трубки

17. Подготовка данных и движение по азимутам

18. Особенности годового хода приземной температуры воздуха в разных частях Земли по данным ОА Гидрометцентра РФ

19. План статистического наблюдения и данные переписи населения

20. Движение Сопротивления в Дании и Норвегии

21. Автоматизированные информационные технологии формирования, обработки и представления данных в налоговой службе

22. Даниил Иванович Хармс
23. Библиографическая деятельность библиотеки
24. Даниил Галицкий и его внутренняя и внешняя политика (Данило Галицький - його внутрЁшня та зовнЁшня полЁтика)

25. Методы компьютерной обработки статистических данных

26. Базы данных в Internet

27. Построение сети передачи данных

28. Управление потоками данных в параллельных алгоритмах вычислительной линейной алгебры

29. Системы и сети передачи данных

30. Информация, информатика, базы данных. Периферийные устройства

31. Языки и технология программирования. Начальный курс /Pascal/

32. Сжатие данных

Френч-пресс, 1000 мл.
Френч-пресс Rosenberg изготовлен из высококачественной нержавеющей стали и термостойкого стекла. Удобная ненагревающаяся ручка.
503 руб
Раздел: Френч-прессы
Заварочный чайник эмалированный Mayer & Boch "Подсолнух", 1,5 л, с ситечком.
Заварочный эмалированный чайник. Материал корпуса: углеродистая сталь. Толщина стенок - 0,8 мм. Внешнее и внутреннее покрытие -
715 руб
Раздел: Чайники заварочные
Набор из скатерти и салфеток "Botanica", 140x180/42x42 см.
В набор входит скатерть и 6 салфеток "Botanica" 140x180/42x42 см. Салфетки, изготовленные из экологически чистого материала,
961 руб
Раздел: Салфетки сервировочные из ткани

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

34. Пример базы данных на Delphi 2.0

35. Различные классы баз данных по предметным областям использования

36. Набор процедур манипулирования с целыми числами произвольной длины

37. База данных для учета оплаты за междугородние разговоры

38. Реляционные Базы Данных. SQL - стандартный язык реляционных баз данных
39. Разработка базы данных `ДЕКАНАТ` в среде программирования "Delphi"
40. Современные системы управления базами данных

41. Работа с Базами данных в Delphi

42. Создание и описание базы данных "СТУДЕНТЫ" (Отчет по курсу "Базы данных")

43. Применение самоорганизующихся карт Кохонена для классификации и анализа пространственно распределенных неполных данных по окружающей среде

44. Базы данных Microsoft Access

45. Лекции по теории проектирования баз данных (БД)

46. Структуры данных: бинарное упорядоченное несбалансированное дерево

47. Разработка базы данных

48. Системы управления базами данных

Детский трехколесный велосипед Jaguar (цвет: синий).
Детский трехколесный велосипед для малышей от 1 года до 3 лет. Облегченный вариант без тента. Велосипед имеет удлиненную металлическую
1560 руб
Раздел: Трехколесные
Копилка "Свинка с мелом", 20x15x16 см, арт. 223018.
Копилка поможет Вам наконец-то собрать требуемую сумму для покупки долгожданной вещицы. Регулярно удалять пыль сухой, мягкой
695 руб
Раздел: Копилки
Шкатулка для ювелирных украшений, 20x13x11 см, арт. 88253.
Шкатулка сохранит ваши ювелирные изделия в первозданном виде. С ней вы сможете внести в интерьер частичку элегантности. Беречь от
363 руб
Раздел: Шкатулки для украшений

49. Система управления базами данных ACCESS

50. База данных - Бактериологическая испытательная лаборатория Боханского района

51. Разработка приложений на языке VBA в среде MS EXCEL по обработке данных для заданных объектов

52. Обработка данных о студентах

53. Инструкция по эксплуатации базы данных магазина «Телевизоры» средствами Access 2000

54. Системы обработки информации - язык баз данных SQL со средствами поддержания целостности
55. Защита баз данных
56. HTML и базы данных

57. Структура базы данных

58. Разработка АРМ научно-технической библиотеки университета

59. База данных периодического издания

60. Счётные множества

61. Определение законов распределения случайных величин и их числовых характеристик на основе опытных данных. Проверка статистических гипотез

62. Решение уравнений в целых числах

63. Алгебраические числа

64. Комплексные числа

Детский шезлонг качалка "Счастливый лягушонок".
Характеристики: - дуга со съемными игрушками; - электронный блок, два режима: музыка и вибрация; - работает в совместном режиме
2224 руб
Раздел: Качели, кресла-качалки, шезлонги
Щипцы кулинарные "Paterra", силиконовые.
Силиконовые щипцы предназначены для комфортных манипуляций с приготавливаемым продуктом. Щипцами удобно переворачивать мясо, тефтели,
323 руб
Раздел: Щипцы
Мультиплеер с проектором "Спокойной ночи, малыши!".
"Спокойной ночи, малыши!" от компании "Азбукварик" - это музыкальная игрушка из серии "Мультиплеер с
330 руб
Раздел: Смартфоны, мультиплееры

65. Число как сущее

66. Исследование регрессии на основе численных данных

67. Общие данные о нервной системе

68. Некоторые проблемы преступности на государственных границах РФ /по данным 1994-95 гг./

69. Соотношение доказательств и данных, полученных в результате ОРД

70. Журнал «Школьная библиотека» как источник информации о научно – познавательной книге
71. Статистическая обработка экспериментальных данных
72. Диаграммы Венна-Эйлера: соотношения между объемами данных понятий. Проверка правильности непосредственного умозаключения

73. Расчет системы сбора и передачи данных

74. Проектирование средств организации каналов передачи данных

75. Синтез управляющего автомата операции умножения младшими разрядами вперед со сдвигом множимого над числами в форме с фиксированной точкой в формате {1,8} для автомата Мура

76. Число как сущее

77. Общая оценка финансового состояния предприятия по данным бухгалтерской и статической отчетности

78. Организационный механизм разработки и осуществления государственной инновационной политики. Рекомендации по данному вопросу

79. Комплексная оценка финансово-хозяйственной деятельности ОАО "Вега" на основе данных буххгалтерской финансовой отчетности

80. Использование корреляционно-регрессионного анализа для обработки экономических статистических данных

Кружка-хамелеон "Сова", 330 мл.
Для тех, кто любит подольше поспать, кому утро не в радость, поможет взбодриться кружка-хамелеон «Сова». Просыпайтесь вместе с
304 руб
Раздел: Кружки, чашки, блюдца
Чудо трусики для плавания, от 0 до 3-х лет, трехслойные, арт. 111, для мальчиков.
Детские специальные трусики для плавания в бассейне и открытом водоеме. Плотно прилегают, отлично защищают! Изготовлены из хлопка, имеют
376 руб
Раздел: Многоразовые
Простыня на резинке "ЭГО", 160х200 см, салатовая.
Трикотажная простыня "ЭГО" на резинке выполнена из 100% хлопка высокого качества. Натуральный, экологически чистый материал
760 руб
Раздел: Простыни, пододеяльники

81. Обзоры стран: Дания, Япония, Норвегия, Великобритания, Кипр

82. Воевода Даниил Дмитриевич Холмский

83. Герой Ведроши и Смоленска (Воевода Данила Васильевич Щеня)

84. Ремесленники позднеримского Египта, по данным папирусов

85. История Дании

86. Хронологические данные в "Слове о житии и о преставлении великого князя Дмитрия Ивановича"
87. Герой Ведроши и Смоленска (Воевода Данила Васильевич Щеня
88. Библиотека царя Ашшурбанапала

89. Дания. Становление государства

90. Обработка экономической информации средствами языка Pascal

91. Некоторые проблемы преступности на Государственной границе РФ (по данным 1994-95 гг.)

92. Блюда из натуральной рубленой массы

93. Роль лексических данных в диалектном членении болгарского языка

94. Дания - страна королевского фарфора

95. История становления библиотек. Cовременное состояние, задачи, содержание деятельности

96. Видение пророка Даниила в русском искусстве XV-XVI веков

Горшок надувной дорожный "PocketPotty" со сменными пакетами.
Горшок Pocket Potty от торговой марки Roxy-kids станет незаменимым аксессуаром дома, на прогулке или в длительной поездке с малышом.
560 руб
Раздел: Горшки обычные
Точилка механическая "KW-trio".
Механическая точилка. Пластиковый корпус. Размер: 95x65x100 мм. Расцветка представлена в ассортименте, без возможности выбора.
482 руб
Раздел: Точилки
Стиральный порошок "Molecola" для белого белья и цветного детского белья, экологичный, 1,2.
Экологичный стиральный порошок для детского белья ТМ Molecola является безопасным как для детей с первых дней жизни, так и для окружающей
357 руб
Раздел: Для стирки детских вещей

97. Лицейская библиотека: день сегодняшний

98. Мне видеть не дано, быть может...

99. "Моление" Даниила Заточника


Поиск Рефератов на сайте za4eti.ru Вы студент, и у Вас нет времени на выполнение письменных работ (рефератов, курсовых и дипломов)? Мы сможем Вам в этом помочь. Возможно, Вам подойдет что-то из ПЕРЕЧНЯ ПРЕДМЕТОВ И ДИСЦИПЛИН, ПО КОТОРЫМ ВЫПОЛНЯЮТСЯ РЕФЕРАТЫ, КУРСОВЫЕ И ДИПЛОМНЫЕ РАБОТЫ. 
Вы можете поискать нужную Вам работу в КОЛЛЕКЦИИ ГОТОВЫХ РЕФЕРАТОВ, КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ, выполненных преподавателями московских ВУЗов за период более чем 10-летней работы. Эти работы Вы можете бесплатно СКАЧАТЬ.