Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2012, 11:47   #1
Dess1996
 
Регистрация: 29.04.2012
Сообщений: 6
По умолчанию Программа определения вида четырёхугольника по прилежащим сторонам a, b и углу между ними х (в градусах)

Составить программу для определения вида параллелограмма по прилежащим сторонам a, b и углу между ними х (в градусах). Определите один из видов: ромб, прямоугольник, квадрат, обыкновенный параллелограмм. Заранее спасибо.


______________
Название темы по правилам форума должно адекватно отражать суть решаемой задачи/проблемы.
На первый раз я исправил.
В последующем, темы с подобным названием будут закрываться или удаляться,
а автор такой темы будет получать штрафные баллы.
Учтите это на будущее.

Модератор.

Последний раз редактировалось Serge_Bliznykov; 29.04.2012 в 16:55.
Dess1996 вне форума Ответить с цитированием
Старый 29.04.2012, 12:25   #2
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Почитай. Я смотрю по гуглу ты уже везде успел забросить условие задачи.( авось решат ) Честно говоря, из принципа помогать не хочется ...
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 29.04.2012, 12:27   #3
Dess1996
 
Регистрация: 29.04.2012
Сообщений: 6
По умолчанию

program ABC;
var x,y: integer;
begin
readln(x);
readln(y);
write('Введите координаты x =',x);
write('Введите координаты у =',y);
if(x>0 ) and (y>0) then writeln('1 четверть');
if(x<0 ) and (y>0) then writeln('2 четверть');
if(x>0 ) and (y<0) then writeln('3 четверть');
if(x<0 ) and (y<0) then writeln('4 четверть');
if(x=0 ) and (y=0) then writeln('Точка лежит в начале координат');
end.
Dess1996 вне форума Ответить с цитированием
Старый 29.04.2012, 12:33   #4
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Уважаемый, выше вами написанное никакого отношения к вашей же задаче не имеет. За дурачка держите ?
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 29.04.2012, 12:35   #5
Dess1996
 
Регистрация: 29.04.2012
Сообщений: 6
По умолчанию

Я написал не то)
Код:
program TASK;
var a,b,x:integer;
begin
read(a);
read(b);
read(x);
writeln('Введите сторону а=',a);
writeln('Введите сторону b=',b);
writeln('Введите угол х=',x);
If((a=b) and (x=90) and(x<180))  then writeln ('Четырёхугольник является квадратом');
If((a<>b) and (x=90)and(x<180)) then writeln ('Четырёхугольник является прямоугольником');
If((a<>b) and (x<>90)and(x<180)) then writeln ('Четырёхугольник является паралелограмом');
If((a=b) and (x<>90)and(x<180)) then writeln ('Четырёхугольник является ромбом');
If((a=b) and (x=90) and(x>180))  then writeln ('Не имеет смысла');
If((a<>b) and (x=90)and(x>180)) then writeln ('Не имеет смысла');
If((a<>b) and (x<>90)and(x>180)) then writeln ('Не имеет смысла');
If((a=b) and (x<>90)and(x>180)) then writeln ('Не имеет смысла');
End.


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 29.04.2012 в 16:56.
Dess1996 вне форума Ответить с цитированием
Старый 29.04.2012, 12:41   #6
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Весь интернет трудился на решением сей задачи
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 29.04.2012, 16:53   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Dess1996, много-много-много лишних условий..

ведь Вам фактически надо проверить то, что угол меньше 180 градусов (иначе 4-х угольник не может существовать),
стороны a b равны или не равны и угол между ними равен 90 или не равен.

это можно записать так:
Код:
  writeln('Введите сторону а=',a);
  writeln('Введите сторону b=',b);
  writeln('Введите угол х=',x);
  if x>=180 then writeln('Не имеет смысла')
  else 
     if a=b then begin
         if x=90 then writeln('Четырёхугольник является квадратом')
         else writeln('Четырёхугольник является ромбом')
     end
     else  
         if x=90 then writeln('Четырёхугольник является прямоугольником')
         else writeln ('Четырёхугольник является паралелограмом');
можно и все условия объединить (хоть это и хуже решение), так, как это сделали Вы:

тогда
Код:
program TASK;
var a, b, x: integer;
begin
  read(a);
  read(b);
  read(x);
  writeln('Введите сторону а=', a);
  writeln('Введите сторону b=', b);
  writeln('Введите угол х=', x);
  if (a = b) and (x = 90)  then writeln('Четырёхугольник является квадратом');
  if (a <> b) and (x = 90)  then writeln('Четырёхугольник является прямоугольником');
  if ((a <> b) and (x <> 90) and (x < 180)) then writeln('Четырёхугольник является паралелограмом');
  if ((a = b) and (x <> 90) and (x < 180)) then writeln('Четырёхугольник является ромбом');
  if (x >= 180)) then writeln('Не имеет смысла');
end.
очевидно, что первый вариант и красивее и нагляднее...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.04.2012, 17:11   #8
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

1. Угол - по смыслу величина вещественная, а сравнивать вещественные величины на равенство - занятие неблагодарное.
2. Если уж мы предполагаем, что угол на входе - величина не нормализованная, то следовало бы не тупо отбрасывать >180, а привести к нормализованному виду, например, при угле 270 будет вполне себе нормальный прямоугольник.
s-andriano вне форума Ответить с цитированием
Старый 29.04.2012, 18:20   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

с первым замечанием - это к автору поста. у него и длины сторон и угол - ЦЕЛОЧИСЛЕННЫЕ величины
и, имхо, раз, в условии не сказано обратного, программист вполне волен принимать подобные допущения!

по второму вопросу. А Вы не слишком глубоко копнули?! А Вам слабо нарисовать треугольник, у которого один угол 270 градусов?
Нарисовали?
А потом объясните, почему он именно 270 ( а не 90 градусов) ок?
и заодно расскажите, пожалуйста, куда в таком случае идёт теорема о том, что сумма углов треугольника равна 180 градусов ? (кстати, а четырёхугольника - 360 )


ох.. чувствую, во флуд скатываемся...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.04.2012, 21:58   #10
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
по второму вопросу. А Вы не слишком глубоко копнули?!
Нет.
На мой взгляд, вариант в проверкой на >= 180 нелогичен и половинчат.
Следовало либо вообще не рассматривать вариант >=180, либо рассмотреть его аккуратно - т.е. с нормализацией угла.

Цитата:
программист вполне волен принимать подобные допущения!
Любой человек волен принимать любые допущения, вопрос лишь в том, к каким результатам может привести данное допущение.

Последний раз редактировалось s-andriano; 29.04.2012 в 22:02.
s-andriano вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Блок из двух картинок и фоном между ними deespe HTML и CSS 7 21.03.2012 12:05
программа для определения номера кругов между которыми находится точка Lady_In_Dreams Помощь студентам 0 15.02.2012 20:31
Связь компьютеров, передача данных между ними sande Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 21.01.2009 23:43
Ноты и интервалы между ними треч Помощь студентам 5 01.02.2008 02:39
Вопрос по 2 апи между ними база danswin БД в Delphi 1 27.12.2007 20:26