Другие языки программирования и технологии
Есть здесь кто-нибудь, работающий с Delphi7?
напишите программный код, пожалуйста: нужно заполнить многомерный массив 5 на 5, подсчитать сумму диагоналей и трансфонировать. Поделюсь с вами энным количеством баллов.
вот смотрите.
если вы пишете на дельфи 7, вам нужно будет выбрать в меню при создании нового проекта - консольное приложение (черное окошечко) .
var
m, trans: array[0..4,0..4] of integer;
i,j: integer;
sum1, sum2: integer;
begin
randomize;
write(#10,#10, 'ishodnaya matritsa:');
for j := 0 to 4 do
for i := 0 to 4 do
begin
m[i,j] := random(10);
if i = 0 then writeln;
write(m[i,j], #9);
if i = j then sum1 := sum1 + m[i,j];
if i = 4 - j then sum2 := sum2 + m[i,j];
end;
writeln;
writeln('sum1 = ', sum1);
writeln('sum2 = ', sum2);
writeln;
write('transponirovannaya:');
for j := 0 to 4 do
for i := 0 to 4 do
begin
if i = 0 then writeln;
write(m[j,i], #9);
end;
readln;
end.
если вы пишете на дельфи 7, вам нужно будет выбрать в меню при создании нового проекта - консольное приложение (черное окошечко) .
var
m, trans: array[0..4,0..4] of integer;
i,j: integer;
sum1, sum2: integer;
begin
randomize;
write(#10,#10, 'ishodnaya matritsa:');
for j := 0 to 4 do
for i := 0 to 4 do
begin
m[i,j] := random(10);
if i = 0 then writeln;
write(m[i,j], #9);
if i = j then sum1 := sum1 + m[i,j];
if i = 4 - j then sum2 := sum2 + m[i,j];
end;
writeln;
writeln('sum1 = ', sum1);
writeln('sum2 = ', sum2);
writeln;
write('transponirovannaya:');
for j := 0 to 4 do
for i := 0 to 4 do
begin
if i = 0 then writeln;
write(m[j,i], #9);
end;
readln;
end.
Сергей Иванов
Ты только не ворчи, что тут на шею села и ножки свесила, пожалуйста))) Но можешь адаптировать код по-другому? Мне нужно, чтобы матрица выводилась через StringGrid с помощью кнопки, кажется, и трансфонировалась тоже через кнопку. А результат суммы диагонилей должен выводить в Label, тоже кстати, через кнопку) И по возможности объясни, что куда написать.
type
PRow = ^TRow;
TRow = array[0..16379] of Single;
PMat = ^TMat;
TMat = array[0..16379] of PRow;
var
Mat: PMat;
X, Y, Xmax, Ymax: Integer;
begin
Write('Задайте размер массива: ');
ReadLn(Xmax, Ymax);
if (Xmax <= 0) or (Xmax > 16380) or (Ymax <= 0) or (Ymax > 16380) then
begin
WriteLn('Неверный диапазон. Не могу продолжить. ');
Exit;
end;
GetMem(Mat, Xmax * SizeOf(PRow));
for X := 0 to Xmax - 1 do
begin
GetMem(Mat[X], Ymax * SizeOf(Single));
for Y := 0 to Ymax - 1 do
Mat^[X]^[Y] := 0.0;
end;
WriteLn('Массив инициализирован и готов к работе. ');
WriteLn('Но эта программа закончила свою работу. ');
end.
--------------------а это для тех кто нехочет изобретать велосипед
MaxIntValue Возвращает наибольшее значение целочисленного массива.
MaxValue Возвращает наибольшее значение числового массива.
Mean Вычисляет среднее арифметическое всех значений массива.
MeanAndStdDev Вычисляет среднее арифметическое всех значений массива, и среднее отклонение.
MinIntValue Возвращает наименьшее значение целочисленного массива.
MinValue Возвращает наименьшее значение числового массива.
MomentSkewKurtosis Вычисляет среднее значение, дисперсию, отклонение и периодичность.
Norm Возвращает Евклидову норму для всех значений массива.
PopnStdDev Вычисляет среднеквадратичное отклонение для совокупности данных.
PopnVariance Вычисляет дисперсию совокупности данных.
StdDev Вычисляет стандартное среднеквадратичное отклонение элементов массива.
Sum Вычисляет сумму значений всех элементов числового массива.
SumInt Вычисляет сумму значений всех элементов целочисленного массива.
SumOfSquares Вычисляет сумму квадратов всех элементов числового массива.
SumsAndSquares Возвращает сумму элементов и сумму квадратов всех элементов числового массива.
TotalVariance Вычисляет статистическую дисперсию.
Variance Вычисляет типовую дисперсию всех значений массива.
PRow = ^TRow;
TRow = array[0..16379] of Single;
PMat = ^TMat;
TMat = array[0..16379] of PRow;
var
Mat: PMat;
X, Y, Xmax, Ymax: Integer;
begin
Write('Задайте размер массива: ');
ReadLn(Xmax, Ymax);
if (Xmax <= 0) or (Xmax > 16380) or (Ymax <= 0) or (Ymax > 16380) then
begin
WriteLn('Неверный диапазон. Не могу продолжить. ');
Exit;
end;
GetMem(Mat, Xmax * SizeOf(PRow));
for X := 0 to Xmax - 1 do
begin
GetMem(Mat[X], Ymax * SizeOf(Single));
for Y := 0 to Ymax - 1 do
Mat^[X]^[Y] := 0.0;
end;
WriteLn('Массив инициализирован и готов к работе. ');
WriteLn('Но эта программа закончила свою работу. ');
end.
--------------------а это для тех кто нехочет изобретать велосипед
MaxIntValue Возвращает наибольшее значение целочисленного массива.
MaxValue Возвращает наибольшее значение числового массива.
Mean Вычисляет среднее арифметическое всех значений массива.
MeanAndStdDev Вычисляет среднее арифметическое всех значений массива, и среднее отклонение.
MinIntValue Возвращает наименьшее значение целочисленного массива.
MinValue Возвращает наименьшее значение числового массива.
MomentSkewKurtosis Вычисляет среднее значение, дисперсию, отклонение и периодичность.
Norm Возвращает Евклидову норму для всех значений массива.
PopnStdDev Вычисляет среднеквадратичное отклонение для совокупности данных.
PopnVariance Вычисляет дисперсию совокупности данных.
StdDev Вычисляет стандартное среднеквадратичное отклонение элементов массива.
Sum Вычисляет сумму значений всех элементов числового массива.
SumInt Вычисляет сумму значений всех элементов целочисленного массива.
SumOfSquares Вычисляет сумму квадратов всех элементов числового массива.
SumsAndSquares Возвращает сумму элементов и сумму квадратов всех элементов числового массива.
TotalVariance Вычисляет статистическую дисперсию.
Variance Вычисляет типовую дисперсию всех значений массива.
Сергей Иванов
ммм, что-то слишком замудренно. Если честно, то мы такого не проходили совсем.
var
a:array[1..5,1..5] of integer;
i,j:integer;
summa1,summa2:integer;
begin
randomize;
writeln('Матрица: ');
for i := 1 to 5 do begin
for J := 1 to 5 do
begin
a[i,j]:=random(10);
write(a[i,j],' ');
end;
writeln;
end;
for i := 1 to 5 do
summa1:=summa1+a[i,i];
writeln('Сумма элементов главной диагонали= ',summa1);
j:=1;
for i := 5 downto 1 do begin
summa2:=summa2+a[j,i];
j:=j+1;
end;
writeln('Сумма элементов побочной диагонали= ',summa2);
writeln('Трансфонированная матрица: ');
for i := 1 to 5 do begin
for j := 1 to 5 do
write(a[j,i],' ');
writeln;
end;
readln
end.
a:array[1..5,1..5] of integer;
i,j:integer;
summa1,summa2:integer;
begin
randomize;
writeln('Матрица: ');
for i := 1 to 5 do begin
for J := 1 to 5 do
begin
a[i,j]:=random(10);
write(a[i,j],' ');
end;
writeln;
end;
for i := 1 to 5 do
summa1:=summa1+a[i,i];
writeln('Сумма элементов главной диагонали= ',summa1);
j:=1;
for i := 5 downto 1 do begin
summa2:=summa2+a[j,i];
j:=j+1;
end;
writeln('Сумма элементов побочной диагонали= ',summa2);
writeln('Трансфонированная матрица: ');
for i := 1 to 5 do begin
for j := 1 to 5 do
write(a[j,i],' ');
writeln;
end;
readln
end.
Похожие вопросы
- русскоязычный help для Delphi7 c++ и паскаль
- Хочу начать писать программы. Начать пожалуй с Delphi7.
- Delphi7 - как создать линии с единой точкой старта?
- Печуть из memo в Delphi7 как?
- Что легче выучить C++ или Delphi7 ?
- Решить задачу в Delphi7
- Где писать основной код в Delphi7
- Люди работающие с рисунками на компьютере помогите.
- Почему многие розничные типографии и верстальщики частники работают в основном на ADOBE, а оптовом на CorelDraw?
- Как работает программирование? Какая физическая основа у программирования?