Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика1 / МУ лабы инф алгор 2009 ЭЭФ выпущ исправ окт 09.doc
Скачиваний:
18
Добавлен:
25.04.2015
Размер:
1.06 Mб
Скачать

6.2 Задания и контрольные вопросы

Вычислить примеры для заданных и произвольных значений аргументов, создав функции не встроенные в Pascal: tg, ctg, lg, xy.

1) x=, a=0.5, b=10 (у=0.5).

2)

y= , x=1 (z=1).

3) a=2, b=3 (P=2).

4) x=, y=9 (Z=3).

5) x=1, y=1 (Z=0.5).

6)a=2, b=4 (P=2).

7) a=5, x=5 (Y=10).

8)

a= 3, x=/4, N=4 (Y=81).

9) х =, a=5 (Y=-1).

10)

x=, y=5 (P=-0.5).

11) x =9 (Y=10).

12) x= ,a=10, b=3 (Y=2).

13) a= /2,x=5.5, y=4.5 (Z=1).

14) a=1, b=10 (P=0.67).

15) x=10, y=1 (Z=1).

16) a=4, b=7, c=2 (P=-1).

17)

a= ,x=4, b=1 (P=2).

18)

a= ,x=6, y=1 (Z=3).

19) Y=aN Tgx a= 3, x=/4, N=4 (Y=81).

20) Y=aN Cosx

a= 2, x=0, N=4 (Y=16).

21) x=,a=0.5, b=0 (Y=0.5).

22) x=,a=3, b=11 (P=-4.5).

Контрольные вопросы

Назначение подпрограмм.

Типы подпрограмм.

Обращение к функции.

Локальные и глобальные переменные.

Опишите структуру функции.

7 Лабораторная работа 7. Символьная и строковая информации

Цель работы – обработка символьной и строковой информации. Использование кодов символов.

7.1 Обработка символов

Символьные переменные хранятся: один символ в переменной char, набор символов (строка) в переменной типа String. Строка - это последовательность символов, записанных с помощью кодов. То есть вместо символов “ABBA” в память компьютера записываются коды этих символов «65 66 66 65». Таблица кодов ASCII, применяемых в Pascal, дана в приложении Ж.

Для объявления переменных строкового типа используется стандартный идентификатор string, за которым следует заключенное в квадратные скобки значение длины строки. Если при работе программы длина строки будет переполнена, то строка становится пустой. Если длина строки не указывается, то по умолчанию она принимается равной 255 байт (символов). Формат объявления строковых переменных имеет вид:

var slovo: string[12]; stroka: string; simvol: char;.

Строковый тип является по существу массивом, поэтому доступ к отдельному символу строки можно осуществть по его индексу, например, если slovo =’ledokol, то slovo[2]=’e.

Для строк возможны следующие действия:

- значения строковых переменных можно сравнивать, используя операции отношения <, >, <=, >=, =, < >. Сравнение значений двух строковых переменных производится путем последовательного сравнения символов до первого несовпадающего символа. Та строка считается большей, где первый несовпадающий символ имеет больший код. Это свойство используется при сортировке данных по алфавиту;

- ввод значений строковых переменных с клавиатуры производится с помощью стандарт­ной процедуры read (имя) или readln (имя);

- для задания в строке значения применяется оператор присваивания, например, slovo:='Ledokol'.

Для выполнения разных действий со стро­ками существует набор встроенных функций и процедур, описанных ниже.

Примеры применения этих функций приведены в таблице 7.1.

Т а б л и ц а 7.1 – Примеры работы строковых функций и процедур

Оператор

Результат

Kod:=Ord(‘A’);

Kod=65

Simvol:=Chr(65);

Simvol=’A’

St1:=’Ledokol 5’; St2:=Copy(St1,5,3);

St2=’kol’

St1:=’Led’; St2:=’kol’; St3:=Concat(St1,’o’,St2);

St3=’Ledokol’

St1:=’Ledokol 5’; N:=Length(St1);

N=9

St1:=’Ledokol 5’; Pod_St2:=’kol’; N:=Pos(Pod_St2,St1);

N=5

St1:=’Ledokol 5’; Delete (St1, 4, 3);

St1=’Led 5’

