скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыШпаргалка: Вопросы и ответы к экзаменам В-1

Открытый массив  PROCEDURE I (A: ARRAY OF REAL);

24. Функции. Описание. Вызов функции.

FUNCTION<имя>[(<формальные параметры>)]:<тип>

Сразу за заголовками может следовать одна стандартных директив: ASSEMBLER <тело подпрограммы на ассемблере>, EXTERNAL<объявление внешней подпрограммы>, FAR, FORWARD, INLINE<встроенные машинные инструменты>, INTERRUPT,NEAR.

FUNCTION<имя функции>(параметр: тип);

Begin

<тело подпрограммы>

end;

25. Рекурсии. Прямая и косвенная рекурсия. Директива FORWARD.

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

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

Begin

…………………………

F:=fac(n-1); - вспомогательная переменная

……………………….

End;

Рекурсивный вызов может быть косвенным, который разрешается опережающим описанием:

Procedure b(j: byte);

 Forward;

Procedure a (i: byte);

Begin

B(i);

End;

26. Тип-диапазон. Структурированные типы. Массивы.

Любой из структурированных типов (а в ТП их 4 : массивы, записи, множества, файлы) характеризуется  множественностью образующих этот тип элементов. В ТП

Допускается бесконечная глубина вложенности типов, однако Суммой=<65520 байт (т.к. каждый компонент может представлять структурированный тип).

PACKED- осуществляется везде где это возможно.

Тип диапазон:

TYPE

D = array [0..9] of char;

Var m: d;

Begin <операторы>end.

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

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

<мин. значение >..<макс. значение>

TYPE digit = ‘0’..’9’;  можно  Var date:1..31;

            dig2=48..57;                        month:1..12;

                                                        1CHR:’a’..’z’;

High(x) – максимальное значение типа диапазон

Low(x) – минимальное значение типа диапазон.

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

Var a: array [1..10] of  real;

Компоненты массива  состоят из данных одного типа (возможно структурированного).

В качестве идентификаторов порядковые типы кроме LongInt и типа диапазон с базисным типом LongInt/ 

27. Символьный тип.

Значением символьного типа является множество всех символов ПК. Каждому символу присваивается целое число в диапазоне 0..255.Это служит кодом внутреннего представления символа, его возвращает функция ORD. Для кодировки используется код ASCII – 7 битный код, т.е. с его помощью кодируется 128 символов (0..127). В то же время в 8-битном байте, отведённом для хранения символа в ТП, можно закодировать в 2 раза больше символов (0..255). (0-127ASCII, 128-255-может меняться  на ПК разных типов).

0-31 – служебные коды (пробелы)

28. Строковый тип. Операции, процедуры и функции

Значением строкового типа является любая последовательность символов, т.е. строка. Окончанию строки соответствует символ с кодом 0, и которые называются строками с завершающим нулём или ASCIIZ-строками.

Строковый тип соответствует идентификаторам string и PChar.

A: array[0..n] of char = a: string

Ord(0)=length(a)- длинна строки(не больше 255 символов)

Concat (S1 [s2 ..,SN])- сцепление строк

Copy (St, index, count) – копирует из строки ST символ, начиная с index

Delete(ST, a, b) – удаление b символов начиная с a

Insert (sut, st, b)–вставляет SUT в ST начиная с b

Pos (Sut, St) -  в строке ST отыскивает Sut если нет 0

Str (X [WIDTH [:DECIMALS]], ST)- из вещественного или целого в строку

Val (st ,x, code) – обратно str (пробелы не допускаются)

Var s: string;

Begin

…….

S:= ’dsfsdhfjhsdfjshdfjsd’;

……….

End.

29. Типы в Турбо-Паскале. Объявление новых типов. Порядковые типы.    Изменение типа выражения

Стандартные типы в ТП:

1 группа целых типов(ShortInt, integer, LongInt, Byte, Word);

2 группа вещественных типов(Single, real, Double, Extended, Comp);

3 группа Булевские типы (Boolean, ByteBool, WordBool, LongBool);

4 Символьный тип(Char);

5 Строковые типы(String,  PChar);

6 Указательный тип (Pointer);

7 Текстовый тип (Text);

Type <Новый тип>=<описание типа>

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

Свойства:

1 Каждый элемент имеет свой порядковый номер

2 Поэтому возможен использование функцииOrd, возвращающей этот номер

3 Возможно применить функцию Pred  и Succ которые верну соответственно предыдущее и последующее значения

30. Целые типы. Правила объявления. Применяемые функции.

Целые типы:

Byte 0..255  ShortInt –128..127   Word 0..65535  Integer –32768..32767

LongInt –2147483648.. 2147483647

Вложение типов:

Type result = более мощный тип

 A: integer;

LongInt(a);

Процедуры и функции:

ABS(X)           CHR(X)          DEC    INC     SQR    HI(I)-старший байт

