IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на Булевский массив, Про страны и их границы
TORETO
сообщение 10.12.2007 20:01
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 31
Пол: Мужской

Репутация: -  0  +


Задача:
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 в любом случае так оставить)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов
Michael_Rybak
сообщение 10.12.2007 20:38
Сообщение #2


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


volvo, спасибо.

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

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


Closed Topic Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 7:18
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"