Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

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

 и применяться все стандартные  функции,   которые
    допустимы для соответствующего базового типа.
       При использовании  в  программах  интервальных  типов  данных  может
осущест-
    вляться контроль   за  тем,  чтобы значения переменных не выходили за
    границы, введенные для этих переменных в описании интервального типа.
    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);

       Функциональный и процедурный тип определяется как заголовок проце-
    дуры и функции со списком формальных параметров,  но без имени. Можно
    определить функциональный или процедурный тип без параметров,  напри-
    мер:
       type
             Proc = Procedure;

       После объявления процедурного или функционального типа  его  можно
    использовать для  описания  формальных  параметров  - имен процедур и
    функций.
       Кроме того, необходимо написать те реальные процедуры или функции,
    имена которых будут передаваться как фактические параметры.  Эти про-
    цедуры и  функции должны компилироваться в режиме дальней адресации с
    ключом {$F+}.


       Пример. Составить программу для вычисления определенного интеграла
                    tk
                           2t
                 I= S--------------- dt
                       sqrt(1-sin2t)
                    tn
    по методу Симпсона. Вычисление  подинтегральной функции реализовать с
    помощью функции, имя которой передается как параметр.  Значение опре-
    деленного интеграла по формуле Симпсона вычисляется по формуле:

          ISimps=2*h/3*(0.5*F(A)+2*F(A+h)+F(A+2*h)+2*F(A+3*h)+...
                                                    +2*F(B-h)+0.5*F(B))

    где A и B - нижняя и верхняя границы интервала интегрирования,
        N - число разбиений интервала интегрирования,
        h=(B-A)/N, причем N должно быть четным.

    Program INTEGRAL;
     type
        Func= function(x: Real): Real;
     var
        I,TN,TK:Real;
        N:Integer;
    {$F+}
     Function Q(t: Real): Real;
       begin
         Q:=2*t/Sqrt(1-Sin(2*t));
       end;
    {$F-}
     Procedure Simps(F:Func; a,b:Real; N:Integer; var INT:Real);
       var
          sum, h: Real;
          j:Integer;
       begin
         if Odd(N) then N:=N+1;
         h:=(b-a)/N;
         sum:=0.5*(F(a)+F(b));
         for j:=1 to N-1 do
           sum:=sum+(j mod 2+1)*F(a
12345След.
скачать работу

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

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