Теория Паскаль

Автор: Пользователь скрыл имя, 06 Ноября 2011 в 02:04, реферат

Описание работы

В языке программирования Паскаль реализованы три типа операторов цикла:
- цикл с параметром FOR .. TO/DOWNTO .. DO;
- цикл с предусловием WHILE .. DO;
- цикл с постусловием REPEAT .. UNTIL.

Работа содержит 1 файл

ТЕОРИЯ ПАСКАЛЬ.doc

— 40.00 Кб (Скачать)

Теория к программе

Операторы цикла

  В языке  программирования Паскаль реализованы  три типа операторов цикла:

      - цикл с параметром FOR .. TO/DOWNTO .. DO;

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

      - цикл с постусловием REPEAT .. UNTIL.

  Цикл с  параметром (счетчиком)

    Общий  вид:

      FOR <управляющая переменная,i>:=<начальное  значение,n0> TO <конечное значение,nf>

        DO <оператор,S>;

  Цикл с  предусловием

    Общий  вид:

      WHILE <логическое выражение,V> DO <оператор,S>

  Цикл с  постусловием

    Общий  вид :

      REPEAT <оператор,S1>;

        <оператор,S2>;

        .

        .

        <оператор,SN>;

      UNTIL <логическое выражение,V>; 
 
 

Теория к программе

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

  Оператор IF

  Общий вид:

    IF <выражение  V> THEN <оператор S1> [ELSE <оператор S2>];

      Где: V - выражение логического типа (условие, за которым выполняется  оператор S1 или S2). S1,S2 - один простой  оператор (может быть составным).

  Вложенный  оператор IF

  Условный  оператор if может содержать в  свою очередь также оператор if, например:

      IF V1 THEN IF V2 THEN S1 ELSE S2

        Для избежания ошибки лучше использовать операторные скобки:

    IF V1 THEN BEGIN

      IF V2 THEN S1

        ELSE S2

      END;

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

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

      CASE <K> OF

        <значение K1 или список значений K1>: S1

        <значение K2 или список значений K2>: S2

        .

        .

        <значение KN или список значений N>: SN

        [ELSE SN+1]

      END;

        Где: K - выражение или переменная  перечислимого типа;

        S1 .. SN+1 - операторы, которые используются  в том случае, если выражение  или переменная K приобретает соответствующее  значение. Они могут быть составными. 
 

Теория к программе

