uses crt; type mas=array[1..50] of string; var x,x1,x2,y,y1,y2,i,sym,l:byte; a:mas; gen:boolean; procedure show; begin write(' 0'); for i:=1 to x do begin if i mod 10=0 then write('|') else write(' '); write(i mod 10); end; writeln; for i:=1 to y do begin if i<10 then write(' '); writeln(i,' ',a[i]); end; end; begin write('Введите размер (х у): '); readln(x,y); clrscr; while ((x=0) or (y=0)) do begin write('Введи коректно: '); readln(x,y); end; for i:=1 to y do for l:=1 to x do a[i]:=a[i]+'- '; gen:=true; show; repeat write('Введите тип вставки (1-единичный, 2-множественный): '); readln(i); if i=1 then begin write('Введите координаты (х и у): '); readln(x1,y1); writeln('- # @ / \ | $ O'); writeln('0 1 2 3 4 5 6 7'); write('Выберите символ: '); readln(sym); delete(a[y1],2*x1-1,1); case sym of 0:insert('-',a[y1],2*x1-1); 1:insert('#',a[y1],2*x1-1); 2:insert('@',a[y1],2*x1-1); 3:insert('/',a[y1],2*x1-1); 4:insert('\',a[y1],2*x1-1); 5:insert('|',a[y1],2*x1-1); 6:insert('$',a[y1],2*x1-1); 7:insert('O',a[y1],2*x1-1); end; end//условия else begin write('Левый верхний угол: '); readln(x1,y1); write('Правый нижний угол: '); readln(x2,y2); writeln('- # @ / \ | $ O'); writeln('0 1 2 3 4 5 6 7'); write('Выберите символ: '); readln(sym); for i:=y1 to y2 do for l:=x1 to x2 do begin delete(a[i],2*l-1,1); case sym of 0:insert('-',a[i],2*l-1); 1:insert('#',a[i],2*l-1); 2:insert('@',a[i],2*l-1); 3:insert('/',a[i],2*l-1); 4:insert('\',a[i],2*l-1); 5:insert('|',a[i],2*l-1); 6:insert('$',a[i],2*l-1); 7:insert('O',a[i],2*l-1); end; end; end; //условие clrscr; show; until sym=500 end.