На бесконечном поле есть горизонтальная и вертикальная стены. Левый конец горизонтальной стены соединён с нижним концом вертикальной стены. Длины стен неизвестны. В каждой стене есть ровно один проход, точное место прохода и его ширина неизвестны. Робот находится в клетке, расположенной непосредственно над горизонтальной стеной у её правого конца. На рисунке указан один из возможных расположения стен и Робота (Робот обозначен буквой «Р»). Напишите для Робота алгоритм, закрашивающий все клетки, расположенные непосредственно выше горизонтальной стены и правее вертикальной стены. Проходы должны остаться незакрашенными. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок). При исполнении алгоритма Робот не должен разрушиться, выполнение алгоритма должно завершиться. Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для любого допустимого расположения стен и любого расположения и размера проходов внутри стен.
uses crt; var s:string; c:char; m:set of char; n,i,k,p:byte; begin writeln('Введите текст из строчных латинских букв, окончаание ввода Enter'); s:=''; repeat c:=readkey; if c in ['a'..'z'] then begin write(c); s:=s+c; end; if c=#13 then writeln until c=#13; n:=length(s); m:=[]; for c:='a' to 'z' do begin k:=0; for i:=1 to n do if s[i]=c then k:=k+1; if k>1 then m:=m+[c]; end; if m=[] then write('Нет букв, встречающихся более 1 раза') else for c:='a' to 'z' do if c in m then write(c) end.
Var a: array[1..20,1..20] of integer; n,m,i,j,min,jm,x: integer; begin randomize; write('Введите размеры массива: '); readln(n,m); writeln('Исходный массив:'); for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(19)-9; write(a[i,j]:4); end; writeln; end; min:=0; for i:=1 to n do min:=min+a[i,1]; writeln('Сумма элементов 1-го столбца = ',min); jm:=1; for j:=2 to m do begin x:=0; for i:=1 to n do x:=x+a[i,j]; writeln('Сумма элементов ',j,'-го столбца = ',x); if x<min then begin min:=x; jm:=j; end; end; writeln('Минимальная сумма в ',jm,'-м столбце'); writeln('Полученный массив:'); for i:=1 to n do begin for j:=1 to m do begin if j<>jm then a[i,j]:=a[i,jm]; write(a[i,j]:4); end; writeln; end; readln; end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку