С++

Oct 01, 2011 13:18

Этому посту полагается иметь тэги "говно" и "С++". Однако я не буду их ставить, поскольку надеюсь не так уж часто об этом писать.

Код на С++ моего авторства - да, это ужасно )

непонятные буковки, вышел из себя в открытый космос

Leave a comment

stzozo October 1 2011, 10:45:52 UTC
Нормальная прога, почему ты недовольна?
Только x>1 является излишеством: если y<=1 и x<=y, то и так ясно, что будет x<=1.

? : - это и есть условная операция.

Меня тоже всю жизнь бесили задания, где чем-то пользоваться нужно, а чем-то нельзя.

Reply

evilduckk October 1 2011, 10:51:40 UTC
Я тоже так думала, но меня убедили, что это условие будет не лишним.
Мотивация такая: научиться писать понятный код, который легко в случае чего изменить. Пока что я не совсем понимаю, как это работает, но знающему человеку поверила.

if - это тоже условная операция. Вполне себе.
А еще, опять же, по словам человека, который с этим работает - операция "? :" в реальности практически никогда не используется. Поэтому учить ей студентов - лишнее, да и вообще С++ для будущих ученых не нужен, лучше бы более подходящие языки программирования учили.

Но я лично, если что, в этом не разбираюсь.
Просто если бы я увидела первую программу (но писала ее не я), я бы легко поняла, что там и к чему.
А во второй все как-то слишком заумно устроено.

Reply

stzozo October 1 2011, 10:57:54 UTC
if - это не операция, это оператор.

Вторая прога действительно несколько усложнена.
Я бы такую вообще в одну строчку вытянул, за что 3d6 дал бы мне по шее)

Reply

evilduckk October 1 2011, 11:01:22 UTC
Вооот, и еще я не различаю операции-операторы-функции и прочее по названиям (впрочем, я и в физике законы по именам не различаю). За это я постоянно получаю по шее.

А что, я хочу на это посмотреть! На эту прогу в одну строчку.

Reply

stzozo October 1 2011, 11:04:10 UTC
В одну строчку - это была гипербола, но попробую.

cout << ( x*x<=y*y && y*y<=1 ? "Yes" : "No" );

Reply

stzozo October 1 2011, 11:08:09 UTC
Кстати, советую ликвидировать switch, он может преподу не понравиться.

Reply

evilduckk October 1 2011, 11:09:11 UTC
Наоборот! Препод потребовал ? : и switch. Я получила 5 в итоге, но была крайне недовольна.

Reply

stzozo October 1 2011, 11:11:33 UTC
Тупой он у вас.
Ведь switch - следующая степень сложности после if, а в этой проге, где вариантов всего два, он вовсе не нужен.

Reply

evilduckk October 1 2011, 11:17:26 UTC
Кстати да, я затупила. Можно было и без switch-а обойтись.

Reply

stzozo October 1 2011, 11:20:23 UTC
Или не знала, что текстовые строки можно вставлять внутрь выражений, в том числе внутрь ? :

Reply

evilduckk October 1 2011, 11:25:28 UTC
Этого тоже не знала.

Reply

evilduckk October 1 2011, 11:39:26 UTC
А, я поняла!

Когда я придумывала прогу, я не знала, что в switch-е есть default, и расписала case-ы по одному. А пока ждала препода - оптимизировала, прочитав в интернете синтаксис.

Reply

perepertoz October 1 2011, 11:36:23 UTC
значит, это было задание ради задания.
не "чтобы решить", а чтобы "проверяющий увидел ?: и switch"
и всё

Reply

evilduckk October 1 2011, 11:37:33 UTC
Формально, это было задание ради того, чтобы мы освоили тернарную операцию и свитч.

Reply

stzozo October 1 2011, 11:13:57 UTC
#include
void main(){ cin >> double x >> double y, cout << ( x*x<=y*y && y*y<=1 ? "Yes" : "No" ); }

Жалко, получилось в две строчки.
В одну нельзя, потому что #include должно быть отдельной строкой.

Reply

evilduckk October 1 2011, 11:18:52 UTC
Я бы все-таки ради удобства чтения поставила перенос строки после main-а.
И почему между cin и cout запятая? так можно?

Reply


Leave a comment

Up