LOW(X) – младший байт     ODD(I) – возвращает правда если нечет

RANDOM(x) SWAP(I)- меняет местами байты

31. Логический тип. Логические операции и функции

Логический тип ещё называют булевским. Их 4:

Boolean(false=0, 1 байт); ByteBool (false=0, 1 байт); WordBool (false=0 в обоих байтах, 2 байта); LongBool (false=0 во всех байтах, 4 байта).

Логические функции:

Ord; Pred; Succ; or ;and ; xor ;

32. Перечисляемые типы. Функции и операции, применимые к ним.

Перечисляемый тип задаётся тем значениям, которые он может получить. Значения

именуются идентификаторами и располагаются в списке с ( ).

Type col = (red, white, blue);

Max=65536 значений;

Ord (red)  =0;

Var c: col;

C:= col(0);

С:=red;

В идентификаторах нельзя использовать кириллицу. Переменные так же можно объявлять без предварительного описания типа

Var col: (black, white, green);

33. Множества и операции над ними.

МНОЖЕСТВА - наборы  однотипных логически связанных друг с другом объектов. Характер связей между объектами подразумевается лишь программистом  и не контролируется Турбо Паскалем. Количество элементов в множестве может меняться от 0 до 255. Множество,  которое не содержит элементов, называется  пустым.  От массивов множества отличаются тем, что количество элементов  в нем не постоянно.  Его можно расширять и сокращать по ходу выполнения программы.

Описание типа  производится в разделе TYPE.

Структура:

<Имя идентификатора>=SET of <имя типа> ;

где  <Имя идентификатора> - правильный идентификатор Турбо Паскаля;

<имя типа> - тип элементов множества,  в качестве  которого  может

использоваться  любой порядковый тип,  кроме WORD,  Integer,  LogInt,

ShortInt.

пример: TYPE dchar=SET of '1'..'9'; {базовый символьный тип-диапазон}

digit=SET of 0..9;

Переменные этого типа описываются в разделе

VAR     S1,S2,S3:dchar;            S4,S5,S6,S7:digit;

Для задания множества может использоваться конструктор  множества: список  (спецификаций)  элементов  множества,  отделенных друг от друга запятыми; список заключается в квадратные скобки. Спецификациями элементов  м.б.  константы  или  выражения базового типа,  а также пример:

S1:=['1','2','3'];               S4:=[0..3,7];

S2:=['2','1','3'];               S5:=[4,6];

S3:=['1','2'];                   S6:=[3..8];  S7:=[]; (пустое)

Два множества считаются эквивалентными  тогда  и  только  тогда, когда все их элементы одинаковы причем порядок следования в множестве их безразличен. (S1 и S2 эквивалентны).Если все  элементы одного множества входят в другое множество то говорят, что первое включено во второе. (S3 включено в S1).Пустое множество включено в любое другое.

Над множествами определены следующие операции:

1. *  пересечение множеств;  результат содержит элементы, общие

для обоих множеств. (S4*S6 содержит [3,7]; S4*S5 образует пустое мн.).

2. +  объединение множеств, результат содержит элементы первого

множества, дополненные недостающими элементами второго.

S4+S5 содержит [0,1,2,3,4,6,7]    S5+S6 содержит [3,4,5,6,7,8]

3. -  разность множеств, результат содержит элементы из первого

множества, которые не принадлежат второму.

S6-S5 содержит [3,5,7,8])

S4-S5 содержит [0,1,2,3,7])     []-S4 даст [].

4. Операции отношений:

= операция эквивалентности; возвращает значение TRUE, если оба

множества эквивалентны; (S1:=S2;  ['1','2','3']) =['2','3','1']

 проверка неэквивалентности;  (TRUE, если  множества неэквивалентны);              [1,2]<>[1]      S3<>S2

