Язык программирования Паскаль

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

Рубрика Программирование, компьютеры и кибернетика
Вид учебное пособие
Язык русский
Дата добавления 26.09.2017
Размер файла 635,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Оглавление

Введение

1. Алгоритм и программа

1.1 Алгоритм

1.2 Свойства алгоритма

1.3 Формы записи алгоритма

1.4 Программа и программное обеспечение

1.5 Этапы разработки программы

2. Данные в языке Паскаль

2.1 Константы

2.2 Переменные и типы переменных

3. Арифметические выражения

4. Линейный вычислительный процесс

4.1 Оператор присваивания

4.2 Оператор ввода

4.3 Оператор вывода

4.4 Управление выводом данных

4.5 Вывод на печать

5. Структура простой программы на Паскале 2

6. Компилятор и оболочка Turbo Pascal

7. Разветвляющийся вычислительный процесс и условный оператор

7.1 Логические выражения

7.2 Операции отношения

7.3 Логические операции

7.4 Короткий условный оператор

7.5 Полный условный оператор

7.6 Составной условный оператор

7.7 Вложенные условные операторы

7.8 Оператор выбора

7.9 Примеры программ с условным оператором

8. Директивы компилятора и обработка ошибок ввода

9. Оператор цикла. Циклы с предусловием и постусловием

10. Цикл со счетчиком и досрочное завершение циклов

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

11.1 Алгоритм табулирования

11.2 Алгоритм организации счетчика

11.3 Алгоритмы накопления суммы и произведения

12. Типовые алгоритмы поиска максимума и минимума

13. Решение учебных задач на циклы

14. Одномерные массивы. Описание, ввод, вывод и обработка массивов на Паскале

15. Решение типовых задач на массивы

16. Кратные циклы

16.1 Двойной цикл и типовые задачи на двойной цикл

16.2 Оператор безусловного перехода

17. Матрицы и типовые алгоритмы обработки матриц

18. Подпрограммы

18.1 Процедуры

18.2 Функции

18.3 Массивы в качестве параметров подпрограммы

18.4 Открытые массивы

19. Множества и перечислимые типы

20. Обработка символьных и строковых данных

20.1 Работа с символами

20.2 Работа со строками

21. Текстовые файлы

21.1 Общие операции

21.2 Примеры работы с файлами

21.3 Работа с параметрами командной строки

22. Записи. Бинарные файлы

23. Модули. Создание модулей

23.1 Назначение и структура модулей

23.2 Стандартные модули Паскаля

24. Модуль crt и создание консольных интерфейсов

25. Модуль graph и создание графики на Паскале

Заключение

Рекомендуемая литература

Приложения

паскаль вычислительный оператор массив

Введение

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

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

Пособие содержит как лекционный материал, так и большое количество исходных текстов программ-примеров. Рекомендуемая среда для работы с примерами - Turbo Pascal 7.1 , скачать компактный дистрибутив которого можно, например, по ссылке http://pers.narod.ru/distr/TP71Setup.zip (770 Кб, внутри установщик и readme.txt). Вполне подойдёт и бесплатный Free Pascal, очень похожий в управлении и по возможностям, но являющийся полноценным 32-разрядным приложением. Буду признателен за письма с Вашими отзывами, пожеланиями и замечаниями. Все авторские права принадлежат мне, однако я не возражаю против свободного использования этого учебника в образовательных целях при условии сохранения его текста неизменным.

1. Алгоритм и программа

Основы языка Паскаль

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

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

1.1 Алгоритм

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

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

1.2 Свойства алгоритма

Перечислим выделенные в п. 1.1 свойства алгоритма.

Дискретность - алгоритм состоит из отдельных инструкций (шагов).

Однозначность - каждый шаг понимается исполнителем единственным образом.

Массовость - алгоритм работает при меняющихся в некоторых пределах входных данных.

Результативность - за конечное число шагов достигается некоторый результат.

1.3 Формы записи алгоритма

Принято выделять 2 основных формы записи алгоритма.

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

Рис. 1.1. Основные элементы блок-схем

Указанные на рис. 1.1 геометрические фигуры интерпретируются так:

Прямоугольник - любая последовательность действий; внутри прямоугольника записываются формулы или словесное описание выполняемых действий;

Ромб - блок проверки условия; так как любое условие может быть только истинно или ложно, у блока 1 вход и 2 выхода, соответствующие действиям, выполняемым в случаях, когда условие истинно и когда оно ложно. Выходы подписывают символами "+" и "-", "да" и "нет", "1" и "0" и т. п.

Параллелограмм - блок ввода исходных данных. Внутри фигуры обычно пишется, какие именно данные должны быть введены;

Лист с разрывом - блок вывода данных. Внутри блока указывается, какие данные или сообщения программа выводит для представления пользователю;

Закругленные прямоугольники - необязательные блоки начала и конца программы, внутри блоков обычно указываются ключевые слова "нач" и "кон" соответственно;

Последняя фигура служит для изображения циклов, как правило, у нее 2 входа (первый и повторный вход в цикл) и 1 выход, соответствующий завершению циклического процесса.

