Составить программу
Вложений: 1
|
Для решения задачи вам нужно запросить координаты точки, затем проверять принадлежность по следующему условию "если точка лежит во внешнем круге и не лежит во внутреннем, то принадлежит, иначе не принадлежит".
Код:
if ((sqr(x)<100-sqr(y))) or (sqr(x)=100-sqr(y)))) and (sqr(x)>25-sqr(y))) then writeln('принадлежит') else writeln('не принадлежит'); |
Лёша, а почему только Паскаль? Раз человек не счёл нужным указать язык программирования, значит Ваш долг - выложить варианты еще и на СИ, Фортране, Алголе-60, Коболе, Аде, ПЛ'е, Модуле-2 и Ассемблере. Как минимум. Можно еще пару-тройку добавить. Чтобы человек мог выбрать.
|
Ну, на ассемблере листинг немного другой будет, а сишный код почти совпадает, за исключением операторов вывода и возведения в степень :))
|
program Kolcho;
var x,y,v: real; otvet:char; Rb:=10; rm:=5; begin writeln('введите значение х'); readln(x); writeln('введите значение y'); readln(y); v:=x*x+y*y; if ((sqr(x)<100-sqr(y))) or (sqr(x)=100-sqr(y))) and (sqr(x)>25-sqr(y))) then writeln('принадлежит') else writeln('не принадлежит'); end. так? но там ошибка,не пойму что не так |
Цитата:
|
увидел)поменял
какие еще проблемы?) |
подскажите пожалуйста
|
Цитата:
|
хорошо
спасибо |
Собственно, остальное всё более ли менее, вот только...
1. Лишние переменные. Зачем нужна переменная otvet, да еще типа Char? Напомню, что "Char" - это тип "Символ", т.е. такая переменная может принимать значение ТОЛЬКО ОДНОГО символа, например "A", "f", "4", "+" и т.п. А если Вы хотите управлять сообщением о результате не через прямой вывод, а через переменную, то тип такой переменной следует объявить String. Только в данном случае это не нужно - вполне нормально выводить сообщения напрямую, как у Вас и сделано. 2. Внешний и внутренний радиусы кольца целесообразно либо не задавать вовсе и работать с их числовыми значениями, либо задать в виде констант. Этот второй вариант мне представляется предпочтительным. Программа становится "универсальнее", т.к. значения констант легче (если захочется) поменять, чем редактировать условный оператор. 3. В построении условного оператора мой коллега AlexZir, как мне кажется, несколько перемудрил: Паскаль допускает нестрогие неравенства, а потому связка "or" там лишняя. Кроме того, удобнее работать с самими величинами расстояний и радиусов, а не с их квадратами. 4. Разумно программу зациклить, так, чтобы была возможность вводить без перезапуска последовательность пар координат точек. Выход из цикла можно устроить когда, например, будут введены нулевые координаты, причем обе сразу. Исходя из всего этого, представлю вариант решения такой, какой я бы сделал. Сразу отмечу, что с кириллицей у меня некий напряг, поэтому я ее стараюсь не применять. Но это сами легко поправите. Код:
Const |
Владимир, моя задача - дать верное направление, а решений может быть много.
Нестрогие неравенства поддерживаются не всеми версиями компиляторов, встречался с одним таким, долго не мог понять, почему условие не проходит. |
Часовой пояс GMT +4, время: 21:17. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.