12.09.2013, 10:46 | #11 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
1. Лишние переменные. Зачем нужна переменная otvet, да еще типа Char? Напомню, что "Char" - это тип "Символ", т.е. такая переменная может принимать значение ТОЛЬКО ОДНОГО символа, например "A", "f", "4", "+" и т.п. А если Вы хотите управлять сообщением о результате не через прямой вывод, а через переменную, то тип такой переменной следует объявить String. Только в данном случае это не нужно - вполне нормально выводить сообщения напрямую, как у Вас и сделано. 2. Внешний и внутренний радиусы кольца целесообразно либо не задавать вовсе и работать с их числовыми значениями, либо задать в виде констант. Этот второй вариант мне представляется предпочтительным. Программа становится "универсальнее", т.к. значения констант легче (если захочется) поменять, чем редактировать условный оператор. 3. В построении условного оператора мой коллега AlexZir, как мне кажется, несколько перемудрил: Паскаль допускает нестрогие неравенства, а потому связка "or" там лишняя. Кроме того, удобнее работать с самими величинами расстояний и радиусов, а не с их квадратами. 4. Разумно программу зациклить, так, чтобы была возможность вводить без перезапуска последовательность пар координат точек. Выход из цикла можно устроить когда, например, будут введены нулевые координаты, причем обе сразу. Исходя из всего этого, представлю вариант решения такой, какой я бы сделал. Сразу отмечу, что с кириллицей у меня некий напряг, поэтому я ее стараюсь не применять. Но это сами легко поправите. Код:
Const Rb=10.0; Rm=5.0; Var x,y,v:real; Begin Writeln('Point (0;0) quits'); Repeat write('X= '); readln(x); write('Y= '); readln(y); if (x<>0) or (y<>0) then begin v:=Sqrt(x*x+y*y); if (v>=Rm) and (v<=Rb) then writeln('YES!') else writeln('NO!'); end; Until ((x=0) and (y=0)); end. |
12.09.2013, 10:46 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Я вам советую прочитать уже обсуждаемые темы Составить программу на Паскале Помогите составить программу Составить программу в Pascal Помогите составить программу на Паскале Помогите составить программу |
12.09.2013, 23:31 | #12 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Владимир, моя задача - дать верное направление, а решений может быть много.
Нестрогие неравенства поддерживаются не всеми версиями компиляторов, встречался с одним таким, долго не мог понять, почему условие не проходит. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|