Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GLAVA_10_Algoritmy_i_programmy.doc
Скачиваний:
7
Добавлен:
22.09.2019
Размер:
797.7 Кб
Скачать

6.15.2. Работа с символьной информацией в языке Pascal

В языке Pascal символьный тип данных – это одиночный символ в апострофах, например, символ вопросительный знак ‘?’, а также строка – это заключенная в апострофы группа символов, например текст, ‘Сообщите код’. Символьный тип данных обозначается служебным словом char, а строковый (литерный) - string.

Пример определения символьных и строковых переменных на языке Pascal:

Var

s, c, t :Char;

str, tx : String;

text, rez: String[80];

Выполним следующие операторы:

s := ‘K’; c := ‘A’; t:=’I’;

str := s + c + t; { конкатенация строк }

writeln(str);

{ конкатенация строк и вывод результирующей строки:}

writeln(Concat (‘Казань - ’,‘K’,’Г’,’Т’,’У’));

tx:= ‘12345678’;

rez:= Copy (tx,2,3); {получение подстроки}

writeln(Length(tx)); {получение и вывод длины строки}

writeln(rez);

Функция concat() выполняет операцию конкатенации строк, указанных в качестве параметров. В результате будет напечатано:

Казань - KAI

КГТУ

8

234

Упражнения.

1. Чему равно значение переменной Е, вычисляемое в следующей программе на языке Basic:

DEFINT I, N, E

A$ = ”DFEADEFA” : N = LEN(A$) ‘определяется длина строки A$

B$ = ””

FOR I = 1 TO N - 1

C$ = MID$(A$, I + 1) ‘выделяется подстрока C$

E = LEN(C$) MOD 3

IF E = 1 THEN

B$ = B$ + C$

END IF

NEXT I

E = LEN(B$)

PRINT E

Решение.

Составим трассировочную таблицу выполнения программы:

1

2

3

4

5

6

7

8

9

10

I

1

2

N

8

E

7 mod 3= 1

A$

“dfeadefa”

B$

“”

“feadefa”

C$

“feadefa”

I<=

N-1

1<=7 да

E=1

да

11

12

13

14

15

16

17

18

19

I

3

N

E

6 mod 3

= 0

5 mod 3

= 2

A$

B$

C$

“eadefa”

“adefa”

I<=

N-1

2<=7

да

3<=7

да

E=1

нет

нет

20

21

22

23

24

25

26

27

28

I

4

5

N

E

4 mod 3= 1

A$

B$

“feadefa” + “defa”= “feadefadefa”

C$

“defa”

“efa”

I<=

N-1

4<=7

да

5<=7

да

E=1

да

29

30

31

32

33

34

35

36

37

37

I

6

7

N

E

3 mod 3 = 0

2 mod 3 = 2

A$

B$

C$

“fa”

“a”

I<=

N-1

6<=7

да

7<=7

да

E=1

нет

нет

38

30

31

32

33

34

I

8

N

E

1 mod 3 = 1

LEN(“feadefadefaа”) = 12

A$

B$

“feadefadefa” + “a” = “feadefadefaа”

C$

I<=

N-1

8<=7

нет

E=1

да

Ответ Е = 12

2. Чему равно значение переменной Е, вычисляемое в следующей программе на языке Basic:

DEFINT I, N, E

A$ = ”DFEADEFA” : N = LEN(A$) ‘определяется длина строки A$

B$ = ””

FOR I = 1 TO N - 1

C$ = MID$(A$, I + 1) ‘выделяется подстрока C$

IF INT (LEN(C$/2)>1 THEN

B$ = B$ + C$

END IF

NEXT I

E = LEN(B$)

PRINT E

3. Чему равно значение переменной Е, вычисляемое в следующей программе на языке Pascal:

Var I, N, E: Integer;

A,B,C: String;

Begin

A := ’abcdefab’;

N := Length(A); B:=’’;

For I :=1 To N-1 Do Begin

C := Copy(A, I+1, N-1);

If Trunc (Length(C) /3 >1) Then

B := B + C;

End;

E := Length (B);

WriteLn (E)

End.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]