St1:=’Ledkol’; St2:=’o’; Insert (St2, St1, 4);

St1:=’Ledokol’

Chislo:=8; Str (Chislo, St);

St=56. Код числа 8.

M:=2; N:=0; St:=’8’; {То есть в St содержится код цифры 8, равный 56} Val (St, N, Cod); M:=M+N;

M=10

Функция Ord (Sim: Char): Longint. Функция возвращает код символа, записанного в символьную переменную Sim.

Функция Chr(Cod: integer): Char. Функция возвращает символ, соответствующий указанному коду.

Функция Copy (St, Poz, N): String. Функция выделяет из строки St подстроку длиной N символов, начиная с позиции Pоz. Здесь Poz и N - целочисленные выражения.

Функция Concat (Stl, St2, . . ,Stn: String): String. Функция выполняет сцепление строк в том порядке в каком они указаны в списке параметров. Результирующая строка не должна превышать 255 байт.

Функция Length (St: String): Integer. Функция вычисляет длину строки St, то есть количество видимых в ней символов.

Функция Pos (Pod_St, St1: String): Byte. Функция обнаруживает первое появление в строке St1 подстроки Pod_St. Результат имеет целочисленный тип и равен номеру той позиции строки St1, где находится первый символ подстроки Pod_Stl. Если подстрока не найдена, то результат равен нулю.

Процедура Delete (Var St: string, Poz: Integer, N: Integer). Процедура удаляет N символов в строке St, начиная с позиции, определяемой значением параметра Poz. Если значение Poz больше 255, возникает прерывание.

Процедура Insert (Stl: string, Var St2: string, Poz: Integer). Процедура вставляет строку Stl в строку St2, начиная с позиции Poz.

Процедура Str (Chislo: Integer, Var St: string). Процедура преобразовывает целое число, записанное в переменную Chislo в текст, и помещает результат в строку St. То есть в строковую переменную St, вместо цифр записываются их коды. Например, вместо числа 87 записывается коды цифр 8 и 7 равные «56» и «55».

Процедура Val (St: string, Var Chislo, Var Cod: Integer). Процедура преобразовывает значение строковой переменной St, в которой записаны коды цифр в целое число и помещает результат в переменную Chislo. Значение St не должно содержать незначащих пробелов в начале и в конце. Если во время операции преобразования ошибки не обнаружены, тогда значение целочисленной переменной Cod равно нулю. Если ошибка обнаружена, например, при попытке перевести литерное значение (например, пробел) в цифровое, Cod будет содержать номер позиции первого ошибочного символа, а значение переменной Chislo не будет определено.

Файл или строка называются текстовыми, если в них записаны только коды символов, без указания форматирования.

Для процедур Str и Val в таблице 7.1 приведена форма преобразования целых чисел.

7.1.1 Пример обработки символьной информации

Условие задачи. Ввести символы с клавиатуры. Напечатать символы и их коды, начиная с символа «А» до символа введенного с клавиатуры. Выполнить объединение выводимых символов в строку. Требуемый результат работы программы приведен на рисунке 7.1.

Program Simvoly; Uses Crt;

Var Sim: char; {Символьная переменная}

Stroka, Str1, Str2: String; {Строковый тип данных на 256 символов}

K, N: Integer;

Begin ClrScr; Writeln; Stroka:=''; {Строка пустая}

Str1:=' Rezultat = ';

Write(' Vvedi zaglavnyu lat. bukvu->'); Readln(Sim);

k:=ord(Sim); {Определяем код (номер) буквы}

For n:=65 to k do {65 код латинского символа А}

begin {Печатаем символы от А до …}

Write(' ',Chr(n)); {Пробелы записаны, чтобы символы не сливались}

Stroka:=Stroka+Chr(n); {Собираем символы в строку}

end;

Writeln; {Начало новой строки}

For n:=ord('A') to (ord(Sim)+5) do Write(' ',ord(n)); {Печать кодов}

Writeln;

Str2:=Concat(Str1, Stroka); {Объединение строковых переменных}

Writeln(' ', Str2);

Writeln (‘ Kod simvola “1”=’, Ord(‘1’));

readln;

end.

Соседние файлы в папке Информатика1