На рис. 1.2 приведен пример блок-схемы, иллюстрирующей известный процесс решения квадратного уравнения.

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

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

нач - начало программы;

кон - конец программы;

если ... то ...иначе - проверка условия;

ввод - ввод данных;

вывод - вывод данных;

для ... от .. до ... нц ... кц - цикл со счетчиком (нц - начало цикла, кц - конец);

пока ... нц ...кц - цикл с предусловием;

нц ... кц ... пока - цикл с постусловием.

Рис. 1.2. Блок-схема решения квадратного уравнения

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

1.4 Программа и программное обеспечение

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

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

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

1.5 Этапы разработки программы

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

1. Определение входных и выходных данных, требований к программе.

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

2. Разработка алгоритма.

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

3. Кодирование (программирование).

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

4. Компиляция и отладка.

Исходный текст на Паскале не будет непосредственно исполняться компьютером - для работы программы ее требуется откомпилировать, т. е., перевести в машинный код. Эту работу выполняет специальная программа-компилятор или оболочка языка. Оболочка Паскаля, с помощью которой мы будем разрабатывать свои программы, называется Turbo Pascal 7.1, она разработана компанией Borland International в 1983-97 гг. В результате преобразования компилятором исходного текста программы в машинный код получается исполняемый файл с расширением exe, который можно запустить (выполнить) в той операционной системе (ОС), для которой разработан компилятор. Наша оболочка Паскаля создавалась для ОС MS-DOS, однако, в современных ОС семейства Windows программа, написанная на Паскале, работать все же будет, правда, без удобных интерфейсных возможностей Windows.

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

Возможны программные ошибки трех видов:

синтаксические (ошибки в правилах языка);

алгоритмические (ошибки в логике программы);

ошибки времени исполнения, возникающие в процессе работы запущенной программы.

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

5. Тестирование.

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

6. Документирование и поддержка.

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

2. Данные в языке Паскаль

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

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

имя состоит из одного слова; если требуется пробел в имени, он заменяется на подчеркивание: так, My_1 будет правильным идентификатором, а My 1 - нет;

имя всегда начинается с буквы: возможен объект с именем A1, но не 1A; прописные и строчные буквы в именах не различаются Паскалем: x1 и X1 - это одна и та же величина;

имена не могут совпадать с зарезервированными в языке служебными словами, обозначающими разрешенные в языке операции над данными: например, нельзя назвать Begin или BEGIN ни одну величину в программе, так как begin -зарезервированное служебное слово, а прописные и строчные буквы в служебных словах также не различаются. Познакомиться с большинством служебных слов мы сможем в процессе изучения языка.

2.1 Константы

Константой называют величину, значение которой не меняется в процессе выполнения программы.

Числовые константы служат для записи чисел. Различают следующие их виды:

Целочисленные (целые) константы: записываются со знаком + или -, или без знака, по обычным арифметическим правилам:

-10 +5 5

Вещественные числа могут записываться в одной из двух форм:

обычная запись: 2.5 -3.14 2. - обратите внимание, что целая часть отделяется от дробной символом точки;

экспоненциальная ("научная") форма: в этой записи вещественное число представляется в виде m*10p, где m - мантисса или основание числа, 0.1?|m|?1, p - порядок числа, заданный целочисленной константой. Действительно, любое вещественное число можно представить в экспоненциальной форме:

-153.5 -0.1535*103

99.005 0.99005*102

Во всех IBM-совместимых компьютерах вещественные числа хранятся как совокупность мантиссы и порядка, что позволяет упростить операции над ними, используя специальную арифметику, отдельно обрабатывающую мантиссу и порядок. Для программной записи числа в экспоненциальной форме в качестве обозначения "умножить на 10 в степени" используется символ E или e (латинские):

-153.5 -0.1535*103 -0.1535E3 или -1.535E02

99.005 0.99005*102 0.99005E+2 или 9.9005e+01

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

1030 1e30

-1020 -1E20

10-30 1E-30

Поскольку размер памяти, отводимой под мантиссу и порядок, ограничен, то вещественные числа всегда представляются в памяти компьютера с некоторой погрешностью. Например, простейшая вещественная дробь 2/3 дает в десятичном представлении 0,666666... и, независимо от размера памяти, выделяемой для хранения числа, невозможно хранить все его знаки в дробной части. Одной из типичных проблем программирования является учет возможных погрешностей при работе с вещественными числами.

Кроме числовых констант существуют и другие их виды:

логические константы служат для проверки истинности или ложности некоторых условий в программе и могут принимать только одно из двух значений: служебное слово true обозначает истину, а false - ложь;

символьные константы могут принимать значение любого печатаемого символа и записываются как символ, заключенный в апострофы ('одинарные кавычки'):'Y' 'я' ' '

