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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2016, 12:16   #1
Аелд
Пользователь
 
Регистрация: 15.11.2014
Сообщений: 33
По умолчанию Разработать программу нисходящим способом

Если сумма двух первых строк матрицы A меньше суммы элементов двух последних ее строк, изменить матрицу А, прибавив к элементам каждой строки заданные элементы X1, X2,..., Xn.
Вот моя программа.Проблема в том, что дальше вывода массива X она ничего не делает.
Код:
type matr1=array [1..5, 1..5] of real;
     matr2=array [1..5] of real;
var A:matr1;
    X:matr2;
    fl:boolean;
    i,j,N:integer;
Procedure PP1(A:matr1; N:integer; var fl:boolean);
var i,j:integer;
    s1,s2:real;
begin
  s1:=0;
  s2:=0;
  fl:=true;
  for j:=1 to 5 do
   begin
    for i:=1 to 2 do
    s1:=s1+A[i,j];
   end;
  for i:=1 to 5 do
    begin
     for j:=4 to 5 do
     s2:=s2+A[i,j];
    end;
  if s1<s2 then
    fl:=false;
end;
Procedure PP2(X:matr2; N:integer; var A:matr1);
var i,j:integer;
begin
  for i:=1 to 5 do
   begin
    for j:=1 to 5 do
     A[i,j]:=A[i,j]+X[i];
     write(A[i,j]:2:0);
   end;
end;
Begin
  writeln('Введите массив X: ');
  for i:=1 to 5 do
  read(x[i]);
  writeln('Введите двумерный массив A: ');
  for i:=1 to n do
   begin
    for j:=1 to n do
    read(A[i,j]);
    readln;
   end;
  PP1(A,5,fl);
  if (fl=true) then
      PP2(X,5,A);
 for i:=1 to 5 do
  begin 
   for j:=1 to 5 do
   write(A[i,j]):4:0, ' ');
end.

Последний раз редактировалось Аелд; 27.11.2016 в 11:19.
Аелд вне форума Ответить с цитированием
Старый 27.11.2016, 13:04   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
const N=5;
type matr1=array [1..N, 1..N] of real;
     matr2=array [1..N] of real;
var A:matr1;
    X:matr2;
    fl:boolean;
    i,j:integer;

Procedure PP1(A:matr1; N:integer; var fl:boolean);
var i,j:integer;
    s1,s2:real;
begin
  s1:=0;
  s2:=0;
  fl:=false;
  for j:=1 to N do
   begin
    for i:=1 to 2 do
    s1:=s1+A[i,j];
   end;
  for i:=1 to N do
    begin
     for j:=N-1 to N do
     s2:=s2+A[i,j];
    end;
  if s1<s2 then
    fl:=true;
end;

Procedure PP2(X:matr2; N:integer; var A:matr1);
var i,j:integer;
begin
  for i:=1 to 5 do
   begin
    for j:=1 to 5 do
    begin
     A[i,j]:=A[i,j]+X[i];
     write(A[i,j]:2:0,'  ');
    end;
    writeln; 
   end;
end;

Begin
  writeln('Ââåäèòå ìàññèâ X: ');
  for i:=1 to 5 do
     readln(x[i]);
  writeln('Ââåäèòå äâóìåðíûé ìàññèâ A: ');
  for i:=1 to n do
    for j:=1 to n do
    begin
      write(i,', ',j,' = ');
      readln(A[i,j]);
    end;
  PP1(A,5,fl);
  if fl then
      PP2(X,5,A);
 for i:=1 to 5 do
 begin
   for j:=1 to 5 do
    write(A[i,j]:4:0, ' ');
   writeln; 
 end;
 readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 27.11.2016, 13:39   #3
Аелд
Пользователь
 
Регистрация: 15.11.2014
Сообщений: 33
По умолчанию

Спасибо. Понял свою ошибку)))
Аелд вне форума Ответить с цитированием
Старый 27.11.2016, 13:48   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 27.11.2016, 13:59   #5
Аелд
Пользователь
 
Регистрация: 15.11.2014
Сообщений: 33
По умолчанию

Не подскажите, в какую часть программы нужно "влепить" сообщение об измененной матрице?
Аелд вне форума Ответить с цитированием
Старый 27.11.2016, 14:11   #6
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
if fl then
begin
      Writeln('Измененная матрица:');
      PP2(X,5,A);
end;
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Cоставить программу с процедурой на задачу: разработать программу "Вокзал" которая выдает сведения Елена Мин Паскаль, Turbo Pascal, PascalABC.NET 0 12.12.2015 20:48
Разработать алгоритм и программу нисходящим способом , предполагая заданной матрицу А из 5 строк и 5 столбцов или одномерные Tanyahappy Помощь студентам 0 17.11.2015 00:46
Написать программу, которая будет производить отделение корней графическим способом и уточнить решение итерационным алгоритмом Olecinia Паскаль, Turbo Pascal, PascalABC.NET 28 18.12.2014 16:41
Составить программу расчёта неритмичных потоков табличным способом (методика А.К. Шрейбера) в среде Microsoft Excel. grial94 Microsoft Office Excel 1 01.07.2013 17:23
разработать алгоритм и программу нисходящим способом,предполагая заданной матрицу из 5 строк и 5 столбцов Shuma Помощь студентам 2 28.11.2008 20:27