# # Код на ruby 2.2.3p173 max = 0 max_last = 0 min = 1000 min_last = 1000 n = 0
begin max_last = max min_last = min
File.open("input.txt", "r") do |infile| line = infile.gets.strip p line n = line.to_i if n == 0
while (line = infile.gets) p line number = line.strip.to_i
max = number if max == 0 or number == max + 1 min = number if min == 1000 or number == min - 1 p [min, max] end end end until (max == max_last and max < n) or (min > 0 and min == min_last) or (min == 0 and max == n)
p max + 1 if max == max_last and max < n p min - 1 if min > 0 and min == min_last p "error" if min == 0 and max == n
Вот так эту задачу можно решить на современном Паскале. Но, к сожалению, так в школах не учат, заставляя тратить время и силы на громоздкие программы, в которых легко ошибиться.
// PascalABC.Net 3.2
begin Write(ReadlnString('->').ToWords.Where(x->x.Left(2)='со').Count) end.
Пример: -> Три собаки сосали одну косточку 2
А вот так (примерно, потому что обычно еще хуже) учат писать программы в школе...
var s:string; i,n,k,p:integer; begin Write('->'); Readln(s); if Copy(s,1,2)='со' then k:=1 else k:=0; Delete(s,1,3); repeat i:=Pos(' со',s); if i>0 then begin Inc(k); Delete(s,1,i+3) end until i=0; Writeln(k) end.
max = 0
max_last = 0
min = 1000
min_last = 1000
n = 0
begin
max_last = max
min_last = min
File.open("input.txt", "r") do |infile|
line = infile.gets.strip
p line
n = line.to_i if n == 0
while (line = infile.gets)
p line
number = line.strip.to_i
max = number if max == 0 or number == max + 1
min = number if min == 1000 or number == min - 1
p [min, max]
end
end
end until (max == max_last and max < n) or (min > 0 and min == min_last) or (min == 0 and max == n)
p max + 1 if max == max_last and max < n
p min - 1 if min > 0 and min == min_last
p "error" if min == 0 and max == n
// PascalABC.Net 3.2
begin
Write(ReadlnString('->').ToWords.Where(x->x.Left(2)='со').Count)
end.
Пример:
-> Три собаки сосали одну косточку
2
А вот так (примерно, потому что обычно еще хуже) учат писать программы в школе...
var
s:string;
i,n,k,p:integer;
begin
Write('->'); Readln(s);
if Copy(s,1,2)='со' then k:=1 else k:=0;
Delete(s,1,3);
repeat
i:=Pos(' со',s);
if i>0 then begin
Inc(k);
Delete(s,1,i+3)
end
until i=0;
Writeln(k)
end.