Алгоритмический язык Турбо-Паскаль

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

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

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

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

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

Оглавление

  • 1. Алгоритмический язык Турбо-Паскаль
    • 1.1 Общие сведения
    • 1.2 Среда Турбо-Паскаль
    • 1.3 Структура языка Турбо-Паскаль
    • 1.4 Типы переменных
    • 1.5 Структура программы
    • 1.6 Операции и стандартные функции
    • 1.7 Операторы Турбо-Паскаля
      • 1.7.1 Операторы ввода/вывода данных
      • 1.7.2 Оператор выбора
      • 1.7.3 Условный оператор
      • 1.7.4 Оператор цикла с параметром
      • 1.7.5 Операторы цикла с условием
      • 1.7.6 Операторы ограничения и прерывания цикла
      • 1.7.7 Оператор перехода к метке
    • 1.8 Блок-схемы алгоритмов
    • 1.9 Составление диалоговых программ
      • 1.10 Линейные массивы
    • 1.11 Текстовые файлы
    • 1.12 Разработка функций и процедур
      • 1.12.1 Описание функций и процедур
      • 1.12.2 Рекурсивные функции и процедуры
    • 1.13 Разработка модулей
    • 1.14 Модуль СRT
      • 1.14.1 Управление экраном в текстовом режиме
      • 1.14.2 Управление клавиатурой
      • 1.14.3 Работа с символьными переменными
      • 1.14.4 Работа со строковыми переменными
      • 1.14.5 Управление звуковыми сигналами
    • 1.15 Модуль Graph
      • 1.15.1 Инициализация графического режима
      • 1.15.3 Рисование геометрических фигур
        • 1.15.3.1 Построение заполненных фигур
        • 1.15.3.2 Работа с линиями
        • 1.15.3.3 Создание графических узоров
        • 1.15.3.4 Работа с текстом в графическом режиме
      • 1.15.5 Мультипликация
        • 1.15.5.1 Мультипликация с запоминанием части экрана
        • 1.15.5.2 Мультипликация с чередованием видеостраниц
        • 1.15.5.3 Мультипликация с управлением движения образа
        • 1.15.5.4 Модификация контурного изображения
  • 2. Программирование в среде Турбо - Паскаль
    • 2.1 Геометрические построения на плоскости
      • 2.1.1 Построение графиков функций
      • 2.1.2 Графическое решение уравнений
      • 2.1.3 Уравнение прямой на плоскости
      • 2.1.4 Построение касательных и нормалей к плоским кривым
      • 2.1.5 Двумерные преобразования координат
      • 2.1.6 Проецирование пространственного изображения тела на плоскость
    • 2.2 Некоторые задачи физики
    • 2.3 Математическое моделирование физических процессов
    • 2.4 Моделирование многовариантных задач с использованием графов
  • Список литературы

1. Алгоритмический язык Турбо-Паскаль

1.1 Общие сведения

Алгоритмический язык Паскаль разработан профессором Цюрихского технологического института Никлаусом Виртом в 1969-71 годах для обучения студентов структурному программированию. Идеи, заложенные в основу создания языка, позволили фирме Borland International значительно расширить алгоритмические средства языка, а удобный интерфейс (меню команд) и высокая скорость компиляции (процесса перевода текста программы в машинные коды) сделали язык Турбо-Паскаль (Turbo-Pascal) одним из самых распространенных среди начинающих и профессиональных программистов. программирование паскаль файл компьютер

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

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

- синтаксических ошибок в тексте ( неверно записанных операторов ),

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

- алгоритмических ошибок ( неверно составлен или запрограммирован алгоритм ),

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

1.2 Среда Турбо-Паскаль

Для загрузки среды Турбо-Паскаль запускается файл turbo. exe.

Меню активизируется нажатием клавиши F10. Перемещение по пунктам меню осуществляется курсорными клавишами. Для выбора пункта меню выделить его курсором и нажать Enter. Пункты меню с многоточием " . . . " содержат установочные параметры (опции). Перемещение по группам опций меню осуществляется нажатием клавиши Tab, (в обратном направлении: Shift+Tab). Для выбора селективной опции меню (*) выделить ее курсором и нажать Tab или Shift+Tab. Для выбора тригерной опции меню [X] выделить ее курсором и нажать SpeaceBar. Опишем некоторые пункты меню, используемые начинающим программистом в среде Турбо-Паскаль 7. 0.

File - работа с файлами.

New - создать новый файл. Для переименования безымянного файла ( NONAME00. PAS ) нажать F2 и ввести имя файла. Open F3 - открыть (создать) файл для редактирования. Написать в строке "Name" имя файла и нажать Enter, либо, нажав Tab или Enter, выбрать файл из списка. Для смены каталога выбрать ". . \ ";

Save F2 - сохранить файл ( записать на диск );

Save as... - сохранить файл под новым именем (исходный файл остается);

