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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2013, 00:12   #11
Eld
 
Регистрация: 22.05.2013
Сообщений: 7
По умолчанию

Не работает. Компилятор ABC.NET выдает ошибку на строчку:
Код:
inc(w);
Нет перегруженной подпрограммы с такими типами параметров

А АВС выводит ошибку: процедура INC с параметрами указанных типов не найдена.

Последний раз редактировалось Eld; 27.05.2013 в 00:41.
Eld вне форума Ответить с цитированием
Старый 28.05.2013, 01:25   #12
Eld
 
Регистрация: 22.05.2013
Сообщений: 7
По умолчанию

Написал я то матрицу 3х3, забыл что результатов 10, а не 9 должно быть...
Переделал матрицу в 2х5. Вот что я придумал на счет сортировки, вроде тоже что и вы писали, но код громоздкий получается...

Весь код:
Код:
program kyr;

uses
  crt;

const
  n = 9;

type
  matrix = array[1..2, 1..5]of real;
  domatrix = array[0..9] of real;


procedure Power(x: real; n: integer; var y: real);
begin
  if N = 0 then 
    Y := 1 
  else begin
    Power(X, N - 1, Y); 
    Y := Y * X; 
  end; 
end;


function factorial(n: integer): longint;
begin
  if n = 0 then factorial := 1 
  else factorial := factorial(n - 1) * n; 
end;


var
  f: matrix;
  s: domatrix;
  sum, o, max, p: real;
  x: integer;
  i, k, l, j: byte;
  znam: array[0..9]of real;
  chisl: array[0..9]of real;


begin
  clrscr;
  SetWindowCaption('Вывод расчётов');
  writeln('Введите х');
  readln(x);
  
  for i := 0 to n do
  begin
    power(x, i, chisl[i]);
  end;
  
  writeln;
  
  for i := 0 to n do
  begin
    znam[i] := factorial(i);
  end;
  writeln;
  
  sum := 0;
  k := 1;
  l := 1;
  while (k <= 2) and (l <= 5) do
  begin
    sum := sum + chisl[(k - 1) * 5 + l - 1] / znam[(k - 1) * 5 + l - 1];
    f[k, l] := exp(sum);
    inc(l);
    if (l = 6) then
    begin
      l := 1;
      inc(k);
    end;
  end;
  
  writeln;  
  writeln('Оригинальная матрица');
  for k := 1 to 2 do
  begin
    for l := 1 to 5 do
      write(f[k, l]:0:5, '  ');
    writeln;
  end;
  
  
  k := 1;
  l := 1;
  i := 0;
  while (k <= 2) and (l <= 5) and (i <= 9) do
  begin
    s[i] := f[k, l];
    inc(l);
    inc(i);
    if l = 6 then begin
      l := 1;
      inc(k); end;
  end;
  
  for l := 0 to 9 do
  begin
    o := s[l];
    for i := 9 downto l + 1 do
      if o > s[i] then
      begin
        p := o;
        o := s[i];
        s[l] := o;
        s[i] := p;
      end;
  end;
 
  k := 1;
  l := 1;   
  while (k <= 2) and (l <= 5) do
  begin
    f[k, l] := s[(k - 1) * 5 + l - 1];
    inc(l);
    if (l = 6) then
    begin
      l := 1;
      inc(k);
    end;
  end;
  
  writeln;  
  writeln('Отсортированая матрица');
  for i := 1 to 2 do
  begin
    for j := 1 to 5 do
      write(f[i, j]:0:5, '   ');
    writeln;
  end;
end.
Сортировка:
Код:
k := 1;
  l := 1;
  i := 0;
  while (k <= 2) and (l <= 5) and (i <= 9) do
  begin
    s[i] := f[k, l];
    inc(l);
    inc(i);
    if l = 6 then begin
      l := 1;
      inc(k); end;
  end;
  
  for l := 0 to 9 do
  begin
    o := s[l];
    for i := 9 downto l + 1 do
      if o > s[i] then
      begin
        p := o;
        o := s[i];
        s[l] := o;
        s[i] := p;
      end;
  end;
 
  k := 1;
  l := 1;   
  while (k <= 2) and (l <= 5) do
  begin
    f[k, l] := s[(k - 1) * 5 + l - 1];
    inc(l);
    if (l = 6) then
    begin
      l := 1;
      inc(k);
    end;
  end;
Eld вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Занулить максимальные элементы в массиве. Leshii Паскаль, Turbo Pascal, PascalABC.NET 6 24.01.2012 23:49
В двумерном вещественном массиве 4x4 переставить строки в порядке возрастания максимальных элементов строк (Паскаль) 77SEMI77 Помощь студентам 0 20.01.2012 00:42
в массиве все максимальные элементы заменить первым элементом, а все минимальные элементы заменить последним элементом Валерия2701 Паскаль, Turbo Pascal, PascalABC.NET 1 12.10.2011 15:49
расположить элементы матрицы в порядке возрастания. Cer)I(ik Паскаль, Turbo Pascal, PascalABC.NET 2 07.04.2011 00:29
Расположить элементы массива в порядке возрастания Klik_1602 Помощь студентам 2 04.01.2011 14:59