Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Компоненты главной диагонали в одномерный массив, Ошибка 
V
    Опции темы
MAKSI
  Дата 12.2.2013, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 12.2.2013

Репутация: нет
Всего: нет



Дано:Записать в одномерный массив компоненты результирующей матрицы. Помогите разобраться с ошибкой: Нельзя изменять значение переменной цикла внутри этого цикла
Код
    program Zadanie3_Massiv;
    uses crt;
    const n=3;
    type mtr=array[1..n,1..n] of real;
     
    const A:mtr=((0.0,8.5,-1.3),(0.0,5.41,0.0),(9.0,-6.1,0.0));
    var A1:mtr;
    S1, S2: Real;
    i, j: Integer;
    begin
    Writeln('Исходная матрица');
    for i := 1 to n do
    begin
    for j := 1 to n do
    Write(A[i, j]: 6: 2);
    WriteLn
    end;
    S1 := 0;
    S2 := 0;
    for i := 1 to n do
    for j := 1 to n do
    if i<j then S1 := S1 + A[i, j]
    else if i>j then S2 := S2 + A[i, j];
    WriteLn('Сумма элементов, лежащих выше главной диагонали =', S1: 5: 1);
    WriteLn('Сумма элементов, лежащих ниже главной диагонали =', S2: 5: 1);
    WriteLn;
    WriteLN('Результирующая матрица');
    A1:=A;
    IF S1=S2 THEN
    for i := 1 to n do
    begin
    for j := 1 to n do
    Write(A[i, j]: 6: 2);
    WriteLN
    end;
    if S1>S2 THEN
    for i := 1 to n do
    begin
    for j := 1 to n do
    begin
    if i>j then A1[i,j]:=abs(A[i,j]);
    write(A1[i,j]: 6: 2);
    end;
    WriteLN;
    end;
    if S1<S2 THEN
    for i := 1 to n do
    begin
    for j := 1 to n do
    begin
    if i<j then A1[i,j]:=Abs(A[i, j]);
    write(A1[i,j]: 6: 2);
    END;
    begin
    WriteLN('Массив:');
    For i:=1 To n Do
    Write (A1[i,i], ' ');
    end;
    end;
    END.



Это сообщение отредактировал(а) volvo877 - 24.2.2013, 20:37
PM MAIL   Вверх
Vas
Дата 12.2.2013, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: нет
Всего: 28



Хоть бы номер строки с ошибкой указали. Вот в этом блоке begin..end правильно расставьте, а то у вас счетчик i от 1 до n, а внутри него еще один такой же счетчик опять с переменной i.
Код

    for i := 1 to n do
      begin
        for j := 1 to n do
         begin
          if i<j then A1[i,j]:=Abs(A[i, j]);
          write(A1[i,j]: 6: 2);
         END;
         begin
           WriteLN('Массив:');
           For i:=1 To n Do
             Write (A1[i,i], ' ');
         end;
      end;



--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
MAKSI
Дата 12.2.2013, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 12.2.2013

Репутация: нет
Всего: нет



Огромное спасибо Vas за подсказку. smile  !! Оказывается все просто
Код
for i := 1 to n do
 begin
  for j := 1 to n do
   begin
    if i<j then A1[i,j]:=Abs(A[i, j]);
    write(A1[i,j]: 6: 2);
   end;
  WriteLN;
end;
WriteLN;
 Write('Массив:  ');
  For i:=1 To n Do
 Write (A1[i,i],'  ');
END.

 
RESPECT smile 

Это сообщение отредактировал(а) volvo877 - 24.2.2013, 20:37
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

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

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0819 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.