Пример 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  
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

Другие записи

10.06.2016. Пример 7.3. B заданном тексте одно заданное слово везде заменить на другое заданное слово такой же длины.
Тест Данные Результат Текст Слово1 Слово2 ''2sinx+siny'' ''sin'' ''cos'' ''2cosx+cosy'' Школьный АЯ алг Замена (арг рез лит Текст, арг лит Слово1, Слово2)   дано…
10.06.2016. Пример 7.4. Заданную последовательность слов переупорядочить в алфавитном порядке (то есть выполнить лексикографическое упорядочение).
Тест Данные Результат Words=(''стул'', ''гора'', ''яма'', ''стол'')   Words=("гора", "стол", "стул",  "яма") Школьный АЯ   (АЯ расширен добавлением типа данных лит таб   и…
10.06.2016. Пример 7.5. Проверить, имеется ли в линейной записи заданной математической формулы баланс открывающих и закрывающих скобок.
Система тестов Номер  теста Проверяемый  случай Данные Результат 1 При просмотре линейной записи слева направо первой встречается закрывающая скобка ''a)b+1('' ''Нет баланса'' 2 Первой…