Показать сообщение отдельно
Старый 07.05.2014, 12:01   #9 (permalink)
SunHab
Новичок
 
Регистрация: 28.04.2014
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Легко. Если, конечно, не считать традиционно-тупых преподских указулек. Вот как раз вторую задачу было бы удобно решать через процедуру с ДВУМЯ выходными параметрами: булевским (содержит/не содержит) и собственно самой суммой. Но нет - подай им, вишь, функцию. Ладно, вывернемся.
Код:
const
 n=8;
type
 matr= array[1..n,1..n] of integer;
 vect= array[1..n] of integer;
var
 a,b: matr;
 i,j,l,sum : integer;

Procedure findk(q1,q2:vect; k:integer);
var
 p:integer;
 bu:boolean;
begin
 bu:=true;
 for p:=1 to n do
  if q1[p]<>q2[p] then bu:=false;
 if bu then write(k:3);
end;

Function FindSum(q:vect):Integer;
var
 p,S:integer;
 bu:boolean;
begin
 bu:=true;
 S:=0;
 for p:=1 to n do
  begin
   Inc(S,q[p]);
   if q[p]<0 then bu:=false;
  end;
 if bu then S:=-32000;
 FindSum:=S;
end;

Begin
 for i:=1 to n do
  for j:=1 to n do
   begin
    write('a[',i,',',j,']= ');
    readln(a[i,j]);
    b[j,i]:=a[i,j];
   end;
 writeln;
 for i:=1 to n do
  begin
   for j:=1 to n do write(a[i,j]:4);
   writeln;
  end;
 writeln;
 Repeat
  Writeln('Enter the action number:');
  Writeln('                       1 - FindK');
  Writeln('                       2 - FindSums');
  Writeln('                       3 - Exit');
  Readln(l);
  Case l of
   1: begin
       write('K: ');
       for i:=1 to n do FindK(a[i],b[i],i);
       writeln;
      end;
   2: begin
       for i:=1 to n do
        begin
         sum:=FindSum(a[i]);
         if sum<>-32000 then writeln('i= ',i,'   Sum= ',Sum);
        end;
      end;
   else l:=3;
  end; {Case}
 Until l=3;
End.
Сегодня попыталась запустить в программе выдал ошибку:"Нельзя преобразовать тип array [1..8] of integer к array [1..8] of integer"
SunHab вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070