2. В сложных программах при модульном проектировании.
Подпрограммы делятся на процедуры и функции
Результатом исполнения функции является единственное значение простого, строкового или указательного типа. Поэтому обращение к функции можно использовать выраженное наряду с константой и переменные.
Процедура обычно возвращает несколько значений, подпрограмма состоит из заголовка и тела подпрограммы.
Тело подпрограммы состоит из раздела описаний и раздела операторов.
Структура: PROCEDURE<имя процедуры >;
FUNCTION<имя функции>(параметр: тип);
USES<модули>;
LABEL<метки>;
CONST<константы>;
TYPE<типы>;
VAR<переменные>;
BEGIN
Тело подпрограммы
END;
20. Вложенные подпрограммы. Принципы локализации имен (локальные и глобальные переменные).Вложенными являются подпрограммы, вызываемые из других подпрограмм.
Если какая либо программа использует некоторые переменные подпрограммы,
То данные переменные должны быть описаны не в подпрограмме, а в самой программе. Данные переменные называются глобальными, а переменные, объявленные в модуле или подпрограмме являются локальными, и значения этих временных нельзя использовать в главной программе.
21. Вызов подпрограмм (формальные и фактические параметры).Подпрограммы могут быть вызваны как из тела основной программы, так и из тела другой подпрограммы. Для вызова необходимо написать имя процедуры или функции, а также, если надо, ряд переменных передаваемых в подпрограмму.
Пример:
PROCEDURE<имя>[(<формальные параметры>)];
FUNCTION<имя>[(<формальные параметры>)]:<тип>
Сразу за заголовками может следовать одна стандартных директив: ASSEMBLER <тело подпрограммы на ассемблере>, EXTERNAL<объявление внешней подпрограммы>, FAR, FORWARD, INLINE<встроенные машинные инструменты>, INTERRUPT,NEAR.
PROCEDURE SB(a: real<формальный параметр>);
Фактические параметры – это глобальные переменные подставленные в формальные
ТИП ФАКТ=ТИП ФОРМ.
22. Процедуры без параметров и с параметрами.PROCEDURE<имя>
Begin
<текст процедуры>
end;
23. Передача в подпрограмму параметров регулярного типа (массивов, строк).Типом любого формального параметра может быть только стандартный или ранее объявленный тип.
Пример:
TYPE TYPE
ATYPE=ARRAY[1..10]OF REAL; INTYPE=STRING[15];
PROCEDURE S(A:ATYPE); OUTTYPE=STRING[30];
FUNCTION ST(S:INTYPE):OUTTYPE
Иной способ для передачи параметров переменных отключением контроля компиляции.
Открытый массив 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, если выражение имеет значение, принадлежащее множеству.
пример:
... председателя и секретаря заседания, список присутствующих, повестка заседания, фамилии выступавших и текст принятого решения. Полный протокол, кроме этого содержит запись текстов докладов, выступлений, вопросов и ответов докладчиков. Составляется на основе записей, которые ведет секретарь во время заседания. Оформляется на общем бланке. Датой является дата заседания (или даты начала и окончания ...
... (выявление поступков, результатов деятельности); вопросы о личности респондента. Классификация по форме - это деление: а) на открытые вопросы, рассчитанные на индивидуальные ответы в письменном виде без предложенных социологами вариаций, и закрытые (с набором вариантов ответов), в свою очередь, подразделяющиеся на альтернативные (с возможным выбором одного варианта) и неальтернативные (с ...
... вопросы, сформулированные обычным сухим теоретическим языком. В результате почти все студенты двух первых групп успешно справились с экзаменом, в то время как многие студенты третьей группы провалились. Психологи предполагают, что юмор помогает студентам собраться, подготовиться к ответу. Правда, не каждый вопрос в билете можно окрасить юмором. Как, например, придать шутливую форму такому вопросу ...
... деятельности. Семья, где ведущим типом взаимоотношений является сотрудничество, обретает особое качество, становится группой высокого уровня развития – коллективом. РАЗДЕЛ теоретическая ПСИХОЛОГИЯ: 1. Методы психологического исследования, их взаимодополняющий характер. 2. Общая характеристика ощущений как психологического процесса. 3. Основные психологические направления (школы ...
0 комментариев