Небольшая программка на Паскале

scudo
Сообщения: 40
Зарегистрирован: 02 апр 2008, 21:05

Здравствуйте! Требуется помощь. Необходимо решить небольшую задачку на Паскале.
Если здесь присутствуют люди для которых данная задача как 2- пальца....То сделайте пож-та. Не сочтите за труд.

Условие задачи:

Дана целочисленная квадратная матрица. Определить:
Максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы (оформить в виде процедуры).

Заранее благодарен.
C_O_D_E
Сообщения: 296
Зарегистрирован: 13 фев 2008, 20:10
Откуда: Беларусь. Орша
Контактная информация:

Вам обязательно помогут и разъяснят непонятные участки, если вы предоставите хоть жалкие попытки решения данной задачи.
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

Нечто похожее уже писали и диагонали перебирали, так что если сами писать не хотите, предлогайте сумму.
scudo
Сообщения: 40
Зарегистрирован: 02 апр 2008, 21:05

const n=4;


i:=1;
a:=1;
for i:=1 to n do
begin
j:=j+1;
Sum:=Sum+mas[i,j];
If j=n then
mas2[a]:=sum;
a:=a+1;
Переход на другую строку
end;

А выбор максимальной суммы можно сделать и в процедуре

Мне нужно ток код нахождения суммы элементов диаганали, вдоль главной диаганали
Medved
Сообщения: 256
Зарегистрирован: 14 фев 2008, 20:51
Контактная информация:

&quot писал(а):если вы предоставите хоть жалкие попытки решения данной задачи.
То эту задачу можно поместить в более просматриваемый раздел Delphi и Pascal.
Ваши руки совершили идиотскую ошибку и будут оторваны!
[OK]
Medved
Сообщения: 256
Зарегистрирован: 14 фев 2008, 20:51
Контактная информация:

[syntax='Delphi']
program lalala;
type arr=array[1..100,1..100] of integer;
procedure readdata;
begin
[readdata]
end;

procedure writedata;
begin
[writedata]
end;

function sumd(d:integer):integer;{Сумма элементов d- той по счёту диагонали. При нахождении максимального элемента идите по диаг. от 1 до 2*n -1 , не учитывая главной(n)}
var i,j,sum:integer;
begin
sum:=0;
If d<n then Begin
for i:=1 to d do
for j:=n-d+1 to n do
inc(sum,a[i,j])
Else
for i:=d-n to n do
for j:=1 to 2*n-d+1 do
inc(sum,a[i,j]);
sumd:=sum;
end;

begin
readdata;
[считаем]
writedata;
end.
[/syntax]
Ваши руки совершили идиотскую ошибку и будут оторваны!
[OK]
scudo
Сообщения: 40
Зарегистрирован: 02 апр 2008, 21:05

Всем спасибо!Программа нужна была на Паскале.Посидел немного и сделал.Мучает другой вопрос.


Хотелось чтоб ввод осуществлялся данным образом:
1 2 3
2 3 4
.......

Код:
For i:=1 to n do
For j:=1 to n do
begin
Write(' ');
Read(mas[i,j]);
If j=n then
Writeln('');
end;

Чет тут не так. Ввод осуществляю через Enter он и делает:
1
2
3

2
3
4

.
.
.
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

По моему надо так:
[syntax='Delphi']
for i:=1 to N do
begin
for j:=1 to N do
read(a[i,j]);
readln;
end;
[/syntax]
Ни что так не ограничивает фантазию программиста, как компилятор...
Medved
Сообщения: 256
Зарегистрирован: 14 фев 2008, 20:51
Контактная информация:

&quot писал(а):Программа нужна была на Паскале
Паскаль и ДЕлфи- практически одно и то же.
Ваши руки совершили идиотскую ошибку и будут оторваны!
[OK]
scudo
Сообщения: 40
Зарегистрирован: 02 апр 2008, 21:05

MOTOCoder писал(а):По моему надо так:
[syntax='Delphi']
for i:=1 to N do
begin
for j:=1 to N do
read(a[i,j]);
readln;
end;
[/syntax]
Чет не пашет...

А что косается делфи и паскаля,тЫк ет да. Они одинаковые...Отличие состоит ток в том что у делфи интерфейс есть.
Ответить