И2_лр30

advertisement
Лабораторная работа №30 по дисциплине "Информатика"
ТЕМА: Логические выражения и логические переменные. Символы и строки.
---- Подпрограммы. Процедуры и функции для работы со строками.
ЛОГИЧЕСКИЕ ВЫРАЖЕНИЯ И ЛОГИЧЕСКИЕ ПЕРЕМЕННЫЕ
-------------------------------------------1. Логическое выражение может состоять из выражений, над которыми выполняется
одна из следующих операций сравнения:
= равно;
< меньше;
> больше;
<= меньше или равно;
>= больше или равно;
<> не равно.
Операция сравнения производится после вычисления значений сравниваемых
выражений. Результатом операции является значение True (Истина), если
отношение, устанавливаемое операцией сравнения, выполняется, или значение
False (Ложь), если это отношение не выполняется.
2. Значение логического выражения может быть присвоено величинам логического
типа – переменной или элементу массива логического типа. Основной логический
тип называется Boolean. Величины этого типа занимают в памяти 1 байт и могут
принимать значения True или False.
Внутренним представлением значения False является 0,
внутренним представлением значения True является 1.
3. Примеры объявления величин логического типа:
Var a,f,vv: Boolean;
Var z: Array [1..20] of Boolean;
4. К величинам логического типа применяются логические операции:
not – логическое отрицание (унарная операция – имеет один операнд);
and – логическое умножение (логическое И);
or – логическое сложение (логическое ИЛИ);
hor – операция неравнозначности (исключающее ИЛИ):
not a
a and b
a or b
a hor b
a
b
false
false
true
false
false
false
false
true
true
false
true
true
true
false
false
false
true
true
true
true
false
true
true
false
Кроме того, величины логического типа можно сравнивать между собой с помощью
операций отношения: <, <=, =, >, >=, <>.
Результат выполнения любой из перечисленных в этом п.4 операций имеет
логический тип.
5. Операции упорядочиваются по убыванию приоритетов следующим образом:
а) унарная операция not, унарный минус -, унарный плюс +;
б) операции типа умножения и деления *, /, div, mod, and;
в) операции типа сложения и вычитания +, -, or, hor;
г) операции отношения <, <=, =, >, >=, <>.
6. Примеры логических выражений:
x>y
a<=b
x+1<>abs(y)
(x>0) and (y<0)
Скобки в последнем выражении необходимы ввиду того, что приоритет операций
отношения ниже приоритета операции and.
ВНИМАНИЕ! Все программы, создаваемые при выполнении этой лабораторной работы,
должны быть "зациклены", то есть после вывода результатов должен быть
переход снова на ввод данных.
СОЗДАНИЕ ПРОГРАММ
----------------ПРОГРАММА 30-1
-------------7. Создайте консольное приложение, при выполнении которого происходит
ввод вещественного значения величины x, вычисление и вывод значения
величины y, если
y=1 при 0<=x<=2;
y=0 при x<0 или x>2.
ПРОГРАММА 30-2
-------------8. Создайте консольное приложение, при выполнении которого происходит
ввод вещественного значения величины x, вычисление и вывод значения
величины y, если
y=1 при x<=-10, при 0<=x<=2 и при x>=20;
y=0 при остальных значениях x.
СИМВОЛЫ
------9. Символьный тип данных, обозначаемый при объявлении как Char, предназначен
для представления любого символа из набора допустимых символов. Для каждого
символа отводится один байт памяти.
Пример объявления величин символьного типа:
Var a,s: char;
К символам можно применять операции отношения (<, <=, =, >, >=, <>),
при этом сравниваются коды символов.
10. Некоторые стандартные функции для символьных величин:
Функция
Ord(s)
Chr(n)
Pred(s)
Succ(x)
Описание
Код (порядковый номер)
символа, например,
ord('b') => 98
Преобразование в символ,
например, chr(98) => 'b'
Предыдущий символ,
например, pred('b') => 'a'
Последующий символ,
например, succ('b') => 'c'
Тип
аргумента
результата
char
integer
integer
char
char
char
char
char
СОЗДАНИЕ ПРОГРАММЫ
-----------------ПРОГРАММА 30-3
-------------11. Создайте консольное приложение, при выполнении которого происходит ввод
с клавиатуры одного любого символа и вывод его кода.
СТРОКИ
-----12. Строки представляют собой последовательности символов.
При объявлении строки обозначаются ключевым словом String с возможным
указанием максимальной длины строки, например:
Var s: string;
t: string[30];
13. Строки можно присваивать друг другу. Если максимальная длина результирующей
строки меньше длины исходной строки, то лишние символы справа отбрасываются,
например:
Var s1: string[3];
s2: string[6];
...
s2:='Summer';
s1:=s2;
//s1:='Sum'
14. Строки можно сцеплять (объединять, склеивать) между собой с помощью
операции конкатенации, обозначаемой знаком +, например:
s1:='Sum';
s2:='mer';
s3:=s1+s2;
//s3:='Summer'
15. Строки можно сравнивать между собой с помощью операций отношения, при этом
справедливы, например, следующие соотношения:
'abc'>'ab'
'abc'='abc'
'abc'<'abc '
16. При вводе и выводе может использоваться имя строки, например:
readln(s1,s2);
writeln(s3);
При вводе в строку считывается количество символов, равное длине строки
или меньшее, если клавиша Enter будет нажата раньше.
При выводе для строки отводится количество позиций, равное ее фактической
длине.
17. К отдельному символу строки можно обращаться как к элементу массива
символов, например, s1[4].
Один символ из строки совместим с величиной типа Char и их можно
использовать в выражениях одновременно.
ПОДПРОГРАММЫ
-----------18. Подпрограмма – это группа операторов, логически законченная и специальным
образом оформленная.
Подпрограмма описывается (объявляется) один раз, а обращаться к ней (вызывать
ее) можно по ее имени неограниченное число раз из различных
частей программы там, где требуется получить результаты работы
подпрограммы.
Внутри подпрограммы можно описывать другие подпрограммы,
к которым можно обращаться только из той подпрограммы, внутри
которой они описаны.
При вызове подпрограммы указываются ее имя и список
аргументов (фактических параметров), передаваемых подпрограмме
для выполнения операторов, водящих в состав этой подпрограммы.
Одна и та же подпрограмма может обрабатывать различные данные,
переданные ей в качестве аргументов.
Существует много стандартных подпрограмм (например, abs, sin, readln, write
и проч.), которые можно вызывать без предварительного описания.
Кроме того, программист может создавать собственные подпрограммы, которые
называются пользовательскими.
ПРОЦЕДУРЫ И ФУНКЦИИ
------------------19. Подпрограммы делятся на процедуры и функции, основное различие между
которыми состоит в том, что результатом выполнения функции является
некоторое значение, присвоенное ее имени, и это имя можно использовать
как операнд выражения.
Примеры вызовов стандартных процедуры и функции:
Writeln(a,b,c);
y:=sin(x)+1;
НЕКОТОРЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ РАБОТЫ СО СТРОКАМИ
---------------------------------------------------20. Для реализации действий со строками и фрагментами строк предусмотрены
стандартные процедуры и функции.
ВНИМАНИЕ! Фрагмент строки часто называют подстрокой.
ВНИМАНИЕ! Фраза "функция возвращает" практически всегда используется вместо
фразы "результатом выполнения функции является".
Процедура или функция
с именем и примером
перечня аргументов
Функция
Concat(s1,s2,...,sN)
Функция
Copy(s,start,len)
Процедура
Delete(s,start,len)
Процедура
Insert(subs,s,start)
Функция
Length(s)
Функция
Pos(subs,s)
Процедура
Str(x,s)
Процедура
Val(s,x,errcode)
Описание
Возвращает строку, являющуюся слиянием строк
s1,s2,...,sN. Действие функции аналогично операции
конкатенации.
Возвращает подстроку длиной len, начинающуюся с
позиции start строки s.
Удаляет из строки s, начиная с позиции start,
подстроку длиной len.
Вставляет подстроку subs в строку s, начиная с
позиции start.
Возвращает фактическую длину строки.
Ищет вхождение подстроки subs в строку s и
возвращает номер первого символа subs в s или
нуль, если subs не содержится в s.
Преобразует числовое значение x в строку s, при
этом для x может быть задан формат, как в
процедурах Write и Writeln, например Str(x:8:2,s).
Преобразует строку s, содержащую символьное
представление числа, в значение числовой
переменной x. В случае успешного преобразования
значение переменной errcode равно нулю, при
обнаружении ошибки в символьном представлении
числа значение errcode будет содержать номер
позиции первого ошибочного символа, а значение x
не определено.
Преобразует целочисленное значение n в строку
Функция
IntToStr(n)
Функция
Преобразует строку s в целое число
StrToInt(s)
Функция
Преобразует вещественное значение x в строку
FloatToStr(x)
Функция
Преобразует строку s в вещественное число
StrToFloat(s)
Функция
Возвращает строку s, преобразованную к верхнему
AnsiUpperCase(s)
регистру.
Функция
Возвращает строку s, преобразованную к нижнему
AnsiLowerCase(s)
регистру.
Функция
Возвращает строку s с удаленными из нее пробелами
Trim(s)
и управляющими символами в начале и в конце строки
Функция
Возвращает строку s с удаленными из нее пробелами
TrimLeft(s)
и управляющими символами в начале строки
Функция
Возвращает строку s с удаленными из нее пробелами
TrimRight(s)
и управляющими символами в конце строки
Примеры выражений с использованием функций для работы со строками:
'Summ '+ FloatToStr(x)
20+StrToInt(s)
СОЗДАНИЕ ПРОГРАММЫ
-----------------ПРОГРАММА 30-4
-------------21. Создайте консольное приложение, при выполнении которого сначала происходит
ввод на английском языке строки с фамилией и, через пробел, инициалами
и затем происходит формирование и вывод строки с инициалами и, через пробел,
с фамилией, например, Ivanov A.P. => A.P. Ivanov.
При составлении программы можно использовать функцию Pos для определения
в исходной строке номера символа пробела между фамилией и инициалами.
Затем значение этого номера может быть использовано функцией Copy
при определении позиции инициалов и длины фамилии в исходной строке
для формировании соответствующих подстрок результирующей строки.
ОТЧЕТ О ВЫПОЛНЕНИИ РАБОТЫ
------------------------22. Продемонстрируйте тексты созданных программ, а также их выполнение в среде
программирования и независимо от нее.
_______________________________________________________________________________
Download