В последнем случае значение символьной константы равно символу пробела. Если требуется записать сам символ апострофа как символьную константу, внутри внешних апострофов он удваивается: ''''.

К символьным также относятся константы вида #X, где X - числовое значение от 0 до 255 включительно, представляющее собой десятичный ASCII-код символа. Таблицы ASCII-кодов, используемых операционными системами DOS и Windows, приведены в Приложении 1. Например, значение #65 будет соответствовать коду буквы 'A' латинской. Обработка нажатий клавиш и расширенные коды клавиатуры описаны в гл. 24 и Приложении 5.

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

'Введите значение X:'

'Ответ='

Если в строковой константе необходимо записать сам символ апострофа, это делается так же, как для символьных констант.

Именованные константы перечисляются в разделе описаний программы оператором следующего вида:

const Имя1=Значение1;

Имя2=Значение2;

...

ИмяN=ЗначениеN;

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

const e=2.7182818285;

lang='Turbo Pascal 7.1';

Здесь описана числовая константа e со значением основания натурального логарифма и строковая константа с именем lang, содержащая строку 'Turbo Pascal 7.1'.

Каждое даваемое программистом имя должно быть уникальным в пределах одной программы. Если мы включим этот раздел в свою программу, мы уже не сможем создать в ней других объектов с именами e и lang.

2.2 Переменные и типы переменных

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

Поскольку любые данные в памяти компьютера хранятся в числовой форме и двоичной системе счисления, кроме имени, переменной обязательно следует присвоить и тип, определяющий диапазон значений, принимаемых переменной, и способ ее обработки машиной. Поясним сказанное на примере. Как видно из Приложения 1, большая латинская буква 'A' имеет десятичный код 65, или 01000001 в двоичном представлении. Без дополнительной информации о типе данных, хранящихся в некоторой ячейке памяти, компьютеру было бы невозможно решить, что именно представляют из себя эти данные - число 65, код символа 'A' или что-то еще. В любом языке программирования, в том числе и в Паскале, существует стандартный набор типов, к которым может быть отнесена та или иная совокупность ячеек памяти. Информацию о типах данных Паскаля удобно свести в таблицу. Строки этой таблицы будут упорядочены по старшинству типов, от самого "младшего", требующего наименьшее число байт для представления, и, соответственно, представляющего наименьший диапазон возможных значений, до самого "старшего", представляющего наибольший диапазон значений. В табл. 2.1 представлены не все возможные, а лишь основные типы данных Паскаля.

Таблица 2.1 - Основные типы данных Паскаля

Ключевое слово Паскаля

Название и описание типа

Объем памяти, байт

Диапазон возможных значений

boolean

Логический: хранит одну логическую переменную

1

true и false

char

Символьный: хранит код одного символа из набора ASCII-кодов

1

от 0 до 255 включительно (28=256)

integer

Целочисленный

2

±215

word

Целочисленный без знака

2

±216 - диапазон вдвое больше, так как 16-й бит не занят под знак числа

longint

Длинное целое: для представления больших целочисленных значений

4

±231

real

Вещественное число с точностью представления до 11-12 знака в дробной части

6

~ 2.9*10-39 - 1.7*1038

double

Вещественное число с точностью представления до 15-16 знака в дробной части

8

~ 5*10-324 - 1.7*10308

string

Последовательность символов типа char длиной от 1 до 255

2-256 (данные строки + 1 байт для хранения ее длины)

Любые строки текста, состоящие из печатаемых символов

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

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

Задача правильного выбора типов данных целиком ложится на программиста. Например, если некоторый счетчик в вашей программе может принимать целочисленные значения от 1 до 100 000, неправильно было бы описывать его как переменную типа integer - ведь 215=32768 и при достижении счетчиком этой величины произойдет сброс его значения, которое станет равно -32768. Разумным в данном случае было бы описание счетчика как переменной типа longint.

Переменные описываются в программе оператором следующего вида:

var Список1:Тип1;

Список2:Тип2;

...

СписокN:ТипN;

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

var t,r:real;

i:integer;

описывает 2 вещественных переменных с именами t и r, а также целочисленную переменную с именем i. Ключевое слово var можно продублировать, но обычно такой необходимости нет. Сокращение var образовано от английского "variable" (переменная).

3. Арифметические выражения

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

Таблица 3.1 - Арифметические операции языка Паскаль

Приоритет

Знак операции

Описание операции

1

*

умножение

/

деление

div

деление 2 целых значений с отбрасыванием остатка

mod

взятие остатка от деления 2 целых значений

2

+

сложение

-

вычитание

Операции div и mod определены только для целочисленных операндов. Приведем пример их использования:

var y,c,n:integer;

. . .

y:=2009;

c:=y div 100;

n:=y mod 100;

Здесь переменная c получит значение 20, а n - значение 9.

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

Стандартные функции служат для выполнения элементарных математических расчетов, часто требуемых при написании программ. Разработчики Паскаля стремились сделать его программное ядро максимально компактным, поэтому в него не вошел ряд функций, обычно имеющихся в других языках, таких, как вычисление максимума и минимума, возведение числа в произвольную степень и др. Физически коды стандартных функций хранятся в стандартной библиотеке Паскаля - файле с именем turbo.tpl. Все функции оформляются одинаково: после имени функции следует ее аргумент, заключенный в круглые скобки. Если аргументов несколько, они разделяются запятыми. Информация об основных стандартных функциях представлена в табл. 3.2.

Таблица 3.2 - Стандартные функции языка Паскаль

Математическая запись

Запись на Паскале

Пояснение

Тип аргумента и результата

|x|

abs(x)

Модуль аргумента x

Integer (I) или Real (R)

x2

sqr(x)

Квадрат аргумента x

аргумент - I или R, результат - r

sin x

cos x

arctg x

sin(x)

cos(x)

arctan(x)

Остальные тригонометрические функции выражаются через эти

аргумент - I или R, результат - R

ex

ln x

exp(x)

ln(x)

Экспонента и натуральный логарифм

аргумент - I или R, результат - R

sqrt(x)

Квадратный корень от аргумента x

аргумент - I или R, результат - R

pi

Функция без аргументов, вернет число

R

trunc(x)

Функция отбрасывает дробную часть аргумента, аргумент не округляется

аргумент R, результат I

frac(x)

Функция выделяет дробную часть своего аргумента

R

round(x)

Округление вещественного числа до ближайшего целого

аргумент R, результат I

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

Приведем примеры арифметических выражений.

1. Возвести величину x в пятую степень. Выражение может быть записано как x*x*x*x*x или sqr(x)*sqr(x)*x или sqr(sqr(x))*x, последнее показывает, что результаты одних функций могут быть аргументами других - это называют вложением функций. Разумеется, тип результата, возвращаемый вложенной функцией, должен быть подходящим для аргумента внешней функции.

2. Возвести величину a в произвольную степень x. Так как в Паскале нет функции возведения в произвольную степень, воспользуемся формулой ax=ex*ln a:

a:=2.5; x:=0.25;

ax:=exp(x*ln(a));

Обратите внимание, что все круглые скобки в выражении должны быть парными. Другой пример применения этого способа: = exp(1/3ln(x)).

3. Вычислить sin2x . Запись на Паскале: sqr(sin(x)). Сравните с выражением sin x2, которое записывается как sin(sqr(x)).

4. Вычислить k=tg(t). Т. к. функции тангенса в Паскале нет, распишем тангенс в виде k:=sin(t)/cos(t);.

5. При необходимости изменить обычное старшинство операций в записи выражения используются дополнительные круглые скобки. Например, правильная запись выражения выглядит как y:=(a+b)/2;. Запись y:=a+b/2; неверна, т. к. это означает .

6. В записи выражений нельзя пропускать знак *, как часто делается в математике: b2-4ac записывается как sqr(b)-4*a*c. Нельзя писать sin*x или sin x, после имени функции может следовать только ее аргумент в круглых скобках.

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

Например, для переменных

var i,j:integer; f:real;

выражение i+4*j имеет целый тип, и его результат можно записать в целую переменную. Выражение f+i*0.5 дает вещественный, результат, который должен быть записан в вещественную переменную.

Операция деления / в Паскале всегда дает вещественное число. Для деления целых чисел с целым результатом (остаток отбрасывается) используйте div, для взятия остатка от деления двух целых - mod.

4. Линейный вычислительный процесс

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

4.1 Оператор присваивания

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

переменная := выражение;

Знак := читается как "присвоить".

Оператор присваивания работает следующим образом: сначала вычисляется выражение, стоящее справа от знака :=, затем результат записывается в переменную, стоящую слева от знака. Например, после выполнения оператора

k:=k+2;

текущее значение переменной k увеличится на 2.

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

Приведем примеры.

1. Записать оператор присваивания, который позволяет вычислить расстояние между двумя точками на плоскости с координатами (x1, y1) и (x2, y2).

Оператор будет иметь вид

d:=sqrt(sqr(x1-x2)+sqr(y1-y2));

2. Записать последовательность операторов присваивания, обеспечивающих обмен значениями переменных x и y в памяти компьютера.

c:=x; x:=y; y:=c;

Здесь с - дополнительная переменная того же типа, что x и y, через которую осуществляется обмен. Грубой ошибкой было бы, например, попытаться выполнить обмен операторами x:=y; y:=x; - ведь уже после первого из них мы имеем два значения y, а исходное значение x потеряно.

4.2 Оператор ввода

Базовая форма оператора ввода позволяет пользователю ввести с клавиатуры значения одной или нескольких переменных. Оператор ввода с клавиатуры может быть записан в одной из следующих форм:

read(список_переменных);

readln(список_переменных);

Имена переменных в списке перечисляются через запятую. Здесь и далее список данных, передаваемых любому оператору (а позднее и написанным нами подпрограммам), мы будем называть параметрами. Таким образом, параметрами оператора (точней, стандартной процедуры) read являются имена переменных, описанных ранее в разделе var.

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

Оператор readln отличается от read только тем, что все переменные должны быть введены в одну строку экрана, клавиша Enter нажимается один раз по окончании ввода. Форма записи readln используется, в основном, для ввода строк текста, для ввода числовых значений лучше использовать read, т. к. в этом случае пользователь может вводить данные более свободно (и в одну, и в несколько строк экрана).

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

В качестве примера организуем ввод исходных данных для решения квадратного уравнения:

var a,b,c:real;

...

read (a,b,c);

Для задания значений a=1, b=4, c=2.5 на экране вводится:

1_4_2.5¬

Здесь и далее "_" означает пробел, а "¬" - нажатие Enter. Другой вариант ввода с клавиатуры:

2.5¬

Третий вариант:

4_2.5¬

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

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

4.3 Оператор вывода

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

write(список);

writeln(список);

Элементы списка перечисляются через запятую.

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

Оператор writeln отличается от write тем, что после вывода значения последнего элемента списка выполняется перевод курсора на следующую строку экрана.

Приведем примеры.

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

var a,a2:integer;

...

writeln ('Введите целое число:');

{это приглашение к вводу}

read (a);

a2:=sqr(a);

writeln ('Квадрат числа=',a2);

Если ввести значение a=2, на экране будет напечатано

Квадрат числа=4

|

Символ |здесь и далее обозначает курсор. Видно, что оператор writeln перевел курсор на следующую строку.

После вывода результата выполнение программы продолжится, а если оператор writeln был в ней последним, то и завершится. Чтобы пользователь успел прочитать результат, следует в конце программы добавить оператор

readln;

который будет ждать нажатия клавиши Enter.

2. Требуется вывести на экран результаты решения квадратного уравнения: значения x1=1.5 и x2=2.5:

write ('x1=',x1,'_x2=',x2);

Пробел в строкой константе '_x2=' нужен, чтобы значение x1 не слилось со строкой 'x2='. На экране будет напечатано:

x1= 1.5000000000E+00 x2= 2.5000000000E+00|

Курсор остался в конце строки, т.к. использована форма оператора write.

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

4.4 Управление выводом данных

В операторе write или writeln вещественное значение (а также целое или строковое) зачастую удобнее записывать в виде:

переменная:ширина:точность

Здесь ширина - целое положительное число, определяющее, сколько экранных позиций отводится для вывода всего числа. Ширина определена для числовых значений любого типа и строк.

Точность - целое положительное число, определяющее, сколько цифр из ширины отводится на вывод дробной части числа. Значение точности определено только для вещественных чисел. Оно не учитывает позицию десятичной точки. Разумные значения точности - от 0 до ширина-2 включительно. Недопустимые значения ширины и точности не будут учтены при выводе.

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

var x1,p:real;

i:integer;

...

x1:=2.5; p:=-3.175; i:=2;

writeln ('x1=',x1:8:2,'_p=',p:9:4);

write ('I=','_':5,i:2);

На экране будет напечатано:

x1=____2.50_p=__-3.1750

I=______2

4.5 Вывод на печать

Иногда требуется, чтобы программа вывела результаты своей работы на принтер. Для этого достаточно выполнения двух условий. Первым оператором раздела описаний программы следует указать оператор uses printer;, подключающий стандартную библиотеку для работы с принтером, а первым параметром оператора write или writeln указать символическое имя принтера lst, описанное в библиотеке printer:

write ('Hello');

-- строка 'Hello' выведена на экран,

write (lst,'Hello');

-- строка выведена на принтер.

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

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

5. Структура простой программы на Паскале

Программа на Паскале не просто состоит из операторов - порядок следования этих операторов не случаен и образует определенную структуру. Структура простейшей программы описана в табл. 5.1.

Таблица 5.1 - Структура простой программы на Паскале

Название раздела

Операторы раздела

Заголовок программы (необязателен)

program ИмяПрограммы;

Раздел описаний - необязателен, но, как правило, присутствует

const список констант;

var список переменных;

Тело программы - обязателен, содержит операторы программы

Begin операторы; end.

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

Только последний оператор программы завершается точкой: end. , все остальные - символом ;.

Если в программе нет констант, в ней будет отсутствовать раздел const, если нет и переменных - раздел var.

При написании текста программы следует соблюдать несложные правила, облегчающие его последующие чтение и модификацию:

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

на каждой строке обычно пишется один оператор (это облегчает и отладку программы);

операторы одного уровня вложенности пишутся с одинаковым отступом слева; например, хорошим тоном считается после начала каждого блока (begin) отступать на следующей строке на символ или несколько символов вправо, а закрывать блок так, чтобы соответствующий end; находился под своим begin. Приведем пример неправильного и правильного структурирования:

program p1; var

a,b,c:real; begin

writeln ('Введите значения A и B:');read(a,b);

c:=a+b; writeln ('A+B=',c); c:=a-b;

writeln ('A-B=',c); end.

Текст этой программы структурирован явно неудачно, гораздо лучше он воспринимается так:

program p1;

var a,b,c:real;

begin

writeln ('Введите значения A и B:');

read (a,b);

c:=a+b;

writeln ('A+B=',c);

c:=a-b;

writeln ('A-B=',c);

end.

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

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

program Equation;

var a,b,c,d,x1,x2:real; begin

writeln;

writeln ('Введите коэффициенты a,b,c:');

read (a,b,c);

d:=sqr(b)-4*a*c;

x1:=(-b+sqrt(d))/(2*a);

x2:=(-b-sqrt(d))/(2*a);

writeln ('Корни уравнения');

writeln (x1:10:2,x2:10:2);

readln; readln;

end.

В разделе описаний программы всем переменным, требуемым для решения задачи, присвоен тип real, и этот выбор вполне очевиден - коэффициенты a, b и с - не обязательно целые значения. "Лишний" оператор writeln; перед приглашением к вводу - гарантия того, что приглашение будет напечатано с начала пустой строки, ведь мы пока не умеем очищать экран, и, возможно, при запуске нашей программы курсор находится не в начале строки. После вычисления дискриминанта и корней x1, x2 (условие d?0 мы пока не проверяем), на экран печатается информационное сообщение "Корни уравнения", а затем с новой строки выводятся значения x1 и x2 с соблюдением указанных ширины и точности вывода. Наконец, два оператора readln; в конце программы позволяют ей дождаться, пока пользователь не нажмет клавишу Enter. "Удвоение" оператора здесь связано с тем, что один раз мы уже нажимали Enter после ввода данных, и первый readln; прочитает именно это нажатие, а второй будет ждать еще одного. Будь ввод данных организован в виде a:=1; b:=2; c:=0; или readln(a,b,c);, нам хватило бы и одного readln;. Однако, оператор readln(a,b,c); потребовал бы от пользователя ввести все 3 числа в одной строке, а задание фиксированных значений a, b, c уменьшило бы до нуля ее полезность. В дальнейшем мы узнаем более гибкие способы программирования реакции программы на действия пользователя.

6. Компилятор и оболочка Turbo Pascal

Кратко рассмотрим основные действия с этой программой. После установки программы из папки Паскаля или с помощью ярлыка запускается файл с именем turbo.exe. Основные элементы окна Турбо Паскаля приведены на рис. 6.1.

Рис. 6.1. Окно программы Turbo Pascal

Как видно на рис. 6.1, устройство окна несколько отличается от стандартного окна Windows.

Для входа в верхнее меню следует нажать клавишу F10 или сделать щелчок мышью на нужном пункте. Если ни одно окно не открыто или необходимо окно для новой программы, в меню File выберите пункт New. Для открытия ранее сохраненной программы в этом же меню выберите Open или просто нажмите F3 из основного окна. Выбрать нужную программу можно в появившемся диалоговом окне, возможно, для этого потребуется сменить папку.

Если открыто сразу несколько окон, переключаться между ними можно, нажимая при нажатой левой Alt цифровую клавишу с номером нужного окна (от 1 до 9). Получить список всех окон можно комбинацией клавиш Alt+0, закрыть текущее окно - Alt+F3

После ввода программы (а лучше несколько раз в процессе ввода) ее следует сохранить на диске. Для этого в меню File достаточно выбрать команду Save или нажать F2 из окна программы. При первом сохранении программе нужно дать имя. Помните, что Паскаль разрабатывался для операционной системы MS-DOS и даваемые файлам имена должны включать в себя только латинские буквы и цифры, а по длине не превышать 8 символов. Тип файла .pas можно не указывать, он добавится к имени автоматически.

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

После сохранения программы, для ее компиляции и выполнения достаточно нажать комбинацию клавиш Ctrl+F9. Если в процессе компиляции найдена синтаксическая ошибка, компилятор сообщит о ней и установит курсор на строку, содержащую ошибку. После исправления ошибки нажмите Ctrl+F9 еще раз. По завершении программы, если в ней не предусмотрено никакого останова, произойдет автоматический возврат в окно с исходным текстом. Вернуться к окну вывода программы после ее выполнения можно, нажав Alt+F5.

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

Переключение на русский язык и обратно из оболочки Турбо Паскаля зависит от настроек ОС, уточните их у преподавателя или оператора.

Переключение в полноэкранный режим и обратно, как и для других приложений DOS, выполняется сочетанием клавиш Alt+Enter.

По умолчанию программа Turbo Pascal не создает исполняемых файлов *.exe. Чтобы она начала это делать, достаточно в верхнем меню Compile установить пункт-переключатель Destination в значение Disk (значение по умолчанию - Memory).

Оболочка Паскаля включает удобные средства отладки программ, основные требуемые команды собраны в меню Debug. Для выполнения программы по строкам достаточно нажимать F7 или F8. Разница между назначениями этих клавиш в том, что нажатие F7 пошагово выполняет программу с входом во все возможные подпрограммы, а F8 - нет. Пока тема "Подпрограммы" не изучена, разницы в действии клавиш не будет заметно. Строка, которая будет выполняться следующей, выделена светло-зеленым цветом. Перейти сразу к нужному месту в программе можно, установив курсор на соответствующую строку и нажав клавишу F4. Выйти из режима пошагового выполнения и прервать работу отладчика позволяет сочетание клавиш Ctrl+F2.

В процессе пошагового выполнения можно посмотреть и даже изменить значения любых переменных. Для этого достаточно установить курсор на имя нужной переменной и нажать сочетание клавиш Ctrl+F4. На экране должно появиться диалоговое окно "Evaluate and Modify". В поле ввода Expression уже показано имя переменной, на которой стоял курсор. Если это не так, здесь можно задать имя любой доступной переменной или ввести произвольное выражение на Паскале. Нажатие Enter или кнопки Evaluate выводит результат в поле Result. В поле New Value можно, не прерывая пошагового выполнения, изменить значение переменной. Если предложенное изменение возможно, после нажатия кнопки Modify оно будет показано в поле Result, в противном случае там выведется сообщение "Cannot be modified". Таким образом, окно "Evaluate and Modify" позволяет гибко тестировать поведение программы при различных входных данных.

Наконец, в Паскаль встроена мощная система помощи. Нажатие клавиши F1 вызывает окно помощи по редактору, а Shift+F1 - индекс оглавления справочной системы. В тексте помощи ссылки на другие разделы выделены желтым цветом, а переходить по ссылкам можно клавишами Tab и Shift+Tab или клавишами со стрелками. Нажатие Alt+F1 возвращает к чтению предыдущей статьи. Пользуясь выделением с помощью мыши или клавишами со стрелками при нажатой Shift, информацию из окна помощи можно копировать во встроенный буфер обмена и затем вставлять в новый или существующий файл. Соответствующие команды доступны из меню Edit. Дополнительные возможности системы помощи доступны из меню Help.

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

Подробнее о работе с этой и другими оболочками компании Borland можно узнать в специальной литературе.

7. Разветвляющийся вычислительный процесс и условный оператор

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

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

7.1 Логические выражения

Логические выражения (ЛВ) строятся из АВ, операций отношения, логических операций и круглых скобок.

Результатом вычисления ЛВ является одно из двух значений: true или false.

7.2 Операции отношения

Операции отношения (сравнения) имеют следующий общий вид:

АВ1 ОО АВ2

где АВ - арифметические выражения, ОО - один из следующих знаков операций:

< <= > >= = <>

Последний знак обозначает отношение "не равно". Обратите также внимание на запись отношений "меньше или равно", "больше или равно".

В любое логическое выражение должна входить хотя бы одна операция отношения.

Приведем примеры ЛВ, включающих одну ОО:

d<0 - выбор ветви вычислений зависит от значения d;

sqr(x)+sqr(y)<=sqr(r) - результат будет равен true для точек с координатами (x, y), лежащих внутри круга радиуса R с центром в начале координат;

cos(x)>1 - результат этого ЛВ всегда равен false.

К вещественным значениям в общем случае неприменима операция = ("равно") из-за неточного представления этих значений в памяти компьютера. Поэтому для вещественных переменных отношение вида a=b часто заменяется на abs(a-b)<eps, где eps - малая величина, определяющая допустимую погрешность.

7.3 Логические операции

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

Таблица 7.1 - Логические операции языка Паскаль

Математическая запись

Запись на Паскале

Название

not

Отрицание

and

Операция "И" (логическое умножение)

or

Операция "ИЛИ" (логическое сложение)

xor

Операция "исключающее ИЛИ"

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

Например, выражение NOT (sin(x)>1) всегда даст значение true.

Операция AND связывает не менее двух логических выражения (является бинарной). Ее результат равен true, если все выражения истинны или false, если хотя бы одно из выражений ложно.

В качестве примера распишем выражение . Т. к. операции принадлежности в Паскале нет, используем операцию AND и операции отношения: (x>=a) and (x<=b).

Математическое выражение a,b,c>0 (одновременно) будет иметь вид (a>0) and (b>0) and (c>0).

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

Распишем выражение . На Паскале оно будет иметь вид(x<a) or (x>b). Другой способ связан с применением операции NOT: not ((x>=a) and (x<=b)).

Условие "хотя бы одно из значений a,b,c положительно" может быть записано в виде (a>0) or (b>0) or (c>0) .

Условие "только одно из значений a,b,c положительно" потребует объединения возможностей операций AND и OR:

(a>0) and (b<=0) and (c<=0) or

(a<=0) and (b>0) and (c<=0) or

(a<=0) and (b<=0) and (c>0).

Операция XOR, в отличие от OR, возвращает значение "ложь" (false) и в том случае, когда все связанные ей логические выражения истинны. Чтобы лучше уяснить это отличие, составим так называемую таблицу истинности двух логических операций (табл. 7.2). Для краткости значение false обозначим нулем, а true - единицей. Для двух логических аргументов возможно всего 4 комбинации значений 0 и 1.

Таблица 7.2 - Таблица истинности операций OR и XOR

Аргумент A

Аргумент B

A or B

A xor B

0

0

0

0

0

1

1

1

1

0

1

1

1

1

1

0

В качестве примера использования операции XOR запишем условие "только одно из значений a,b положительно":

(a>0) xor (b>0).

К сожалению, записать условие "только одно из значений a,b,c положительно" в напрашивающемся виде (a>0) xor (b>0) xor (c>0) нельзя - результат этого выражения будет равен true и в случае, когда все три значения положительны. Связано это с тем, что при последовательном расчете логических выражений слева направо (1 xor 1) xor 1 будет равно 0 xor 1 = 1.

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

x := x xor true; writeln ('x=', x);

x := x xor true; writeln ('x=', x);

Независимо от начального значения логической переменной x, второе выведенное на экран значение будет логическим отрицанием первого. В реальной практике конструкции подобные x := x xor true; не дублируются в коде многократно, а применяются внутри цикла (см. гл. 9).

Приоритет логических операций следующий: самая старшая операция - not, затем and, следующие по приоритету - or и xor (равноправны между собой), самый низкий приоритет имеют операции отношения. Последнее служит причиной того, что в составных условиях отдельные отношения необходимо заключать в круглые скобки, как и сделано во всех примерах раздела.

7.4 Короткий условный оператор

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

if логическое_выражение then оператор1;

Сначала вычисляется логическое выражение, если оно имеет значение true, то выполняется оператор1, иначе оператор1 игнорируется. Блок-схема соответствующего вычислительного процесса представлена на рис. 7.1.

...

Подобные документы

  • Язык программирования Турбо Паскаль. Запись алгоритма на языке программирования и отладка программы. Правила записи арифметических выражений. Стандартное расширение имени файла, созданного системным редактором. Составной оператор и вложенные условия.

    курсовая работа [75,0 K], добавлен 21.03.2013

  • Особенности программирования на языке Паскаль в среде Турбо Паскаль. Линейные алгоритмы, процедуры и функции. Структура данных: массивы, строки, записи. Модульное программирование, прямая и косвенная рекурсия. Бинарный поиск, организация списков.

    отчет по практике [913,8 K], добавлен 21.07.2012

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

    курсовая работа [48,8 K], добавлен 27.11.2010

  • История и основы структурного программирования в среде Turbo Pascal. Работа с различными типами данных. Операторы языка. Работа с символьными и строковыми переменами, одномерным, двумерным массивами. Классификация компьютерных игр. Игры на языке Паскаль.

    курсовая работа [28,8 K], добавлен 06.05.2014

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

    курсовая работа [290,9 K], добавлен 05.12.2008

  • Общая характеристика языков программирования. Описание языка Паскаль: основные субъекты языка; структура Паскаль-программы; типизация и объявление данных. Операторы присваивания и выражения. Структурные операторы, организация ветвлений и циклов.

    дипломная работа [276,6 K], добавлен 26.01.2011

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

    курсовая работа [233,5 K], добавлен 14.12.2012

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

    курсовая работа [440,7 K], добавлен 13.06.2011

  • Совместимость и преобразование типов данных. Создание информационно-поисковой системы на языке программирования Паскаль. Описание интерфейса, каждого блока программы "Картотека больных". Рассмотрение результатов работы программы, сортирования данных.

    курсовая работа [368,9 K], добавлен 18.05.2015

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

    курсовая работа [761,7 K], добавлен 11.03.2015

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

    курсовая работа [224,3 K], добавлен 11.02.2016

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

    лекция [55,7 K], добавлен 21.05.2009

  • Рассмотрение общих сведений и уровней языков программирования. Ознакомление с историей развития, использования языков программирования. Обзор достоинств и недостатков таких языков как Ассемблер, Паскаль, Си, Си++, Фортран, Кобол, Бейсик, SQL, HTML, Java.

    курсовая работа [759,5 K], добавлен 04.11.2014

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

    курсовая работа [1,0 M], добавлен 03.07.2011

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

    лабораторная работа [15,7 K], добавлен 12.06.2010

  • Понятие программы и ее основные составляющие. Операторы ввода и вывода. Разветвляющиеся алгоритмы. Цикл как многократное выполнение одинаковых действий. Особенности использования оператора выбора. Графики функций и системы координат. Рекурсия и анимация.

    презентация [663,7 K], добавлен 24.12.2010

  • Изучение организации диалоговой программы и закрепления основных элементов программирования на языке Паскаль и Си (Delphi, C++ Builder). Описание представления информации в программах на языках высокого уровня. Сравнительная характеристика Delphi и C++.

    курсовая работа [3,1 M], добавлен 27.02.2015

  • Алгоритмы и алфавит языка Турбо Паскаль. Основные типы данных. Операторы присваивания, перехода и выбора. Понятие массива в Паскале. Особенности работы со строками в программе. Использование линейного поиска и поиска с барьером. Основные виды сортировок.

    учебное пособие [53,2 K], добавлен 09.11.2009

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

    курсовая работа [254,0 K], добавлен 02.07.2011

  • Расчет на устойчивость в системе программирования Турбо Паскаль. Определение критического напряжения стержня по формуле Ясинского, предельной гибкости в зависимости от материала. Программирование алгоритма расчета. Порядок ввода исходных данных.

    курсовая работа [1,0 M], добавлен 27.04.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.