1)напишите программу, которая в последовательности натуральных чисел определяет сумму чисел, кратных 3. программа получает на вход количество чисел в последовательности, а затем сами числа. в последовательности всегда имеется число, кратное 3. количество чисел не превышает 100. введённые числа не превышают 300. программа должна вывести одно число – сумму чисел, кратных 3.
2)напишите программу, которая по двум данным натуральным числам a и b, не превосходящим 3, подсчитывает количество натуральных чисел на отрезке [a, b] (включая концы отрезка), которые не делятся на 9, делятся на 3 и оканчиваются на 6. программа получает на вход два натуральных числа a и b, при этом гарантируется, что 1 ≤ a ≤ b ≤ 3. проверять входные данные на корректность не нужно. программа должна вывести одно число: количество чисел на отрезке [a, b], которые не делятся на 9, делятся на 3 и оканчиваются на 6.
3)напишите программу, которая по двум данным натуральным числам a и b, не превосходящим 3, подсчитывает сумму натуральных чисел на отрезке [a, b] (включая концы отрезка), которые делятся на 6 и оканчивается на 2. программа получает на вход два натуральных числа a и b, при этом гарантируется, что 1 ≤ a ≤ b ≤ 3. проверять входные данные на корректность не нужно. программа должна вывести одно число: сумму чисел на отрезке [a, b], которые делятся на 6 и оканчивается на 2.
(1 + 0) - истинна, т.к. дизъюнкция истинна если хотя-бы одна из переменных истинна
(0 + 0) - ложна, т.к. обе перменные ложны
(1 + 0)*(0+0) - ложна, т.к. первая скобка истинна, а вторая ложна, а в конъюнкции для истины обе скобки должны быть истинны.
1*0 - ложна, т.к. в конъюнкции обе переменные должны быть истинны.
Для удобства разделил скобками
((1 + 0)*(0+0)) + (1*0) - ложна, т.к. первая (большая) скобка ложна, вторая скобка (1*0) тоже ложна, между ними дизъюнкция, то есть хотя-бы одна из них должна быть истинна. Они обе ложны, значит результатом выражения
(1 + 0)*(0+0) + 1*0
будет 0
Var
s,sr:string;
i,j,n:integer;
pr:array of char=('.',',',';',':','!','?');
begin
readln(s);
s:=s.Trim;
var ars:=s.ToWords();
s:='';
for i:=0 to ars.Length-1 do
s+=ars[i]+' ';
s:=s.Trim;
i:=0;
while i<>s.Length do
begin
inc(i);
if (s[i] in pr) and (s[i-1]=' ') then delete(s,i-1,1);
end;
i:=0;
while i<>s.Length-1 do
begin
inc(i);
if (s[i] in pr) and (s[i+1]<>' ') then insert(' ',s,i+1);
end;
s:=s.Trim;
writeln(s);
end.
Пример ввода:
Очень, очень ,очень , очень ,очень,очень много слов.
Пример вывода:
Очень, очень, очень, очень, очень, очень много слов.