PDA

Просмотр полной версии : Задачи на ветвление


АлексDevil
19.05.2010, 16:29
помогите, пожалуйста, на Си сделать задачи

Если сумма трех попарно различных действительных чисел X, Y, Z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других; в противном случае заменить меньшее из X, У полусуммой двух оставшихся значений.

По координатам вершин четырехугольника определить, выпуклый он или нет.

Перераспределить значения переменных х и у так, чтобы в х оказалось большее из этих значений, а в у — меньшее.

вам, программистам, не сложно, а для меня, школьника, это долгая работа.

АлексDevil
19.05.2010, 17:51
решаю вторую задачу.

void main ()
{
float x,y;
printf("\n введите значение X");
scanf("%d",x);
printf("\n введите значение Y");
scanf("%d",y);
тут надо ввести формулу, которая будет определять, выпуклый или нет
if бла бла esle тоже не знаю что писать
}

подскажите ПЛЗ
формулу лучше ввести в строчку с if

GrimmJow
19.05.2010, 18:36
Перераспределить значения переменных х и у так, чтобы в х оказалось большее из этих значений, а в у — меньшее.

cout "Введите Х\n";
cin >> x;
cout "Введите Y\n";
cin >> y;

if x<y
{int z = x;
x = y;
y = z;}

m0Hze
19.05.2010, 18:54
echo "Введите Х\n";
sin >> x;
echo "Введите Y\n";
sin >> y;

if x<y
{int z = x;
x = y;
y = z;}

p.s. синтаксис помню оч плохо, sin и echo может по-другому пишется хз
Это что за язык? Суахали?

Scripter
19.05.2010, 19:02
Суахали - комбинация языков африканских племен :D:D:D:D

yaneblinchik
19.05.2010, 19:40
cout "Введите Х\n";
cin >> x;
cout "Введите Y\n";
cin >> y;

if x<y
{int z = x;
x = y;
y = z;}
С оператором вывода чуть намудили
Думаю ТС сам справится,исправит их. Ведь ему если я не ошибаюсь нужно на чистом С,а здесь уже C++

АлексDevil
19.05.2010, 20:39
то что вы дали не компилируется в VS 2008
нужно делать с функциями printf и scanf
кто может дописать мой #2 пост?
язык C++

yaneblinchik
19.05.2010, 20:58
на Си сделать задачи
void main ()
{
float x,y;
printf("\n введите значение X");
scanf("%d",x);
printf("\n введите значение Y");
scanf("%d",y);
тут надо ввести формулу, которая будет определять, выпуклый или нет
if бла бла esle тоже не знаю что писать
}
Вот ты и делаешь задачи на C

то что вы дали не компилируется в VS 2008
нужно делать с функциями printf и scanf
кто может дописать мой #2 пост?
язык C++
Оно и не будет компилится,так как код не дописан


функции printf , scanf используется в языке C
а в C++ это cout

Тебе рано еще кодить

АлексDevil
19.05.2010, 21:02
ну кодить может еще и рано (и я не особо хочу этим заниматься) но то что я выложил, это домашняя работа по информатике
и тоже самое будет на контрольной в пятницу =(

GrimmJow
19.05.2010, 21:54
Четырехугольник называется выпуклым, если он расположен в одной полуплоскости относительно прямой, содержащей любую его сторону.



void main ()
{
float x1,y1,x2,y2,x3,y3,x4,y4;
cout << "\n введите значение X1";
cin >> x1;
cout << "\n введите значение Y1";
cin >> y1;
cout << "\n";

cout << "\n введите значение X2";
cin >> x2;
cout << "\n введите значение Y2";
cin >> y2;
cout << "\n";
cout << "\n введите значение X3";
cin >> x3;
cout << "\n введите значение Y3";
cin >> y3;
cout << "\n";
cout << "\n введите значение X4";
cin >> x4;
cout << "\n введите значение Y4";
cin >> 4;
cout << "\n";


//если угол >180, знач НЕвыпуклый. Угол определить сможешь?

return 0
}




Есть такое на паскале решенное. Посмотри, может по аналогии сделаешь :D


uses crt;

function angle(x1,y1,x2,y2:integer):real;
var
dx,dy:integer;
r:real;
begin
dx:=x2-x1;
dy:=y2-y1;
r:=sqrt(dx*dx+dy*dy);
if dy>=0 then
begin
if dx=0 then angle:=pi/2;
if dx>0 then angle:=abs(arctan(dy/dx));
if dx<0 then angle:=pi-abs(arctan(dy/dx));
end;
if dy<0 then
begin
if dx=0 then angle:=3*pi/2;
if dx>0 then angle:=2*pi-abs(arctan(dy/dx));
if dx<0 then angle:=pi+abs(arctan(dy/dx));
end;
end;

var
i,i1,k:integer;
a1,a2:real;
key:boolean;
begin
clrscr;

write('kol='); readln(k);
for i:=1 to k do
begin
write('Введите координаты x и y vershiny v[',i,']:');
readln(v[i,1],v[i,2]);
end;
key:=true;
for i:=2 to k do
begin
if i=k then i1:=1 else i1:=i+1;
a1:=angle(v[i-1,1],v[i-1,2],v[i,1],v[i,2]);
a2:=angle(v[i,1],v[i,2],v[i1,1],v[i1,2]);
if (((a2-a1)<0)and((a2-a1)>-pi)) or ((a2-a1)>pi) then
begin
key:=false;
break;
end;
end;
a1:=angle(v[k,1],v[k,2],v[1,1],v[1,2]);
a2:=angle(v[1,1],v[1,2],v[2,1],v[2,2]);
if (((a2-a1)<0)and((a2-a1)>-pi)) or ((a2-a1)>pi) then key:=false;
if key=true then writeln('Выпуклый') else writeln('Вогнутый');
readkey;
end.