Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Алгоритм. Основные типы алгоритмов. Блок схемы алгоритмов. Гост.

Поиск

Алгоритм. Основные типы алгоритмов. Блок схемы алгоритмов. ГОСТ.

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

Выделяют следующие типы алгоритмов: 1)линейные;2)разветвляющиеся (ветвления);3)циклические (с параметром, с предусловием, с постусловием). Циклы в свою очередь делятся на простые и сложные. Простые – это циклы в составе которых нет других циклов. Сложные – циклы содержащие внутри себя хотя бы один другой цикл.

Способы описания алгоритмов: словесный; математический (напр., y=(a+b)/c, a=3, b=4, c=7);с помощью алгоритмических языков; графический (с помощью блок-схем). В практике программирования наиболее часто используется графический способ. Все блоки, которые используются при данном способе вычерчиваются в соответствии с ГОСТ. Основными элементами блок-схемы являются:

Процесс – производится операция или группа операций, в результате которых изменяются значения или форма их представления. а=5,10,15… b=1,5a.

 

 

Ветвление – изменяется последовательность выполнения действий в зависимости от некоторого условия.

 

Ввод-вывод – используется для ввода-вывода информации с любого её носителя.

Соединитель – указывает на связь между прерванными

блоками.

 

Вывод информации на печатающее устройство.

 

Начало и конец алгоритма.

 

Типовой процесс – использование ранее созданных и отдельно описанных и подпрограмм.

 

По Госту рекомендуется в левом углу блока ставить его номер.

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

 

 

Циклические алгоритмы

Циклом называется многократно исполняемый участок алгоритма (программы). Соответственно циклический алгоритм — это алгоритм, содержащий циклы.

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

Существует 3 типа циклических структур:

· цикл с предусловием (оператор WHILE) - в этом цикле в любых вариантах расчет будет производиться min 1 раз;

· цикл с постусловием (оператор REPEAT..UNTIL) - расчет производится min 1 раз, проверка условий идет в конце вычисления;

· цикл с параметром (оператор FOR) - этот цикл применяется тогда, когда заранее известно условие и число повторений цикла.

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


While <условие выполнения> Do <оператор> -цикл с предусловием

Repeat
<оператор>;
<оператор>;

<оператор>;
Until <условие завершения>;-
цикл с постусловием

For <имя переменной>:=<нач. значение> To <кон. значение> Do <оператор>; -цикл с праметром

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

Кроме того циклы разделяют на:

· простые – циклы, в составе которых нет никаких других циклов;

· сложные(вложенные) – циклы, содержащие хотя бы один др. цикл.

 


Алгоритмы ветвления

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

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

Одна ветвь указывает действие (действия), которые будут совершаться, если условие выполняется (ветвь – да), а вторая ветвь указывает действие (действия), которые будут совершаться, если условие не выполняется (ветвь – нет).

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

Формат условного оператора

(полная форма)

если условие

то действие 1

иначе действие 2

Конец

 

(неполная форма)

если условие

то действие 1

Все

Неполная форма ветвления отличается от полной тем, что в одной из ветвей действия отсутствуют.


Интервальный тип данных

С помощью интервального типа задается диапазон значений какого-либо типа.

type имя_типа = константа_1.. константа_2

Константы должны быть одного и того же порядкового типа. Тип, на котором строится интервал, называется базовым. Константа_1 должна быть меньше или равна константе_2. Примеры описания интервальных типов:

type Hour = 0.. 23;

Range = –100.. 100;

Letters = 'a'.. 'z';

Actions = READ.. EDIT;

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

var r: –100.. 100;

С переменной интервального типа можно делать все, что допустимо для ее базового типа. Ее значение должно находиться в указанном диапазоне, в противном случае произойдет ошибка времени выполнения 'Constant out of range'.

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

15 Алфавит языка Паскаль

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

1) 26 латинских строчных и 26 латинских прописных букв:A B C D 2) _ подчеркивание

3) 10 цифр: 0 1 2 3 4 5 6 7 8 9

4) знаки операций: + - * / = <> < > <= >=:= @

5) ограничители:., ' () [ ] (..) { } (* *)..:;

6) спецификаторы:^ # $

7) служебные (зарезервированные) слова:

EXPORTS LIBRARY SET MOD SHL AND FAR NAME SHR ARRAY

Кроме перечисленных, в набор основных символов входит пробел. Пробелы нельзя использовать внутри сдвоенных символов и зарезервированных слов.

 


16Типы данных в языке Паскаль(общая характеристика)

Тип – это множество значений, которые могут принимать объекты программы, и совокупность операций, допустимых над этими значениями.

Типы данных в языке Паскаль делятся следующим образом:
I. Простые типы: порядковые, вещественные, дата-время.

Порядковый тип в свою очередь делится на:

1. целочисленные типы;

2. логический тип;

3. символьный тип;

4. перечисляемые типы;

5. ограниченные типы или тип-диапазон.

II. Составные типы: структурированные типы, указатели, строки, процедурные, объекты, классы, варианты.

Структурированные типы в свою очередь делятся на:

1. строковый тип(string)

2. тип-массив(array)

3. тип-множество(set)

4. тип-запись(record)

5. файловый тип(file)

6. объектный(object)

Базовые типы данных – типы, определяемые в языке программирования
Конструируемы типы данных – типы данных, которые создаются программистом

Ве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,



Поделиться:


Последнее изменение этой страницы: 2016-04-21; просмотров: 3792; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.21.247.78 (0.013 с.)