Помощь - Поиск - Пользователи - Календарь
Полная версия: Программирование условий и циклов
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Lamer Master
первая задача на (на условия) использовать только програмирование условий.

"Точки в одной полуплоскости"
Даны действительные числа x1,y1,x2,y2,x3,y3,x4,y4.
известно, что точки (х3,у3) и (х4,у4) различны. Известно также, что точки
(х1,у1) и (х2,у2) не лежат на прямой L, проходящей через точки (х3,у3) и (х4,у4). Прямая L разбивает координатную плоскость на две полуплоскости.
Выяснить, верно ли, что точки (х1,у1) и (х2,у2) принадлежат одной и той же полуплоскости.


и вторая задачка (на циклы) использовать только циклы.
"Сумма трёх квадратов"
Дано натуральное число n. Можно ли представить его в виде суммы трёх квадратов натуральных чисел? Если можно, то указать все различные тройки x,y,z таких натуральных чисел, что n=х в квадрате + у в квадрате + z в квадрате .


Вот собственно и всё..
помогите разобратся плиз !!

ведь не страшно быть ламером, а страшно им остатся !
а я тока учусь..

М
Lamer Master, я изменил название темы... В следующий раз давай более подходяший заголовок !!!
volvo

Altair
1. лежат ли 2 точки с одной стороны прямой.

2. попробуй для начала перебором.

название темы редактируй.
правила фоурма читай.


p.s.
2

{Дано натуральное число n. Можно ли представить его в виде суммы трёх
квадратов натуральных чисел. Если можно, то укaзать числа X,Y,Z такие что
N=X*X+Y*Y+Z*Z
}
var
n: byte; {Входной параметр}
i,j,k: byte; {Счётчики циклов}
begin
{Вводим n}
write('Введите параметр n: ');
readln(n);
{Подсчитываем варианты}
writeln('Варианты:');
for i:=0 to n do
for j:=0 to n do
for k:=0 to n do
if i*i+j*j+k*k = n then
writeln('X=',i,' Y=':5,j,' Z=':5,k,' ':5,i,'*',i,'+',j,'*',j,'+',
k,'*',k,'=',n)
end.
klem4
Похожая задача, думаю можно переделать для 3-х слагаемых

4-й пост Volvo
Lamer Master
а это можно реализовать без использования функции ?
только одними условиями, их перебором например..

мне необходимо всё только условиями сделать wacko.gif
volvo
Цитата
а это можно реализовать без использования функции ?

Можно, конечно... В чем проблема? Просто избавляемся от функции:
var
x1, x2, x3, x4: real;
y1, y2, y3, y4: real;

begin
(*
Так точки №3 и №4 лежат по одну сторону от прямой,
проведенной через точки №1 и №2:
*)
{
x1 := 0; x2 := 5; x3 := 2; x4 := 3;
y1 := 0; y2 := 5; y3 := 4; y4 := 8;
}

(*
А вот так - №3 и №4 лежат по разную сторону от прямой ...
*)
x1 := 0; x2 := 5; x3 := 2; x4 := 10;
y1 := 0; y2 := 5; y3 := 4; y4 := 2;

if x1 <> x2 then begin
if (y3-y1+(y1-y2)*(x3-x1)/(x2-x1))*(y4-y1+(y1-y2)*(x4-x1)/(x2-x1)) > 0
then writeln('По одну сторону') else writeln('По разные стороны')
end

else begin
if (x3-x1)*(x4-x2) > 0 then writeln('По одну сторону')
else writeln('По разные стороны')
end

end.
Lamer Master
Спасибо !! а то мне ещё всё не очень понятно..
так как програмированием раньше не занимался smile.gif
у меня просто необходимость стоит выполнять или условиями или циклами и ни как иначе!

З.Ы.
give_rose.gif пасибо smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.