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

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

Добавлено: 04 апр 2008, 21:08
drummer

Код: Выделить всё

for i:=1 to N do
     for j:=1 to N do
          read(a[i,j]);
А вводишь так (для твоего примера):
1(пробел)2(пробел)3(ентер)
2(пробел)3(пробел)4(ентер)
....

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

Добавлено: 05 апр 2008, 17:21
scudo
drummer писал(а):

Код: Выделить всё

for i:=1 to N do
     for j:=1 to N do
          read(a[i,j]);
А вводишь так (для твоего примера):
1(пробел)2(пробел)3(ентер)
2(пробел)3(пробел)4(ентер)
....
Вроде работает.
Ток чет ошибочкку не найду. Может вы посмотрите:

Код: Выделить всё

  {расчет в верхней половине от главной диагонали}
  nach_str:=1;
  kon_str:=n-1;
  nach_stb:=2;
  kon_stb:=n;
  For k:=1 to (n-1) do
   begin
    For i:=nach_str to kon_str do
     For j:=nach_stb to kon_stb do
      sum1:=sum1+mas2[i,j];
    If k=1 then
     max1:=sum1;
    if max1<sum1 then
     max1:=sum1;
    nach_str:=1;
    kon_str:=kon_str-1;
    nach_stb:=nach_stb+1;
    kon_stb:=n;
   end;

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

Добавлено: 05 апр 2008, 17:35
Vovchik
scudo,попробуй так

Код: Выделить всё

uses crt;
var m:array[1..3,1..3]of integer;
    i,j:integer;
BEGIN
clrscr;
 for i:=1 to 3 do
  begin
   for j:=1 to 3 do
    gotoxy(i+1,j);
    read(m[i][j]);
    writeln;
  end;
END.

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

Добавлено: 05 апр 2008, 17:53
scudo
Спасиб!

У себя нашел ошибку, ток не знаю как исправить.... :confused:

Код: Выделить всё

For k:=1 to (n-1) do
   begin
    For i:=nach_str to kon_str do
     For j:=nach_stb to kon_stb do
      sum1:=sum1+mas2[i,j];
Он меняет столбец а строку нет. А мне над меня и строку и столбец сразу. А получается что перибераются сначала столбцы, а потом уж переходит на новую строку

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

Добавлено: 05 апр 2008, 18:37
Хыиуду
for i:=nach_str to kon_str do
sum1:=sum1+mas2[i,i];

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

Добавлено: 05 апр 2008, 18:58
scudo
sum1:=sum1+mas2[i,i]

Может так:
mas[i,j]

И куда делся второй for. Мне же над еще и столбцы перебирать

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

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

Код: Выделить всё

  {расчет в верхней половине от главной диагонали}
  nach_str:=1;
  kon_str:=n-1;
  nach_stb:=2;
  kon_stb:=n;
  For k:=1 to (n-1) do                                
   begin
    For i:=nach_str to kon_str do
     For j:=nach_stb to kon_stb do
      begin
       a:=a+1;
        If a=1 then
         sum1:=sum1+mas2[i,j];
        If j=kon_stb then
         a:=0;
      end;
    If k=1 then
     max1:=sum1;
    if max1<sum1 then
     max1:=sum1;
    nach_str:=1;
    kon_str:=kon_str-1;
    nach_stb:=nach_stb+1;
    kon_stb:=n;
   end;
   Writeln('max= ',max1);
Делаю так. Чет тож не пашет. Посмотрите мож найдете ошибку

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

Добавлено: 05 апр 2008, 19:20
Medved
Чем вас мой заметчательный вариант (#6) не устраивает?=)

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

Добавлено: 05 апр 2008, 19:28
scudo
Medved писал(а):Чем вас мой заметчательный вариант (#6) не устраивает?=)
Программка в 2-е строчки и работает (просто и кофмортно). За ет Респект ;) ... Ну все таки мож гляните на мой вариантик.У меня код больше и чет не пашет :mad: понять где ошибка не магу. Хочется разобраться

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

Добавлено: 05 апр 2008, 19:37
Medved
А зачем вам переменная a?