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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2012, 19:53   #1
Irusya
Новичок
Джуниор
 
Регистрация: 10.07.2012
Сообщений: 6
Восклицание код в Delphi

не получается переделать в Delphi...помогите пожалуйста!!!


//перестановка строк
//максимальный элемент
for i:=1 to n do
begin
maxEl := 0;
for j:=i to n do begin
if abs(maxEl) < abs(mainMatrix[j,i]) then
begin
maxEl := mainMatrix[j,i];
max := j;
end;
end;
for k:=1 to n do begin
tmp := mainMatrix[i, k];
mainMatrix[i, k] := mainMatrix[max, k];
mainMatrix[max, k] := tmp;
end;
end;



//вывод матрицы после перестановки
for i:=1 to n do
begin
for j:=1 to n do begin
write(mainMatrix[i,j]);
write(' ');
write(' ');
end;
writeln('');
end;

Readln(a);
Irusya вне форума Ответить с цитированием
Старый 10.07.2012, 20:03   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,427
По умолчанию

Хм, что вы подразумеваете под "переделать в дельфи"?
Этот кусок кода должен работать и в дельфи.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.07.2012, 20:31   #3
Irusya
Новичок
Джуниор
 
Регистрация: 10.07.2012
Сообщений: 6
По умолчанию

нужно,чтобы матрица и ответ выдавались в форме(StringGrid1 и StringGrid2)
Irusya вне форума Ответить с цитированием
Старый 10.07.2012, 22:41   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,427
По умолчанию

Покажите свои наработки и напишите условие задачи.

Вот примерчик. Приткнул ваш код, но что он делает, не знаю.
Вложения
Тип файла: zip Project1.zip (8.3 Кб, 13 просмотров)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 11.07.2012 в 00:47.
BDA вне форума Ответить с цитированием
Старый 11.07.2012, 00:59   #5
Irusya
Новичок
Джуниор
 
Регистрация: 10.07.2012
Сообщений: 6
По умолчанию

Переставить строки матрицы NxN так, чтобы по главной диагонали матрицы были расположены элементы наибольшие по абсолютной величине.

Код:
program matrix;

{$APPTYPE CONSOLE}

uses
  SysUtils;
const
   n = 4;
var
  a :string;
  mainMatrix :array[1..n, 1..n] of integer;
  i, j, k, max, maxEl, tmp :integer;
begin
  write('Matrix ');
  write(n);
  write('x');
  write(n);
  writeln('');
  writeln('');

  mainMatrix[1,1] := 1;
  mainMatrix[1,2] := 2;
  mainMatrix[1,3] := 1;
  mainMatrix[1,4] := 1;


  mainMatrix[2,1] := 1;
  mainMatrix[2,2] := 1;
  mainMatrix[2,3] := 1;
  mainMatrix[2,4] := -4;

  mainMatrix[3,1] := 3;
  mainMatrix[3,2] := 1;
  mainMatrix[3,3] := 1;
  mainMatrix[3,4] := 1;

  mainMatrix[4,1] := 1;
  mainMatrix[4,2] := 1;
  mainMatrix[4,3] := -6;
  mainMatrix[4,4] := 1;


  writeln('Do');

  for i:=1 to n do
  begin
    for j:=1 to n do begin
      write(mainMatrix[i,j]);
      write(' ');
      write(' ');
    end;
    writeln('');
  end;

  writeln('');
  writeln('Posle');


  for i:=1 to n do
  begin
    maxEl := 0;
    for j:=i to n do begin
      if abs(maxEl) < abs(mainMatrix[j,i]) then
      begin
         maxEl := mainMatrix[j,i];
         max := j;
      end;
    end;
    for k:=1 to n do begin
      tmp := mainMatrix[i, k];
      mainMatrix[i, k] := mainMatrix[max, k];
      mainMatrix[max, k] := tmp;
    end;
  end;

  for i:=1 to n do
  begin
    for j:=1 to n do begin
      write(mainMatrix[i,j]);
      write(' ');
      write(' ');
    end;
    writeln('');
  end;

  Readln(a);
end.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 11.07.2012 в 08:45.
Irusya вне форума Ответить с цитированием
Старый 11.07.2012, 01:31   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,427
По умолчанию

Во-первых, используйте кнопочку # для того, чтобы заключать код в специальные теги.
Код:
program matrix;
{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  n = 4;

var
  mainMatrix: array [1 .. n, 1 .. n] of integer;
  i, j, k, max, maxEl, tmp: integer;

begin
  writeln('Matrix ',n,'x',n);
  writeln;

  mainMatrix[1, 1] := 1;
  mainMatrix[1, 2] := 2;
  mainMatrix[1, 3] := 1;
  mainMatrix[1, 4] := 1;

  mainMatrix[2, 1] := 1;
  mainMatrix[2, 2] := 1;
  mainMatrix[2, 3] := 1;
  mainMatrix[2, 4] := -4;

  mainMatrix[3, 1] := 3;
  mainMatrix[3, 2] := 1;
  mainMatrix[3, 3] := 1;
  mainMatrix[3, 4] := 1;

  mainMatrix[4, 1] := 1;
  mainMatrix[4, 2] := 1;
  mainMatrix[4, 3] := -6;
  mainMatrix[4, 4] := 1;

  writeln('Do');

  for i := 1 to n do
  begin
    for j := 1 to n do
      write(mainMatrix[i, j],' ');
    writeln;
  end;

  writeln;
  writeln('Posle');

  for i := 1 to n do
  begin
    maxEl := 0;
    for j := i to n do
    begin
      if abs(maxEl) < abs(mainMatrix[j, i]) then
      begin
        maxEl := mainMatrix[j, i];
        max := j;
      end;
    end;
    for k := 1 to n do
    begin
      tmp := mainMatrix[i, k];
      mainMatrix[i, k] := mainMatrix[max, k];
      mainMatrix[max, k] := tmp;
    end;
  end;

  for i := 1 to n do
  begin
    for j := 1 to n do
      write(mainMatrix[i, j],' ');
    writeln;
  end;

  Readln;
end.
Во-вторых, вот чуть исправленный вариант ваших наработок. Исправил некоторые вещи, чтобы в будущем вы писали код красивее.
(переменная а не нужна, вывод можно делать одной командой write, writeln работает и без параметров)
В-третьих, пример постом выше, по идее, работает (ваш код в графической обертке), но остаются некоторые вопросы, первый из которых: "элементы, наибольшие по абсолютной величине" - наибольшие где? в строке, в столбце?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 11.07.2012, 16:54   #7
Irusya
Новичок
Джуниор
 
Регистрация: 10.07.2012
Сообщений: 6
По умолчанию

Спасибо большое)разобралась...
Irusya вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
код из С++ в delphi! oxygen-xz Помощь студентам 2 02.06.2011 15:27
Код Delphi =Карина= Помощь студентам 2 30.05.2011 06:32
Доп.код,обратный код,прямой код вычисления Lukas077 Помощь студентам 0 20.03.2011 12:07
Код Delphi на C++ _SERGEYX_ Помощь студентам 2 05.12.2010 21:17
Delphi и машинный код. Создание файлов в Delphi 7. organic Помощь студентам 6 21.04.2010 13:16