Двумерные массивы
Помогите пожалуйста решить 3 задачи
Модифицировать программу так, чтобы она осуществляла поиск подматрицы n,в которой сумма элементов главной диагонали наибольшая writeln('Введите размер подматрицы:');readln(m); randomize; for i:=1 to n do for j:=1 to n do a[i,j]:=trunc(random*50) ; writeln('Сформированная матрица'); for i:= 1 to n do begin for j:=1 to n do write(a[i,j],' '); writeln; end; for i:=1 to m do for j:=1 to m do if i=j then s:=s+a[i,j]; for l:=1 to n-m+1 do for k:=1 to n-m+1 do begin for i:=1 to m do for j:=1 to m do b[i,j]:=a[l+i-1,k+j-1]; s:=0; for i:=1 to m do for j:=1 to m do if i=j then s:=s+b[i,j]; if s>max then begin end; end; writeln('Сумма элементов=',s); end. Модифицировать программу так, чтобы она находила решение системы алгебраических уравнений 4 порядка с любыми вещественными коэффициентами program zadazna_5; const a:array[1..3,1..3] of integer=((2,1,1),(1,2,1),(1,1,2)); b:array[1..3] of integer=(7,8,9); var i,j:integer; delta,delta1,delta2,delta3,x1,x2,x3:real; begin delta:=a[1,1]*a[2,2]*a[3,3]+a[1,2]*a[2,3]*a[3,1]+a[1,3]*a[2,1]*a[3,2]-a[3,1]*a[2,2]*a[1,3]-a[3,2]*a[2,3]*a[1,1]-a[3,3]*a[2,1]*a[1,2]; delta1:=b[1]*a[2,2]*a[3,3]+a[1,2]*a[2,3]*b[3]+a[1,3]*b[2]*a[3,2]-b[3]*a[2,2]*a[1,3]-a[3,2]*a[2,3]*b[1]-a[3,3]*b[2]*a[1,2]; delta2:=a[1,1]*b[2]*a[3,3]+b[1]*a[2,3]*a[3,1]+a[1,3]*a[2,1]*b[3]-a[3,1]*b[2]*a[1,3]-b[3]*a[2,3]*a[1,1]-a[3,3]*a[2,1]*b[1]; delta3:=a[1,1]*a[2,2]*b[3]+a[1,2]*b[2]*a[3,1]+b[1]*a[2,1]*a[3,2]-a[3,1]*a[2,2]*b[1]-a[3,2]*b[2]*a[1,1]-b[3]*a[2,1]*a[1,2]; x1:=delta1/delta; x2:=delta2/delta; x3:=delta3/delta; writeln('Найденное решение:'); writeln('x1=',x1,'x2=',x2,'x3=',x3); end. program zadazna_3; label vozvrat; var i,j,k,n,m,s:integer; c:array[1..100,1..100] of integer; begin vozvrat: write('Введите размер матрицы:'); read(n); if(n<10)or (n>-10) then begin writeln randomize; k:=0; m:=0; for i:=1 to n do for j:=1 to n do begin c[i,j]:=random(10); if c[i,j]>0 then if j0 then inc(s); m:=s*k; end; end; for i:=1 to n do begin for j:=1 to n do writeln('***************************************** '); end; writeln('Количество нулевых=',k); writeln('Произведение положительных чисел=',m); end; end. Модифицировать программу так, чтобы она находила произведение положительных и количество нулевых элементов матрицы, расположенных под главной диагональю. Все элементы матрицы должны принадлежать диапозону [-10;`10] |
Цитата:
Код:
Const 1. Если Вам нужно получать ЦЕЛЫЕ случайные числа, то это делается с помощью оператора Random(N), т.е. С АРГУМЕНТОМ. Например, Random(50) возвращает ЦЕЛЫЕ числа в диапазоне от 0 до 49 включительно. Действительные числа от 0 до 1 возвращает оператор Random БЕЗ АРГУМЕНТА. Здесь его использовать не надо. 2. При поиске суммы диагональных элементов квадратной матрицы двойной цикл с отбором по i=j НЕ НУЖЕН. Гораздо проще так: for i:=1 to n do S:=S+a[i,i]; |
Цитата:
|
Цитата:
По всей вероятности, речь в задаче идёт о диапазоне значений элементов матрицы. Кроме того, ну что это за метка vozvrat? Зачем? К чему? Вообще я настоятельно рекомендую Вам ЗАБЫТЬ об этих гнусных Label и Goto: они должны применяться в абсолютно исключительных случаях, к каковым Ваш не относится. Вообще же последняя задачка столь проста, что Вы, я уверен, сможете грамотно написать программу самостоятельно. Конечно, поможем, если что. |
Я вас конечно понимаю,что проще написать.но это паскаль..((((и задание именно модифицировать.у меня не выходит..сами видите.
помогите пожалуйста |
id377261884
можете вк написать мне |
Цитата:
Цитата:
Цитата:
|
Ух, только что рассмотрел: Вам решение системы линейных уравнений нужно ЧЕРЕЗ ОПРЕДЕЛИТЕЛИ? Четвертого порядка?!! Ну уж нет, увольте: тут надо либо выписывать на целую страницу компоненты-произведения, причем ни разу не наврать, что почти невозможно, либо клепать процедуру, лучше рекурсивную, позволяющую вычислить определитель любого порядка через разложение по минорам с учётом алгебраических дополнений.
И то, и другое - дурная, муторная и тяжелая работа. А главное, ненужная: метод Гаусса гораздо проще и эффективней. Хотя, конечно, исследовать систему на совместимость с определителями легче. Но вот считать их... |
Ладно, нарисовал всё-таки решение последней задачи. Обратите внимание на тип произведения: это очень большое число, поэтому никакое Integer тут не годится.
Код:
Const |
Спасибо огромное.
|
Часовой пояс GMT +4, время: 13:45. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.