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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2015, 23:17   #1
Триш
Пользователь
 
Регистрация: 13.05.2015
Сообщений: 18
По умолчанию Срочно!!Нужно доделать программу

Безымянный.JPG
вот код
Код:
Program Lab9;
const
  n = 3;
 
type
  Index = 1..n;
  Vector = array[Index] of Integer;
  Matrix = array[Index] of Vector;
 
procedure VectorSum(const V: Vector; var Sum: Integer);
var
  i: Index;
begin
  Sum := 0;
  for i := 1 to n do
    Inc(Sum, V[i]);
end;
 
procedure VectorPrint(const V: Vector);
var
  i: Index;
begin
  for i := 1 to n do
    Write(V[i]:4);
  WriteLn;
end;
 
procedure MatrixCreate(var M: Matrix);
var
  i, j: Index;
begin
  Randomize;
  for i := 1 to n do begin
    for j := 1 to n do
      M[i,j] := Random(100);
  end;
end;
 
procedure MatrixPrint(const M: Matrix);
var
  i: Index;
begin
  for i := 1 to n do
    VectorPrint(M[i]);
end;
var
  A: Matrix;
  V1, V2: Vector;
  i: Index;
  S1, S2: Integer;
 
begin
  MatrixCreate(A);
  MatrixPrint(A);
  for i := 1 to n do begin
    V1[i] := A[i,i];
    V2[i] := A[i,n-i+1];
  end;
  WriteLn;
  Write('V1:');
  VectorPrint(V1);
  Write('V2:');
  VectorPrint(V2);
  VectorSum(V1, S1);
  VectorSum(V2, S2);
  WriteLn('Sum(V1) = ', S1);
  WriteLn('Sum(V2) = ', S2);
  if S1 < S2 then
    WriteLn('Pobochanya bolshe')
  else
    WriteLn('Glavnaya bolsche');
  ReadLn;
end.
теперь нужно сделать так, чтобы то число, которое получилось в сумме, встало на место чисел в главной и побочной матрице
ну например было
1 2 3
4 5 6
7 8 9
теперь нужно:
s1 2 s2
4 s1 6
s2 8 s1
помогите пожалуйста)

Последний раз редактировалось Аватар; 10.06.2015 в 23:21.
Триш вне форума Ответить с цитированием
Старый 10.06.2015, 23:34   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
встало на место чисел в главной и побочной матрице
Не матрицы, а диагонали.
____________________

Вот наброски кода.
Код:
{пусть s1, s2 - нужная сумма}

{вставляем в главную диагональ}
for i:=1 to N do begin
	a[i, i]:=s1;
end;

{побочная}
for i:=1 to N do begin
	a[i, N-i+1]:=s2;
end;
Вадим Мошев вне форума Ответить с цитированием
Старый 11.06.2015, 00:22   #3
Триш
Пользователь
 
Регистрация: 13.05.2015
Сообщений: 18
По умолчанию

ну да,диагонали
проблема в том, что я не знаю как сделать, чтобы выводилось это
Триш вне форума Ответить с цитированием
Старый 11.06.2015, 00:29   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Что выводилось?
Вадим Мошев вне форума Ответить с цитированием
Старый 11.06.2015, 00:31   #5
Триш
Пользователь
 
Регистрация: 13.05.2015
Сообщений: 18
По умолчанию

матрица, в которой числа со значением суммы в главной и побочной диагоналях
Триш вне форума Ответить с цитированием
Старый 11.06.2015, 10:52   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
матрица, в которой числа со значением суммы в главной и побочной диагоналях
А ты где этот код взял? Он совсем не верный. Там нет работы с матрицами, соответственно и вывести ничего нельзя.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.06.2015, 13:09   #7
Триш
Пользователь
 
Регистрация: 13.05.2015
Сообщений: 18
По умолчанию

ну у меня же считает все по заданию и выводит, почему не верный
сейчас самое главное переделать,чтобы второе задание работало
Триш вне форума Ответить с цитированием
Старый 13.06.2015, 13:12   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не верный, потому что в нем нет намека на матрицу. Работа с одномеркой там есть, а вот для работы с матрицей он, если понимать задание буквально, непригоден.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.06.2015, 13:41   #9
Триш
Пользователь
 
Регистрация: 13.05.2015
Сообщений: 18
По умолчанию

как тогда правильно?
Триш вне форума Ответить с цитированием
Старый 13.06.2015, 15:23   #10
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

В конце дописать
Код:
  if S1 < S2 then
    WriteLn('Pobochanya bolshe')
  else
    WriteLn('Glavnaya bolsche');
  For i:=1 to n do
  begin
     A[i,n-i+1]:=s2;
     A[i,i]:=s1;
  end;
  MatrixPrint(A);
  ReadLn;
Сойдет?
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно доделать программу nightly Помощь студентам 3 24.04.2012 14:52
Нужно доделать программу Lesnik58 Общие вопросы C/C++ 0 04.04.2012 17:36
Нужно доделать,написать программу на С++,очень надо! Semyon_93 Помощь студентам 0 04.06.2011 06:25
нужно доделать программу по поводу сортировки по возрастанию студент АГНИ Помощь студентам 0 26.05.2011 01:20
Нужно Доделать программу, завтра сдавать!( 13-th Общие вопросы C/C++ 2 11.06.2010 16:55