Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2014, 14:20   #1
Полька 321
Новичок
Джуниор
 
Регистрация: 07.03.2014
Сообщений: 1
По умолчанию .блок схема

пожалуйста,люди добрые,нарисуйте блок схему к коду ^^

Код:
#include <iostream>

using namespace std;

	int i,j,n;
	float k,k1,a,a1,b,b1,c,xx,yy,fl,r,f1,f2,f3,f4,f11,f22,f33,f44;
	float x[20],y[20];
/*Ввод координат*/	
	void input_coords()
	{
		
		cout<<"* Введите количество точек *"<<endl;
		
 			cin>>n;
 		
 		cout<<"* Введите координаты x,y "<<n<<"  точек *"<<endl;
 		
 		for(i=0;i<n;i++)
 			cin>>x[i]>>y[i];
 		x[n]=x[0];
 		y[n]=y[0];
	}
	
void prov1()
{
	fl=1; 	
 	
 	for(i=0;i<n-1;i++)
 	{
 		k=0;k1=0;	
 	
 		for(j=0;j<n;j++)
 		if(j!=i && j!=i+1)
	 	{
	 		k =k+ ((x[j]-x[i])/(x[i+1]-x[i]) <= (y[j]-y[i])/(y[i+1]-y[i]));
 			k1=k1+((x[j]-x[i])/(x[i+1]-x[i]) > (y[j]-y[i])/(y[i+1]-y[i]));
 		}
 		
		 		if(k !=0 && k1!=0)
		     {
		 		
 				cout<<"* k-угольник вогнутый *"<<endl;
 				
 				fl=0;
 				break;
 			 }
 		if(fl==0) break;  		 
 	}
 	
 	if(fl==1)
	 {
	 	
		cout<<"* k-угольник выпуклый *"<<endl;  
			
 	 }
	 	
}	
	
/*1проверка на самопересечение*/
void prov()
{	
	for(i=0;i<n-1;i++)
 	{
	 	a=x[i+1]-x[i]; b=y[i+1]-y[i]; k=x[i]/a-y[i]/b; //вычисляется i линия
	 	f1=x[i]<x[i+1]?x[i]:x[i+1];
 		f2=x[i]>x[i+1]?x[i]:x[i+1];
 		f3=y[i]<y[i+1]?y[i]:y[i+1];
 		f4=y[i]>y[i+1]?y[i]:y[i+1];
 		
 		fl=1;
 		for(j=i+2;j<n-1;j++)
 		{ 			 
			a1=x[j+1]-x[j]; b1=y[j+1]-y[j]; k1=x[j]/a1-y[j]/b1; 			
 			
 			f11=x[j]<x[j+1]?x[j]:x[j+1];
 			f22=x[j]>x[j+1]?x[j]:x[j+1];
 			f33=y[j]<y[j+1]?y[j]:y[j+1];
 			f44=y[j]>y[j+1]?y[j]:y[j+1];
			yy=(k1*a1-k*a)/(a/b-a1/b1);
 			xx=(k*a*b+a*yy)/b; 
 			 
 			
 			if(!(((xx<f1)||(xx>f2)) && ((yy<f3)||(yy>f4)) || ((xx<f11)||(xx>f22)) && ((yy<f33)||(yy>f44)))) 			
			  {fl=0; cout<<"* Прямые пересекаются *"<<endl;  break;}
			 			
 		}
 	
 		if (fl==0) break;
 	}
 	
 		if(fl==1)
		 {
		 	
 			cout<<"* Прямые не пересекаются *"<<endl;
 		
 			cout<<endl;
 			prov1();
 	     }
}
/*Главная функция*/
int main(int argc, char** argv) 
{
	setlocale (LC_ALL, "rus");
	cout<<"Рассмотрим ломаную линию. Выясним, имеет ли она самопересечения."<<endl;
	cout<<"Если не имеет,определим,является ли этот k-угольник выпуклым."<<endl;
	cout<<endl;
	input_coords();
	
	cout<<"* Ввод координат закончен!!! *"<<endl;
	
	cout<<endl;
	prov();
	cout<<endl;
	
	cout<<" ВСЕ ГОТОВО :) "<<endl;

	return 0;
}


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 07.03.2014 в 18:27.
Полька 321 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Блок-схема. VB 6.0 r0manbow Помощь студентам 0 06.01.2012 19:49
Схема алгоримта (блок схема) на задачу по Паскалю LINCHAK Помощь студентам 0 22.10.2010 16:56
Блок-схема zoluxa Помощь студентам 2 18.05.2010 19:44
блок схема mellon Помощь студентам 1 11.05.2010 20:55
Блок схема алгоритма программы и схема взаимодействия модулей. Lazio Фриланс 3 02.12.2009 23:10