на тему рефераты
 
Главная | Карта сайта
на тему рефераты
РАЗДЕЛЫ

на тему рефераты
ПАРТНЕРЫ

на тему рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

на тему рефераты
ПОИСК
Введите фамилию автора:


Реферат: Основные понятия алгоритмического языка


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

действительному типу.{}

10.   О П Е Р А Т О Р Ы   В В О Д А

И   В Ы В О Д А

   Рассмотрим организацию  ввода и вывода данных с терминального уст-

ройства. Терминальное устройство - это устройство, с которым работает

пользователь, обычно это экран (дисплей) и клавиатура.

   Для ввода и вывода данных используются стандартные процедуры ввода

и вывода Read и Write, оперирующие стандартными последовательными файлами

INPUT и OUTPUT.

   Эти файлы разбиваются на строки переменной длины,  отделяемые друг

от друга признаком конца строки.  Конец строки задается нажатием кла-

виши ENTER.

   Для ввода исходных данных используются операторы процедур ввода:

         Read(A1,A2,...AK);

         ReadLn(A1,A2,...AK);

         ReadLn;

   Первый из них реализует чтение К значений исходных данных и  прис-

ваивание этих значений переменным А1,  А2,  ...,  АК. Второй оператор

реализует чтение К значений исходных данных, пропуск остальных значе-

ний до начала следующей строки, присваивание считанных значений пере-

менным А1,  А2, ..., АК. Третий оператор реализует пропуск строки ис-

ходных данных.

   При вводе исходных данных  происходит  преобразование  из  внешней

формы представления во внутреннюю, определяемую типом переменных. Пе-

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

либо к   действительному,  либо к символьному типам.  Чтение исходных

данных логического типа в языке ПАСКАЛЬ недопустимо.

   Операторы ввода  при чтении значений переменных целого и

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

же время эти операторы не пропускают пробелов,  предшествующих значе-

ниям символьных переменных,  так как пробелы  являются  равноправными

символами строк. Пример записи операторов ввода:

         var rV, rS: Real;

             iW, iJ: Integer;

             chC, chD: Char;

         ................

         Read(rV, rS, iW, iJ);

         Read(chC, chD);

   Значения исходных данных могут отделяться друг от друга  пробелами

и нажатием клавиш табуляции и Enter.

   Для вывода результатов работы программы на экран используются

операторы:

         Write(A1,A2,...AK);

         WriteLn(A1,A2,...AK);

         WriteLn;

   Первый из этих операторов реализует вывод значений переменных  А1,

А2,...,АК в   строку экрана.  Второй оператор реализует вывод

значений переменных А1,  А2,  ...,  АК и переход к  началу  следующей

строки. Третий   оператор реализует пропуск строки и переход к началу

следующей строки.

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

действительному, символьному или булевскому типам. В качестве элемен-

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

и строки.

   Вывод каждого  значения в строку экрана происходит в соот-

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

языка.

   Форма представления значений в поле вывода соответствует типу  пе-

ременных и выражений:  величины целого типа выводятся как целые деся-

тичные числа,  действительного типа - как  действительные  десятичные

числа с десятичным порядком,  символьного типа и строки - в виде сим-

волов, логического типа - в виде логических констант TRUE и FALSE.

   Оператор вывода  позволяет  задать  ширину поля вывода для каждого

элемента списка вывода.  В этом случае

элемент списка вывода имеет вид А:К, где

А - выражение или строка,  К - выражение либо константа целого  типа.

Если выводимое значение занимает в поле вывода меньше позиций, чем К,

то перед этим значением располагаются пробелы.  Если выводимое значе-

ние не помещается в ширину поля К,  то для этого значения будет отве-

дено необходимое количество позиций. Для величин действительного типа

элемент списка вывода может иметь вид А:К:М, где А - переменная или выраже-

ние действительного типа,  К - ширина поля вывода,  М  -  число  цифр

дробной части   выводимого значения.  К и М - выражения или константы

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

десятичного числа с фиксированной точкой.

    Пример записи операторов вывода:

        . . . . . . . . . . . .

        var rA, rB: Real;       iP,iQ:Integer;

            bR, bS: Boolean;    chT, chV, chU, chW: Char;

        . . . . . . . . . . . .

        WriteLn(rA, rB:10:2);

        WriteLn(iP, iQ:8);

        WriteLn(bR, bS:8);

        WriteLn(chT, chV, chU, chW);

