Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2017, 20:27   #1
ceccu9l
 
Регистрация: 20.04.2017
Сообщений: 5
По умолчанию Произвести действия с матрицей

Delpi
Результаты эксперимента хранятся в двумерном массиве размером М х М (М=2*n+1, n>=1). Сформировать новый одномерный массив из двумерного по схеме. В новом массиве удалить одинаковые результаты (сжать массив). Новый одномерный массив отсортировать в порядке возрастания. Вспомогательные массивы не создавать.
выходные данные: 1. Размер полученного одномерного массива 2. Одномерный массив 3. Размер сжатого массива 4. Отсортированный массив


есть программа которая случайным образом заполняет двумерный массив и выводит периметр и центр:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var a:array[1..15,1..15] of integer;
    n,m,i,j,k:integer;
begin
randomize;
val(Edit1.Text,n,k);
if(k<0) then
 begin
  ShowMessage('Неверно введен размер матрицы');
  Edit1.Clear;
  Edit1.SetFocus;
  exit;
 end;
 n:=2*n+1;
StringGrid1.RowCount:=n;
StringGrid1.ColCount:=n;
m:=4*(n-1)+1;
StringGrid2.ColCount:=m;
for i:=1 to n do
for j:=1 to n do
 begin
  a[i,j]:=10+random(50);
  StringGrid1.Cells[j-1,i-1]:=inttostr(a[i,j]);
 end;
for i:=1 to n-1 do
 begin
  StringGrid2.Cells[i-1,0]:=inttostr(a[1,i]);
  StringGrid2.Cells[n+i-2,0]:=inttostr(a[i,n]);
  StringGrid2.Cells[2*n+i-3,0]:=inttostr(a[n,n-i+1]);
  StringGrid2.Cells[3*n+i-4,0]:=inttostr(a[n-i+1,1]);
 end;
StringGrid2.Cells[m-1,0]:=inttostr(a[n div 2+1,n div 2+1]);
end;
end.

Последний раз редактировалось ceccu9l; 20.04.2017 в 21:18.
ceccu9l вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ROBOKASSA. Как произвести действия после оплаты, если не была нажата кнопка "Вернуться в магазин"? Mr_freeman PHP 0 14.12.2012 14:11
Паскаль.Дана матрица А. Разработать программу, которая позволяет выполнить с матрицей следующие действия икше Помощь студентам 1 07.12.2012 17:01
Паскаль.Дана матрица А. Разработать программу, которая позволяет выполнить с матрицей следующие действия икше Помощь студентам 0 01.12.2012 20:07
Как произвести фильтрацию данных Dronlion Microsoft Office Excel 2 12.04.2011 22:48