Язык Pascal ABC Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; межд
Язык Pascal ABC Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами - не менее одного пробела, за последним словом - точка. Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют следующему свойству: в слове есть повторяющиеся буквы На турбе отмечу лучший ответ.
Var S, tmp, buf, firstW: string; i, j, k, p, ii: integer; ch: char;
begin S := 'privit kak dela putin znanija test proverka privit teste.'; firstW := copy(S, 1, pos(' ', S) - 1); writeln('Исходная строка: ', S); writeln('Первое слово = ', firstW); i := 0; while (S[i] <> '.') do begin i := i + 1; if (S[i] <> ' ') then begin while ((S[i] <> ' ') and (i < Length(S))) do begin tmp := tmp + S[i]; i := i + 1; end; buf := tmp; p := 0; ii := 1; while ii <= Length(buf) do begin k := 0; ch := buf[ii]; for j := Length(buf) downto ii do if buf[j] = ch then begin k := k + 1; delete(buf, j, 1); end; if k > 1 then p := 1; end; if ((p <> 0) and (tmp <> firstW)) then writeln(tmp); tmp := ''; end; end; readln; end.
Procedure SolveLinear; var k, x, b, y: real; begin write('k='); readln(k); write('x='); readln(x); write('b='); readln(b); y := k * x + b; writeln('y=kx+b=', y); end;