11.   С Т Р У К Т У Р А   П Р О Г Р А М М Ы

   Программа на языке ПАСКАЛЬ состоит из заголовка, разделов описаний

и раздела операторов.

   Заголовок программы содержит имя программы, например:

      Program PRIM;

   Описания могут  включать в себя раздел подключаемых библиотек (мо-

дулей), раздел  описания меток, раздел описания констант, раздел опи-

сания типов,  раздел описания переменных,  раздел описания процедур и

функций.

   Раздел описания  модулей  определяется служебным словом USES и со-

держит имена подключаемых модулей (библиотек)  как входящих в  состав

системы TURBO PASCAL, так и написанных пользователем. Раздел описания

модулей должен быть первым среди разделов описаний. Имена модулей от-

деляются друг от друга запятыми:

    uses  CRT, Graph;

   Любой оператор  в программе может быть помечен меткой.  В качестве

метки используются произвольные целые без знака,  содержащие не более

четырех цифр, либо имена. Метка ставится перед оператором и отделяет-

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

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

      label 3, 471, 29, Quit;

   Описание констант  позволяет использовать имена как синонимы конс-

тант, их необходимо определить в разделе описаний констант:

      const K= 1024;   MAX= 16384;

   В разделе описания переменных необходимо определить тип всех пере-

менных, используемых в программе:

      var P,Q,R: Integer;

          A,B:   Char;

          F1,F2: Boolean;

   Описание типов,  прцедур и функций будет рассмотрено ниже. Отдель-

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

ПАСКАЛЬ - программе   должны  быть обязательно описаны все компоненты

программы.

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

содержит между служебными словами

         begin.......end

последовательность  операторов.  Операторы  отделяются  друг от друга

символом ;.

   Текст программы заканчивается символом точка.

   Кроме описаний  и  операторов  ПАСКАЛЬ - программа может содержать

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

ность символов,  расположенную между открывающей скобкой комментариев

{ и закрывающей скобкой комментариев }.

   Текст ПАСКАЛЬ - программы может содержать ключи компиляции,  кото-

рые позволяют управлять режимом компиляции.  Синтаксически ключи ком-

пиляции записываются как комментарии. Ключ компиляции содержит символ

$ и букву-ключ с последующим знаком + (включить режим)  или - (выклю-

чить режим). Например:

   {$E+} - эмулировать математический сопроцессор;

   {$F+} - формировать дальний тип вызова процедур и функций;

   {$N+} - использовать математический сопроцессор;

   {$R+} - проверять выход за границы диапазонов.

   Некоторые ключи компиляции могут содержать параметр, например:

   {$I имя файла} - включить в текст компилируемой программы  назван-

ный файл.

    Пример записи простой программы:

         Program TRIANG;

          var A, B, C, S, P: Real;

          begin

           Read(A,B,C);

           WriteLn(A,B,C);

            P:=(A+B+C)/2;

            S:=Sqrt(P*(P-A)*(P-B)*(P-C));

           WriteLn('S=',S:8:3)

          end.

12.   Б И Т О В А Я   А Р И Ф М Е Т И К А

   Битовая или поразрядная арифметика  введена  в  TURBO  PASCAL  для

обеспечения возможности работы с двоичными разрядами (битами). Опера-

ции битовой арифметики применимы только к целым типам.

   Первая группа операций - логические операции not, and, or и xor.

   Операция not является одноместной,  она изменяет каждый бит целого

числа на обратный.

   Операции and, or и xor - двуместные, операнды этих операций - целые

величины одинаковой   длины.   Операции выполняются попарно над всеми

двоичными разрядами операндов.

   Вторая группа  операций  -  это операции сдвига влево shl и сдвига

вправо shr:

   

    I shl N

    I shr N.

  

   Эти операции сдвигают двоичную последовательность значения I влево

или вправо на N двоичных разрядов. При этом биты, уходящие за пределы

разрядной сетки, теряются, а освободившиеся двоичные разряды заполня-

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

разряды заполняются единицами.

   

   

13.   О П Е Р А Т О Р   П Е Р Е Х О Д А

   Обычно операторы  в  программе выполняются в том порядке,  в каком

они записаны. Оператор перехода прерывает естественный порядок выпол-

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

жаться, начиная с оператора, помеченного меткой, указанной в операто-

ре перехода. Пример записи оператора перехода:

        goto 218;

14.   Э Л Е М Е Н Т Ы   С Т Р У К Т У Р Н О Г О