>= проверка вхождения (TRUE,  если второе множество входит в первое;

in - проверка принадлежности. Структура этой бинарной операции:

in ;возвращает TRUE,  если выражение имеет значение,  принадлежащее  множеству.

пример:

3 in S6           TRUE;     [] in [0..5]    [] in S5

2*2 in S4         FALSE;

Множества имеют компактное машинное представление. Недостаток: невозможность вывода множества на  экран,  т.к.  отсутствует механизм изъятия элемента из множества. Ввод множества возможен только поэлементно.

пример: Можно тип объявлять при описании переменных

VAR S:SET of char;    {переменная-множество}

C: char;            {элемент множества}

Begin

S:=[];   S:=#0;       {обнуление значений}

while C  '.' do     {цикл до ввода "."}

begin

readln(C);      {чтение символа в с}

S:=S+[C];          {добавление его к S}

end;            ...

S:=S-['.'];           {исключение точки}

End.            {Смотри задание на л.р. N 12 }

34. Оператор выбора CASE (варианта). Комментарии.

CASE<ключ выбора> OF

                                                Const1:оператор;

                                                Const2:оператор;

                                                ELSE: оператор;

END;

35. Записи. Вложенные записи. Записи с вариантами.

Запись – это структура данных, состоящая из фиксированного числа компонент, называемых полями записи. В отличие от массива компоненты могут быть различного типа. Поля именуются:

<имя типа>=RECORD<определение полей>END.

Type

            Bd = record

            D,m: byte;

            Y: word

Var a,b: bd;

a::=8;

a.day:=27;-доступ к компоненту

Для упрощения доступа к полям записи используют оператор записи With

With<переменная>do<оператор>;

With c.bp do month:=9;

With c do with bp do month:=9;

c.bp.month:=9;

Вариантные поля

Type f= record

         N: string;

         Case byte of

0:(bp: string[30]);

1:(c: string[10],e: string[20],ed:1..31)

          end;

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

Вложенные поля:

Type    bd =record

            D,m: byte;

            X: word;

            End;

Var      c: record;

            Name: string;

            Db: bd;

Begin if c.db.year=1939 then………..

End.

В качестве ключа переменная:

Type rec2=record

            C: LongInt;

Case x: byte of

1: (d: word);

2: (e:record

            case boolean of

3: (f: real);

3: (g: single);

‘3’: (c: word);

end;

end;

           

36. Вещественный тип. Операции и функции для вещественного типа.

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

Длина    название    кол-во знаковых цифр     диапазон десятичного порядка

 байт

 6               real                                    11..12                          -39..38

 8             couble                      15..16                          -324..308

10            extended                 19..20                          -4951..4932

 8             comp                                   19..20                       -2*10^63+1  ..   2*10^63-1

функции

ABS(X), ARCTAN(x), COS(X), EXP(X), FRAC(X), INT(X),LN(X), SIN(X), ROUND(X),SQR(X),SQRT(X) И Т.Д.

37. 38. 39.   Файловый тип. Файлы. Требования к имени. Связывание. Текстовые файлы. Ввод (вывод) информации из файла (в файл, устройство) Типизированные файлы и нетипизированные файлы.

Общие процедуры для работы с файлами

_____________________________________________________________

|Assign(Var f,FileName:String) - Cвязывание ф.п.f с файлом FileName

|RESET(Var f) | Открытие файла с логическим именем f для чтения  |

|REWRITE(Var f) Открытие файла с лог. именем f для записи            |

| CLOSE(f)    |  Закрытие файла с лог. именем f                                     |

|Erase(Var f) | Удаление файла (стирание) с диска                                |

|Rename(f, NewName:String)|Переименовывает физический файл        |

| EOF(f)      |  Функция тестирования конца файла              |

|FLUSH()|  Очищает внутренний буфер файла                |

-------------------------------------------------------------

ТЕКСТОВЫЕ ФАЙЛЫ

Это файлы последовательного доступа.

Они предназначены для хранения текстовой информации. Компоненты (запи-

си) текстового файла могут иметь переменную длину.

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

READ, READLN, WRITE, WRITELN.

Текст-ориентированные процедуры и функции

____________________________________________________________

|  процедуры  |              пояснения                       |

|  и функции  |              (действия)                      |

|-------------|----------------------------------------------|

|Append       |Процедура  открывает  уже  существующий файл f|

|    () |для дозаписи в конец файла                          |

|пр:Append(f) |           (для его расширения)               |

|SeekEOLN     |Функция пропускает все пробелы и знаки табуля-|

|    () |ции до первого признака EOLN  или первого зна-|

|  логич.типа |чащего символа. Возвращает значение TRUE, если|

пр:SeekEOLN(f)|обнаружен маркер конца файла или маркер конца |

|             |строки.          Если ф.п. опущена,           |

|             |функция проверяет стандартный файл INPUT.     |

|             |                                              |

|SeekEOF      |Функция пропускает все пробелы,знаки табуляции|

|    () |и маркеры конца строк до маркера  конца  файла|

|пр:SeekEOF(f)|или первого значащего символа. Если маркер об-|

|             |наружен, возвращает значение TRUE.            |

|EOLN ()|Функция возвращает значение TRUE,если во вход-|

|  логич.типа | ном файле   f   достигнут  маркер  EOLN  или |

|пр:  EOLN(f) | EOF; FALSE - в противном случае.             |

|_____________|______________________________________________|

Типизированные файлы

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

рядковому номеру). Описание файловой переменной

Var  ft: file of ;

Перед первым обращением к процедурам ввода-вывода указатель файла

стоит в  его  начале и указывает на 1-ю компоненту с номером 0.  После

каждого чтения или записи указатель сдвигается с следующему компоненту

файла. Переменные в списках в/в должны иметь тот же тип,  что и компо-

ненты файла.

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

____________________________________________________________

|  процедуры  |              пояснения                       |

|  и функции  |              (действия)                      |

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


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.