Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Операторы Паскаля.Классификация.↑ ⇐ ПредыдущаяСтр 3 из 3 Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Основной частью программы на языке Pascal являются операторы, каждый из которых производит действия над данными. Все операторы языка Паскаль можно разделить на 3 группы: 1)простые - не содержащие никаких других операторов. а)Операторы присваивания (:=) - y:=Al, где у - переменная, Аl – арифм. или логическое выражение(!основное требование: тип результата вычисления AI должен совпадать с типом у. Исл. допускается у – real, a AI - integer,наоборот нельзя; б)операторы безусловного перехода (Go to); в)оператор вызова процедуры (ввод); г)пустой оператор(;).) 2)структурные – представляет собой конструкции, построенные с других операторов по строкам опред. Правилами. а)составной оператор-begin Опер.2; Опер.3; End; б)условный оператор: 1)полная форма - if<условие>then <опер.1> else<опер.2>; 2)неполная форма - if<усл.>then<опер.1>; в)оператор выбора(casе<выражен селектор> of) список 1: <опер.1> else<опер.> список 2:<опер.2> список n:<опер n> end; г)операторы повтора(цикла):1)For;2)REPEAT;3)While. 3)операторы ввода-вывода – след. Процедуры –READ,READLN – ввод с клавиатуры/WRITE,WRITELN – вывод на экран
26, Константы и правила их записи Константы – элементы данных, значения которых установлены в описательной части программы и в процессе выполнения программы не изменяются. В разделе описания констант производится присваивание идентификаторам констант постоянных значений. Раздел начинается зарезервированным словом const, за которым следует ряд выражений, присваивающих идентификаторам постоянные числовые или строковые значения. Выражения присваивания отделяются друг от друга точкой с запятой.
27, Переменные. Определение и запись. Под переменной в языках программирования понимают программный объект (число, слово, часть слова, несколько слов, символы), имеющий имя и значение, которое может быть получено и изменено программой. Переменные, объявленные в разделе описания основной программы (PROGRAM), действуют в разделе операторов основной программы и в любой ее подпрограмме (процедуре и функции). Эти переменные называются глобальными. Переменные, объявленные в подпрограмме, действуют только в этой подпрограмме и в любой объявленной в ней процедуре или функции. Такие переменные наз. локальными. Они недоступны для операторов основной программы и др. подпрограмм. У каждой переменной есть имя, тип и текущее значение. В качестве имен переменных могут быть латинские буквы с цифрами. Причем может быть не одна буква, а несколько. Имя переменной должно удовлетворять следующим требованиям: 1) всегда начинаться с буквы, после которой могут другие буквы или цифры; 2) в идентификаторе (имени) не должно быть пробелов, запятых или других непредусмотренных знаков; 3) нельзя использовать в качестве имен переменных слова, которые являются служебными или операторами. Переменные в Паскаль - программе являются информационными объектами, предназначенными для хранения значений определенного типа. В рамках заданного типа переменная может иметь любое значение, которое изменяется в процессе выполнения программы. Пример описания переменных: var a: byte; b: integer; Значения переменным задаются с помощью оператора присваивания. a:=5; {переменной a присвоить значение 5} b:=6; {переменной b присвоить значение 6} с:=a+b; {переменной c присвоить значение равное сумму значения переменных a и b} Вызов пользовательских процедур Процедура – независимая часть программы, предназначенная для выполнения определенных действий. Процедуры состоят из группы операторов, реализующих некоторую часть задачи и вызываемых по имени при необходимости в любом месте основной программы. Перед использованием (вызовом) процедуру необходимо описать в разделе описаний главной (основной) программы согласно Procedure < имя > [(формальные параметры)]; <раздел описаний> Веgin < основная часть процедуры – радел операторов > Еnd. Для обращения к процедуре используется оператор вызова процедуры. Он состоит из идентификатора (имени) процедуры и списка фактических параметров, отделенных друг от друга запятыми и заключенных в скобки. Формат вызова процедур: <имя процедуры> [(список фактических параметров)]; Между формальными и фактическими параметрами должно быть соответствие по количеству, порядку следования и по принадлежности к типам данных. Вызов процедуры, описанной выше, должен стоять в разделе операторов основной программы. Например, он может иметь вид: Vivod(n, m, B); n и m – количество строк и столбцов, а В – имя массива типа Mas, который необходимо вывести на экран. 29 Целый и вещественный тип данных. Тип - это значения, кот. могут принимать объекты программы, и совокупность операций, допуст. над этими знач. Целые типы -это значения, кот. могут использ. в арифметич. выраж. и занимать память от 1 до 4 байт. В языке Турбо Паскаль определено 5 целых типов: Shortint диапазон (-128... 127) память 1 байт, Integer (-32 768... 32 767) 2 байта Longint (-2 147 483 648... 2 147 483 647) 4 байта, Byte (0... 255) 1 байт, Word (0... 65 535) 2 байта. Вещественные типы - предст. собой вещественные значения, кот. могут использ. в арифмет. выраж. и занимать память от 4 до 6 б. Real (2.9E-39 до 1.7E+38 по модулю) точность11-12 знач. цифр 4 б. Double (5.0Е-324 до 1.7Е+308 по модулю), 15-16 знач. цифр 8 б. Single (1.5E-45 до 3.4E+38 по модулю), 7-8 знач. цифр) 4 б. Extended (3.4E-4932 до 1.1E+4932 по модулю), точность19-20. 10 б. Comp (-9.2E-18 до 9.2E+18), хранятся точно, поскольку это целые числа) 8б. 30 Записи. Описание типа. Запись – это структурированный тип данных, состоящий из фиксированного числа компонентов (данных) одного или нескольких типов. Отдельные компоненты записи, ввиду их различной природы, не могут номероваться порядковыми номерами (индексами), как в массивах описание записи представляет собой список описаний её элементов (полей). Описание записи: Var Type <имя записи>: RECORD <имя типа> =RECORD <имя поля 1>:тип; <имя поля 1>:тип; <имя поля 2>:тип; <имя поля 2>:тип; … … <имя поля n>: тип; <имя поля n>: тип; End; End; Var <имя записи>: <имя типа>; Где RECORD, end – ключевые слова (запись, конец) <имя записи> - имя переменной типа запись(правильный идентификатор языка Паскаль.) <имя поля n> - имя переменной заданного типа. Доступ к полям записи производится с помощью конструкции, называемой селектором(R.F,где R-переменная типа запись, F-индикатор поля.). Для более копактной записи селекторов язык Паскаль имеет спец. оператор присоединения: With<переменная> do<оператор>. 31 Файлы. Описание типа. Файл – это поименованная совокупность данных, расположенных во внешней памяти. Компонентом файла может быть значение простого типа или структура, на не файл. Число элементов в файле не фиксировано и ограничено только емкостью запоминающего устройства, на которое записан файл. Все элементы считаются пронумерованными, начальный элемент 0. Доступ к компонентам файла осуществляется через указатель файла. В каждый момент доступен для записи(чтения)только тот компонент файла, на котором установлен указатель. Существует 2 способа доступа к файлам: · последовательный – поиск начинается с начала файла и проверяется последовательно каждый элемент · произвольный(прямой) – позволяет обращаться к элементу по его порядковому номеру. Различают текстовые файлы(var <имя файла>:text), типизированные (элементы таких файлов должны быть одного типа и размера) и нетипизированные(var<имя файла >:file).
32 Литерный (символьный) тип данных Литерный (символьный) тип char определяется множеством значений кодовой таблицы ПЭВМ. Каждому символу приписывается целое число в диапазоне от 0 до 255. Для размещения в памяти переменной литерного типа требуется один байт. Для указания на то, что величина имеет литерный (символьный) тип в языке Паскаль применяется специальное обозначение "char". Например: В разделе описания переменных величин "Var" некоторой учебной программы на Паскале следующие переменные являются литерными величинами: var ch: char; letter, symbol: char; Это значит, что каждой из них в памяти компьютера для хранения отводится отдельный байт. Если в программе используются величины типа char, например, 'A'или 'B', обозначающие букву A или бкуву B, то соответствующие им значения должны заключаться в одиночные кавычки, называемые апострофами. Поэтому пробел, как символ, обозначающий пустое место, также должен записываться в апострофах: ' '. Следует помнить, что над величинами типа 'char' могут производиться следующие операции отношения: =, <>, <, >, <=, >=. Забегая несколько вперед, отметим, что результатом таких операций могут быть только либо true (правда), либо false (ложь). Такой результат обычно относят к логическому или булевскому типу. К величинами литерного (символьного) типа применимы следующие функции:
chr(x) - преобразует выражение x типа byte в символ и возвращает значение этого символа; ord(ch) - преобразует символ ch в его код типа byte и возвращает значение этого кода; pred(ch) - возвращает предыдущий символ; succ(ch) - возвращает следующий символ;
Примеры: ord(':') = 58; ord('A') = 65; chr(128) = Б pred('Б') = А; succ('Г') = Д.
33 Логический тип данных. Значениями логического типа(boolean) может быть одна из предварительно объявленных констант FALSE (ложь) или TRUE (истина). Для них справедливы следующие правила: Ord(False) = 0; Ord(True) = 1; False < True; Succ(False) = True; Pred(True) = False. Поскольку логический тип относится к порядковым, его можно использовать в операторе счётного типа Логические операции, операции отношения и арифметические операции часто встречаются в одном выражении. При этом отношения, стоящие слева и справа от знака логической операции, должны быть заключены в скобки, поскольку логические операции имеют более высокий приоритет. Вообще принят следующий приоритет операций: not and, *, /, div, mod or, +, - операции, которые обозначаются знаками: = (отношение на равенство), <> (отношение на неравенство), < (отношение меньше), > (отношение больше), <= (отношение меньше или равно), >= (отношение больше или равно).
34 Арифметические выражения и операции. Для построения вычисляемых выражений, используемых в правой части оператора присваивания или в операторах вывода, можно применить ряд стандартных встроенных функций. Большинство из них имеют в качестве аргумента (аргументов) данные вещественных и целых типов, некоторые − только вещественного. 1) Используя в программном коде стандартные функции, следует помнить, что аргумент всегда надо брать в круглые скобки! Напримар: sin(x) 2) Как упоминалось ранее, аргументы функций необходимо брать в скобки, даже если задается сложная функция, например: ln^2*2x 3) При записи на языке Pascal сложных алгебраических выражений целесообразно вводить вспомогательные переменные, которыми, однако, не следует злоупотреблять. 4) Следует учитывать область определения функций, входящих в выражение. Такие ошибки легче предотвратить, чем исправлять, так как они не обнаруживаются компилятором. Например, выражение при записи на языке Pascal в виде exp(17*ln(x)) вызовет появление ошибки при отрицательных значениях переменной х. Поэтому его лучше записать так: sqr(sqr(sqr(sqr(x))))*x; Арифметические выражения состоят из числовых констант, переменных функций и операций над ними. При этом все составляющие арифметических выражений должны относиться к одному и тому же типу.P.S.В некоторых версиях допускается использование действий целого типа в составляющих, но результат приводится к действительному типу. В арифметических выражениях используются ариф. операторы двух типов: Бинарные (т.е. такие в которых участвуют 2 операнта) (а+в) К ним относятся: сложение(+), умножение(*), вычитание(-), частное деление(div), остаток от деления(mod), ариф. Поразрядное сложение(and), сдвиг вправо(shr), сдвиг влево(she) Унарные (1 оперант) (-а): сохранение знака, отрицание знака, ариф. Отрицание. Основные правила записи: -все записи выполняются в одну строку -используются только круглые скобки -вычисления выполняются слева направо с учётом приоритета Приоритеты: 1.функции 2.операции типа умножение и деление 3.сложение и вычитание 35 Логические выражения и операции. Выражение называется логическим, если результатом его вычисления является логическое значение true (истина) или false (ложь). Логические выражения в языке Pascal служат для записи условий выполнения определенных операторов или поиска необходимых данных и чаще всего встречаются в операторах ветвления и цикла. Простые логические выражения могут содержать константы, переменные и выражения сравнимого типа, соединенные между собой операциями отношения (<, >, <=, >=,<>). Из простых логических выражений составляются более сложные с использованием логических операций not, and, or, xor (таблица 2.4). Приоритет выполнения логических операций следующий: 1) not; 2) and; 3) or; xor. Изменение приоритета логических операций регулируется скобками. Рассмотрим несколько примеров записи логических выражений на Pascal: Пример: оба числа a и b положительны: (a>0) and (b>0) хотя бы одно из чисел a и b положительно: (a>0) or (b>0) "Выражение" представляет собой комбинацию операндов и операций, которые при вычислении дают единственное значение. -арифметич.выражения: состоят из числовых констант,переменных функций и операций над ними; -логические выражения:можно относить к более сложным, хотя бы потому что в их состав могут входить дополнительные выражения. "Операция" показывает, какие действия производить с операндами. " Операнд "-это константа, либо переменная, входящая в выражение. -Формат оператора. Выражения состоят из операции и ее операндов. Выражение может находиться везде, где разрешено появление значения. Любое выражение, заканчивающееся точкой с запятой, является оператором. В языке PASCAL, присваивания считаются выражениями-операция присваивания. Операция присваивания определяет, что значение операнда с правой стороны помещается в память по адресу, задаваемому операндом с левой стороны. -Операции. Язык Pascal поддерживает более 40 операций, начиная от основных арифметических операций до логических и поразрядных операций. Операции языка Pascal дают результат, который может быть вложен внутрь большого выражения. Операции также могут быть объединены с оператором присвоения (=) для формирования составного оператора присваивания в следующей форме: X+=Y; -Операции приращения и уменьшения. операции используются либо в префиксном, либо в постфиксном виде. В префиксном виде, операнд увеличивается или уменьшается, и его новое значение-это результат выражения. В постфиксной форме, немедленный, результат выражения-это значение операнда до того, как он увеличился или уменьшился. -Операция преобразования типов. Явное приведение типов может быть сделано с помощью операции приведения (cast), которая представляет собой тип, заключенный в скобки. В нижеследующем переменная i (предварительно описанная, как int) преобразуется в тип float: (float)i
36. Структура программы на языке Паскаль. Программа на языке Pascal представляет собой набор строк, длина каждой из которых не превышает 127 символов. Общий вид: Program <имя программы>; {заголовок программы} Uses <модуль1>,<модуль2>,…; {подключаемые библиотечные модули} Label <метка 1>, <метка 2>,…; {раздел описания меток} Const <имя1>=<значение1>; <имя2>=<значение2>;…;{раздел описания констант} Type <имя типа>=<описание>;…;{описание типов данных пользователя} Var {раздел описания переменных} <имя переменной 1>:<тип1>;<имя переменной 2>:<тип2>;…; Procedure; {объявление процедур пользователя} Function; {объявление функций пользователя} Begin …{раздел операторов} End. Обязательным является только наличие раздела операторов, который начинается словом begin и заканчивается словом end с точкой в конце. Все операторы отделяются друг от друга символом «;» − точка с запятой.Однако все переменные, константы, процедуры, функции пользователя, метки и т. д., используемые в разделе операторов, должны быть указаны в разделе описаний. Комментарии: {комментарий} или (*комментарий*). 37 Оператор присваивания. Все операторы языка Паскаль можно разделить на 3 группы: 1)простые - не содержащие никакие другие операторы(а)операторы присваивания (:=);б)операторы безусловного перехода (Go to);в)оператор вызова процедуры (ввод);г)пустой оператор(;).) 2)структурные – представляет собой конструкции, построенные с других операторов по строкам опред. Правилами. а)составной оператор-begin Опер.2; Опер.3; End; б)условный оператор: 1)if<условие>then <опер.1> else<опер.2>; 2)if<усл.>then<опер.1>; в)оператор выбора(casl<выр> of) список 1: <опер.1> else<опер.> список 2:<опер.2> список n:<опер n> end; г)операторы повтора(цикла):1)For;2)REPEAT;3)While. 3)операторы ввода-вывода – след. Процедуры –READ/READLN/WRITE/WRITELN присваивания- например: y:=А; y:=10 .Оператор присваивания общая форма y:=A*l; Где у –переменная или элемент массива Аl-арифмит или логическ выражение.результат вычисления Аl присваив у при у:=(sin(x)+5.4)/Al основное требование: тип рез-та вычисления Al должен совпадать с типом у исключение:допускается у действит типа(REAL),а Al-целого типа наоборот нельзя 38 Процедуры и функции (пользовательские). В Паскале предусмотрены средства, позволяющие оформлять последовательность операторов как подпрограмму, такую возможность предоставляют процедуры и функции, определенные пользователем. Процедуры состоят из группы операторов, реализующих некоторую часть задачи и вызываемых по имени при необходимости в любом месте основной программы. Перед использованием (вызовом) процедуру необходимо описать в разделе описаний главной (основной) программы согласно Procedure < имя > [(формальные параметры)]; <раздел описаний> Веgin < основная часть процедуры – радел операторов > Еnd. Формат вызова процедур: <имя процедуры> [(список фактических параметров)]; Между формальными и фактическими параметрами должно быть соответствие по количеству, порядку следования и по принадлежности к типам данных. Функция, определенная пользователем, в отличии от процедуры передает в точку результат своей работы. Функция представляет собой последовательность операторов, в результате выполнения которых вычисляется одно значение, присваемое имени функции. Пример описания функций: Function <имя> [(формальные параметры)]:<тип результата> <раздел описаний> Begin <раздел операторов функции>End; 39 Составной оператор. Составной оператор объединяет группу операторов в одно целое, которые после этого могут считаться одним оператором. Свое применение он находит в структурированных операторах ветвления и цикла. Составной оператор начинается зарезервированным словом begin, затем следуют операторы, перечисленные через точку с запятой, и оканчивается зарезервированным словом end;. Пара begin…end; называется операторными скобками. Если в операторных скобках отсутствуют операторы, то говорят, что задан пустой оператор. Пустым оператором считается также ;;. Составной оператор может включать другой составной оператор, причем следует помнить о правильном вложении пар операторных скобок составной оператор-begin Опер.2; Опер.3; End;
40 Условный оператор IF и CASE.Разветвляющиеся алгоритмы.(4 вопрос) Условный оператор − это структурированный оператор, предназначенный для выделения из составляющих его операторов одного, который и выполняется в дальнейшем. Оператор if, как и остальные структурированные операторы, обычно включает в себя другие операторы, к которым относятся составные операторы, передачи управления и операторы цикла. Формат условного оператора (полная форма): if <логическое выражение> then <оператор1> else <оператор2>; где if означает если, then − то, else − иначе. Оператор множественного выбора case позволяет выбрать одно из нескольких возможных продолжений программы. Формат оператора выбора: case <ключ_выбора> of <список_выбора1>: <оператор1>; <список_выбора2>: <оператор2>; … <список_выбораN>: <операторN>; [else <операторы>] end; Здесь case, of, else, end − выбор, из, иначе, конец. <ключ_выбора> − имя переменной или выражение порядкового типа (кроме longint); <список_выбора1>,…,<список_выбораN> − константа или список констант того же типа, что и выражение <ключ_выбора>; <операторы1>,…,<операторыN> − произвольные операторы языка Pascal, в том числе составной и структурированные. Блок-схема if Блок-схема case
41 Оператор ввода.
Ввод данных — это передача информации от внешних устройств в оперативную память. Вводятся, как правило, исходные данные решаемой задачи. Вывод — обратный процесс, когда данные передаются из оперативной памяти на внешние носители (принтер, дисплей, магнитные устройства и т.д.). Результаты решения всякой задачи должны быть выведены на один из этих носителей. Основными устройствами ввода-вывода у персонального компьютера являются клавиатура и дисплей (экран монитора). Именно через эти устройства главным образом осуществляется диалог между человеком и ПК. Оператор ввода read Процедура ввода с клавиатуры (обращение к стандартной процедуре ввода) имеет следующий формат: read(<список ввода>) где <список ввода> — это последовательность имен переменных, разделенных запятыми. При вводе исходных данных происходит преобразование из внешней формы представления во внутреннюю, определяемую типом переменных. Переменные, образующие список ввода, могут принадлежать либо к целому, либо к действительному, либо к символьному типам. Чтение исходных данных логического типа в языке Паскаль недопустимо. Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter. Если в программе имеется несколько операторов read, то данные для них вводятся потоком, т.е. после считывания значений переменных для одного оператора read данные для следующего оператора читаются из той же строки на экране, что и для предыдущего до окончания строки, затем происходит переход на следующую строку. 2)Другой вариант оператора ввода с клавиатуры имеет вид: readln(<список ввода>) Этот оператор отличается от read только тем, что после считывания последнего в списке значения для одного оператора readln данные для следующего оператора будут считываться с начала новой строки.
42 Оператор вывода.
1) Оператор вывода на экран (обращение к стандартной процедуре вывода) имеет следующий формат: write(<список вывода>) Переменные, составляющие список вывода, могут относиться к целому, действительному, символьному или логическому типам. В качестве элемента списка вывода кроме имен переменных могут использоваться выражения и строки. При выводе на экран нескольких чисел в строку они не отделяются друг от друга пробелами. Программист сам должен позаботиться о таком разделении. 2) Второй вариант процедуры вывода на экран: writeln(<список вывода>) Его действие отличается от оператора write тем, что после вывода последнего в списке значения происходит перевод курсора к началу следующей строки. Оператор writeln, записанный без параметров, вызывает перевод строки.
. 43 Оператор цикла. Общая классификация. В Паскале существует 3 вида циклов: 1.Цикл с предусловием: в этом цикле в любых вариантах расчет будет повторяться минимум 1 раз. while <логическое_выражение> do <оператор>; <тело цикла>; end; Особенностью такого цикла является то, что при определенном значении параметра цикла (х) вычисления в цикле будут отсутствовать. 2. С постусловием. Особенности:1.расчет будет выполнен минимум 1 раз. 2.проверка условия в конце выражения 3. цикл повторяется по условию “нет” repeat <оператор_1>; <оператор_2> ........... <оператор_n> until <логическое_выражение>
3. С параметром for I:= N1 to N2 do <оператор>; for I:= N2 downto N1 do <оператор>;
В данном типе цмкла- параметр цикла (изменяющая величина) должен быть обязательно целого типа. Поэтому написать этот цикл для х (непосредственно нельзя), так как х- не целочисленное. Есть возможность ввести дополнительную целочисленную переменную, например n, значение которой будет = числу повторений в цикле и эту переменную принять за параметр цикла. Естественно и нужно отнести к целому типу. Алгоритм цикла с параметром:
44 Оператор цикла FOR. Цикл с параметром характерен тем, что количество исполняемых циклов определено в заголовке цикла при записи оператора for Общий вид оператора: for <параметр цикла>:= <нач значение> to <кон значение>do<оператор>; где <параметр цикла> параметр цикла(в качестве параметра цикла часто выступает переменная типа byte или integer); <нач значение> и<кон значение> - начальное и конечное значение переменной цикла; <оператор>-повторяющаяся последовательность оператора. В качестве параметра цикла может использовать только простую переменную, а в качестве нач и кон значений могут использоваться выражения (за исключением вещественного типа real). Параметр цикла, нач и кон значения должны быть одного и того же скалярного типа, но не real. Параметр цикла принимает последовательные значения данного типа от нач до кон значений. Параметр цикла, нач и кон значения - целого типа В этом случае шаг изменения переменной цикла всегда равен +1: for I:= 1 to 20 do A:= A + 1; Здесь для I = 1, 2,..., 20 выполняется оператор A:= A + 1. Параметр цикла, нач и кон значения - символьного типа Если необходимо записать цикл по убывающим значениям параметра I от N1 до N2, то используется следующий оператор: for I:= N2 downto N1 do <оператор>; В этом случае параметр цикла принимает последовательные убывающие значения данного типа от нач до кон значений. 45 Оператор цикла WHILE. Цикл с предусловием характерен тем, что перед выполнением цикла всегда необходимо проверить условие. Если условие истинно, то цикл продолжается, иначе - цикл заканчивается. Общий вид оператора следующий: while <условие> do <оператор>; где <оператор> - простой или составной оператор, а <логическое_условие> - выражение булевского типа. Оператор цикла while действует следующим образом. Предварительно проверяется условие. Пока оно истинно, выполняется оператор циклической части (после do). Как только значение логического выражения становится ложным, происходит выход из цикла.Если с самого начала значение логического выражения ложно, то оператор циклической части не выполняется ни разу. Если логическое выражение никогда не принимает значение False (ложно), то цикл будет выполняться бесконечно долго.В ряде случаев цикл изначально предполагается как бесконечный. Тогда в условии записывается константа True или очевидный факт, который в любой ситуации возвращает значение True. while True do write('Бесконечный цикл'); while 5 = 5 do write('Бесконечный цикл'); {Очевидно, что результат 5 = 5 всегда равен True} Оператор while, как и другие операторы организации циклов, может быть вложенным(сложный цикл).
46 Оператор цикла REPEAT. Цикл с постусловием, oператор повтора repeat состоит из заголовка (repeat), тела цикла и условия окончания (until).Цикл с постусловием характерен тем, что вначале обязательно выполняются хотя бы один раз команды, составляющие тело цикла. После выполнения операторов циклической части проверяется условие. Если условие ложно, то вновь выполняются операторы циклической части. Если условие истинно, то цикл заканчивается. Общий вид оператора следующий: repeat <операторы цикла> until <условие>;
<условие > - выражение логического типа.Оператор цикла repeat действует следующим образом: 1)Выполняются операторы,расположенные между операторами repeat… until,составляющие тело цикла; 2)Вычисляется значение логического выражения оператора until( проверяется условие);3)если результатом вычисления значения логического выражения(проверки условия)является ответ «нет»,то операторы,составляющие тело цикла,выполняются вновь;4)повторение действий 1,2 продолжается до тех пор,пока результатом вычисления значения логического выражения не станет ответ «да».
47 Процедуры. Рекурсия. Процедура – независимая поименованная часть программы, которую можно вызвать по имени для выполнения определенных функций. Структура процедуры полностью повторяет структуру программы и ее можно вызывать несколько раз. Любая процедура начинается с ключевого слова ''PROCEDURE'' имени Vivod,формального параметра: PROCEDURE<имя><формальные параметры>; В процедуру может ничего не передаваться: Процедура не требует никаких данных и использует глобальные значения данных Рекурсивной считается процедура, если в ней есть обращение к самой себе. S=1+1/2+1/3+1/4…. Работа программы program procedurе; var sum:real; n:integer; begin if n=1 then sum:=1 else begin EGS(sum,n=1); sum:=sum+1/n; end; End. Рекурсия применяется в тех случаях, когда необходимо упростить поиск той или иной информации и когда известен хотя бы один результат этого поиска. 2 способа передачи данных между формальными и фактическими параметрами:1. По значению(фактич. параметры сохр. свое значение), 2. По адресу(для фактич и формальных параметров отводится отдельное место).
48 Встроенные (стандартный) процедуры и функции. Все основные процедуры и функции, обеспечивающие ввод - вывод данных, работают только с логическими файлами. Физический файл должен быть связан с логическим до выполнения процедур открытия файлов. TURBO PASCAL вводит ряд процедур и функций, применимых для любых типов файлов: Assign, Reset, Rewrite, Close, Rename, Erase, Eof, IOResult. Процедура Assign (FV, ‘TEST.PAS’) связывают конкретную переменную с местом, где она хранится. Процедура Reset (FV) открывает логический файл для последующего чтения данных или открывает входной файл. После успешного выполнения процедуры Reset файл готов к чтению из него первого элемента. Процедура Rewrite (FV)открывает логический файл для последующей записи данных (открывает выходной файл). После успешного выполнения этой процедуры файл готов к записи в него первого элемента. Процедура Close (FV) закрывает открытый до этого файл. Вызов процедуры Close необходим при завершении работы с файлом. Логическая функция EOF (FV): Boolean возвращает значение TRUE, когда при чтении достигнут конец файла. Это означает, что уже прочитан последний элемент в файле или файл после открытия оказался пуст. Функция JORESULT - служит для поиска ошибок, возникающих при работе с файлами. Процедура Rename (FV; NewName: String) позволяет переименовать используемый файл на диске. Переименование возможно после закрытия файла. Процедура Erase (FV) уничтожает физический файл на диске. Файл к моменту вызова процедуры Erase должен быть закрыт.
49 Примеры описания данных строкового типа. Строки-последовательность символов кодовой таблицы компьютер. Количество символов в строке может быть любым: от 1 до 255 Выражения,в которых операторы служат строковыми данными, наз. строковыми. Над строковыми данными допустимы операции сцепления(+) - объединение нескольких строк в одну; отношения(<,>,=,<>,>=,=<) или сравнения. Строковая переменная описывается в разделе описания переменных следующим образом: Var <идентификатор>: string[<максимальная длина строки>]; Например: Var Name: string[20]. Кроме того,для строковых данных используют специально строковые функции. Например: Delete (St,Poz,N)-удаление из строки St, начиная с позиции Poz N символов. Пример: Значение Str Выражение Результат 'abcdegft' Delete(Str, 2, 4) ‘agft’ ‘Hello’ Delete(Str, 3, 2) ‘Heo’ Length- функция,возвращающая значение типа intrger,опредеояет длину строки Str.Пример: Значение Str Выражение Результат 'abcd' Length(Str) 4 ‘Hello!’ Length(Str) 6 Insert( St1,St2, Poz )- вставка строки St1 в строку St2,начиная с позиции Poz. Пример: Var Str1, str2, str3:string; Str1:= ‘Hello’; Str2:= ‘would’; Str3:Insert();
|
Познавательные статьи:
Последнее изменение этой страницы: 2016-04-21; просмотров: 2272; Нарушение авторского права страницы; Мы поможем в написании вашей работы!
infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.140.100 (0.012 с.)