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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2013, 15:49   #1
owert
 
Регистрация: 02.06.2013
Сообщений: 3
По умолчанию исправьте ошибке в этой программе так чтобы она работала как в задании:

Обработать матрицу, элементами которой являются случайные значения функции f(x)= 10/(1+x2); x [-50;50]. Дана матрица S(14,14). Найти в каждой строке максимальный элемент и поменять его местами с элементами главной диагонали. Напечатать исходную и полученную матрицы.


const
n = 14;
var
mas: array[1..n, 1..n] of real;
f, x, i, j, max2: integer;
max, c: real;
begin
for i := 1 to n do
for j := 1 to n do
begin
x := random(50);
mas[i, j] := 10 / (1 + x * 2);
//mas[i, j] := random(0, 9);
end;
for i := 1 to n do
begin
for j := 1 to n do
Write(mas[i, j]:6:2);
Writeln;
end;
i := 1;
repeat
max := mas[i, j];
for j := 1 to n do
if mas[i, j] >= max then
begin
max := mas[i, j];
max2 := j;
end;
mas[i, max2] := mas[i, i];
mas[i, i] := max;
inc(i);
until i = n;
Writeln;
Writeln;
for i := 1 to n do
begin
for j := 1 to n do
Write(mas[i, j]:6:2);
Writeln;
end;
end.
owert вне форума Ответить с цитированием
Старый 06.06.2013, 16:14   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

А сами что? Пробуйте сами. Пошаговая трассировка, ИМХО, очень полезный инструмент.
Вадим Мошев вне форума Ответить с цитированием
Старый 06.06.2013, 17:02   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
const
  n = 14;

var
  mas: array [1 .. n, 1 .. n] of real;
  x, i, j, p: integer;
  tmp: real;

begin
  writeln('Source:');
  for i := 1 to n do
  begin
    for j := 1 to n do
    begin
      x := random(101) - 50;
      mas[i, j] := 10 / (1 + x * 2);
      Write(mas[i, j]:6:2);
    end;
    writeln;
  end;
  for i := 1 to n do
  begin
    p := 1;
    for j := 2 to n do
      if mas[i, j] > mas[i, p] then
        p := j;
    tmp := mas[i, i];
    mas[i, i] := mas[i, p];
    mas[i, p] := tmp;
  end;
  writeln;
  writeln;
  writeln('Edited:');
  for i := 1 to n do
  begin
    for j := 1 to n do
      Write(mas[i, j]:6:2);
    writeln;
  end;
  readln;
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переделайте задачу, чтобы она работала через одну процедуру. Proskurina Помощь студентам 4 23.11.2012 23:33
Как сделать так чтобы приложение базы данных работала на компьютерах без установленной программы delphi? Даниил_глазко БД в Delphi 6 09.11.2010 16:26
пграмма совершает аварийное прерывание.как сделать так чтобы она работала нормально? Екатерина3439 Общие вопросы C/C++ 8 24.06.2010 00:27