Save all - сохранить все файлы в открытых окнах;

Exit ALT+X - выход из среды Турбо-Паскаль;

Список имен файлов для редактирования - выбрав курсором имя файла нажать Enter, для отмены выбора нажать Esc.

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

Window - работа с окнами. Tile - параллельное размещение окон на экране;

Cascade - последовательное размещение окон в виде каскада;

Close all - закрыть все окна редактирования;

Refresh display - обновить (восстановить) экран среды;

Size Ctrl+F5 - изменение размеров окна Shift+курсорные клавиши;

Move Ctrl+F5 - перемещение активного окна курсорными клавишами;

Zoom F5 - распахнуть окно во весь экран, F5 - для отмены;

Next F6 - последовательная смена активного окна;

Previous Shift+F6 - смена активного окна в обратном направлении;

Close Alt+F3 - закрыть активное окно;

List Alt+0 - показать список окон. Для активизации окна выбрать курсором имя окна и нажать Enter.

Выполнение команд Size, Move заканчивается нажатием Enter.

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

Edit - редактирование файла (наибольший размер файла 1Мб).

Undo Alt+BkSp - отменить предыдущую команду редактирования;

Redo - восстановить отмененную команду редактирования;

Cut Shift+Del - удалить блок с экрана в буфер (в окно Clipboard);

Copy Ctrl+Ins - скопировать блок с экрана в буфер;

Paste Shift+Ins - извлечь (скопировать) блок из буфера на экран;

Clear Ctrl+Del - удалить блок на экране;

Show Clipboard - показать окно для редактирования содержимого буфера.

Для выделения блока использовать комбинацию - Shift+курсорные клавиши. Начиная с версии Турбо-Паскаль 5. 0 и выше для редактирования текста можно использовать команды:

Ctrl+K B - начать выделение блока курсорными клавишами;

Ctrl+K K - закончить выделение блока курсорными клавишами;

Ctrl+K C - скопировать блок;

Ctrl+K V - переместить блок курсорными клавишами;

Ctrl+K Y - удалить блок;

Ctrl+K R - прочитать блок с диска;

Ctrl+K W - записать блок на диск;

Ctrl+K H - убрать выделение блока;

Ctrl+Y - удалить строку.

Ctrl+Q F - поиск символов;

Ctrl+Q A - поиск и замена символов.

При поиске символа задается направление поиска от места расположения курсора: вниз по тексту ( Forward ), либо вверх по тексту ( Backward ).

[X] Prompt on replace - подтверждение каждой замены.

При редактировании используются общепринятые приемы перемещения курсора по экрану. Нажатие клавиши Enter вставляет пустую строку. Клавиши Del и BackSpace служат для удаления символов. Нажатие клавиши Ins переключает режимы вставки/замены символов.

Справочная информация вызывается клавишей F1, комбинацией клавиш: Ctrl+F1 (тематический поиск - по слову на который указывает курсор), Shift+F1 (индексный поиск - по первым буквам слова, набранного на клавиатуре), либо через пункт меню Help. Командой Alt+F10 активизируется локальное меню, пункты которого содержат наиболее часто используемые пункты основного меню.

После внесения изменений в файл рекомендуется записывать его на диск командой Save ( F2 ), иначе при перезагрузке компьютера изменения не сохраняются, а при выходе из среды Турбо-Паскаль командой Exit ( Alt+X ) появляется запрос на сохранение модифицированного файла: Save?

Отредактированную программу необходимо преобразовать в машинные коды (скомпилировать). Для компиляции программы используется комбинация клавиш Alt+F9 или команда Compile меню Compile. Если программа использует нескомпилированные модули (или модули с обновленным текстом), то компиляция осуществляется командами меню Compile: Make (F9) - с компиляцией измененных модулей или Build - с перекомпиляцией всех модулей. Компилятор выявляет синтаксические ошибки, устанавливает на неправильном операторе курсор и выдает соответствующее сообщение, например: Error 85 ";" expected (пропущен символ ";"). Отметим, что ошибки, указанные в сообщении, могут быть вторичными - результат неверной записи других операторов. После исправления ошибки необходимо снова запустить компилятор.

В результате компиляции программы образуется исполняемый файл (расширение .ЕXE) в оперативной памяти если установлена опция Memory в меню Compile, Destination или на диске (опция Disk) в каталоге, указанном в строке EXE & TPU directory меню Options, Directories. При компиляции модуля образуется файл с расширением . TPU.

Отметим некоторые опции для работы с файлами.

В меню Options, Environment, Preferences можно указать:

[X] Editor files - автоматическая запись на диск редактируемого файла при запуске его на выполнение,

В меню Options, Environment, Editor можно указать:

[X] Create backup files - создавать страховочные копии предыдущей редакции файла (расширение . BAK) при записи файла на диск.

[X] Persistant blocks - выделение блока остается после перемещения курсора.

