Напишите программу, которая для двух введенных с клавиатуры строк выводит ту строку, в которой больше слов. если количество слов одинаково - выводят обе строки.в pascal
будем считать что слова разделены пробелами. значит считаем количество пробелов, чем больше пробелов тем больше слов.
ВНИМАНИЕ! программа не проверяет на двойные пробелы, а так же на пробелы в начале и конце строк что может привести к неправильному подсчету слов при неаккуратном вводе строк. Все эти проверки можно добавить но это усложнит программу...
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;
var s: string; i, j, n: integer; c: char; flag: boolean;
begin Write('Введите произвольное число: '); Readln(s); flag := false; n := length(s); i := 1; while (i <= n) and (not flag) do begin c := s[i]; j := i + 1; while (j <= n) and (not flag) do if s[j] = c then flag := true else j := j + 1; if (not flag) then i := i + 1 end; if flag then Writeln('Символ "', c, '" встречается больше одного раза') else Writeln('Все символы уникальны') end.
Тестовое решение: Введите произвольное число: -1453.5462 Символ "4" встречается больше одного раза
Var s: string; i, j, n: integer; c: char; flag: boolean;
begin Write('Введите произвольное число: '); Readln(s); flag := false; n := length(s); i := 1; while (i <= n) and (not flag) do begin c := s[i]; j := i + 1; while (j <= n) and (not flag) do if s[j] = c then flag := true else j := j + 1; if (not flag) then i := i + 1 end; if flag then Writeln('Символ "', c, '" встречается больше одного раза') else Writeln('Все символы уникальны') end.
Тестовое решение: Введите произвольное число: 16379068 Символ "6" встречается больше одного раза
будем считать что слова разделены пробелами. значит считаем количество пробелов, чем больше пробелов тем больше слов.
ВНИМАНИЕ! программа не проверяет на двойные пробелы, а так же на пробелы в начале и конце строк что может привести к неправильному подсчету слов при неаккуратном вводе строк. Все эти проверки можно добавить но это усложнит программу...
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.