Клеточная карта с тремя островами. Раскрашенная карта.

Презентация:



Advertisements
Похожие презентации
procedure TfrmFileMngm.FormCreate(Sender: TObject); begin sgCars.Cells[0,0] := 'Марка'; sgCars.Cells[1,0] := 'V'; sgCars.Cells[2,0] := 'S'; sgErr.Cells[0,0]
Advertisements

Массивы в Паскале. Создание массива: var a:array [1..5] of integer; i:integer; begin for i:=1 to 5 do begin write ('a[',i,']='); readln(a[i]); end; end.
3. Дана прямоугольная матрица, элементами которой являются целые числа. Поменять местами ее строки следующим образом: первую строку с последней, вторую.
Поиск максимального и минимального элемента линейного массива на языке Turbo Pascal. Program poisk; Const n=10; Type mass=array[1..n] of integer; Var a:mass;
5.Дана матрица А и вектор Х соответствующих размерностей. Нечетные строки матрицы заменить элементами вектора Х. Результаты работы: n=4 m=
PROGRAM example1; const m=100; var a : ARRAY [1.. m] of INTEGER; i,k,n,q : INTEGER; BEGIN readln (n); randomize; WRITELN('Полученный массив:' ); FOR i.
Решение задач с использованием массивов
Тема: Нахождение минимального и максимального элемента в массиве.
9.Задана целочисленная матрица. Вывести N чисел - максимальные значения элементов для каждой строки, где N - количество строк матрицы
const n=10; var a:array[1..n] of integer; i,j,c,b,k:integer; begin randomize; for i:=1 to n do begin a[i]:=random(11)-5;write(a[i]:5) end;writeln;
Одномерный массив Turbo Pascal 9 класс. Объясните каждый шаг в программе. Что делает программа? Сколько раз срабатывает цикл? Var A : array [1..10] of.
1 Программирование на языке Паскаль Тема 2. Максимальный элемент массива.
Задача о лабиринте Формулировка. Имеется прямоугольная матрица N x M, который задается лабиринт. Нули в матрице обозначают проход, минус единицы - стены.
Program maxsimum; const n=10; var a:array [1..n] of integer; max,i:integer;begin ВВОД ЭЛЕМЕНТОВ МАССИВА; max:=a[1]; for i:=2 to n do if a[i]> max then.
Одномерные массивы Введение. I.Описание Массив – это фиксированное кол - во элементов одного и того же типа, объединенных одним именем, каждый элемент.
Program show; User CRT, Graph; const N=1000; var X, Y:array [1..N] of integer; Gd, Gm, xm, ym, i:integer; begin Gd:=0; Initgraph (Gd, Gm, ); xm:=getmaxX;
Задача Разбить предложение по словам. В предложении могут быть знаки «.», «!», «?» и «,»
Дан массив. Найти максимальный и минимальный элементы массива и поменять их местами. Выполнение программы Выполнение программы.
К. Поляков, Программирование на языке Паскаль Часть II Тема: Поиск максимального элемента массива.
Program Summa; {Суммирование элементов в 1м массиве} Uses Crt; Type Massiv = Array [1..100] of Real; Var A : Massiv; i, N : Integer; S : Real; Begin Write('Введите.
Транксрипт:

Клеточная карта с тремя островами

Раскрашенная карта

TfrmCellMap = class(TForm) sgrSea: TStringGrid; btnLoad: TButton; btnShow: TButton; btnPaint: TButton; btnClear: TButton; procedure FormCreate(Sender: TObject); procedure btnLoadClick(Sender: TObject); procedure btnShowClick(Sender: TObject); procedure btnPaintClick(Sender: TObject); procedure btnClearClick(Sender: TObject); private { Private declarations } public { Public declarations } end;

const N=10; type TMapArr=array[1..N,1..N] of integer; TColorMap=class(TObject) Map:TMapArr; qIsl:word; procedure Put(_Map:TStringGrid); procedure Get(var _Map:TStringGrid); procedure Paint; procedure PaintIsland(x,y:word); end;

procedure TColorMap.Put(_Map: TStringGrid); var i,j:word; begin for i:=1 to N do for j:=1 to N do if _Map.Cells[ j - 1, i -1 ]'' then Map[i,j]:=-1; end;

procedure TColorMap.Paint; var i, j : word; begin qIsl := 0; for i := 1 to N do for j := 1 to N do if Map[i,j]= - 1 then begin qIsl := qIsl + 1; PaintIsland( i, j ); end;

procedure TColorMap.PaintIsland( x, y : word); begin Map[x,y] := qIsl; if Map[ x – 1, y ] = – 1 then PaintIsland(x – 1 y); if Map[x,y – 1] = – 1 then PaintIsland(x, y – 1); if Map[x + 1, y] = – 1 then PaintIsland(x + 1, y); if Map[x, y + 1] = – 1 then PaintIsland(x, y + 1); end;

procedure TColorMap.Get(var _Map: TStringGrid); var i, j : word; begin for i := 1 to N do for j := 1 to N do if Map[i, j] 0 then _Map.Cells[ j - 1, i - 1]:=IntToStr(Map[i, j]); end;

procedure TfrmCellMap.FormCreate(Sender: TObject); var i : integer; begin Sea := TWave.Create; sgrSea.ColCount := N; sgrSea.RowCount := N; for i := 0 to N - 1 do begin sgrSea.ColWidths[ i ] := sgrSea.Width div N - 2; sgrSea.RowHeights[ i ] := sgrSea.Height div N - 2; end;

procedure TfrmCellMap.btnLoadClick(Sender: TObject); begin Sea.Put(sgrSea); end; procedure TfrmCellMap.btnShowClick(Sender: TObject); begin Sea.Get(sgrSea); end; procedure TfrmCellMap.btnPaintClick(Sender: TObject); begin Sea.Paint; end; procedure TfrmCellMap.btnClearClick(Sender: TObject); var i, j: word; begin for i := 0 to N - 1 do for j := 0 to N - 1 do sgrSea.Cells[i, j] := ''; end;