Листинг (текст) программы



uses crt;

 

const n=7;

m=7;

var c:array[1..n,1..m] of integer;

st:array[1..n*m] of integer;

k:integer;

ch:char;

 

{Вывод меню на экран}

procedure vmenu(k:integer);

begin

TextBackground(Black);

clrscr;

writeln;

writeln(' МЕНЮ');

writeln;

TextBackground(Black); write(' ');

if k=1 then TextBackground(Blue);

writeln('Ввод случайними данными');

TextBackground(Black); write(' ');

if k=2 then TextBackground(Blue);

writeln('Ввод с клавиатуры');

TextBackground(Black); write(' ');

if k=3 then TextBackground(Blue);

writeln('Вывод на экран');

TextBackground(Black); write(' ');

if k=4 then TextBackground(Blue);

writeln('Найти количество элементов');

TextBackground(Black); write(' ');

if k=5 then TextBackground(Blue);

writeln('Сортировка после главной и попочной диагонали');

TextBackground(Black); write(' ');

if k=6 then TextBackground(Blue);

writeln('Выход');

TextBackground(Black);

end;

 

{Заполнение массива случайными числами}

procedure vrand;

var i,j:integer;

begin

randomize;

for i:=1 to n do

for j:=1 to m do

begin

c[i,j]:=Random(256);

end;

end;

 

{Ввод массива с клавиатуры}

procedure vkl;

var i,j:integer;

begin

for i:=1 to n do

for j:=1 to m do

begin

write('c[',i,',',j,']: ');

readln(c[i,j]);

end;

end;

 

{Вывод массива на экран}

procedure viv;

var i,j:integer;

begin

for i:=1 to n do

begin

for j:=1 to m do

write(c[i,j]:3,' ');

writeln;

end;

end;

 

{Ожидание нажатия клавиши Enter}

procedure vln;

var i,j:integer;

begin

writeln;

write('Нажмите <Enter> для продалжения.');

readln;

end;

 

{1 Определение сколько раз встречается число,}

{ введенное с клавиатуры, в массиве элементов,}

{ находящихся наже главной диагонали матрицы}

procedure countel;

var i,j,a,l:integer;

begin

l:=0;

clrscr;

write('A: ');

readln(a);

for i:=1 to n do

for j:=1 to m do

if (i>j) then

begin

if c[i,j]=a then inc(l);

end;

writeln(a,' - встречается ',l,' раз.');

vln;

end;

 

{2 Сортировка элементов по убыванию,}

{ распаложеных после главной и попочной}

{ диагонали матрицы}

procedure sort;

var i,j,k,t:integer;

begin

{Перекладываем элементы расположеные после главной и}

{попочной диагонали матрицы в одномерный массив}

k:=0;

for i:=1 to n do

for j:=1 to m do

if (i<j) and (i>m-j+1) then

begin;

k:=k+1;

st[k]:=c[i,j];

end;

{Сортируем одномерный массив по убыванию}

for i:=1 to k do

for j:=2 to k do

if st[j-1]<st[j] then

begin

t:=st[j-1];

st[j-1]:=st[j];

st[j]:=t;

end;

{Перекладываем отсортированые элементы расположеные после}

{главной и попочной диагонали матрицы из одномерного массива}

k:=0;

for i:=1 to n do

for j:=1 to m do

if (i<j) and (i>m-j+1) then

begin;

k:=k+1;

c[i,j]:=st[k];

end;

end;

 

begin

k:=1;

repeat

vmenu(k);

ch:=Readkey; {Определение нажитие клавиши на клавиатуре}

case ord(ch) of

0: {Если функцианальная клаваша}

begin

{то считываем следующий символ}

ch:=Readkey;

{Определяем клавишу}

case ord(ch) of

72: if k>1 then k:=k-1; {Нажата клавиша вверх}

80: if k<6 then k:=k+1; {Нажата клавиша вниз}

end;

end;

13: {Нажата клавиша Enter}

begin

case k of {Определяем что выбрано в меню}

1: {Заполнение случайными числами}

begin

clrscr;

vrand;

writeln;

viv;

vln;

end;

2: {Ввод с клавиатуры}

begin

clrscr;

vkl;

end;

3: {Вывод на экран}

begin

clrscr;

writeln;

viv;

vln;

end;

4: {1 Задача}

begin

countel;

end;

5: {2 Задача}

begin

clrscr;

writeln;

writeln('До сортировки:');

viv;

sort;

writeln;

writeln('После сортировки:');

viv;

vln;

end;

end; {case k}

end;

end; {case ord(ch)}

until (k=6) and (ch=chr(13)); {Выход из программы}

end.
Выходные результаты

 

 

 

 

 


Дата добавления: 2016-01-05; просмотров: 28; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!