Работа с текстовым  файлом

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

    Тип  строка: STRING[n] - последовательность  символов длиной n, что помещаются  в апострофах, n [0,255], по умолчанию  n=225.

    + операция  конкатенации (склеивание строк).

  Сравнение  строк

    Для  данных типа строка определенны  все операции сравнения (=,<>,>,>=,<,<=). Сравнение выполняется по лексикографическому  принципу, то есть при сравнивании  двух строк каждый символ первой  строки сравнивается последовательно  слева направо с каждым символом второй строки (метод словаря) к первому несовпадению. За результатом сравнения первого несовпадающего символа определяется результат сравнения двух строк.

    Строка  как массив

      Данные типа строка сохраняются  в виде следующей последовательности байт, которая содержат коды ASCII символов, нулевой байт содержит фактическую длину строки

      К каждому байту (символу) можно  обратиться как к элементу  массива за его индексом

  Процедуры  и функции работы с строками

    CONCAT - конкатенация последовательности строк

    COPY - выделить  подстроку

    DELETE - изъять подстроку

    INSERT - прибавить подстроку

    LENGTH - определить длину строки

    POS - выполнить  поиск подстроки в строке

    STR - преобразовать  числовое значение в его символьную репрезентацию

    VAL - преобразовать  строку в её числовое значение

      1) LENGTH(S: string):integer - возвращает длину  строки (значение первого байту)

        LENGTH('word') --> 4

      2) CONCAT(s1,....s:string):string; - выполняет конкатенацию (объединение) строк;

        где si - список строк или выражений  типа строка; общая длина результата *255 символов

      4) DELETE(var s:string, n1,n2:integer) - процедура, разрешает  изъять подстроку из строки S, причем сама строка S изменяется; здесь n1 - первый изымаемый символ; n2 - количество изымаемых символов.

      5) INSERT(S1:string;var S2:string;n:integer); - процедура  добавляет подстроку S1 в строку S2 начиная из позиции n; S1, S2 и  n - выражения соответствующего типа

      6) POS(S1,S2: string):byte - разыскивает подстроку S1 в строке S2 и возвращает номер позиции первого найденного вхождения. Если возвращается 0 - строка не содержит предоставленной подстроки. S1, S2 - могут быть выражениями типа строка

      7) STR(x[:l1[:l2]], var s:string);

        где x - выражение целого (integer) или действительного (real) типа

        Процедура предоставленна в форме  x:l1 (целое) или x:l1:l2 (действительное) число преобразовывает в строку  и сохраняет её в переменной s.

      8) VAL(s:string; var v:integer/real; var c:integer);

        Процедура строка s преобразовывает в числовую форму (обратная к str) и сохраняет её в переменной v. Если строка содержит недопустимый символ (который не может быть применена в записи числа), то ее позиция сохраняется в переменной c, в другом случае c=0.

  Работа с  текстовыми файлами

    Текстовый  файл описывается:

      var f:text;

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

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

  Специальные  функции и процедуры работы  с текстовыми файлами

    1) eoln(var t:text): boolean;

      Окончание строки определяется кодами двух символов:

      #13 - CR (возвращение каретки или  переход к началу строки)

      #10 - LF (переход на новую строку)

      Оба кода генерируются при  нажиме Enter.

      Функция eoln принимает значение true, если достигнуто окончание строки, то есть показатель на текущий символ что обрабатывается стоит на первом с двух символов признака конца строки (#13). В других ситуациях возвращает false.

      Если eof=true, то и eoln=true.

    2) seekeoln(var f:text):boolean.

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

    3) seekeof(var f:text):boolean.

      Действие такая же, как и функции  eof, но опускаются пропуски, символы табуляции и переводу строки в конце файла

    4) settextbuf(var t:text,var buf [;<размер>:word]).

      Процедура переопределяет буфер ввода/вывода (по умолчанию стандартный, 128 байт), что удобно для быстрой обработки текстовых файлов или непосредственного доступа к буферу

      Ограничение:

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

      б) переобозначенный буфер действует  до появления следующей процедуры  assign - переопределение файловой переменной

      Параметры:

        buf - любая переменная, что определяет буфер обмена;

        <размер> - необязательный параметр, который определяет размер буферу (иначе равняется размеру переменной buf).

    Функция  sizeof(<идентификатор переменной/типа>):word; - возвращает размер переменной  в байтах

    5) flush(var f:text).

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

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

    6) Особенности  работы процедур read, write для текстовых  файлов.

      Как и при вводе из клавиатуры:

      read(f,v1,v2,...vn); ~ read(f,v1);read(f,v2);...read(f,vn);

      readln(f,v1,v2,...vn); ~ read(f,v1);read(f,v2);...readln(f,vn);

      read(input,v1,v2,...vn); ~ read(v1,v2,...,vn);

      аналогично при выводе:

      write(f,v1,v2,...vn); ~ write(f,v1);write(f,v2);...write(f,vn);

      writeln(f,v1,v2,...vn); ~ write(f,v1);write(f,v2);...writeln(f,vn);

      write(output,v1,v2,...,vn); ~ write(v1,v2,...,vn).

    Если список вывода отсутствует, то:

    readln(f); - показатель текущей записи файла  f устанавливается на следующую  строку (запись), то есть пропускаются  все символы к (CR/LF) - признака конца строки

    writeln(f); - в файл записываются коды  конца строки (CR/LF) то есть пустая  строка в текущем месте.

Информация о работе Теория Паскаль