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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2009, 21:23   #1
Fantazerishka
Пользователь
 
Регистрация: 23.09.2009
Сообщений: 62
По умолчанию подсчитывать сумму главной и побочной диагонали

Всем привет. Я попытался написать программу, но у меня выдает ошибку, а найти её не могу, в моей глючной портабл версии не показывает какие присутствуют в коде ошибке.
Программа по идее должна создавать матрицу 5 на 5 и подсчитывать сумму главной и побочной диагонали:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  i,j,k,g,q:integer;
  a:array[1..5,1..5] of integer;
  s:string;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
for i:=1 to 5 do
for j:=1 to 5 do
a[i,j]:=random(101)-50;
Memo1.Lines.Add('Matrix created');
end;

procedure Matrix;
begin
for i:=1 to 5 do begin
s:='';
for j:=1 to 5 do begin
k:=length(IntToStr(a[i,j]));
case k of
1: s:=s+IntToStr(a[i,j])+'   ';
2: s:=s+IntToStr(a[i,j])+'  ';
3: s:=s+IntToStr(a[i,j])+' ';
end; end;
Memo1.Lines.Add(s);
end;

procedure slaja;
begin
g:=a[1,1]+a[2,2]+a[3,3];
q:=a[3,1]+a[2,2]+a[3,1];
Memo1.Lines.Add('Ãëàâíàÿ'+IntToStr(g));
Memo1.Lines.Add('Ïîáî÷íàÿ'+IntToStr(q));
end;
end.
Я понимаю что у меня это реализованно убого, но ничего лучше моей мозг придумать не смог так как ночью он плохо переваривает информацию.

П.С. и ещё если кому не лень не могли бы вы вставить туда объект TChart который бы показывал соотношение сумм диагоналей, просто просили с ним, а портабл при его вставке зависает напрочь.
Очень прошу помочь)

Последний раз редактировалось AlDelta; 14.10.2009 в 21:30.
Fantazerishka вне форума Ответить с цитированием
Старый 14.10.2009, 21:54   #2
BSka
Новичок
Джуниор
 
Регистрация: 14.10.2009
Сообщений: 2
По умолчанию

Исправил.

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
 procedure Matrix;
 procedure slaja;
  end;

var
  Form1: TForm1;
  i,j,k,g,q:integer;
  a:array[1..5,1..5] of integer;
  s:string;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
randomize;
for i:=1 to 5 do
for j:=1 to 5 do
a[i,j]:=random(101)-50;
Memo1.Lines.Add('Matrix created');
matrix;
slaja;
end;

procedure TForm1.Matrix;
begin
for i:=1 to 5 do begin
s:='';
for j:=1 to 5 do begin
k:=length(IntToStr(a[i,j]));
case k of
1: s:=s+IntToStr(a[i,j])+'   ';
2: s:=s+IntToStr(a[i,j])+'  ';
3: s:=s+IntToStr(a[i,j])+' ';
end; end;
Memo1.Lines.Add(s);
end; end;

procedure TForm1.slaja;
begin
g:=0;
q:=0;
For i:=1 to 5 do
For j:=1 to 5 do
if i=j then g:=g+a[i,j] else
if i+j=6 then q:=q+a[i,j];
Memo1.Lines.Add('Glavnaya'+IntToStr(g));
Memo1.Lines.Add('Pobochnaya'+IntToStr(q));
end;
BSka вне форума Ответить с цитированием
Старый 14.10.2009, 21:55   #3
Fantazerishka
Пользователь
 
Регистрация: 23.09.2009
Сообщений: 62
По умолчанию

Жаль что тему переименовали (я сам виноват конечно), просто успел заметить что в подобные заходят в 2 раза реже чем в остальные)))

BSka огромное спасибо и плюсик) Только посмотрев на твой вариант сразу увидел все что я по глупости пропустил)) Ещё раз спасибо)

Последний раз редактировалось Stilet; 15.10.2009 в 09:30.
Fantazerishka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal] найти сумму элементов лежащих ниже побочной диагонали Рамик Помощь студентам 12 28.03.2011 22:53
Найти сумму парных элементов матрицы v[4][4].Расположенных ниже главной диагонали. Black_Angel91 Помощь студентам 11 21.04.2009 20:51
Вычислить сумму элементов главной и побочной диагонали двумерного массива , найти среднее арифметическое neBu4kaMaXiM Помощь студентам 7 24.02.2009 15:58
Оптимизировать алгоритм вычисления сумм элементов главной и побочной диагонали в матрице - Delphi r9m Помощь студентам 5 04.02.2009 11:01
Найти отношения суммы элементов главной диагонали и суммы элементов побочной диагонали квадратной матрицы Elmander Помощь студентам 2 21.06.2007 07:15