П Р О Г Р А М М И Р О В А Н И Я

   Структуризованная программа  (или  подпрограмма)  - это программа,

составленная из фиксированного множества базовых конструкций.   Расс-

мотрим основные  определения и способы образования этих конструкций в

схемах алгоритмов.

{}

   Из операций, развилок и слияний строятся базовые конструкции: сле-

дование, ветвление,  цикл. Применяя только эти три конструкции, можно

реализовать алгоритм решения любой задачи.

   Конструкция, представляющая собой последовательное выполнение двух

или более операций, называется следованием.

   Конструкция, состоящая из развилки, двух операций и слияния, назы-

вается ветвлением. Одна из операций может отсутствовать.

   Конструкция, имеющая линии управления, ведущие к предидущим опера-

циям или развилкам, называется циклом.

   Конструкции следование,   ветвление  и  цикл можно представить как

операции, так  как они имеют единственный вход и единственный  выход.

Произвольную последовательность   операций можно представить как одну

операцию.

   Операция может  быть  реализована  любым  оператором языка ПАСКАЛЬ

(простым или составным), либо группой операторов, за исключением опе-

ратора перехода GOTO.

   В языке ПАСКАЛЬ количество базовых конструкций увеличено до шести,

это:

       -следование;

       -ветвление;

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

       -цикл с постусловием;

       -цикл с параметром;

       -вариант.

   Далее рассмотрим,  как эти базовые конструкции реализуются в языке

ПАСКАЛЬ.

15.   У С Л О В Н Ы Й   О П Е Р А Т О Р

 {}

   Условный оператор  в короткой форме работает по правилу:  если бу-

левское выражение B истинно,  то выполняется оператор ОР1,  далее вы-

полняется оператор, следующий за условным. Если булевское выражение B

ложно, то будет выполняться оператор, следующий за этим условным опе-

ратором.

16.   Ц И К Л   С   П Р Е Д У С Л О В И Е М{}

17.   Ц И К Л   С   П О С Т У С Л О В И Е М{}

18.   Ц И К Л   С   П А Р А М Е Т Р О М{}

19.   О П Е Р А Т О Р Ы   З А В Е Р Ш Е Н И Я  Ц И К Л А

   Для всех операторов цикла выход из цикла осуществляется как

вследствие естественного  окончания оператора цикла,  так и с

помощью операторов перехода и  выхода.

   В версии ТУРБО ПАСКАЛЬ 7.0 определены стандартные процедуры Break и

Continue. Процедура Break выполняет безусловный выход из цикла. Проце-

дура Continue обеспечивает переход к началу новой итерации цикла.

20.   О П Е Р А Т О Р   В А Р И А Н Т А{}

21.   П Е Р Е Ч И С Л Я Е М Ы Й   Т И П   Д А Н Н Ы Х

   Перечисляемый тип представляет  собой  ограниченную  упорядоченную

последовательность скалярных констант,  составляющих данный тип. Зна-

чение каждой константы задается ее именем.  Имена отдельных  констант

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

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

   Программист объединяет в одну группу в соответствии с каким - либо

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

Например, перечисляемый    тип  Rainbow(РАДУГА)  объединяет скалярные значения

RED, ORANGE, YELLOW, GREEN, LIGHT_BLUE, BLUE, VIOLET (КРАСНЫЙ,

ОРАНЖЕВЫЙ,  ЖЕЛТЫЙ, ЗЕЛЕНЫЙ, ГОЛУБОЙ, СИНИЙ, ФИОЛЕТОВЫЙ). Пе-

речисляемый тип Traffic_Light (СВЕТОФОР) объединяет скалярные

значения RED, YELLOW, GREEN (КРАСНЫЙ,  ЖЕЛТЫЙ, ЗЕЛЕНЫЙ).

   Перечисляемый тип  описывается  в разделе описания типов,  который

начинается со служебного слова type, например:

type

  Rainbow = (RED, ORANGE, YELLOW, GREEN, LIGHT_BLUE, BLUE, VIOLET);

   Каждое значение  является константой своего типа и может принадле-

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

ример, перечисляемый    тип  Traffic_Light не может быть определен в одной

программе с типом Rainbow,  так как оба типа содержат одинаковые конс-

танты.

   Описание переменных, принадлежащих к скалярным типам, которые объ-

явлены в  разделе описания типов,  производится с помощью имен типов.

