Пример 7.2.
Определить, является ли заданное слово "перевёртышем"
(слово называется "перевёртышем", если совпадает с собой после
переворачивания).
Система тестов
N теста
|
Данные
|
Результат
|
1
|
Slovo = ''казак''
|
Otvet = ''Перевертыш''
|
2
|
Slovo = ''коза''
|
Otvet = ''Не перевертыш''
|
Демонстрация
Школьный АЯ
алг Перевертыш (арг лит Slovo, рез лит Otvet)
надо | Otvet = "Перевертыш", если Slovo совпадает с собой
| после переворачивания
нач цел Dlina, i, лог Flag
Dlina:=длин(Slovo)
i:=1; Flag:=да
нц пока (i<=Dlina/2) и Flag | цикл пока с прерыванием до
Flag:=(Slovo[i]=Slovo[Dlina-i+1]) | первой несовпавшей пары букв,
i:=i+1 | если такая имеется в слове
кц
если Flag
то Otvet:="Перевертыш"
иначе Otvet:="Не перевертыш"
все
кон
Исполнение алгоритма
Обозначения проверяемых условий:
(i<=Dlina/2) и
Flag => (1)
Slovo[i]=Slovo[Dlina-i+1]
=> (2)
Номер теста
|
i
|
(1)
|
(2)
|
Flag
|
Otvet
|
1
|
1
2
3
|
+
+
-(кц)
|
+
+
|
да
да
да
|
"Перевертыш"
|
2
|
1
2
|
+
-(кц)
|
- |
да
нет
|
"Не перевертыш"
|
Turbo Pascal
Program TurnOver;
Uses Crt;
Var Slovo : String;
Dlina, i : Integer;
Flag : Boolean;
BEGIN
ClrScr;
Write('Введите слово : '); ReadLn(Slovo);
Dlina:= Length(Slovo);
{Сравниваются пары букв: первая буква с последней, }
{вторая буква с предпоследней и т.д. }
i:=1; Flag := TRUE;
While (i <= Dlina/2) and Flag do {цикл до первой несовпавшей }
begin {пары букв (если такая есть)}
Flag := (Slovo[i]=Slovo[Dlina-i+1]);
i := i+1
end;
WriteLn; Write( 'О т в е т : слово ', Slovo);
If Flag then WriteLn(' перевертыш. ')
else WriteLn(' не перевертыш');
ReadLn
END.
QBasic
CLS : INPUT "Введите слово : ", SLOVO$
Dlina = LEN(SLOVO$)
' Сравниваются пары букв: первая буква с последней,
' вторая буква с предпоследней и т.д.
i = 1 : Flag = 0
WHILE (i<=Dlina/2) AND (Flag=0) 'цикл до первой несовпавшей пары букв
Letter1$ = MID$(SLOVO$, i, 1) 'первая буква пары
Letter2$ = MID$(SLOVO$, Dlina-i+1, 1) 'вторая буква пары
IF Letter1$ = Letter2$ THEN i=i+1 ELSE Flag=1
WEND
PRINT : PRINT "О т в е т : слово "; SLOVO$;
IF Flag = 0 THEN PRINT " перевертыш." ELSE PRINT " не перевертыш."
END