KMA
Долгожитель
|
miss graffiti спасибо описался, просто сегодня без умолку программил, вот и устал, но все равно, спасибо, что приметили опечатку... Может быть ничего нового не сообщю, но по поводу вашего второго решения могу отметить, что зная радиус мы можем составить мысленно при том уравнение прямой, в итоге получиться, что окружность вписана в своеобразный квадрат. Теперь самое главное, сумма координат с пересечением осей (т. е. прямая, которая должна бы пересечь оси координат, имеет по любому координаты (0,y), (x,0), а их сумма x+y ) должна не превосходить построенной прямой. Короче ближе к делу: Пусть нам задана прямая, скажем для удобства y=x, тогда, прямая, которая проходит через точку (R/sqrt2,R/sqrt2) и перепендикулярная ей имеет вид: y=-x+R*sqrt2 (вроде не должен был ошибиться ведь уравнение должно записаться y=-1x+b => b=y+x), тогда переходя к уравнению в отрезках получаю, что сумма вот тех координат прямой, которую мы проводим через две точки не должна превосходить 2*R*sqrt2. Такое вот примичание, если честно, стал бы решать через него. Просто тогда бы тебе пришлось рассмотреть всего два случая, когда сумма координат прямой (ну это как раз вот эти x+y, где х это координата при y=0, а у при х=0) не превышает, и когда центр лежит в этой вот окружности. (Сообщение отредактировал KMA 4 мая 2006 1:36)
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 4 мая 2006 0:42 | IP
|
|
Guestt
Удален
|
begin clrscr; writeln('Выберете задания '); writeln('1 задание'); writeln('2 задание'); writeln('3 задание'); writeln('0-Выход'); readln(x); if (x>=0) and (x<=3) then case x of 1: o; 2: d; 3: t; 0:halt end else writeln('Попробуйте еще раз'); readkey; end. Подскажите, как сделать чтобы выбор работал, то есть что бы при нажимании 5 она показывала Попробовать еще раз, пока я например не нажму 2. И чтобы она сразу переходила на вторую процедуру.
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 4 мая 2006 23:31 | IP
|
|
KMA
Долгожитель
|
Я извеняюсь но это уже флуд, ты же мог посмотреть общий вид оператора выбора. Убери end перед halt, да и вообще зачем условия, для твоей задачи вообще все делается более просто: if (x>=0) and (x<=3) then case x of 1: o; 2: d; 3: t; 0:halt end else writeln('Попробуйте еще раз'); readkey; твой код... Мой вариант: case x of 1: o; 2: d; 3: t; 0:halt else writeln('Попробуйте еще раз') end; readkey; (Сообщение отредактировал KMA 5 мая 2006 21:49)
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 5 мая 2006 0:11 | IP
|
|
miss_graffiti
Долгожитель
|
KMA, по твоей задумке else к чему должен относиться? что-то мне подсказывает, что не к case, а к if.....
|
Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 5 мая 2006 14:05 | IP
|
|
VF
Administrator
|
KMA правильно написал "да и вообще зачем условия", но из своего варианта if убрать забыл . Общий вид оператора:
case выражение of вариант : оператор; ... вариант : оператор; else оператор end; выражение, которое записывается после ключевого слова case, называется селектором, оно может быть любого перечисляемого типа. вариант состоит из одной или большего количества констант или диапазонов, разделенных запятыми. Они должны принадлежать к тому же типу, что и селектор, причем недопустимо более одного упоминания вариантав записи инструкции case. Из перечисленного множества операторов будет выбран только тот, перед которым записан вариант, совпадающий со значением селектора. Если такого варианта нет, выполняется оператор, следующий за словом else (если он есть).
|
Всего сообщений: 3110 | Присоединился: май 2002 | Отправлено: 5 мая 2006 14:23 | IP
|
|
KMA
Долгожитель
|
Ой, действительно забыл, я извеняюсь, ночью пишу, мысль вперед бежит, прямо и не знаю что делать, опечатка за опечаткой, конечно там не надо if (x>=0) and (x<=3) then, просто видимо текст скопировал, а подкорректировать забыл, еще раз извеняюсь, невнимательно, что делать?
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 5 мая 2006 21:49 | IP
|
|
Guestt
Удален
|
uses crt; var s:string; i,j,m:integer; begin clrscr; write('Stoka->'); read(s); for i:=1 to length(s) do begin m:=0; for j:=i+1 to length(s) do if s{i}=s{j} then inc(m); if m=0 then write(s{i}); end; readkey end. прога должна выводить символы, которые встречаются только один раз, в том порядке, в котором они встречаются в тексте, пробовал сделать, не получается, что неправильно?
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 7 мая 2006 21:23 | IP
|
|
miss_graffiti
Долгожитель
|
у тебя будут и повторяющиеся выводить. лучше удаляй из строки те символы, которые уже отработаны.
|
Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 7 мая 2006 23:59 | IP
|
|
|
miss_graffiti
Долгожитель
|
KMA, если интересно, скину, как я решила задачку про окружность и треугольники. несколько короче.... правда, писала на с++, так что здесь это будет оффтопом.
|
Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 8 мая 2006 10:22 | IP
|
|
|