В меню Options, Directories нужно указать каталоги для размещения файлов:

EXE & TPU directory - C:\tp7\exe ( с расширением . exe и . tpu ),

Include directories - C:\tp7\inc ( компилируемых с ключом {$I} ),

Unit directories - C:\tp7\unit ( библиотечные файлы *. tpu ).

Сохранить конфигурацию среды можно командой Save меню Options.

Команда Run меню Run (Ctrl+F9) запускает исполняемый файл на выполнение, если текст программы не изменялся, иначе происходит перекомпиляция программы и ее запуск. Ошибки на этапе выполнения связаны, как правило, с недопустимыми значениями аргументов функций, диапазонов изменения чисел и индексов массивов, неправильными операциями ввода/вывода. Загрузчик выдает код ошибки и ее адрес, например, Runtime error 200: Division by zero at 0BEC:0045 (деление на ноль). Прервать выполнение программы можно нажав комбинацию клавиш Ctrl+Break. После выполнения программы восстанавливается среда Турбо-Паскаль. Результаты вывода на экран можно посмотреть командой Alt+F5.

1.3 Структура языка Турбо-Паскаль

Алфавит языка Турбо-Паскаль ( набор используемых символов ) включает буквы латинского алфавита: от a до z и от A до Z, арабские цифры: от 0 до 9, специальные символы: _ + - * / = , . : ; < > ( ) [ ] { } ^ @ $ #, пробел “_” и управляющие символы с кодами от #0 до #31.

Используются также служебные (зарезервированные) слова, например:

absolute, and, array, begin, case, const, constructor, destructor, div, do, downto, else, end, external, file, for, forward, function, goto, if, implementation, in, inline, interface, interrupt, label, mod, nil, not, object, of, or, packed, procedure, program, record, repeat, set, shl, shr, string, then, to, type, unit, until, uses, var, vertual, while, with, xor и другие.

При написании программы применяются:

константы - данные, значения которых не изменяются в программе;

переменные - данные, могущие изменяться при выполнении программы;

выражения - константы, переменные и обращения к функциям, соединенные знаками операций;

операторы - специальные символы и слова, выполняющие действия;

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

Для обозначения имен констант, переменных, функций, процедур и модулей используются буквы и цифры, входящие в алфавит языка, и знак подчеркивания " _ ". Имена начинаются с буквы или знака подчеркивания " _ "и содержат до 63 значащих символов. Символ пробела в имени не допускается. Эти имена принято называть идентификаторами. Различие прописных и строчных букв в идентификаторах компилятором Турбо-Паскаля не учитывается.

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

Примеры записи идентификаторов: Alfa, C, X_max, Y_min, Sin, Cos, _10_A.

Специальные знаки: Примеры:

:= - присвоение значения ( x:= 0. 1; c:= Cos(x); d:= c; ),

= - описание значений констант, ( Const n= 1; m= 200; ),

назначение типа ( Type M = array [N. . M] of integer; ),

; - конец оператора ( b:= 5; goto M1; begin end; ),

: - описание типа переменой, ( Var b, c, d: real; i, j, k: integer; ),

задание меток операторов ( M1: c:=sin(x); ),

, - перечисление идентификаторов при описании ( Uses CRT, DOS; ),

. . - задание интервала, диапазона ( a: array [1. . 100] of real; ),

() - группировка арифметических выражений ( y:= b/(c+d) ; ),

аргументов функций, процедур и т. п. ( y:=Sin(x); ),

[] - границы массива, обозначение элемента массива ( a[1]:=22; ),

{} - комментарии ( {комментарии транслятором не обрабатываются} ),

' - обозначение символьных и строковых констант ( с:='!';S:='Cи'; ),

# - обозначение символа с указанием номера кода ASCII ( c:=#33; ),

$ - обозначение шестнадцатеричных констант ( i:=$FF; ),

@ - обозначение адреса переменной ( yx:=@x; )

{ yx - адрес ячейки в ОЗУ со значением переменной "x" },

^ - обозначение типа ссылка , ( Var yx: ^real; ),

а также значения переменной типа ссылка ( yx^ := 0. 1; ),

+ - / * - знаки математических операций,

= <> > < <= >= - знаки операций сравнения.

1.4 Типы переменных

Типы переменных, используемых в Турбо-Паскале, приводятся в таблице. Некоторые типы объединены в группы: структурированные, простые типы.

Используются стандартные имена типов, либо имя типа задается в разделе описания программы, например: TYPE A = array [ 1 . . 1000 ] of real;

Тип переменной объявляется после служебного слова VAR, например:

VAR a1, a2: A; { массивы из 1000 элементов вещественных чисел типа "A" }

Если не использовать служебное слово TYPE, то можно записать:

VAR a1, a2 : array [ 1 . . 1000 ] of real ;

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

Примеры присвоения значения:

