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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2013, 21:25   #1
Juli)
 
Регистрация: 27.05.2013
Сообщений: 4
По умолчанию что не так с программой

Посмотрите что не так с программой,помогите исправить

!
условие : Обработать матрицу, элементами которой являются случайные значения функции f(x)=x/13; x [-50;75]. Отсортировать по убыванию элементы главной диагонали матрицы S(10,10). Если элемент главной диагонали в строке положительный, то все оставшиеся элементы в строке заменить на единицу, в противном случае – на ноль. Напечатать исходную и полученную матрицы.
Код:
program matrica;
   uses crt;
      const n=10;
      var s:array  [1..10 ,1..10] of real;
i,j,imn,jmn,mn:integer;
 byfer, x: real;
//s:matrix;
 begin

randomize;
// заполнение
for i := 1 to 10 do
  begin

    for j := 1 to 10 do
    begin
    x:=random (50);
        s[i,j] := x;  //random((126) - 50)/13;
        write (s[i,j],' ') ;

  if (i=1)and (j=1)then
  //begin
  //mn:=s[i,j];
  imn:=i;
  jmn:=j;


   end;
 writeln (s[i,j]) ;
  end;
// сортировка, строки не трогаем только главную диагональ (по условию)
//for i := 1 to 10 do begin
   // for j := 1 to 10 - 1 do



        if (s[j,j] < s[j+1,j+1]) then
           begin
                byfer := s[j,j];
                s[j,j] := s[j+1,j+1];
               s[j+1,j+1] := byfer;
                
                 write ('   byfer=',byfer,'    ');

           end;
// обработка
for i := 1 to 10 do
    if s[i,i] > 0 then
       begin
       for j:= 1 to 10 do
           if j = i then
             // continue
           else
               s[i,j] := 1;
       end
    else
        for j:= 1 to 10 do
           if j = i then
              ///continue
           else
               s[i,j] := 0;
               end.
From Stilet: Кож прошу оформлять спецтегом (по кнопке # в редакторе кода) по правилам.

Последний раз редактировалось Stilet; 01.06.2013 в 23:07.
Juli) вне форума Ответить с цитированием
Старый 01.06.2013, 22:17   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

С программой много чего не так.
Навскидку:
1. Она не отформатирована.
2. Имена идентификаторов ни о чем не говорят.
3. Одна строка комментария на всю программу - совершено недостаточно.
4. Программа "замусорена" закомментированным кодом.
s-andriano вне форума Ответить с цитированием
Старый 03.06.2013, 22:13   #3
Juli)
 
Регистрация: 27.05.2013
Сообщений: 4
По умолчанию

помогите исправить((((очень нужно....
Juli) вне форума Ответить с цитированием
Старый 03.06.2013, 23:01   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Отформатировать - за Вас уже отформатировали.
Теперь мы должны переименовать переменные, расставить комментарии и удалить ненужные строки?
s-andriano вне форума Ответить с цитированием
Старый 03.06.2013, 23:41   #5
Juli)
 
Регистрация: 27.05.2013
Сообщений: 4
По умолчанию

подправила, не работает,что не так не пойму!
Код:
 program matrica;
var i,j,s :integer;
 begin

randomize;
// заполнение
for i := 1 to 10 do
    for j := 1 to 10 do
        s[i,j] := random((126) - 50)/13;
// сортировка, строки не трогаем только главную диагональ (по условию)
for i := 1 to 10 do
    for j := 1 to 10 - 1 do
        if (s[j,j] < s[j+1,j+1]) then
           begin
                bufer := s[j,j];
                s[j,j] := s[j+1,j+1];
                s[j+1,j+1] := byfer;
           end;
// обработка
for i := 1 to 10 do
    if s[i,i] > 0 then
       begin
       for j:= 1 to 10 do
           if j = i then
              continue
           else
               s[i,j] := 1;
       end
    else
        for j:= 1 to 10 do
           if j = i then
              continue
           else
               s[i,j] := 0;
Juli) вне форума Ответить с цитированием
Старый 04.06.2013, 08:23   #6
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
const
     Nmax=10;
var
   A:array[1..nmax,1..nmax] of real;
   x:Integer;
   i,j,n:byte;
   f:boolean;
   buf:real;
begin
     n:=10;
     Randomize;
     For i:=1 to n do
         begin
              for j:=1 to n do
                  begin
                       x:=random(126)-50;
                       a[i,j]:=x/13;
                       write(a[i,j]:6:2);
                  end;
              writeln;
         end;
     writeln('======================================');
     f:=true;
     while f do begin
           f:=false;
           for i:=1 to n-1 do
               if a[i,i]<a[i+1,i+1] then
                  begin
                       buf:=a[i,i];
                       a[i,i]:=a[i+1,i+1];
                       a[i+1,i+1]:=buf;
                       f:=true;
                  end;
     end;
     For i:=1 to n do
         begin
              for j:=1 to n do
                  begin
                       if (a[i,i]>0) and (i<>j) then a[i,j]:=1;
                       if (a[i,i]<0) and (i<>j) then a[i,j]:=0;
                       write(a[i,j]:6:2);
                  end;
              writeln;
         end;
end.
для n=5
Цитата:
-1.77 4.92 -3.00 3.23 -3.08
4.85 3.62 1.23 -3.31 4.15
-2.92 3.92 0.31 5.54 2.77
3.92 4.38 4.77 -0.38 1.69
0.77 5.00 -2.08 -0.77 5.69
=================================== ===
5.69 1.00 1.00 1.00 1.00
1.00 3.62 1.00 1.00 1.00
1.00 1.00 0.31 1.00 1.00
0.00 0.00 0.00 -0.38 0.00
0.00 0.00 0.00 0.00 -1.77
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что делать дальше с программой? Richik123 Паскаль, Turbo Pascal, PascalABC.NET 4 04.10.2012 18:47
Что за проблема с программой в VB Женька Good Помощь студентам 2 21.02.2012 20:33
Что-то не так в программе...не пойму что Karina_Vamp Помощь студентам 5 24.12.2010 21:06
Что-то с программой misher Общие вопросы Delphi 12 05.08.2010 15:26