Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 23.05.2019, 02:10   #1 (permalink)
priiirver
Новичок
 
Регистрация: 23.05.2019
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите с матрицей

Сумма столбцов. Задана двумерная матрица размерностью 12x12 элементов, заполненная случайными числами из диапазона [0, 100]. Найти, максимальный элемент и сумму элементов по столбцам таблицы, вычесть из каждой суммы максимальный элемент, вывести отрицательные элементы, результаты вывести на экран и записать в файл "output.txt"
priiirver вне форума   Ответить с цитированием

Старый 23.05.2019, 02:10
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Некоторые темы по содержанию очень напоминают вашу тему

Проблема с матрицей?
Проблемы с матрицей на ноуте
Помогите найти USB-микроскоп c матрицей типа CCD
Помогите с матрицей
Помогите пожалуйста с квадратной матрицей в Паскале!

Старый 23.05.2019, 02:11   #2 (permalink)
priiirver
Новичок
 
Регистрация: 23.05.2019
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Частично я сделал задание, но дальше не знаю как, помогите

uses crt;
const n=12;
var a:array[1..n,1..n] of byte;
i,j:byte;
s:integer;
f:text;
begin
clrscr;
randomize;
assign(f,'output.txt');
rewrite(f);
writeln('Матрица');
writeln(f,'Matrica');
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(101);
write(a[i,j]:3);
write(f,a[i,j]:3);
end;
writeln;
writeln(f);
end;
writeln('Суммы по столбцам');
writeln(f,'Summy po stolbcam');
for j:=1 to n do
begin
s:=0;
for i:=1 to n do
s:=s+a[i,j];
writeln(j:2,'=',s);
writeln(f,j:2,'=',s);
end;
close(f);
write('Результат записан в файл output.txt');
readkey
end.
priiirver вне форума   Ответить с цитированием
Старый 23.05.2019, 10:32   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от priiirver Посмотреть сообщение
Частично я сделал задание, но дальше не знаю как, помогите
Помогаю.
Но прежде — одно замечание. Из задания я напрочь не понял пассаж про "отрицательные элементы": откуда их взять и куда вывести. Дело в том, что если предполагается вычитание максимального элемента КАЖДОГО ИЗ СТОЛБЦОВ из соответствующей суммы, то тут никаких отрицательных элементов не может появиться в принципе. Если же речь идёт о нахождении максимального элемента ВСЕЙ МАТРИЦЫ с последующим его вычитанием из сумм по столбцам, то тут появление отрицательных элементов хоть и возможно, но крайне маловероятно (например, если ВСЕ элементы столбца не превышают 8, а максимальный элемент — где-то в районе 100). Остановился на последнем варианте, хоть как-то осмысленном.
Код:
uses crt;
const n=12;
var
 a:array[1..n,1..n] of byte;
 sums:array[1..n] of integer;
 i,j,max_el:byte;
 f:text;
begin
 clrscr;
 randomize;
 assign(f,'output.txt');
 rewrite(f);
 writeln('Matrix:');
 writeln(f,'Matrix:');
 max_el:=0;
 for i:=1 to n do
  begin
   for j:=1 to n do
    begin
     a[i,j]:=random(101);
     if a[i,j]>max_el then max_el:=a[i,j];
     write(a[i,j]:5);
     write(f,a[i,j]:5);
    end;
   writeln;
   writeln(f);
  end;
 writeln;
 writeln(f);
 writeln('Maximal element is ',max_el);
 writeln(f,'Maximal element is ',max_el);
 writeln;
 writeln(f);
 writeln('Column sums:');
 writeln(f,'Column sums:');
 for j:=1 to n do
  begin
   sums[j]:=0;
   for i:=1 to n do
    sums[j]:=sums[j]+a[i,j];
   write(sums[j]:5);
   write(f,sums[j]:5);
  end;
 writeln;
 writeln(f);
 writeln;
 writeln(f);
 writeln('Negatives:');
 writeln(f,'Negatives:');
 for j:=1 to n do
  begin
   if (sums[j]-max_el)<0 then
    begin
     write((sums[j]-max_el):5);
     write(f,(sums[j]-max_el):5);
    end
   else
    begin
     write('  pos');
     write(f,'  pos');
    end;
  end;
 close(f);
 writeln;
 writeln;
 writeln('Data is saved in output.txt');
 readkey
end.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 12:19.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.