Real 6 11..12 10 (-39..+38) с:= -125. 6; e:= 10;

Double 8 15..16 10 (-324..+308) d:= 1. e02; {или} d:= 100.;

Extended 10 19..20 10 (-4951..+4932) d1:= 1.2e-257; { 1.2*10-257}

Comp 8 19..20 -263 +1..+263 -1 Comp - число без дробной части и без точки.

Примечание: типы Single, Double, Extended работают при подключении сопроцессора, в том числе при эмуляции сопроцессора. Для этого в меню Options, Compiler установить Numeric processing: [X] 8087/80287, а также [X] Emulation, либо в начале программы установить режим компиляции {$N+}.

Логический тип

Переменные логического типа могут принимать значения:

False (ложно) или True (верно).

Примеры описания: VAR b1, b2, b3, b4: boolean;

Примеры присвоения значения:

b1:= True; b2:= False; b3:= not b1; {или} b3:= False; b4:= b1;

Символьный тип

Переменные символьного типа могут принимать значения одного из символов с кодами от #0 до #255, т. е. допускаются буквы русского алфавита и символы псевдографики. Символы с кодами от #0 до #31 (управляющие) в тексте воспринимаются как пробел, а в операторах вывода как символ или команда.

Примеры описания: VAR с, ch, e: char;

Примеры присвоения значения:

c:= '!'; c:= #33; { символ "!" задается значением кода }

ch:= #13; { код клавиши Enter } e:= #27; { код клавиши Esc }

Примеры вывода: Write(с); { выводится символ " ! " }

Write(ch); { команда перевода курсора на новую строчку }

