Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на Булевский массив
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
TORETO
Задача:
type rep=(Russia,Ukraina,Gruzia,Belorussia,Azerbaijan);
var
NBH:array[rep,rep] of boolean;
r:rep;
Элемент NBH[a,b] равен true, если страны a и b имеют общую границу, и равен false иначе.Определить r-страну, имеющую наибольшее число соседей среди перечисленных стран.

Я сделал так:

program Lab7;
uses crt;
type
 rep=(Russia,Ukraina,Gruzia,Belorussia,Azerbaijan);
var
 NBH:array[rep,rep] of boolean;
 r,x,y:rep;
 max,count,i,j:integer;
begin
 clrscr;
 max:=0;
 for i:=0 to 4 do begin
 case i of
 0: writeln('Russia granichit s');
 1: writeln('Ukraina granichit s');
 2: writeln('Gruzia granichit s');
 3: writeln('Belorussia granichit s');
 4: writeln('Azerbaijan granichit s');
 end;
 for j:=0 to 4 do begin
  case j of
  0:writeln('Russia:');
  1:writeln('Ukraina:');
  2:writeln('Gruzia:');
  3:writeln('Belorussia:');
  4:writeln('Azerbaijan:');
  end;
 r:=low(rep);
 for x:=low(rep) to high(rep) do begin
  count:=0;
   for y:=low(rep) to high(rep) do
    if NBH[rep(i),rep(j)] then inc(count);
   if max<count then begin
    r:=x;
    max:=count;
    end;
 end;
 readln;
end.



Проблемы с этой частью:

 r:=low(rep);
 for x:=low(rep) to high(rep) do begin
  count:=0;
   for y:=low(rep) to high(rep) do
    if NBH[rep(i),rep(j)] then inc(count);
   if max<count then begin
    r:=x;
    max:=count;
    end;
 end;
 readln;


И как самому заполнить логический массив?Через readln нельзя, через типизированную константу тоже.

Можно предложить другие варианты решения(case в любом случае так оставить)
volvo
Цитата
Проблемы с этой частью:
По-моему, проблемы СОВСЕМ с другой частью, неправильно копирующей то, что здесь выкладывалось: Задача на перечислимый тип dry.gif

Как говорится - найди 10 отличий...
Michael_Rybak
volvo, спасибо.

 ! 
дублирование темы. закрыто.

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.