Материал: Алгоритмический язык Turbo Pascal 7.0. Юршин Е.Д., Рог А.И

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Задача 11.

Программная обработка символьных данных.

Выше (4.2.1.) было отмечено, что символьные данные можно сравнивать. Такое сравнение может быть осуществлено с помощью соответствующих операторов, используя в них символы сравнения,

<,<=,>,>=,=.

Для того, чтобы осуществлять сравнения данных типа Char, необходимо знать, что компьютер «знает», что

‗0‘<‘1‘<‘2‘<‘3‘….. <‘9‘

т.е. сравнение такое, как и у обычных цифр.

В то же время следует знать, что компьютер «знает» следующее соотношение:

‗a‘<‘b‘<‘<‘<…… <‘z‘.

т.е. сравнение символов осуществляет в зависимости от порядкового номера соответствующего символа в алфавите.

То же касается и заглавных букв латинского алфавита.

Заметим, что сравнивать, можно и символы из русского алфавита (как заглавных, так и прописных).

Учитывая изложенное можно привести программу, которая выводит на экран дисплея символы латинского алфавита от a до z.

Program alfavit; Var

Simv:Char;

Begin

for simv :‘a‘ to ‗z‘ do

Write(simv);

End.

ОПЕРАТОР ЦИКЛА WHILE-DO

Данный оператор называют оператором цикла с предусловием (с предпроверкой условия) и использованием тогда, когда количество циклов заранее неизвестно, а задано некоторое условие его окончания (продолжение).

В общем виде такой оператор можно представить:

WHILE <условие> do <оператор>

WHILE (пока); DO (выполнить);

Условие – логическое, выражение (равенство или неравенство: больше, меньше или равно) после слова do должен стоять только один оператор, если по алгоритму их должно быть несколько, то их необходимо заключить в операторные скобки BEGIN - END.

Выполняя данный оператор ЭВМ проверяет условие после и если условие WHILE выполняется, то и выполняется чертой оператор после do (группа операторов), если условие не выполняется (оператор после слова do) и цикл прекращается (выполняются нижерасположенные после цикла операторы).

Работу данного оператора можно проиллюстрировать структурной схемой:

.

.

.

Установка

условия

Условие не выполняется

Оператор выполняется

продолжение

программы

Рис. 4.2.3. структурная схема работы оператора цикла

Рассмотрим конкретный пример.

Пусть требуется составить программу для вычисления элементарного ряда:

S

1

 

1

 

1

 

1

...

1

n2

12

22

32

n2

n 1

 

с заданной погрешностью:

1*10 4 12 n

Таким образом, вычисление данного ряда можно прекратить тогда, когда последующие члены ряда (слагаемые) становятся довольно малы и слабо влияют на величину суммы S.

Вариант программы: Program_win; Var

S, eps: real; n:integer;

Begin

read (eps); S:=0; n:=1;

While_1/sqr (n)>eps_do Begin

S:=S+1/sqr (n); n:=n+1;

End;

Write (´S=´, S, ´n=´, n);

End.

ОПЕРАТОР ЦИКЛА REPEAT-UNTIL

Данный оператор называют оператором цикла с постоянным уравнением и используется так же, как и предыдущий оператор, когда количество циклов заранее неизвестно.

В общем виде данный оператор можно представить:

Repeat

Оператор 1; Оператор 2;

.

. тело (поле) цикла

.

Оператор n; Until <условие>

Здесь repeat – повторять

until – до тех пор (пока выполнится условие после слова until)

Компьютер выполняет оператор 1, 2, …, n в цикле до тех пор пока выполнится условие (неравенство) после служебного слова until. Отличие данного оператора от WHILE – DO заключается в том, что здесь можно использовать несколько операторов (1,2,…,n) в отличие от

предыдущего, где требовалось использовать BEGIN – END. Кроме того, отличие заключается ещѐ и в том, что здесь условие проверяется после выполнения каждого цикла (в предыдущем операторе – условие проверялось ещѐ до того, как произвести (выполнить оператор) первый или очередной цикл).

Таким образом, одну и туже задачу возможно решить, как с помощью предыдущего оператора, так и с помощью данного.

Источник: https://studfile.net/preview/16565609/