Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задача про квадранты. Паскаль 
:(
    Опции темы
XenOS12
Дата 27.1.2014, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть задачка: "На плоскости задана прямоугольная система координат с осями X и Y, которая делит плоскость на 4 квадранта. Составить программу, которая вводит координаты точки (x,y) и сообщает, в каком квадранте (четверти) или на какой оси расположена точка."

Я вот что сочинил, но условие задачи не до конца выполнил, да и коряво вообще вышло:

Код

program kvadrant;
var
  x,y:real;
begin
  writeln('Введите координаты x и y'); readln(x,y);
  if (x>0) and (y>0) then writeln('1й квадрант')
    else if (x<0) and(y>0) then writeln('2й квадрант')
      else if (x<0) and (y<0) then writeln('3й квадрант')
  else writeln('4й квадрант');
end.


Думаю, тут через case нужно делать? Или как?
PM MAIL   Вверх
Агрох
Дата 27.1.2014, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Самое простое это через конструкции if then else if ... описать все возможные варианты.
--------------------
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
XenOS12
Дата 27.1.2014, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Агрох @ 27.1.2014,  11:16)
Самое простое это через конструкции if then else if ... описать все возможные варианты.

Так я думаю, что задача дается для нахождения более рационального метода расчета. Не может же решением задачи быть что-то типа:
Код

begin
if then;
if then;
if then;
if then;
if then;
if then;
if then;
if then;
if then;
if then;
end.

PM MAIL   Вверх
Агрох
Дата 27.1.2014, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А как ещё? Вам в любом случае надо вывести надписи '1й квадрант, '2й квадрант','3й квадрант','4й квадрант' и прочие, когда точка на оси. И на вывод каждой надписи - своя проверка условия.

Можно уменьшить количество операций сравнения за один прогон. Например так:
Код

if x > 0 then
    if y > 0 then
      ShowMessage('1-й')
    else
      if y = 0 then
        ShowMessage('ось X справа')
      else
        ShowMessage('4-й')
  else
    if x = 0 then
      if y > 0 then
        ShowMessage('ось Y верх')
      else
        if y = 0 then
          ShowMessage('Центр')
        else
          ShowMessage('ось Y низ')
    else
      if y > 0 then
        ShowMessage('2-й')
      else
        if y = 0 then
          ShowMessage('Ось X лево')
        else
          ShowMessage('3-й');


Не более 3-х операций сравнения за один проход.

Это сообщение отредактировал(а) Агрох - 27.1.2014, 13:11
--------------------
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


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

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


 




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


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

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