будем считать что слова разделены пробелами. значит считаем количество пробелов, чем больше пробелов тем больше слов.
ВНИМАНИЕ! программа не проверяет на двойные пробелы, а так же на пробелы в начале и конце строк что может привести к неправильному подсчету слов при неаккуратном вводе строк. Все эти проверки можно добавить но это усложнит программу...
var
s1, s2 : string;
w1, w2 : integer;
begin
write('строка 1: ');
readln(s1);
write('строка 2: ');
readln(s2);
for var i := 1 to s1.Length do if copy(s1, i, 1) = ' ' then w1 += 1;
for var i := 1 to s2.Length do if copy(s2, i, 1) = ' ' then w2 += 1;
if w1 > w2 then writeln(s1)
else if w1 < w2 then writeln(s2)
else writeln(s1, ' ', s2);
end.
Поделитесь своими знаниями, ответьте на вопрос:
Назовем натуральное число палиндромом, если его запись читается одинаково с начала и с конца (как, например 4884, 393, 1 определить, является ли заданное число и его квадрат палиндромами.
Function isPali(A : int64) : Boolean;
Var B : int64;
Begin
B:=1;
While B<A do B:=B*10;
B:=B div 10;
If A>9 then isPali:=((A div B)=(A mod 10)) and isPali(A mod B div 10) else isPali:=True;
end;
Begin
Readln(n);
If isPali(n) then Writeln('Это полиндром.') else Writeln('Это не полиндром.');
Write('Его квадрат ',sqr(n));
If isPali(sqr(n)) then Writeln(' полиндром.') else Writeln(' не полиндром.');
end.
Хотя в Pabc.net есть функция и покороче:
Function IsPali(B : Longint) : Boolean;
Begin
IsPali:=(B=IntRevers(B));
end;