Страница 1 из 3

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

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

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

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

Заранее благодарен.

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

Добавлено: 02 апр 2008, 21:35
C_O_D_E
Вам обязательно помогут и разъяснят непонятные участки, если вы предоставите хоть жалкие попытки решения данной задачи.

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

Добавлено: 02 апр 2008, 21:55
airyashov
Нечто похожее уже писали и диагонали перебирали, так что если сами писать не хотите, предлогайте сумму.

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

Добавлено: 03 апр 2008, 11:54
scudo
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;

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

Мне нужно ток код нахождения суммы элементов диаганали, вдоль главной диаганали

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

Добавлено: 03 апр 2008, 17:12
Medved
&quot писал(а):если вы предоставите хоть жалкие попытки решения данной задачи.
То эту задачу можно поместить в более просматриваемый раздел Delphi и Pascal.

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

Добавлено: 03 апр 2008, 17:29
Medved
[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]

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

Добавлено: 04 апр 2008, 18:57
scudo
Всем спасибо!Программа нужна была на Паскале.Посидел немного и сделал.Мучает другой вопрос.


Хотелось чтоб ввод осуществлялся данным образом:
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

.
.
.

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

Добавлено: 04 апр 2008, 20:04
MOTOCoder
По моему надо так:
[syntax='Delphi']
for i:=1 to N do
begin
for j:=1 to N do
read(a[i,j]);
readln;
end;
[/syntax]

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

Добавлено: 04 апр 2008, 20:47
Medved
&quot писал(а):Программа нужна была на Паскале
Паскаль и ДЕлфи- практически одно и то же.

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

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

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