Разработка программы на языке Паскаль

Автор: Пользователь скрыл имя, 16 Декабря 2010 в 22:47, курсовая работа

Описание работы

Язык программирования Pascal создан в 1973 году швейцарским ученым Николасом Виртом и был назван в честь выдающегося французского физика, математика и философа Блеза Паскаля (1623-1662), который являлся автором первой в мире вычислительной (суммирующей) машины (1641). Язык первоначально создавался для целей обучения программированию вообще. По словам автора языка «… разработка языка Паскаль базировалась на двух принципиальных концепциях. Первая состояла в том, чтобы изобрести язык, приспособленный к обучению программированию как систематической дисциплине, базирующейся на некоторых фундаментальных положениях, ясно и естественно отраженных в языке. Вторая предполагала разработку конкретных представлений этого языка, которые были бы надежны и эффективны на современных ЭВМ.»1

Содержание

Введение


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


2.Структура программы pascal


3.Функциональное назначение pascal


4.Задание для выполнения курсового проекта


5.Текст программы


6.Вход и выход из программы


Используемая литература

Работа содержит 1 файл

иГОРЬ.docx

— 34.77 Кб (Скачать)

     VAR

        Str: упакованный массив [1 .. 100] от Char;

        ...

    Proc (STR [1]); 

   будут незаконными, если параметр для Proc было VAR параметр.  

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

   Общий параметры типа  

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

     общий = запись

        Объект: Pointer; (указатель на фактический  параметр)

        Размер: Integer; (размер переменной  в байтах)

        TypeCode: Integer; (тип параметра 9see ниже))

        цели; 

   TypeCode является одним из: 1  ENUM, Boolean, Char, байт или небольшой поддиапазоне целочисленных

   2  целое или поддиапазона

   3  указателя (в этом случае, это размер объекта указывает на)

   4  действительное число

   5  набор

   6  строка (то есть упакованный массив [1 .. N] от Char); размеры длина строки + 2

   10  Переменная массива (кроме строки)

   11  файл

   12  запись  

   Объявления  функций  

   Функции заявления почти так же, как  процедура заявления. Разницей, что  первая строка имеет вид  

   Имя функции (параметр деклараций): тип;  

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

   Для установки возвращаемого значения функции, вы должны назначить возвращаемого  значения функции имя, как и в 

     Функция IABS (I: Integer): Integer;

     начинать

     если I <0, то

        IABS: =-I

     еще

        IABS: = I

     цели; 

   Эта функция возвращает абсолютное значение числа.  

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

   Вперед  Список  

   Переслать ссылку нужны в некоторых версиях  Паскаля, но не Алиса. Необходимости  опережающих ссылок возникает тогда, когда подпрограмма должна призвать подпрограмма B, B, но до сих пор не определены в исходном коде. Из-за сильного типа Паскаля проверку требований, необходимо знать тип B 'S параметров при звонке B. В Алисе это не проблема, потому что Алиса знает  все типы к моменту запуска  программы. В других версиях Паскаля, однако, эта информация может не будут доступны, так что вперед ссылка необходима.  

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

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

     вперед обычной; 

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

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

   Заметим, что этот формат преобразуется к  конвенции Алисы по АПИН.

   Stack  

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

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

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

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

   Переписать  программу так, это не использовать так много локальных переменных.  

   Не  пользуйтесь местными массивов. Крупные  местные массивов может занять много  пространства в стеке. Если вам нужен  местный массив, передать его динамически  с новой функцией. Данная функция  описана в главе 8.  

   Увеличить объем пространства в стеке для  вашей программы. Делайте это  с S = параметр командной строки, что  вызывает Алиса.  

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

   Переходя Subprograms как аргументы  

   Функции и процедуры могут быть приняты  в качестве аргументов для других подпрограмм. Параметром деклараций на подпрограмму, которая получает функции  или процедуры, аргументы, вы должны также объявить параметров функции  или процедуры прошло. Например,

     Процедура Proc (функция F (X: Real): Real;

                   I, J: Integer); 

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

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

  1. Функциональное  назначение pascal
 

   Ряд модулей системы программирования Pascal ABC специально создавался для учебных  целей: 

   Модуль  растровой графики GraphABC обходится  без объектов, хотя его возможности  практически совпадают с графическими возможностями Borland Delphi. Он доступен в  несобытийных программах и позволяет  легко создавать анимацию без  мерцания.

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

   Модули Timers и Sounds позволяют создавать таймеры  и звуки, которые также реализованы  в процедурном стиле. Эти модули можно использовать даже в консольных программах.

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

   Модуль  векторной графики ABCObjects предназначен для быстрого изучения основ объектно-ориентированного программирования, а также позволяет  создавать достаточно сложные игровые  и обучающие программы.

   Модуль  визуальных компонентов VCL позволяет  создавать событийные приложения с  главной формой в стиле Delphi. Классы VCL немного упрощены по сравнению  с аналогичными классами Delphi. Имеется  редактор форм и инспектор объектов. Технология восстановления формы по коду программы позволяет обойтись для приложения с главной формой одним файлом.  

   Компилятор Pascal ABC является компилятором переднего  плана (front-end). Это означает, что он не генерирует исполняемый код в  виде .exe-файла, а создает в результате компиляции дерево программы в памяти, которое затем выполняется с  помощью встроенного интерпретатора.  

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

   Проверяемые задания реализованы в виде электронного задачника по программированию Programming Taskbook, содержащего 200 задач по программированию разного уровня сложности. 
 

  1. Основания для разработки
 

   Основанием  для выполнения курсового проекта (работы), послужило задание выданное доцентом !!!, и одобренное заведующей кафедрой !!! На языке программирования   PascalABC, будет разработана программа игры дартц. Для выполнение данного задания требуется компьютер с установленной на нем программой PascalABC. 

  1. Текст программы

   program darts;

   uses CRT, graph;

   type dm=array of string;

   type dmi=array of integer;

   var mX, mY:integer;

   sym:char;

   stop:boolean;

   mode:integer;

   dr:integer;

   radiuses:array [1..10] of integer;

   colors:array [1..10] of integer;

   drX:array [1..5] of integer;

Информация о работе Разработка программы на языке Паскаль