Write(е); { выводится специальный символ, соответствующий коду #27 }

Строковый тип

Переменная строкового типа задается набором символов, заключенных в кавычки.

Примеры описания: VAR s: string[25]; s1: string;

{ длина переменной s может изменяться от 1 до 25 символов }

{ длина переменной s1 не указывается, наибольшее число символов равно 255 }

Примеры присвоения значения: s:= 'Привет'; s1:= 'Hello';

Массив

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

VAR M1: array[1..200] of integer; A1: array[100..200] of real;

ch1: array['A'..'Z'] of char; ch2: array[0..255] of char;

{ М1, A1 - одномерные массивы целых и вещественных чисел }

{ сh1, ch2 - одномерные массивы символов }

Примеры присвоения значения:

M1[1]:=5; M1[2]:=8; M1[3]:= M1[1]; M1[100]:=32;

A1[101]:=0.2; A1[102]:=2.31; ch1['B']:='C'; ch2[1]:='!'

Тип-диапазон и перечислимый тип задаются программистом. Примеры описания:

TYPE Date_M= 1..31; Rush_b= 'А..Я'; Lat_b= 'A..Z'; {тип диапазон}

Otmetka= (2,3,4,5); Ball= (1,2,3,4,5,6,7,8,9,10); {перечислимый тип}

VAR t1,t2:Date_M; c1:Ruch_b; s1:Lat_b; a1,a2:Otmetka; b:Ball;

Примеры присвоения значения: t1:= 10; c1:= 'Л'; s1:= 'F'; a1:=5; b:= 8;

Файлы

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

Примеры описания: VAR f1, f2: text;

Примеры присвоения значения: Assign( f1, 'file1. in' );

Assign( f2, 'C:\ PASCAL\ WORK\ file2. out' );

Оператор Assign присваивает файловой переменной имя файла на диске.

Файл file1. in содержится в текущем каталоге. Для файла file2. out указывается дорожка DOS.

Записи

Записи - вводимый программистом тип, определяемый как структура данных разного типа, содержащая названия полей с указанием их типов, расположенных между служебными словами Record и End.

Примеры описания: Type Sity = Record

Name_G: String[20]; { название города }

Numb_G: LongInt; { число жителей }

Stol_G: Boolean; { Столица (Да, Нет) }

Shir, Dol: Real { Координаты: широта, долгота }

End;

Var St1, St2, St3: Sity; { Переменные типа запись }

Примеры присвоения значения:

St1. Name_G:= 'Уфа'; St1. Numb_G:=1200000; {Отдельным полям переменной St1 }

St2. Name_G:= 'Москва'; St2. Numb_G:=8200000;

St3:= St1; { Всем полям переменной St3 }

Переменные типа запись могут обозначаться с помощью оператора присоединения:

WITH "имя переменной" DO "оператор";

Например: With St1 do Begin

Name_G:= 'Уфа'; Stol_g:= True; Readln(Shir, Dol);

z:= Numb_G - St2. Numb_G; Writeln(Name_G:5, Numb_G:10) end;

1.5 Структура программы

Структура программы на языке Турбо-Паскаль имеет вид:

Program NAME; { Заголовок программы - не обязательный оператор }

{ NAME - имя программы }

{ Раздел описания }

{$N+} { Режим компиляции для расчетов с подключением сопроцессора }

Uses CRT, DOS, GRAPH; { Подключение библиотек CRT, DOS, GRAPH }

Label L1, L2, L3; { Список используемых в программе меток L1, L2, L3 }

Const C=10; { Задание значений констант, используемых в программе }

B=0. 15; Y=True; { С- целое число, В- вещественное число }

F='Фамилия'; { Y- Логическая константа, F- Символьная строка }

Type M= array[1. . 100] of integer; {Описание типов введенных программистом }

Var { Описание переменных }

m1, m2: M; { m1, m2 - массивы целых чисел (типа М) }

a1: array [ 1. . 100 ] of real; { а1 - массив вещественных чисел }

ch: array [ 1. . 200 ] of char; { ch - массив символов }

ch1, ch2: char; { ch1, ch2 - символьные переменные }

s: string[79]; { s - строка до 79 символов }

a, d, x: real; { a, d, x - вещественные переменные }

yes, no: boolean; { yes, no - переменные логического типа }

f1, f2: text; { переменные для описания текстовых файлов }

{ ---------------------------------------------------------------- }

Procedure NAME_1(Parm1:Real; Var Parm2:Real); { Заголовок процедуры }

{ NME_1 - имя процедуры, Parm1, Parm2 - параметры }

{ Раздел описания }

BEGIN

{ Раздел выполнения }

END;

{ ---------------------------------------------------------------- }

Function FUN_1(Parm3, Parm4: Real): Real; { Заголовок функции }

{ FUN_1 - имя функции, Parm3, Parm4 - параметры }

{ Раздел описания }

BEGIN

{ Раздел выполнения }

END;

{ ---------------------------------------------------------------- }

{ $I File_1. pas } { Подключение файла File_1. pas с дополнительными

функциями и процедурами }

{ ---------------------------------------------------------------- }

BEGIN { Начало выполнения программы }

{ Раздел выполнения }

END. { Конец выполнения программы }

1.6 Операции и стандартные функции

Отметим, что операции в скобках имеют высший приоритет, т. е. сначала выполняются операции в скобках, в том числе вычисление аргументов и значения функции. Операции одинакового приоритета выполняются слева направо, например a/c*b соответствует (a/c)*b.

СПЕЦИФИЧЕСКИЕ ОПЕРАЦИИ

1 @ @X адрес любой указатель

переменной

2 shl Y shl N сдвиг влево целый целый

2 shr Y shr N сдвиг вправо целый целый

2 * C * D пересечение множество множество

3 + C + D объединение множество множество

3 - C - D вычитание множество множество

3 + S + T сложение строка, символ строковый

4 in E in D вхождение элемент логический

в множество

Под смешанным типом переменных в выражении подразумевается операция с целым и вещественным типом переменных.

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

При вызове функция возвращает значение, которое необходимо присвоить переменной. Например, запись Y:= Sin(x); позволяет вычислить значение синуса угла "х", которое присваивается переменной "Y". Функции имеют высший приоритет, т. е. в выражении сначала вычисляется значение функции, а затем выполняются другие операции. Например: в выражении Y:= 5 * Cos(Pi + x); сначала вычисляется значение аргумента, затем значение функции, которое умножается на пять.

При вызове процедура производит определенные действия и может возвращать значения параметров. Процедура может не иметь параметров, например, для инициализации распределения случайных чисел вызывается процедура Randomize;. Процедуры могут включать параметры, которые необходимо задать при вызове процедуры и параметры, которые возвращают значения после выполнения процедуры. Например, при вызове процедуры Str(x, s); параметр "x" должен быть задан, а параметр "S" возвращает строковый вид числа "x". В некоторых процедурах параметры изменяют свое значение, Например, процедура Inc(x); увеличивает значение "x" на единицу, т. е. возвращает новое значение "x", что соответствует оператору x:=x+1; Таким образом, при вызове процедуры необходимо знать назначение и тип задаваемых параметров.

1.7 Операторы Турбо-Паскаля

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

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

Оператор присваивания служит для присваивания значений переменным, например: x:=1; a:=5. 02; b := 32*a+Sin(x); S:= 'Иван Иваныч';

Составной оператор Begin "операторы" end;

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

1.7.1 Операторы ввода/вывода данных

Операторы вывода данных на экран Write("сп"); или Writeln("сп");

Здесь "сп" - список переменных.

Например, операторы Write(a, b, c); или Write(a); Write(b); Write(c); или Writeln(a, b, c); - выводят значения переменных "a", "b", "c" начиная с текущей позиции курсора. После вывода данных оператором Write("сп"); курсор остается за последним выведенным символом. Оператор Writeln("сп"); после вывода данных переводит курсор на первую позицию следующей строки. Например, для вывода значений переменных "a", "b", "c" в трех строках экрана следует написать:

Writeln(a); Writeln(b); Writeln(c);

Оператор Writeln; переводит курсор на начало следующей строки экрана.

Оператор Write('Моя первая программа !'); выводит на экран указанный текст.

В операторах вывода допускается производить арифметические действия, например, оператор Writeln(32*a+Sin(x)); соответствует операторам b:=32*a+Sin(x); Writeln(b);

При выводе данных можно задавать формат вывода. Для этого после имени переменной ставится знак двоеточие " : " , например: Writeln(a:5:2); - при выводе значения переменной вещественного типа отводится 5 позиций (включая отрицательный знак и точку), из них 2 позиции отводится для вывода цифр в дробной части. При выводе значения переменной целого типа задается количество позиций для числа (включая отрицательный знак), например: Writeln(i:8);

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

При выводе число или текст выравниваются по правому краю отведенного поля, например: если а:=5. 02;, то оператор Writeln('а=', a:6:2); выведет на экран: а= _ _ 5. 02, если n:= '116'; s:= 'Школа N';, то оператор Writeln(s:7, n:6);

выведет на экран надпись: Школа N _ _ _ 116 .

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

оператор Writeln('а=', a:-8:2); выведет на экран надпись: а=5. 02

оператор Writeln(s:7, n:-6); выведет на экран надпись: Школа N116 .

При недостатке количества позиций для вывода число или текст выводятся полностью, а формат игнорируется, кроме формата вывода дробной части числа. Если формат вывода не задавать, то значения целых и строковых переменных выводятся полностью, а вещественных - в экспоненциальной форме с количеством цифр, соответствующих типу переменной, например, оператор Writeln('а=', a); выведет на экран надпись: a=5. 0200000000E+00 (тип Real, расчет без сопроцессора ), либо a=5. 02000000000000E+0000 ( тип Double, расчет с сопроцессором ).

Приведем пример программы, выполняющей различные операции с переменными разного типа.

Program N_1; { работа с переменными разного типа }

var x, y, z : real; x0, y0: byte; { описание типов переменных }

x1, y1, z1: integer; xb, yb, zb: boolean;

c1, c2, c3: char; s1, s2, s3: string;

Begin

x := 5. 8; y:= 3. 4; x1:= 43; y1:= 28; { присвоение значений }

c1:= 'Z'; c2:= 'S'; x0:= 65;

xb:= True; yb:= False;

s1:= 'Иванов _ '; s2:= 'Петров _ ';

Writeln('Математические операции:'); Z:= x+y; { и т. д. }

Write('x:=', x:3:1, ' _ _ y:=', y:3:1);

Writeln(' _ _ Z:= x+y;', ' _ _ z=', z:5:2);

Writeln; z1:= x1 div y1; { и т. д. }

Write('x1:=', x1:3, ' _ _ y1:=', y1:3);

Writeln(' _ _ Z1:= x1 div y1;', ' _ _ z1=', z1:2);

Writeln; { Пустая строка }

readln; { Задержка экрана до нажатия Enter }

Writeln('Логические операции:'); Zb:= xb and yb; { и т. д. }

Write('xb:=', xb, ' _ _ yb:=', yb);

Writeln(' _ _ Zb:= xb and yb;', ' _ _ zb=', zb);

Writeln; { Пустая строка }

readln; { Задержка экрана до нажатия Enter }

Writeln('Операции сравнения:'); Zb:= c1 > c2; { и т. д. }

{ символы сравниваются по номеру ASCII кода }

Write('c1:=', c1, ' _ _ c2:=', c2);

Writeln(' _ _ Zb:= c1 > c2;', ' _ _ zb=', zb); Writeln;

{ строки сравниваются по номеру ASCII кода первых символов }

18

{ если первые символы совпадают, то сравниваются вторые и т. д.}

Zb:= S1>S2; { и т. д. }

Write('s1:=', s1, ' _ _ s2:=', s2);

Writeln(' _ _ Zb:= s1 > s2;', ' _ _ zb=', zb);

Writeln; { Пустая строка }

readln; { Задержка экрана до нажатия Enter }

Writeln('Математические функции:'); Z:= sin(x*Pi/180); { и т. д. }

Write('x:=', x:4:2);

Writeln(' _ _ Z:= sin(x*Pi/180);', ' _ _ z=', z:10:7);

Writeln; { Пустая строка }

readln; { Задержка экрана до нажатия Enter }

Writeln('Математические процедуры:');

Write('x1:=', x1); Inc(x1); { и т. д. }

Writeln(' _ _ Inc(x1);', ' _ _ x1=', x1);

Writeln; { Пустая строка }

readln; { Задержка экрана до нажатия Enter }

Writeln('Функции преобразования типов:'); c3:= Chr(x0); { и т. д. }

Write('x0:=', x0);

Writeln(' _ _ c3:=Chr(x0);', ' _ _ c3=', c3);

readln { Задержка экрана до нажатия Enter }

end.

Операторы ввода данных с клавиатуры Read("сп"); или Readln("сп");

Здесь "сп" - список переменных.

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

Write('введите значение а='); затем оператор Readln(a); При выполнении программы на экране появится надпись: введите значение а= . Оператор Readln(a); будет ждать ввода данных. Следует набрать на клавиатуре значение переменной "а", например, число и нажать клавишу Enter.

Для ввода значений нескольких переменных, например, a, b, c применяются конструкции вида: Readln(a); Readln(b); Readln(c); или Readln(a, b, c);

При вводе нескольких числовых данных, например, оператором Readln(a, b, c); необходимо после набора каждого значения переменной нажимать клавишу SpaceBar или Enter, а в конце ввода - Enter.

При вводе значений символьных переменных нажатие клавиши Enter приводит к присвоению символьной переменной значения кода клавиши Enter (#13), поэтому значения символьных переменных вводятся одна за другой без нажатия Enter или SpaceBar (#32). Например, оператор: Readln(с1, с2, с3, c4); ожидает ввода значений символьных переменных с1, с2, с3, c4, т. е. набора на клавиатуре символов, например: "У", "Р", "А", "!" и нажатия Enter. Тогда оператор Writeln(с1, с2, с3, c4); выведет на экран надпись: УРА!

Оператор Readln; без параметров служит для приостановки выполнения программы и ожидает нажатия клавиши Enter, т. е. применяется с целью приостановки вывода информации на экран для просмотра результатов. При вводе данных предпочтительнее использовать оператор Readln, поскольку оператор Read после срабатывания не считывает управляющий код (#13), который остается в буфере клавиатуры.

Приведем пример программы возведения положительного числа “x” в степень”n”,

т. е. y=xn. Расчет производится по формуле: y=en*ln(x).

Program N_2; {возведение положительного числа в степень}

Const S='введите значение';

Var n, x, y: real;

BEGIN

Writeln('Программу разработал Иванов');

Writeln('Возведение положительного числа x степень n');

Writeln(S, ' аргумента х>0'); Readln(x);

Write(S, ' показателя степени n='); Readln(n);

y:=exp(n*ln(x));

Writeln('результат y=', y:-10:6); writeln('Нажмите Enter');

readln; {задержка экрана до нажатия Enter}

END.

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

Оператор служит для выбора одного из помеченных вариантов действия (операторов), в зависимости от значения "параметра". Оператор имеет вид:

Case "параметр" Of

"список помеченных операторов"

Else "оператор" End;

Здесь "параметр" - выражение или переменная порядкового типа.

Из "списка помеченных операторов" выполняется оператор с меткой, включающей значение "параметра", иначе оператор после слова Else. Конструкция Else "оператор" может отсутствовать.

Напомним, что "оператор" может иметь вид: Begin "операторы" end;

Пример операторов для определения порядка целого числа N от 0 до 999:

case N of

0..9: writeln('однозначное');

10..99: writeln('двузначное');

100..999: writeln('трехзначное')

else writeln('Число "N" не входит в указанный диапазон') end;

Приведем пример программы случайного предсказания одного из десяти вариантов ближайшего будущего с вероятностью 1/20, в остальных случаях - вы "неудачник".

PROGRAM FUTURE;

var N: word;

Begin

writeln('ПРЕДСКАЗАНИЕ БУДУЩЕГО');

Randomize; N:=Random(20)+1; { N - случайное число от 1 до 20 }

writeln; write('Вас ожидает _');

case N of

1: writeln('счастье'); 6: writeln('здоровье');

2: writeln('пятерка'); 7: writeln('деньги');

3: writeln('дорога'); 8: writeln('любовь');

4: writeln('двойка'); 9: writeln('встреча');

5: writeln('болезнь'); 10: writeln('дети')

else writeln('неудача') end;

writeln('Нажми Enter'); readln;

END.

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

1.7.3 Условный оператор

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

IF "условие" Then "оператор1" Else "оператор2";

где "условие" - выражение логического типа;

"оператор1" выполняется, если условие верно ( True ),

"оператор2" выполняется, если условие не верно ( False ).

Например, вычисление квадратного корня из числа "a" проводится при условии a>=0, операторами: IF a >= 0 Then b:= Sqrt(a) Else begin WriteLn ( 'a<0' ); Readln; Halt end;

Оператор Halt прекращает выполнение программы.

Пример программы: Автобус движется по заданному маршруту с объявлением названий остановок. Зная остановку, на которой надо выходить, вы принимаете определенное решение: Выхожу, либо - Еду дальше, которое выводится на экран.

PROGRAM octanovka;

CONST A1= 'Бульвар Славы'; A2= 'Горсовет'; { A1, A2, A3, A4 - названия }

A3= 'Спортивная'; A4= 'УАИ'; { остановок }

Y= 'Выхожу'; N= 'Еду дальше';

var A, A0 : String; { A0 - текущая остановка }

BEGIN

writeln('Ввести нужную остановку из списка:');

writeln(A1:15, A2:15, A3:15, A4:15);

Writeln; readln(A); Writeln; { A - нужная остановка }

IF (A<>A1) and (A<>A2) and (A<>A3) and (A<>A4)

then begin Writeln('Нет такой остановки'); readln; Halt end;

A0:= A1; { объявление остановки }

IF A = A0 then begin writeln( Y, A:15); readln; Halt end

else writeln( A0:-15, N:12);

A0:= A2; { объявление остановки }

IF A = A0 then begin writeln( Y, A:15); readln; Halt end

else writeln( A0:-15, N:12);

A0:= A3; { объявление остановки }

IF A = A0 then begin writeln( Y, A:15); readln; Halt end

else writeln( A0:-15, N:12);

A0:= A4; { объявление остановки }

writeln( Y, A:15); readln;

END.

Первый условный оператор осуществляет контроль входных данных. Напомним, что в случае нескольких условий, соединенных логическим "И" результирующее условие имеет значение True, если каждое условие верно, иначе - False.

В случае нескольких условий, соединенных логическим "ИЛИ" результирующее условие имеет значение True, если хотя бы одно условие верно, иначе - False.

Поскольку операции сравнения имеют низший приоритет, то при проверке нескольких условий эти условия заключаются в скобки.

1.7.4 Оператор цикла с параметром

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

For i:= N1 To N2 Do "оператор";

либо

For i:= N1 DownTo N2 Do "оператор";

Здесь i - параметр цикла (переменная порядкового типа),

N1, N2 - начальное и конечное значения параметра цикла i.

N1, N2 могут быть константами, переменными или выражениями порядкового типа.

Напомним, что "оператор" может иметь вид: Begin "операторы" end;

После окончания цикла значение параметра цикла “i” неопределенно.

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

Сумма членов последовательности величин a1, a2, a3, . . . , aN называется конечной суммой SN= a1 + a2 + a3+ . . . + aN. Для некоторых последовательностей известны формулы расчета конечных сумм, например:

при aN= aN-1 + d; SN= (a1 + aN)*N/2; - арифметическая прогрессия,

при aN= aN-1 * q; SN= (a1 - aN*q)/(1-q); - геометрическая прогрессия,

где d и q - постоянные числа.

Здесь N-ый член последовательности выражается через (N-1)-ый член. Такие зависимости называются реккурентными.

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

12 + 32 + 52 +. . . + (2*N-1)2; SN = N*(4*N2-1)/3;

PROGRAM SUM_K; { расчет конечной суммы }

var a, S, Sn, i, N: word;

Begin

write('Введите число членов суммы N='); readln(N);

S:= 0;

For i:= 1 to N do begin { цикл суммирования }

a:= Sqr(2*i-1); S:= S+a end;

Sn:= N*(4*N*N-1) div 3;

Writeln('Конечная сумма S=', S:-10:2);

Writeln('Расчет конечной суммы по формуле Sn=', Sn:-10:2);

Writeln('Нажми Enter'); readln

End.

1.7.5 Операторы цикла с условием

В Турбо-Паскале применяются два оператора цикла с условием:

While "условие" DO "оператор";

- цикл с предусловием: проверка условия перед каждым выполнением "оператора",

Repeat "операторы" Until "условие";

- цикл с постусловием: проверка условия после каждого выполнения "операторов".

Здесь "условие" - выражение логического типа (Boolean).

В цикле While "оператор" выполняется если условие верно (True), если условие ложно (False), то цикл заканчивается, т. е. цикл While повторяется пока выполняется условие. Цикл While начинается проверкой условия, поэтому, если начальное условие ложно, то "оператор" не выполняется ни разу. Для включения в тело цикла нескольких операторов применяется составной оператор: Begin "операторы" end.

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

...

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

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

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

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

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

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

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

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

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

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

    реферат [276,9 K], добавлен 27.02.2008

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

    реферат [18,6 K], добавлен 01.04.2010

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

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

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

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

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

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

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

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

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

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

  • Понятие алгоритма. Цикл программы. Структурная схема алгоритма. Элементы языка Тurbo Рascal. Алфавит. Идентификаторы. Комментарии. Лексика языка С++. ESC-последовательности. Операции. Ключевые слова. Комментарии.

    контрольная работа [43,0 K], добавлен 24.04.2006

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

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

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

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

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

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

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

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

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

    реферат [20,0 K], добавлен 08.02.2012

  • Система программирования Турбо Паскаль. Главные особенности языка С++. Составной и условный оператор в Паскале, алгоритм работы. Метка в Турбо Паскале. Счетный оператор цикла FOR. Описание логической структуры. Свойства функции PieSlice и initgraph.

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

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

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

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

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

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