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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2011, 14:36   #1
ламерок)))
Новичок
Джуниор
 
Регистрация: 14.01.2011
Сообщений: 3
По умолчанию Ребята не могу написать прогу на BP7....точнее не работат

задача-
В матрице A(m x m) найти сумму элементов четных столбцов. Если эта сумма положительна, то все элементы нечет-ных строк возвести в квадрат. В противном случае ко всем эле-ментам побочной диагонали прибавить число 2,не работат в BP7(((((

Код:
uses crt;
var a:array[1..100,1..100]of integer;
    m,i,j,s:integer;
begin
clrscr;
writeln('vvedite rasmernost massiva');
readln(m);
randomize;
for i:=1 to m do begin
    for j:=1 to m do begin
        a[i,j]:=random(10)-4;
        write(a[i,j]:3);
        if j mod 2=0 then s:=s+a[i,j];
    end;writeln;
end;writeln;
writeln('summa elementov chetnih srolbcov ',s);
if s>0 then begin
   for i:=1 to m do begin
       for j:=1 to m do begin
           if i mod 2 <>0 then a[i,j]:=sqr(a[i,j]);
           write(a[i,j]:3);
       end;writeln;
   end; writeln;
end else begin
         for i:=1 to m do begin
             for j:=1 to m do begin
                 if j=m+1-i then a[i,j]:=a[i,j]+2;
                 write(a[i,j]:3);
             end;writeln;
         end;
    end;
readln;
end.
помогите переделать


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

Последний раз редактировалось Serge_Bliznykov; 14.01.2011 в 18:34.
ламерок))) вне форума Ответить с цитированием
Старый 14.01.2011, 15:06   #2
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Зачем так много бегинов - эндов? Почему код не разбит на куски (визуально и не оформлен). Немудрено что в нём трудно найти ошибки, вообщем подправил, держите
Код:
uses crt;
var a:array[1..100,1..100]of integer;
m,i,j,s:integer;

begin

clrscr;
writeln('vvedite rasmernost massiva');
readln(m);
randomize;

for i:=1 to m do 
for j:=1 to m do 
  begin
     a[i,j]:=random(10)-4;
     write(a[i,j]:3);
     if j mod 2=0 then s:=s+a[i,j];
  end;
writeln;
writeln;
writeln('summa elementov chetnih srolbcov ',s);

if s>0 then begin
                  for i:=1 to m do 
                  for j:=1 to m do 
                    if i mod 2<>0 then begin
                                                a[i,j]:=sqr(a[i,j]);
                                                write(a[i,j]:3);
                                              end
else begin
         for i:=1 to m do
         for j:=1 to m do
           if j=m+1-i then a[i,j]:=a[i,j]+2;
           write(a[i,j]:3);
      end
end;
readln;
end.
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 14.01.2011, 15:10   #3
ламерок)))
Новичок
Джуниор
 
Регистрация: 14.01.2011
Сообщений: 3
По умолчанию

Спасибо большое!!!!))))

блин второе условие все равно не работат......когда сумма нечетная он должен прибавлять 2....а он вообще не показывает в той строке ничего

Последний раз редактировалось Stilet; 14.01.2011 в 23:09.
ламерок))) вне форума Ответить с цитированием
Старый 14.01.2011, 17:33   #4
Shift_sk
Форумчанин
 
Регистрация: 20.11.2010
Сообщений: 221
По умолчанию

Код:
else begin
         for i:=1 to m do
         for j:=1 to m do
           if j=i then a[i,j]:=a[i,j]+2;
           write(a[i,j]:3);
      end
end;
readln;
end.
попробуй так!
www.bezperepl.at.ua
Код:
...
Shift_sk вне форума Ответить с цитированием
Старый 14.01.2011, 18:07   #5
ламерок)))
Новичок
Джуниор
 
Регистрация: 14.01.2011
Сообщений: 3
По умолчанию

не работат(((( я уже много разных вариантов писал....всеравно при отрицательном не выдает ответ
ламерок))) вне форума Ответить с цитированием
Старый 14.01.2011, 19:45   #6
Shift_sk
Форумчанин
 
Регистрация: 20.11.2010
Сообщений: 221
По умолчанию

побочной диагонали это как?

Код:
uses crt;
var a:array[1..100,1..100]of integer;
m,i,j,s:integer;

begin

clrscr;
writeln('vvedite rasmernost massiva');
readln(m);
randomize;

for i:=1 to m do  begin
for j:=1 to m do
  begin
     a[i,j]:=random(10)-4;
     write(a[i,j]:3);
     if j mod 2=0 then s:=s+a[i,j];
  end;
  writeln;
  end;
writeln;
writeln;
writeln('summa elementov chetnih srolbcov ',s);

if s>0 then begin
                  for i:=1 to m do
                  for j:=1 to m do
                    if i mod 2<>0 then begin
                                                a[i,j]:=sqr(a[i,j]);
                                                write(a[i,j]:3);
                                              end;
                                              end
else begin
         for i:=1 to m do
         for j:=1 to m do
           if j=i then begin a[i,j]:=a[i,j]+2;
           write(a[i,j]:3);
           end;
      end;
readln;
end.
мне кажеться работает правильно!
у тебя было пару крашей...
а особенно с бегином!
www.bezperepl.at.ua
Код:
...

Последний раз редактировалось Stilet; 14.01.2011 в 23:10.
Shift_sk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу написать прогу((( dagggggger Паскаль, Turbo Pascal, PascalABC.NET 3 17.12.2010 15:02
Ребята, не могу переустановить Винду! alenka1405 Windows 3 14.12.2010 15:59
не могу найти ошибку,точнее как исправить!(Задание с файлами) Ксения Вадимовна)) Помощь студентам 0 06.12.2010 22:39