Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.140.190.147] |
|
Сообщ.
#1
,
|
|
|
Подскажите как решить задачу. Подпрограмма формирует массив и считает элементы главной диагонали матрицы.
|
Сообщ.
#2
,
|
|
|
И что потом с массивом? Передавать его в вызывающую программу? Что должна вернуть подпрограмма? Зачем считать
Цитата ArniLand @ , что потом с этим "счетом" делать? Откуда вообще взялась матрица, если был массив?элементы главной диагонали матрицы Ты задачу-то нормально поставь... |
Сообщ.
#3
,
|
|
|
1) процедура заполнение матрицы размерностью n * n (кстати матрицу возьми квадратнои..в теории прямоугольных матриц вроде тоже есть главные диагонали, но чтобы не рисковать...)
2) процедура печати матрицы 3) функция, возвращающая элементы главнои диагонали (формула для элементов главнои диагонали: if(i = j) then) P.S. у меня нет ни одного компилятора под 32 бита, а код на TP 7.0. вдруг не проидет.... Добавлено Цитата volvo877 @ Ты задачу-то нормально поставь... +1 более детально условие.... |
Сообщ.
#4
,
|
|
|
Цитата FasterHarder @ Блин... Ты опять бред пишешь? С какого перепуга процедура? С какого перепуга N*N? процедура заполнение матрицы размерностью n * n Цитата FasterHarder @ В таком случае скрой этот раздел, и больше сюда не заходи У меня тоже нет ни одного компилятора Пролога, я ж не даю свои советы в том разделе... И в Java тоже не захожу, ибо ее у меня тоже нет... у меня нет ни одного компилятора под 32 бита |
Сообщ.
#5
,
|
|
|
Цитата volvo877 @ если был массив массив кстати не значит одномерныи массив...двумерныи тоже является массивом...!... матрица, это уже конечно двумерныи имеется ввиду, значит под массивом ТС понимал изначально двумерныи массив... Цитата volvo877 @ С какого перепуга процедура? а зачем функциеи заполнять массив!!...для чего придуманы var - параметры!... Цитата volvo877 @ С какого перепуга N*N? уверен на 99% (можете считать меня телепатом), что ему нужна именно квадратная матрица, а ее размерность N * N... Цитата volvo877 @ В таком случае скрой этот раздел, и больше сюда не заходи ну если поставите R / O, тогда точно не заиду, а так иногда буду заглядывать!.... у ТС стоит простая задача, которую нужно решить с помощью подпрограмм (из школы или ВУЗа задачка), поэтому я и разбил на подпрограммы... |
Сообщ.
#6
,
|
|
|
volvo877,
Двухмерный массив нужно сформировать в процедуре, передать его в функцию и там подсчитать элементы главной диагонали. Затем вернуть подсчитаное значение в основную программу. Есть ли где то решение аналогичных задач? |
Сообщ.
#7
,
|
|
|
мда..
|
Сообщ.
#8
,
|
|
|
FasterHarder, а более подробный ответ, можно?
|
Сообщ.
#9
,
|
|
|
program Array2D; const MaxDimention = 10; type TElementType = Integer; T2DimentionArray = array[1..MaxDimention, 1..MaxDimention] of TElementType; function MainDiagElementsSum(const Arr: T2DimentionArray; Dim1, Dim2: Integer): TElementType; var I: Integer; Res: TElementType; begin if (Dim1 > Dim2) then Dim1 := Dim2; if (Dim1 > MaxDimention) then Dim1 := MaxDimention; Res := 0; for I := 1 to Dim1 do Res := Res + Arr[I, I]; MainDiagElementsSum := Res; end; procedure Fill2DimArray(var Arr: T2DimentionArray; Dim1, Dim2: Integer); var I, J: Integer; begin if (Dim1 > MaxDimention) then Dim1 := MaxDimention; if (Dim2 > MaxDimention) then Dim2 := MaxDimention; for I := 1 to Dim1 do for J := 1 to Dim2 do Arr[I, J] := Random(100); end; procedure PrintArray(const Arr: T2DimentionArray; Dim1, Dim2: Integer); avr I, J: Integer; begin if (Dim1 > MaxDimention) then Dim1 := MaxDimention; if (Dim2 > MaxDimention) then Dim2 := MaxDimention; for I := 1 to Dim1 do begin for J := 1 to Dim2 do Write(Arr[I, J]:5); Writeln; end; end; var MyArr: T2DimentionArray; Dim1, Dim2: Integer; begin Randomize; Write('Razmernosti: '); Readln(Dim1, Dim2); Fill2DimArray(MyArr, Dim1, Dim2); Writeln('Zapolnen masiv takim obrazom: '); PrintArray(MyArr, Dim1, Dim2); Writeln('Summa elemntov ego glavnoi diagonali = ', MainDiagElementsSum(MyArr, Dim1, Dim2)); Readln; end. Так пойдет? |