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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2015, 01:01   #1
hicmoon
Пользователь
 
Регистрация: 08.12.2014
Сообщений: 19
По умолчанию Замена в паскале.

Элемент находит, сумму определяет, а заменять макс. элемент на сумму и выводить новую матрицу не выходит. Помогите, пожалуйста.

Код:
program lab3;
const
line=3;
column=4;
var
a: array[1..line, 1..column] of real;
i, j, x4: integer;
max, s: real;
begin
writeln ('Введите элементы матрицы');
for i:=1 to line do
for j:=1 to column do
read (a[i, j]);
for i:=1 to line do begin
for j:=1 to column do
write (a[i, j], ' ');
writeln;
end;

for j:=4 to column do begin
max:=a[1, j];
for i:=1 to line do
if max<a[i, j] then begin
max:=a[i, j];
if j=4 then x4:=i;
end;
end;
writeln ('Максимальный элемент ', j, '-ого столбца = ', max);

s:=0;
for i:=1 to line do begin
for j:=1 to column do begin
a[i, j]:=exp(1-a[i, j])+10;
if i=2 then s:=s+a[i, j];
end;
end;
write ('Сумма во второй строке по формуле = ',s:0:2);

for i:=1 to line do begin
for j:=1 to column do begin
a[x4, 4]:=s;
writeln;
write (a[i, j], ' ');

end;
end;
end.
Результат работы:


Введите элементы матрицы
1
2
3
4
1
2
3
5
1
2
3
6
1 2 3 4
1 2 3 5
1 2 3 6
Максимальный элемент 4-ого столбца = 6
Сумма во второй строке по формуле = 41.52
11
10.3678794411714
10.1353352832366
10.0497870683679
11
10.3678794411714
10.1353352832366
10.0183156388887
11
10.3678794411714
10.1353352832366
41.5215303632968
hicmoon вне форума Ответить с цитированием
Старый 10.01.2015, 09:50   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тебе нужно искать не само значение элемента, а его координаты. А потом по этим найденным координатам менять значение на сумму.
Понял? Нет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.01.2015, 15:55   #3
hicmoon
Пользователь
 
Регистрация: 08.12.2014
Сообщений: 19
По умолчанию

Да, я понимаю, но координаты одной из ячеек у меня есть. А сумма - просто значение, не находящееся в ячейке.
hicmoon вне форума Ответить с цитированием
Старый 10.01.2015, 17:21   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Раз есть координаты минимума то в чем проблема?
Мне кажется что ты всетки не понял что я имею ввиду. Поясняю: Заводишь две переменки: imax,jmax. В цикле проверяешь if a[i,j]<a[imax,jmax] then Запоминаем i и j в эти переменки.
Понял что я хочу сказать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.01.2015, 19:18   #5
hicmoon
Пользователь
 
Регистрация: 08.12.2014
Сообщений: 19
По умолчанию

У меня они известны уже как a[x4, 4]. Это индекс той самой ячейки. Только вот если я подставлю туда просто s, то он, видимо, всё также считает значения по формуле, а не просто заменяет мне на найденную сумму.
Мы говорим об одном и том же, да? Поправьте, если я снова не о том.
hicmoon вне форума Ответить с цитированием
Старый 10.01.2015, 19:32   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Эххх... Ладно. Попробуем зайтить через чюрдак:
Код:
program lab3;
const
line=3;
column=4;
var
a: array[1..line, 1..column] of real;
i, j, x4: integer;
max, s: real;
begin
writeln ('Введите элементы матрицы');
for i:=1 to line do begin
 for j:=1 to column do begin
  read (a[i, j]);
  s:=s+a[i,j];
 end;
end; writeln;

for i:=1 to line do begin
 for j:=1 to column do begin
  write (a[i, j], ' ');
 end; writeln;
end; writeln;

for j:=1 to column do begin
 x4:=1;
 for i:=2 to line do  if a[x4,j]<a[i, j] then x4:=i;
 writeln ('Максимальный элемент ', j, '-ого столбца = ', a[x4,j]);
 a[x4,j]=s;
end;

for i:=1 to line do begin
 for j:=1 to column do begin
  write (a[i, j], ' ');
 end; writeln;
end; writeln;

end.
Учитывая что ты как кибальчиш молчиш стелепатировал как смог.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.01.2015, 19:45   #7
hicmoon
Пользователь
 
Регистрация: 08.12.2014
Сообщений: 19
По умолчанию

Ох, спасибо вам. Теперь разобралась со всем.
hicmoon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена Яр|/||< (^_^) Паскаль, Turbo Pascal, PascalABC.NET 3 22.09.2009 13:25
Замена кода программы с Delhi5 на Delhi7 либо замена базы данных с Acessa на MySQL DorianLeroy Фриланс 8 18.02.2009 18:52
привет всем! помогите пожалуйста решить две задачи на паскале. я в паскале полный ноль. Пищенок Саша Паскаль, Turbo Pascal, PascalABC.NET 5 20.01.2009 13:46
Замена Патрон Общие вопросы Delphi 6 05.11.2008 15:45