Програмиране на С++

От Уикикниги

Увод[редактиране]

Тази УикиКнига е предназначена за хора, които са програмисти или вече имат известен опит свързан с програмиране.

Съдържание[редактиране]

Като начало

  1. Какво е език за програмиране
  2. Какво е програма
  3. Изходни файлове
  4. Какво означава статично-типизиран, свободно-форматируем, много-парадигмен език за програмиране
    1. Парадигма на език за програмиране. Що е то?
  5. Компилатор
  6. Препроцесор
  7. Форматиране на изхода в C++
  8. Форматиращи символи на C++
  9. Типове променливи в C++
  10. Заглавни файлове в C++
  11. Функции в C++

Основни понятия[редактиране]

Обекти и обектно-ориентирано програмиране[редактиране]

Стандартна библиотека с шаблони: Standard Template Library, STL[редактиране]

  1. include (iostream);
#include "iostream.h"
#include "math.h"

	int index_array=0, temp_index_3=0, temp_index_4=0;
	float x_1[20], y_1[20];
	float x_2[20], y_2[20];
	float x_3[20], y_3[20];
	float x_4[20], y_4[20];
	float distance_3, distance_4, temp_3, temp_4;
	char exit_loop;

	void enter_data(){
		do{
			do{
				cout<<"Vavedete tochka ot II kvadrant, x<0, y>0\n";
				cout<<"x2["<<index_array<<"]=";cin>>x_2[index_array];
				cout<<"y2["<<index_array<<"]=";cin>>y_2[index_array];
			}while (x_2[index_array]>=0 || y_2[index_array]<=0);
			do{
				cout<<"Vavedete tochka ot III kvadrant, x<0, y<0\n";
				cout<<"x3["<<index_array<<"]=";cin>>x_3[index_array];
				cout<<"y3["<<index_array<<"]=";cin>>y_3[index_array];
			}while (x_3[index_array]>=0 || y_3[index_array]>=0);
			do{
				cout<<"Vavedete tochka ot IV kvadrant, x>0, y<0\n";
				cout<<"x4["<<index_array<<"]=";cin>>x_4[index_array];
				cout<<"y4["<<index_array<<"]=";cin>>y_4[index_array];
			}while (x_4[index_array]<=0 || y_4[index_array]>=0);
			do{
				cout<<"Vavedete tochka ot I kvadrant, x>0, y>0\n";
				cout<<"x1["<<index_array<<"]=";cin>>x_1[index_array];
				cout<<"y1["<<index_array<<"]=";cin>>y_1[index_array];
			}while (x_1[index_array]<=0 || y_1[index_array]<=0);
			cout<<"Exit Y/N:";
			++index_array;
			cin>>exit_loop;
		}while (exit_loop!='Y' && exit_loop!='y' && index_array<20);
	} 

	void closest_point(){
		temp_3=sqrt(pow(x_3[0],2)+pow(y_3[0],2));
		distance_3=temp_3;
		temp_4=sqrt(pow(x_4[0],2)+pow(y_4[0],2));
		distance_4=temp_4;
		for (int i=1;i<index_array;++i){
			distance_3=sqrt(pow(x_3[i],2)+pow(y_3[i],2));
			distance_4=sqrt(pow(x_4[i],2)+pow(y_4[i],2));
			if (distance_3<temp_3){
				temp_3=distance_3;
				temp_index_3=i;
			}
			if (distance_4<temp_4){
				temp_3=distance_3;
				temp_index_4=i;
			}
		}
		cout<<"\nNaj-blizka tochka do koordinatnoto nachalo v III kvadrant e:\n";
		cout<<"x3["<<temp_index_3<<"]="<<x_3[temp_index_3]<<",
		y3["<<temp_index_3<<"]="<<y_3[temp_index_3]<<"\n";
		cout<<"Razstoianie do koordinatnoto nachalo = "<<distance_3;
		cout<<"\n\nNaj-blizka tochka do koordinatnoto nachalo v IV kvadrant e:\n";
		cout<<"x4["<<temp_index_4<<"]="<<x_4[temp_index_4]<<",
		y4["<<temp_index_4<<"]="<<y_4[temp_index_4]<<"\n";
		cout<<"Razstoianie do koordinatnoto nachalo = "<<distance_4<<"\n";
	}

	float calculate_contour(){
		float l1=0, l2, l3, l4;
		l2=sqrt(pow(x_2[0]-x_3[0],2)+pow(fabs(y_2[0])+fabs(y_3[0]),2));
		l3=sqrt(pow(fabs(x_3[0])+fabs(x_4[0]),2)+pow(y_3[0]-y_4[0],2));
		l4=sqrt(pow(x_4[0]-x_1[0],2)+pow(fabs(y_4[0])+fabs(y_1[0]),2));

		for (int i=1;i<index_array;++i){
			l1+=sqrt(pow(fabs(x_1[i-1])+fabs(x_2[i]),2)+pow(y_1[i-1]-y_2[i],2));
			l2+=sqrt(pow(x_2[i]-x_3[i],2)+pow(fabs(y_2[i])+fabs(y_3[i]),2));
			l3+=sqrt(pow(fabs(x_3[i])+fabs(x_4[i]),2)+pow(y_3[i]-y_4[i],2));
			l4+=sqrt(pow(x_4[i]-x_1[i],2)+pow(fabs(y_4[i])+fabs(y_1[i]),2));
		}
		return l1+l2+l3+l4;
	}

	int main (){
		enter_data();
		cout<<"Daljinata na otworenia kontur e, L="<<calculate_contour()<<"\n";
		closest_point();
	}

Приложения[редактиране]