"...получил от Гриши, Ярослава и Бориса ответ: не мы" - это некорректная постановка задачи. Если понимать это так, что каждый ответил "не я", задача имеет решение. Но если "не мы" - это означает у каждого "не мы трое", то получается что трое ответили одинаково, но солгали двое, а это противоречие. Следовательно, надо все же понимать, что "не мы" - это "не я".
Итак, два ответа истинных, два - ложных. Тогда среди "не мы" есть хотя бы один истинный и один ложный ответ.
Пусть один "не мы" ложный (а два истинных), тогда его автор и взял ручку Никиты, а Лев солгал и он знает, кто взял ручку.
А теперь пусть два "не мы" ложных, а один истинный. Тогда получается, что ручку взяли сразу двое - те, кто солгал. Это противоречит условию, где сказано. что ручку взял один, следовательно, так быть не может.
Var S:string; Begin Write('Введите строку: ');ReadLn(S); S:=Copy(S,1,Length(S) div 2); WriteLn(S); End.
Пример работы программы:
Введите строку: 1234 12
Для удаления левой половины символов:
Var S:string; Begin Write('Введите строку: ');ReadLn(S); S:=Copy(S,Length(S) div 2+1, Length(S)); WriteLn(S); End.
Пример работы программы:
Введите строку: 1234 34
Удаление выбранной половины символов:
Var S:string; A:byte; Begin Write('Введите строку: ');ReadLn(S); WriteLn('1 - удаление правой половины, 2 - удаление левой половины'); ReadLn(A); if A = 1 then S:=Copy(S,Length(S) div 2+1, Length(S)) else S:=Copy(S,1,Length(S) div 2); WriteLn(S); End.
Пример работы программы:
Введите строку: 1234567890 1 - удаление правой половины, 2 - удаление левой половины 2 12345
Итак, два ответа истинных, два - ложных. Тогда среди "не мы" есть хотя бы один истинный и один ложный ответ.
Пусть один "не мы" ложный (а два истинных), тогда его автор и взял ручку Никиты, а Лев солгал и он знает, кто взял ручку.
А теперь пусть два "не мы" ложных, а один истинный. Тогда получается, что ручку взяли сразу двое - те, кто солгал. Это противоречит условию, где сказано. что ручку взял один, следовательно, так быть не может.
ответ: Лев знает, кто взял ручку.
Var
S:string;
Begin
Write('Введите строку: ');ReadLn(S);
S:=Copy(S,1,Length(S) div 2);
WriteLn(S);
End.
Пример работы программы:
Введите строку: 1234
12
Для удаления левой половины символов:
Var
S:string;
Begin
Write('Введите строку: ');ReadLn(S);
S:=Copy(S,Length(S) div 2+1, Length(S));
WriteLn(S);
End.
Пример работы программы:
Введите строку: 1234
34
Удаление выбранной половины символов:
Var
S:string;
A:byte;
Begin
Write('Введите строку: ');ReadLn(S);
WriteLn('1 - удаление правой половины, 2 - удаление левой половины');
ReadLn(A);
if A = 1 then S:=Copy(S,Length(S) div 2+1, Length(S))
else S:=Copy(S,1,Length(S) div 2);
WriteLn(S);
End.
Пример работы программы:
Введите строку: 1234567890
1 - удаление правой половины, 2 - удаление левой половины
2
12345