Помощь - Поиск - Пользователи - Календарь
Полная версия: Обработка массива
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
rov4
Привет, всем!
Помогите, пожалуйста, решить задачу: Дан определённый вид массива:
1 строка: 4,0,3,0;
2 строка: 0,3,0,2;
3 строка: 2,0,1,0;
4 строка: 0,1,0,4.
(Массив дан для N = 4.)
Задание: напечатать полученный массив. Найти суммы чисел в первом и последнем столбцах и сравнить их. Вывести результаты на печать с соответствующим сообшением. Задание оформить в виде процедур (функций).
Заранее спасибо.
volvo
rov4
В решении нужно только подсчитать или создать матрицу тоже? Если создать, то не совсем понятно, как получать матрицу (скажем, при N=5)
murphy
чето такое
Код

program hhj;
const n=4;
type vect = array[1..n] of byte;
      matr array[1..n] of vect;
var A: matr
 procedure prnt( B:matr, m:byte);
     var
         i, j : byte;
     begin
        for i:= 1 to m do
          begin
           writeln;
           for j:= 1 to m do
               write(B[j][i]);
           end;
    end;
  function sum(x:vect, m:byte);
     var i, s: integer;
       begin
         s:=0;
         for i:=1 to m do
          s:=s+x[i];
        sum:=s;
       end;
  procedure rez(x, y:integer);
       begin
         if x>y then
             writeln (x , ' больше ')
         else  
              if x=y then ('они равны')
                    else
                        writeln(y , 'больше')ж
        end;
 begin
     for i:= 1 to n do
        for j := 1 to n do
           read(a[j][i]);
     prnt(a,n);  
     rez(sum(a[1],n), sum(a[n],n));
 end;


надо бы откомпелировать и проверить (мог запутаться в индексах) но если включу паскаль может интернет вылететь sad.gif
klem4
Цитата(murphy @ 28.12.04 20:46)
если включу паскаль может интернет вылететь  sad.gif

Это как ?? blink.gif :D
volvo
murphy
1. Постарайся все-таки проверять программы, которые выкладываются на форум.
2. В программе не описаны некоторые переменные.
3. Обрати внимание на заголовки процедур/функций
4. Функции всегда возвращают значения :D

Код

const n=4;
type
 vect = array[1..n] of byte;
 matr array[1..n] of vect;
var A: matr;

procedure prnt( B:matr; m:byte);
 var i, j : byte;
 begin
   for i:= 1 to m do
     begin
       writeln;
       for j:= 1 to m do
         write(B[j][i]);
     end;
 end;
function sum(x:vect; m:byte): integer;
 var i, s: integer;
 begin
   s:=0;
   for i:=1 to m do
     s:=s+x[i];
   sum:=s;
 end;
procedure rez(x, y:integer);
 begin
   if x>y then
     writeln (x , ' больше ')
   else  
     if x=y then ('они равны')
       else writeln(y , 'больше')
 end;

var i, j: integer;
begin
 for i:= 1 to n do
   for j := 1 to n do
     read(a[j][i]);
 prnt(a,n);  
 rez(sum(a[1],n), sum(a[n],n));
end.
murphy
Цитата
Это как ??

запускаю дос программы может порвать коннект (чаще всего так и бывает)


Цитата
Постарайся все-таки проверять программы

:p2: буду (поставлю паскаль под винду) :p2:
rov4
volvo
Только подсчитать.
rov4
murphy,
Огромное спасибо, ты меня спас! :D
murphy
rov4
Нема за що :D
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.