Например:

        type  Traffic_Light= (RED, YELLOW, GREEN);

        var   Section: Traffic_Light;

   Это означает, что переменная Section может принимать значения RED,

YELLOW или GREEN.

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

ния переменных, например:

        var  Section: (RED, YELLOW, GREEN);

   При этом имена типов отсутствуют,  а переменные определяются сово-

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

   К переменным перечисляемого  типа  может  быть  применим  оператор

присваивания:

          Section:= YELLOW;

   Упорядоченная последовательность значений, составляющих перечисля-

емый тип, автоматически нумеруется, начиная с нуля и далее через еди-

ницу. Отсюда следует, что к перечисляемым переменным и константам мо-

гут быть применены операции отношения  и  стандартные  функции  Pred,

Succ, Ord.

   Переменные и константы перечисляемого типа не могут быть элемента-

ми списка ввода или вывода.

22.   И Н Т Е Р В А Л Ь Н Ы Й   Т И П   Д А Н Н Ы Х

   Отрезок любого порядкового типа

может   быть определен как интервальный или ограниченный

тип. Отрезок  задается диапазоном от  минимального  до  максимального

значения констант, разделенных двумя точками. В качестве констант мо-

гут быть использованы константы, принадлежащие к целому, символьному,

логическому или перечисляемому типам. Скалярный тип, на котором стро-

ится отрезок, называется базовым типом.

   Минимальное и  максимальное  значения констант называются нижней и

верхней границами отрезка,  определяющего интервальный  тип.   Нижняя

граница должна быть меньше верхней.

 {}

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

няться все операции и применяться все стандартные  функции,   которые

допустимы для соответствующего базового типа.

   При использовании в программах интервальных типов данных может  осущест-

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

границы, введенные для этих переменных в описании интервального типа.

23.   М А С С И В Ы

   Массивы представляют собой ограниченную упорядоченную совокупность

однотипных величин.  Каждая отдельная величина называется компонентой

массива. Тип   компонент может быть любым,  принятым в языке ПАСКАЛЬ,

кроме файлового типа. Тип компонент называется базовым типом.

   Вся совокупность компонент определяется одним именем.  Для обозна-

чения отдельных компонент используется конструкция,  называемая пере-

менной с индексом или с индексами:

          A[5]     S[k+1]     B[3,5].

   В качестве индекса может быть использовано выражение. Тип индексов

может быть только интервальным или перечисляемым.   Действительный  и

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

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

положительные значения.{}

  В операторной части

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

тичны, например:

         R1:=Z.

   Для ввода  или вывода массива в список ввода или вывода помещается

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

цикле.

{}

   Первый индекс  определяет  номер  строки,  второй - номер столбца.

Двумерные массивы хранятся в памяти ЭВМ по строкам.

   Инициализация массивов (присвоение начальных значений всем  компо-

нентам массивов) осуществляется двумя способами.

   Первый способ - с использованием типизированных констант,   напри-

мер:

   type Dim10= Array[1..10] of Real;

   const

    raM10: Dim10 = ( 0, 2.1, 4, 5.65, 6.1, 6.7, 7.2, 8, 8.7, 9.3 );

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

входящих в него одномерных массивов записывается в скобках:

   type Dim3x2= Array[1..3,1..2] of Integer;

   const

    iaM3x2: Dim3x2= ( (1, 2)

                      (3, 4)

                      (5, 6) );

   Второй способ инициализации - использование разновидности процеду-

ры FillChar:

   FillChar( var V; NBytes: Word; B: Byte );

Эта процедура заполняет участок памяти однобайтовым значением. Напри-

мер, для обнуления массива A[1..10] of Real можно записать:

   FillChar(A, 40, 0);

или

   FillChar(A, SizeOf(A), 0);

{}

24.   С Т Р О К И

   Особое место в языке ПАСКАЛЬ занимают массивы символов.  Стандарт-

ный ПАСКАЛЬ допускает два способа хранения символьных массивов в  па-

мяти ЭВМ: распакованный и упакованный. Распакованные массивы символов

хранятся в памяти ЭВМ по одному символу в машинном слове, упакованные

- по одному символу в байте. При описании упакованного массива симво-

лов используют служебное слово PACKED, например:

            var   MAS: Packed Array[1..20] of Char;

Описание распакованного массива символов имеет вид:

            var   M: Array[1..20] of char;

   Для преобразования символьного массива из  распакованной  формы  в

упакованную и наоборот,  из упакованной в распакованную,  в язык ПАС-

