Вот посмотри, может сем uses crt; var s: string; function Kslov (str: string; c: char): integer; var i,k: integer; begin str:=str+' '; k:=0; for i:=1 to length(str)-1 do if (str[i+1] in [' ','.',',','-',':',';','!','?']) and (str[i]=c) then inc(k); Kslov:=k; end; procedure Del(var str: string); var i,j: integer; begin str:=str+' '; i:=length(str)+1; repeat dec(i); until(str[i+1]=' ') and (str[i]='о'); j:=i; repeat dec(i); until(str[i+1]=' ') or (i=1); delete(str,i,j-i); end; begin write('s='); readln(s); if Kslov (s,'о')>Kslov (s,'а') then Del(s); write('s=',s); End.
Интересная задачка. попробую объяснить как решал. сначала расставим то, что известно однозначно. это то, что Николай встречается со Ольгой потом Толя - поросенок. потом Миша - Томин на этом все. теперь размышляем. Сидоров не Толя и не Саша. а так же не Николай(потому что пришел с Леной) остаются Вася и Миша. однако фамилию Миши мы знаем. следовательно Сидоров - Вася. Сразу же записываем к Васе Лену. теперь с маской. Он не кот(Иванов), не собака(Петров), не поросенок(Толя), не бычок(Света) следовательно он мишка. Толя пришел не с Таней и не со Светой. так же не с Леной(Вася) и не с Ольгой. остается только Катя. Толя не Сидоров(Вася), не Томин (миша), не Иванов(Катя), не Петров(собака) остается Васильев Николай не Сидоов(Вася), не Томин(миша), не Васильев(Толя) и не Петров(пунтк 1) следовательно он Иванов. сразу пишем к нему кота остается одна фамилия - Петров и это Саша так же сразу пишем собаку к нему. из масок остался только бык - Миша с быков встречается Света ну и последняя девушка Таня остается Саше вот и все) но можно последовать совету, который написали раньше и составить бооольшую таблицу. тот вариант действительно нагляднее