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

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

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

 
 Ответить  Открыть новую тему 
> страны и континенты
сообщение
Сообщение #1


Пионер
**

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

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


Помогите задачку на множества разобрать:

По значению s (страна) присвоить переменной st континент, на котором она находиться


Код

  type
     country=(...);
     continent=(...);
  var
      s:country;
      st:continent
      
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Yurka @ 20.09.2006 12:39) *

По значению s (страна) присвоить переменной st континент, на котором она находиться

Несколько раз перечитал, но не могу врубиться..
Можно условие чуть подробнее?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

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

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


Цитата(lapp @ 20.09.2006 11:50) *

Несколько раз перечитал, но не могу врубиться..
Можно условие чуть подробнее?



так в том и дело, что это полное условие...
я так думаю, что смысла вводить все страны нету, просто пару стран с каждого континента
задать в множестве, а потом в программе определёным странам присвоить значения континентов и
она должна (я так думаю) по названию страны выводить континент на котором она находится.
Список стран программа должна предложить сама. Вот реализовать это я пока не могу...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Может, так - континент должен представлять собой множество стран? Тогда ты тип "континент" вводи множеством стран. А потом просто проверяй каждый континент на наличие этого элемента (страны). Некоторые континенты могут содержать одну и ту же страну (например, Россия находится в Европе и Азии, а Панама - сразу в двух Америках..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

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

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


lapp ты прав. Только помоги, пожалуйста, хотя бы начало программы...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Yurka, а может, вот так:
type
country = (_england, _france, _japan, _usa, _canada, _panama);
continent = (_europe, _asia, _n_america, _s_america, _australia);
set_continent = set of continent;

const
countries: array[country] of string =
('england', 'france', 'japan', 'usa', 'canada', 'panama');
continents: array[continent] of string =
('europe', 'asia', 'north america', 'south america', 'australia');

world: array[country] of set_continent =
([_europe], [_europe], [_asia], [_n_america], [_n_america], [_n_america, _s_america]);

var
s: country;
st: continent;

T: string;
i_country: country;
i_continent: continent;

begin

write('country = '); readln(T);
for i_country := low(country) to high(country) do
if countries[i_country] = T then s := i_country;

for i_continent := low(continent) to high(continent) do
if i_continent in world[s] then writeln(continents[i_continent]);

end.

?
(обработку ошибок не делал, т.е. если ты введешь название страны НЕ так, как оно определено в массиве, результаты будут непредсказуемые...)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

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

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


volvo СПАСИБО!!! good.gif drinks.gif Ты меня уже много раз выручал smile.gif
У меня ещё вопросик сразу возник, что значит low и high?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Low - наименьшее возможное значение для заданного типа, а High - наибольшее возможное значение... Т.е., чтобы не делать так:
for i_country := _england to _panama do ...
(это - нехорошее решение, мы привязываемся к конкретным значениям, а этого лучше не делать)

делаем так:

for i_country := low(country) to high(country) do ...

и этот цикл будет корректно работать, и переберет ВСЕ значения от начала до конца, даже если перед _england добавится еще десяток стран...
 К началу страницы 
+ Ответить 

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

 




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