Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Paskal] описание функции определяющей континент, пользовательские типы 
V
    Опции темы
ohucheni
Дата 6.3.2009, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 13.12.2008
Где: Щелково

Репутация: нет
Всего: нет



Помогите пожалста написать программу smile 

описать type
country=(austria,ghana,italy,peru,usa,sweden);
continant=(america,africa,europe);
var
x,y:country; t:boolean;
описать функцию count(s) определяющую континент на котором находится страна s и использовать ее для изменения значения переменной t на противоположное если страны x  и y находятся на разных континентах. smile 

заранее спасибо!
PM MAIL WWW   Вверх
Keeper89
Дата 6.3.2009, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 1
Всего: 58



Поясните для начала, как будет вводиться наименование стран x и y.

Если через строку - можно объявить так:

Код

type
  TContinent = record
    Name: String; // Название континента
    Country: Array[1..100] of String; // Название стран в континенте    
  end;

var

  America, Asia, Europe: TContinent;

  x,y: String; t: Boolean;



Дальше при загрузке приложения заполняете записи значениями.
При проверке, к какому континенту принадлежит страна X используйте поиск в массивах для каждого континента пока не найдете.

Это один из вариантов.



Это сообщение отредактировал(а) Keeper89 - 7.3.2009, 01:09


--------------------
PM MAIL WWW   Вверх
ohucheni
Дата 6.3.2009, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 13.12.2008
Где: Щелково

Репутация: нет
Всего: нет



tcontinent=record
name:America, Asia, Europe:string;
country:array [austria,ghana,italy,peru,usa,sweden] of string;
end;
var

  America, Asia, Europe: TContinent;

  x,y: String; t: Boolean;

так?

а как описать функцию count(s) определяющую континент на котором находится страна....
PM MAIL WWW   Вверх
Keeper89
Дата 7.3.2009, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 1
Всего: 58



Цитата(ohucheni @  6.3.2009,  20:53 Найти цитируемый пост)
tcontinent=record
name:America, Asia, Europe:string;
country:array [austria,ghana,italy,peru,usa,sweden] of string;
end;
var

  America, Asia, Europe: TContinent;

  x,y: String; t: Boolean;

так?


Нет. Для начала вставляете объявления в точности как я написал выше.

Затем в основной программе при начале работы пишете следующее:
Код

with America do
begin
  Name := 'Америка';
  Country[1] := 'США';
  Country[2] := 'Канада';
  ...
end;

with Europe do
begin
  ...
end;

и так для каждого континента.

Добавлено @ 01:07
Есть способ еще проще, чем я предложил сначала.
Объявляете массивы по количеству континентов: (здесь приведу название стран на англ.)

Код

var
  
  America: array [1..КОЛ-ВО_СТРАН_НА_КОНТИНЕНТЕ_America] of String = ('USA','Canada', ..., 'Mexico');
  Asia: array [1..КОЛ-ВО_СТРАН_НА_КОНТИНЕНТЕ_Asia] of String = ('China','Taiwan', ..., 'Indonesia');

  ...


и так далее.

Проверка наличия введенной страны на континенте осуществляется так же поиском во всем массивах.

Это сообщение отредактировал(а) Keeper89 - 7.3.2009, 01:11


--------------------
PM MAIL WWW   Вверх
volvo877
Дата 7.3.2009, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 34
Всего: 116



Цитата(Keeper89 @  6.3.2009,  23:57 Найти цитируемый пост)
Нет. Для начала вставляете объявления в точности как я написал выше.
Зачем? Если это можно сделать ГОРАЗДО проще:

Код

type
  country=(austria,ghana,italy,peru,usa,sweden);
  continant=(america,africa,europe);

function get_country(const s: string): country;
const
  sCountries: array[Country] of string = (
    'austria','ghana','italy','peru','usa','sweden'
  );
var
  i: country;
begin
  for i := low(country) to high(country) do
    if s = sCountries[i] then begin
      get_country := i; exit;
    end;
end;

function count(cntry: country): continant;
const
  CC: array[Country] of continant = (
    europe, africa, europe, america, america, europe
  );
begin
  count := CC[cntry];
end;


var
  t: boolean;
  c: continant;
  x, y: country;
  xs, ys: string;

begin
  t := false;

  readln(xs); { <--- название первой страны }
  x := get_country(xs);
  readln(ys); { <--- название второй страны }
  y := get_country(ys);

  if count(x) <> count(y) then t := not t;
  writeln(t);
end.
? 

И не надо извращений с 
Цитата(Keeper89 @  6.3.2009,  23:57 Найти цитируемый пост)
КОЛ-ВО_СТРАН_НА_КОНТИНЕНТЕ_America
 и тому подобными штучками. Если ты не умеешь работать с перечислимыми типами - это исключительно твои проблемы, не надо учить БРЕДУ остальных... Учись сам...
PM MAIL   Вверх
ohucheni
Дата 7.3.2009, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 13.12.2008
Где: Щелково

Репутация: нет
Всего: нет



Цитата

Зачем? Если это можно сделать ГОРАЗДО проще:


прога работает, спасибо!!!!!!! smile  smile 
PM MAIL WWW   Вверх
Keeper89
Дата 7.3.2009, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 1
Всего: 58



Цитата(volvo877 @  7.3.2009,  15:59 Найти цитируемый пост)
И не надо извращений с 
Цитата(Keeper89 @  6.3.2009,  23:57 Найти цитируемый пост)
КОЛ-ВО_СТРАН_НА_КОНТИНЕНТЕ_America
 и тому подобными штучками. Если ты не умеешь работать с перечислимыми типами - это исключительно твои проблемы, не надо учить БРЕДУ остальных... Учись сам... 

Я предложил только вариант!
Отвечу в том же стиле: не умеешь разговаривать - это исключительно твои проблемы, не надо хамить всем.

Это сообщение отредактировал(а) Keeper89 - 3.5.2009, 13:08


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0461 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.