Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КНИГА_Учимся программировать TURBO PASCAL 7.doc
Скачиваний:
32
Добавлен:
19.08.2019
Размер:
1.62 Mб
Скачать

Var I, к : integer;

S1 : STRING;

BEGIN

WRITELN('BBEДИTE ТЕКСТ ДО ТОЧКИ');

READLN(S1);

I := 1;K := 0;

REPEAT

CASE S1 [I] OF

'(': К := K+1;

')' : К := K-1

END;

I := I+1

UNTIL (S1[l] ='.')OR(K<0);

IF К = 0 THEN WRITELN('ЭTO СКОБОЧНОЕ ВЫРАЖЕНИЕ')

ELSE WRITELN('ЭTO HE СКОБОЧНОЕ ВЫРАЖЕНИЕ')

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- вводим строку S1;

- организуем в строке поиск левых и правых скобок до тех пор, пока не встретим точку или не обнаружим наличие ошибки в скобочном выражении;

- в зависимости от значения счетчика скобок выводим резуль­тат на экран.

Переменные:

I - переменная цикла;

К - счетчик скобок;

S1 - строка текста.

ВВЕДИТЕ ТЕКСТ ДО ТОЧКИ

DFE (АВВА () (DFGSA)BBA B)BBB.

ЭТО СКОБОЧНОЕ ВЫРАЖЕНИЕ

ВВЕДИТЕ ТЕКСТ ДО ТОЧКИ

DF)E (ABBA () (DFGSA)BBA B)B(BB.

ЭТО НЕ СКОБОЧНОЕ ВЫРАЖЕНИЕ

Рис. 5.4. Результат работы PRG5_9

Задача 5.10 Дана строка символов до точки. Определить, яв­ляется ли она записью десятичного числа, кратно­го двум.

Для решения этой задачи нужно вспомнить признак деления числа на два и проверить только последнюю цифру числа: четна она или нет.

Помимо этого, необходимо удостовериться, что введенная строка состоит только из цифр, т. е. может быть преобразована в десятичное число. Само преобразование цифры в число сделать очень просто. Поскольку коды символьных переменных - цифр -следуют один за другим, то функция ORD в выражении ORD(S1[I])-ORD('0') поможет нам сделать это.

PROGRAM PRG5_10;

Var I, к : integer;

S1 : STRING;

BEGIN

WRITELN('BBEДИTE ТЕКСТ ДО ТОЧКИ');

READLN(S1);

К := 0; I:= 1;

REPEAT

CASE S1[l] OF

'0'..'9': К := (ORD(S1[I])-ORD('0'));

' ':;

ELSE K:=-1;

END;

I := 1+1

UNTIL (S1[l] ='.')OR(K<0);

IF К MOD 2 = 0 THEN

WRITELN('ЭT0 ДЕСЯТИЧНОЕ ЧИСЛО, КРАТНОЕ 2')

ELSE

WRITELN('ЭTO HE ДЕСЯТИЧНОЕ ЧИСЛО, КРАТНОЕ 2')

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- вводим строку S1;

- организуем в строке поиск цифр до тех пор, пока не встре­тим точку или не обнаружим наличие ошибки в арифмети­ческом выражении;

- в зависимости от значения последней цифры выводим ре­зультат на экран.

Переменные:

I - переменная цикла;

К - счетчик цифр;

S1 - строка цифр.

Задача 5.11 Дана строка символов до точки. Определить, яв­ляется ли она записью десятичного числа, кратно­го трем.

PROGRAM PRG5_11;

Var I, к : integer;

S1 : STRING;

BEGIN

WRITELN('BBEДИTE ТЕКСТ ДО ТОЧКИ');

READLN(S1);

К := 0;l := 1;

REPEAT

CASES1[I]OF

'0'..'9': К := K+(ORD(S1[I])-ORD('0'));

' ': ;

ELSE К := -1;

END;

I := 1+1

UNTIL (S1[l] ='.')OR(K<0);

IF К MOD 3 = 0 THEN

WRITELN('ЭTO ДЕСЯТИЧНОЕ ЧИСЛО, КРАТНОЕ 3')

ELSE

WRITELN('ЭTO HE ДЕСЯТИЧНОЕ ЧИСЛО, КРАТНОЕ 3')

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- вводим строку S1;

- организуем в строке поиск цифр до тех пор, пока не встре­тим точку или не обнаружим наличие ошибки в арифмети­ческом выражении;

- в зависимости от значения суммы цифр выводим результат на экран.

Переменные:

I - переменная цикла;

К - счетчик цифр;

S1 - строка цифр.

ВВЕДИТЕ ТЕКСТ ДО ТОЧКИ

8976500066652005.

ЭТО ДЕСЯТИЧНОЕ ЧИСЛО, КРАТНОЕ 3

ВВЕДИТЕ ТЕКСТ ДО ТОЧКИ

DF)E (ABBA () (DFGSA)BBA B)B(BB.

ЭТО НЕ ДЕСЯТИЧНОЕ ЧИСЛО, КРАТНОЕ 3

Рис. 5.5. Результат работы PRG5_11

Задача 5.12 Дана строка символов до точки. Вывести ее на экран задом наперед.

PROGRAM PRG5_12;