![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
TORETO |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Репутация: ![]() ![]() ![]() |
Часть кода программы:
type rep=(Russia,Ukraina,Gruzia,Belorussia,Azerbaijan);
var
NBH:array[rep,rep] of boolean;
r:rep;
Элемент NBH[a,b] равен true, если страны a и b имеют общую границу, и равен false иначе.Определить r-страну, имеющую наибольшее число соседей среди перечисленных стран. Буду благодарен любой помощи! |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Что-то вот такого типа:
type
rep = (
Russia, Ukraina, Gruzia, Belorussia, Azerbaijan
);
var
NBH: array[rep, rep] of boolean;
i, j, r: rep;
max, count: integer;
begin
{ Здесь - добавить заполнение матрицы }
max := 0;
r := low(rep);
for i := low(rep) to high(rep) do begin
count := 0;
for j := low(rep) to high(rep) do
if NBH[i, j] then inc(count);
if max < count then begin
r := i; max := count;
end;
end
{ в R содержится искомая страна }
end.
|
TORETO |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Репутация: ![]() ![]() ![]() |
Как заполнить матрицу,через case как-то или другим способом? Никак не пойму.Объясните!
|
Client |
![]()
Сообщение
#4
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Просто так НЕЛЬЗЯ вводить/выводить значения перечислимого типа. Тебе надо добавить переменную целого типа и в зависимости от ее значения с помощью case'а определить страну (если оно тебе надо)
|
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Можно вообще задать матрицу типизированной константой, кстати...
const
NBH: array[rep, rep] of boolean = (
{ru} {ua} {gr} {by} {md}
(false, false, false, false, false), { Россия граничит с ... }
(false, false, false, false, false), { Украина граничит с ... }
(false, false, false, false, false), { Грузия граничит с ... }
(false, false, false, false, false), { Белоруссия граничит с ... }
(false, false, false, false, false) { Молдова граничит с ... }
);
Поменяй где есть границы false на true, и все... Сообщение отредактировано: volvo - 6.12.2007 20:50 |
TORETO |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Репутация: ![]() ![]() ![]() |
Нет.Так нельзя должно быть что-то наподобие:
case x of
0: r:=Russia;
1: r:=Gruzia;
......
end;
А вот как дальше то делать? |
TORETO |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот, что неправильно? Не могу найти нужную страну и вывести ее
program Lab7;
uses crt;
type
rep=(Russia,Ukraina,Gruzia,Belorussia,Azerbaijan);
var
NBH:array[rep,rep] of boolean;
r:rep;
max,count,i,j,k: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;
readln(k);
if k=1 then
NBH[rep(i),rep(j)]:=true else
NBH[rep(i),rep(j)]:=false;
writeln(NBH[rep(i),rep(j)]);
r:=rep(0);
max:=0;
for i:=0 to 4 do begin
count:=0;
for j:=0 to 4 do
if NBH[rep(i),rep(j)] then inc(count);
if max<count then begin
r:=rep(i);
max:=count;
end;
end;
end;
end;
writeln(NBH[rep(i),rep(j)]);
readln;
end.
|
TORETO |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Репутация: ![]() ![]() ![]() |
program Lab7;
uses crt;
type
rep=(Russia,Ukraina,Gruzia,Belorussia,Azerbaijan);
var
NBH:array[rep,rep] of boolean;
r:rep;
max,count,i,j,k: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;
readln(k);
case k of
0:NBH[rep(i),rep(j)]:=false;
1:NBH[rep(i),rep(j)]:=true;
end;
writeln(NBH[rep(i),rep(j)]);
end;
end;
readln;
end.
Вот.Массив вроде заполняется.Как теперь найти нужную страну? |
TORETO |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот чут-чуть осталось доделать.Нужно еще найти максимальное значение счетчика count.Помогите это сделать и еще как вывести страну.Я знаю что это несложно, но не получается у меня.Вот код:
program Lab7;
uses crt;
type
rep=(Russia,Ukraina,Gruzia,Belorussia,Azerbaijan);
var
NBH:array[rep,rep] of boolean;
r:rep;
max,count,i,j,k,a:integer;
begin
clrscr;
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;
readln(k);
case k of
0:NBH[rep(i),rep(j)]:=false;
1:NBH[rep(i),rep(j)]:=true;
end;
if NBH[rep(i),rep(j)] then
count:=count+1;
end;
writeln('Kol-vo sosedei ',count);
if count>0 then
count:=0;
end;
readln;
end.
|
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 12:19 |