КАЛЬ введены две стандартные функции Pack, UnPack.

   Упакованный массив символов образует символьную строку. Символьная

строка может быть либо строковой константой, либо строковой  перемен-

ной. Строковая константа, или строка, представляет собой совокупность

символов, заключенную  в апострофы.  Строка - это элементарная  конс-

трукция языка ПАСКАЛЬ. Строковые константы могут входить в состав вы-

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

описания констант.

   Строковые переменные - это одномерные упакованные  массивы  симво-

лов, для описания которых в TURBO PASCAL введен тип String.

   Например, если строка содержит до 30 символов,  ее тип будет опре-

делен как

    type   s= String[30];

   Длина строки не может содержать более, чем 255 символов.

   В TURBO PASCAL определено понятие строки переменной длины,  в этом

случае ее описание задается как

    type  s= String;

   Тип String без указания длины совместим со всеми типами строк.

   Особенностью строковых переменных является то, что к ним можно об-

ращаться как к скалярным переменным, так и к массивам. Во втором слу-

чае применяется конструкция "переменная с индексом", что обеспечивает

доступ к   отдельным символам строки.  При этом нижняя граница идекса

равна 1. Отдельный символ строки совместим с типом Char.

   В памяти ЭВМ строка занимает количество байтов, на единицу большее

ее длины. Нулевой байт строки содержит ее длину.

   Для строк определены операции присваивания, слияния (конкатенации)

и сравнения.

   Для сравнения строк применяются все операции отношения.  Сравнение

строк происходит посимвольно,  начиная с первого символа. Строки рав-

ны, если имеют одинаковую длину и посимвольно эквивалентны.

   Строки могут быть элементами списка ввода - вывода, при этом запи-

сывается имя строки без индекса.

   При вводе  строковых переменных количество вводимых символов может

быть меньше,  чем длина строки. В этом случае вводимые символы разме-

щаются с начала строки, а оставшиеся байты заполняются пробелами. Ес-

ли количество  вводимых  символов  превышает  длину  строки,   лишние

символы отбрасываются.

   Инициализация строк может производиться как с помощью типизирован-

ных констант:

   const sName: String[9]= 'IBM PC/AT';

так и с использованием второй разновидности функции FillChar:

   FillChar( var V; NBytes: Word; C: Char );

например:

   FillChar(A, SizeOf(A), '0');

   Для работы  со  строками в TURBO PASCAL включены процедуры и функ-

ции, которые обеспечивают редактирование и преобразование строк.

{}

25.   П Р О Ц Е Д У Р Ы   И   Ф У Н К Ц И И

   Алгоритм решения  задачи проектируется путем декомпозиции всей за-

дачи в отдельные подзадачи. Обычно подзадачи реализуются в виде подп-

рограмм.

   Подпрограмма - это последовательность операторов,  которые опреде-

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

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

дая подпрограмма определяется уникальным именем.  В языке ПАСКАЛЬ су-

ществуют два типа подпрограмм - процедуры и функции.

   Процедура и  функция - это именованная последовательность описаний

и операторов.  При использовании процедур или функций ПАСКАЛЬ - прог-

рамма должна содержать текст процедуры или функции и обращение к про-

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

описаний процедур и функций.

{}

   Процедура может содержать такие - же разделы описаний,  что и ПАС-

КАЛЬ - программа,  а именно:  разделы описания модулей,  меток, конс-

тант, типов, переменных, процедур и функций.

{}

   ПЕРЕДАЧА ИМЕН ПРОЦЕДУР И ФУНКЦИЙ В КАЧЕСТВЕ ПАРАМЕТРОВ.  Во многих

задачах, особенно в задачах вычислительной математики, необходимо пе-

редавать имена процедур и функций в качестве параметров.  Для этого в

TURBO PASCAL   введен новый тип данных - процедурный или функциональ-

ный, в зависимости от того, что описывается.

   Описание процедурных и функциональных типов производится в разделе

описания типов:

   type

         FuncType = Function(z: Real): Real;

         ProcType = Procedure (a,b: Real; var x,y: Real);

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

Страницы: 1, 2, 3, 4, 5


на тему рефераты
НОВОСТИ на тему рефераты
на тему рефераты
ВХОД на тему рефераты
Логин:
Пароль:
регистрация
забыли пароль?

на тему рефераты    
на тему рефераты
ТЕГИ на тему рефераты

Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое.


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.