m513t20 11 months ago
parent
commit
92fd2c9b14

+ 361 - 0
Rational/Rational.cpp

@@ -0,0 +1,361 @@
+#include "Rational.h"
+#include <iostream>
+#include <cmath>
+
+using namespace std;
+
+int max(int a, int b) {
+	if (a >= b)
+		return a;
+	return b;
+}
+int min(int a, int b) {
+	if (a <= b)
+		return a;
+	return b;
+}
+
+
+
+
+
+
+Rational::Rational() {
+	Chisl = 0;
+	Znam = 1;
+	sign = 0;
+}
+
+Rational::Rational(int _x) {
+	Chisl = _x;
+	Znam = 1;
+	sign = _x < 0;
+}
+
+Rational::Rational(int _x, int _y) {
+	sign = !((_x >=0 && _y >= 0) || (_x<0 && _y<0));
+	Chisl = _x>=0 ? _x:-_x;
+	Znam = _y>=0 ?_y:-_y;
+	;
+	socr();
+}
+
+Rational::Rational(double _x) {
+	sign = _x < 0;
+	int dec = 1000000;
+	Chisl = dec * _x;
+	Znam = dec;
+	socr();
+}
+
+
+//ñîêðàùåíèå
+void
+Rational::socr() {
+	sign = (!((Chisl >= 0 && Znam >= 0) || (Chisl < 0 && Znam < 0)))||sign;
+	Chisl = Chisl >= 0 ? Chisl : -Chisl;
+	Znam = Znam >= 0 ? Znam : -Znam;
+	int a, b;
+	a = Chisl;
+	b = Znam;
+	int end = 0;
+	while (a != 0 && b != 0 && end!=100000) {
+		end++;
+		if (a > b) {
+			a %= b;
+		}
+		else
+			b %= a;
+	}
+	if (end != 100000) {
+		Chisl /= (a + b);
+		Znam /= (a + b);
+	}
+}
+
+//êîðåíü
+const double
+Rational::root() {
+	return sqrt(Chisl) / sqrt(Znam);
+}
+
+
+
+//îïåðàòîðû ôîðìàòà *=
+const Rational&
+Rational::operator += (const Rational& r) {
+	int obsh_znam = Znam * r.Znam;
+	int mod1, mod2;
+	mod1 = sign ? -1 : 1;
+	mod2 = r.sign ? -1 : 1;
+	Chisl = Chisl * r.Znam * mod1 + r.Chisl * Znam * mod2;
+	Znam = obsh_znam;
+
+	sign = Chisl < 0;
+
+	socr();
+	return *this;
+
+
+}
+
+const Rational&
+Rational::operator -= (const Rational& r) {
+	int obsh_znam = Znam * r.Znam;
+	int mod1, mod2;
+	mod1 = sign ? -1 : 1;
+	mod2 = r.sign ? -1 : 1;
+	Chisl = Chisl * r.Znam * mod1 - r.Chisl * Znam * mod2;
+	Znam = obsh_znam;
+
+	sign = (Chisl < 0);
+
+	Chisl = Chisl >= 0 ? Chisl : -Chisl;
+
+	socr();
+	return *this;
+
+
+}
+
+const Rational&
+Rational::operator*=(const Rational& r) {
+	Chisl = Chisl * r.Chisl;
+	Znam = Znam * r.Znam;
+
+	sign = !(sign == r.sign);
+	socr();
+	return *this;
+}
+
+const Rational&
+Rational::operator/=(const Rational& r) {
+	Chisl = Chisl * r.Znam;
+	Znam = Znam * r.Chisl;
+
+	sign = !(sign == r.sign);
+	socr();
+	return *this;
+}
+
+
+
+//ñðàâíåíèå
+const bool&
+Rational::operator < (const Rational& r) {
+	Rational r1 = *this;
+	Rational r2 = r;
+	r1.Chisl *= r2.Znam;
+	r2.Chisl *= r1.Znam;
+	return r1.Chisl < r2.Chisl;
+}
+
+const bool&
+Rational::operator > (const Rational& r) {
+	Rational r1 = *this;
+	Rational r2 = r;
+	r1.Chisl *= r2.Znam;
+	r2.Chisl *= r1.Znam;
+	return r1.Chisl > r2.Chisl;
+}
+
+const bool&
+Rational::operator >= (const Rational& r) {
+	Rational r1 = *this;
+	Rational r2 = r;
+
+	return !(r1 < r2);
+}
+
+const bool&
+Rational::operator<=(const Rational& r) {
+	Rational r1 = *this;
+	Rational r2 = r;
+
+	return !(r1 > r2);
+}
+
+const bool&
+Rational::operator==(const Rational& r) {
+	Rational r1 = *this;
+	Rational r2 = r;
+	r1.Chisl *= r2.Znam;
+	r2.Chisl *= r1.Znam;
+	return r1.Chisl == r2.Chisl;
+}
+
+const bool&
+Rational::operator!=(const Rational& r) {
+	Rational r1 = *this;
+	Rational r2 = r;
+
+	return !(r1 == r2);
+}
+
+
+
+
+
+
+//ñëîæåíèå óìíîæåíèå
+const Rational& 
+Rational::operator + (const Rational& r1) {
+	Rational res = *this;
+	res += r1;
+	return res;
+}
+
+const Rational&
+Rational::operator - (const Rational& r1) {
+	Rational res = *this;
+	res -= r1;
+	return res;
+}
+
+const Rational&
+Rational::operator * (const Rational& r1) {
+	Rational res = *this;
+	res *= r1;
+	return res;
+}
+
+const Rational&
+Rational::operator / (const Rational& r1) {
+	Rational res = *this;
+	res /= r1;
+	return res;
+}
+
+
+
+
+//ñ äðóãèì òèïîì ïåðåìåííûõ
+const Rational&
+Rational::operator *= (const int& r) {
+	Chisl *= r;
+	socr();
+	return *this;
+}
+
+const Rational&
+Rational::operator/=(const int& r) {
+	Znam *= r;
+	socr();
+	return *this;
+}
+
+const Rational&
+Rational::operator+=(const int& r) {
+	Rational  r_t = Rational(r);
+	*this += r_t;
+	return *this;
+}
+
+const Rational&
+Rational::operator-=(const int& r) {
+	Rational  r_t = Rational(r);
+	*this -= r_t;
+	return *this;
+}
+
+
+
+const Rational&
+Rational::operator * ( const int& i) {
+	Rational res = *this;
+	res *= i;
+	return res;
+}
+
+const Rational&
+Rational::operator + (const int& i) {
+	Rational res = *this;
+	res += i;
+	return res;
+}
+
+const Rational&
+Rational::operator - (const int& i) {
+	Rational res = *this;
+	res -= i;
+	return res;
+}
+
+const Rational&
+Rational::operator / (const int& i) {
+	Rational res = *this;
+	res /= i;
+	return res;
+}
+
+
+
+
+istream&
+operator >>(istream& is, Rational& r) {
+	char input[100];
+	r.Chisl = 0;
+	r.Znam = 1;
+	r.sign = false;
+	is >> input;
+	int splitter = 0;
+	bool checker;
+	while (input[splitter] != '/' && input[splitter]) {
+		splitter++;
+	}
+	checker = input[splitter] != '/';
+	int dec = 1;
+	for (int i = splitter - 1; i >= 0; i--) {
+		if (input[i] != '-')
+			r.Chisl += (input[i] - 48) * dec;
+		else {
+			r.sign = !r.sign;
+		}
+		dec *= 10;
+	}
+	if (!checker) {
+		while (input[splitter])
+			splitter++;
+		dec = 1;
+		r.Znam = 0;
+		for (int i = splitter - 1; input[i] != '/'; i--) {
+			if (input[i] != 45)
+				r.Znam += (input[i] - 48) * dec;
+			else{
+				r.sign = !r.sign;
+			}
+			dec *= 10;
+		}
+	}
+
+	r.socr();
+	return is;
+}
+
+ostream&
+operator <<(ostream& os, Rational& r) {
+	if (r.Chisl % r.Znam == 0)
+		return os << "\n  " << r.Chisl / r.Znam << "\n";
+
+	double len_max = log10((double)max(r.Chisl, r.Znam));
+	for (int i = 0; i < (int)(len_max - log10(r.Chisl)) / 2; i++) {
+		os << " ";
+	}
+	os << "  " << r.Chisl << endl;
+
+
+	if (r.sign)
+		os << '-' << ' ';
+	else
+		os << "  ";
+	for (int i = 0; i < len_max; i++) {
+		os << "=";
+	}
+	os << endl << "  ";
+	for (int i = 0; i < (int)(len_max - log10(r.Znam)) / 2; i++) {
+		os << " ";
+	}
+	os << r.Znam;
+	return os;
+
+}

+ 62 - 0
Rational/Rational.h

@@ -0,0 +1,62 @@
+#pragma once
+#include <iostream> 
+using namespace std;
+
+
+class Rational {
+public:
+    int Chisl;
+    int Znam;
+    bool sign=0;
+    Rational();
+    Rational(int _x, int _y);
+    Rational(int _x);
+    Rational(double _x);
+    void socr();
+
+
+    //ñ Rational
+    const Rational& operator += (const Rational& r);
+    const Rational& operator -= (const Rational& r);
+    const Rational& operator *= (const Rational& r);
+    const Rational& operator /= (const Rational& r);
+
+
+    //îïåðàöèè c int
+    const Rational& operator *= (const int& r);
+    const Rational& operator += (const int& r);
+    const Rational& operator -= (const int& r);
+    const Rational& operator /= (const int& r);
+
+
+    const Rational& operator * (const int& i);
+    const Rational& operator + (const int& i);
+    const Rational& operator - (const int& i);
+    const Rational& operator / (const int& i);
+
+
+
+    //ñðàâíåíèå ìåæäó rational
+    const bool& operator > (const Rational& r);
+    const bool& operator < (const Rational& r);
+    const bool& operator >= (const Rational& r);
+    const bool& operator <= (const Rational& r);
+    const bool& operator == (const Rational& r);
+    const bool& operator != (const Rational& r);
+
+
+    //îïåðàöèè  ñ Rational
+    const Rational& operator + (const Rational& r1);
+    const Rational& operator - (const Rational& r1);
+    const Rational& operator * (const Rational& r1);
+    const Rational& operator / (const Rational& r1);
+
+    //êîðåíü
+    const double root();
+    //ïåðåâîä â double
+    const double to_double();
+
+};
+
+istream& operator>>(istream& is, Rational& R);
+ostream& operator<<(ostream& os, Rational& R);

+ 126 - 0
Rational/Rational_numbers.cpp

@@ -0,0 +1,126 @@
+// Rational_numbers.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
+
+#include <iostream>
+#include "Rational.h"
+
+
+using namespace std;
+
+//решение
+void resh(Rational, Rational, Rational);
+//проверка класса
+void check();
+
+int main() {
+    check();
+    //сделаны основные операции (минимум, который сдаётся до пятницы). К сожалению пока немного в тупике с решением. т.к. не знаю как перевести double
+    resh(Rational(2, 3), Rational(-1, 3), Rational(-1, 3));
+    Rational a, b, c;
+    cout << "enter a=... b=... c=... \n";
+    cin >> a >> b >> c;
+    resh(a, b, c);
+    
+}
+
+
+void check()
+{
+    cout << "Hello World!\n";
+    Rational r, r2;
+    cin >> r >> r2;
+    cout << r << endl << endl << endl << r2 << endl << endl << endl;
+    cout << "/" << endl;
+    Rational eq = r / r2;
+
+
+    cout  << endl << endl << eq << endl << endl;
+
+    cout << "*" << endl;
+    eq = r * r2;
+
+
+    cout << endl << endl << eq << endl << endl;
+
+    cout << "+" << endl;
+     eq = r + r2;
+
+    cout << endl << endl << eq << endl << endl;
+
+    cout << "-" << endl;
+    eq = r - r2;
+
+    cout << endl << endl << eq << endl << endl;
+
+    bool  tr = r > r2;
+    cout << " > " << tr << endl;
+    tr = r < r2;
+    cout << " < " << tr << endl;
+    tr = r >= r2;
+    cout << " >= " << tr << endl;
+    tr = r <= r2;
+    cout << " <= " << tr << endl;
+    tr = r == r2;
+    cout << " == " << tr << endl;
+    tr = r != r2;
+    cout << " != " << tr << endl;
+
+
+    cout << "rooot " << r.root() << endl;
+
+    cout << "from int \n";
+    Rational k = Rational(4,3);
+    int x = 2;
+    Rational eq_k;
+    cout << k << endl << endl;
+
+    cout << "*" << x << endl;
+    eq_k = k * x;
+
+
+    cout << endl << endl << eq_k << endl << endl;
+
+    cout << "+" << x << endl;
+    eq_k = k + x;
+
+    cout << endl << endl << eq_k << endl << endl;
+
+    cout << "-" << x << endl;
+    eq_k = k - x;
+
+    cout << endl << endl << eq_k << endl << endl;
+
+    cout << "/" << x << endl;
+    eq_k = k / x;
+
+    cout << endl << endl << eq_k << endl << endl;
+
+
+}
+
+void resh(Rational a, Rational b, Rational c) {
+    Rational D, ac;
+    Rational ans[2] ;
+    ac = a * c;
+    ac *= 4;
+    cout << ac << endl;
+    D = (b * b);
+    //cout << D << endl;
+    D = D-ac;
+
+    if (D >= 0) {
+        Rational x1 = b * (-1), x2 = b * (-1);
+        cout << D << endl;
+        x1 -=Rational( D.root());
+        x2 +=Rational( D.root());
+        x1 /= (a*2);
+        x2 /= (a * 2);
+        cout << "x1:\n" << x1 << endl << "x2:\n" << x2 << endl;
+        
+    }
+    else {
+        cout << "no rational anser \n";
+    }
+    
+    
+}
+

+ 103 - 0
list/List.h

@@ -0,0 +1,103 @@
+#pragma once
+#include <iostream>
+using namespace std;
+
+class LineListException : public exception {
+public:
+    const char* what() const noexcept override {
+        return "LineList Exception";
+    }
+};
+
+template <class T> class LineListElem {
+    T data;
+    LineListElem* next;
+public:
+    LineListElem(const T& adata, LineListElem* anext);
+    const T& getData() const;
+    LineListElem* getNext();
+    template <class U> friend class LineList;
+};
+
+template <class T> class LineList {
+    LineListElem<T>* start;
+public:
+    LineList();
+    ~LineList();
+    LineListElem<T>* getStart();
+    void deleteFirst();
+    void deleteAfter(LineListElem<T>* ptr);
+    void insertFirst(const T& data);
+    void insertAfter(LineListElem<T>* ptr, const T& data);
+    template <class U> friend ostream& operator <<(ostream& out, LineList<U>& list);
+};
+
+template <class T> LineListElem<T>::LineListElem(const T& adata, LineListElem<T>* anext) {
+    data = adata;
+    next = anext;
+}
+
+template <class T> LineListElem<T>* LineList<T>::getStart() {
+    return start;
+}
+
+template <class T>
+LineListElem<T>* LineListElem<T>::getNext() {
+    return next;
+}
+
+template <class T> const T& LineListElem<T>::getData() const {
+    return data;
+}
+
+template <class T> LineList<T>::LineList() {
+    start = 0;
+}
+
+template <class T> LineList<T>::~LineList() {
+    while (start)
+        deleteFirst();
+}
+
+template <class T> void LineList<T>::insertFirst(const T& data) {
+    LineListElem<T>* second = start;
+    start = new LineListElem<T>(data, second);
+}
+
+template <class T> void LineList<T>::deleteAfter(LineListElem<T>* ptr) {
+    if (ptr && ptr->next) {
+        LineListElem<T>* temp = ptr->next;
+        ptr->next = ptr->next->next;
+        delete temp;
+    }
+}
+
+template <class T> void LineList<T>::deleteFirst() {
+    if (start) {
+        LineListElem<T>* temp = start->next;
+        delete start;
+        start = temp;
+    }
+    else throw LineListException();
+}
+
+template <class T> void LineList<T>::insertAfter(LineListElem<T>* ptr, const T& data) {
+    if (ptr) {
+        LineListElem<T>* temp = ptr->next;
+        ptr->next = new LineListElem<T>(data, temp);
+    }
+}
+
+template <class T> ostream& operator <<(ostream& out, LineList<T>& list) {
+    LineListElem<T>* ptr = list.start;
+
+    if (!ptr)
+        out << "EMPTY ";
+    else
+        while (ptr) {
+            out << ptr->getData() << ' ';
+            ptr = ptr->getNext();
+        }
+
+    return out;
+}

+ 2 - 0
list/cycle_list.cpp

@@ -0,0 +1,2 @@
+#include "cycle_list.h"
+

+ 33 - 0
list/main_work.cpp

@@ -0,0 +1,33 @@
+// cyclic_list.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
+//
+
+#include <iostream>
+#include"cycle_list.h"
+
+using namespace std;
+
+int main()
+{
+	setlocale(LC_ALL, "Russian");
+	LineList<int> list; // Указываем, список какого типа
+	cout << "Начало: " << list << endl;
+	list.insertFirst(10);
+	LineListElem<int>* ptr = list.getStart();
+	list.insertAfter(ptr, 15);
+	list.insertAfter(ptr->getNext(), 12);
+	list.insertFirst(7);
+	cout << "Шаг 1: " << list << endl;
+	// …
+	return 0;
+}
+
+// Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"
+// Отладка программы: F5 или меню "Отладка" > "Запустить отладку"
+
+// Советы по началу работы 
+//   1. В окне обозревателя решений можно добавлять файлы и управлять ими.
+//   2. В окне Team Explorer можно подключиться к системе управления версиями.
+//   3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения.
+//   4. В окне "Список ошибок" можно просматривать ошибки.
+//   5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемент", чтобы создать файлы кода, или "Проект" > "Добавить существующий элемент", чтобы добавить в проект существующие файлы кода.
+//   6. Чтобы снова открыть этот проект позже, выберите пункты меню "Файл" > "Открыть" > "Проект" и выберите SLN-файл.

+ 8 - 0
list/табличка.txt

@@ -0,0 +1,8 @@
+N	K	Ответ	Время расчета (сек) 
+1000	3	604	0.001
+5000	3	2864	0.002
+10000	3	2692	0.005
+50000	3	11747	0.022
+100000	3	92620	0.042
+500000	3	450133	0.23
+1000000	3	637798	0.459

+ 112 - 0
vector/Array.cpp

@@ -0,0 +1,112 @@
+#include "Array.h"
+#include "exception.h"
+
+Array::Array(int start) {
+	if (start < 0) {
+		capacity = DEFAULT_CAPACITY;
+	}
+	capacity = start;
+	elements_storage = new int[capacity];
+	size = 0;
+}
+
+
+
+
+Array&
+Array::operator =(const Array& arr){
+	if (this == &arr)
+		return *this;
+	
+	delete[] elements_storage;
+	capacity = arr.capacity;
+	elements_storage = new int[capacity];
+	size = arr.size;
+	for (int i = 0; i < size; i++)
+		elements_storage[i] = arr.elements_storage[i];
+	return *this;
+}
+
+int& 
+Array::operator[](const int index) {
+	if (index >= size)
+		throw Exception();	
+	return elements_storage[index];
+}
+
+Array::Array(const Array& value) {
+	capacity = value.capacity;
+	size = value.size;
+	elements_storage = new int[capacity];
+	for (int i = 0; i < size; i++) {
+		elements_storage[i] = value.elements_storage[i];
+	}
+}
+
+
+Array::~Array() {
+	delete[] elements_storage;
+}
+
+ostream& operator <<(ostream& os, Array& arr) {
+	os << "[ ";
+	for (int i = 0; i < arr.size-1; i++)
+		os << arr.elements_storage[i] << ", ";
+	os << arr.elements_storage[arr.size - 1];
+	os << " ]";
+	return os;
+}
+
+void 
+Array::increase_capacity(int new_capacity) {
+	capacity = new_capacity > capacity * 2 ? new_capacity : capacity * 2;
+	int* new_stor = new int[capacity];
+	for (int i = 0; i < size; i++)
+		new_stor[i] = elements_storage[i];
+	delete[] elements_storage;
+	elements_storage = new int[capacity];
+	for (int i = 0; i < size; i++)
+		elements_storage[i] = new_stor[i];
+	delete[] new_stor;	
+}
+
+int
+Array::get_size() {
+	return size;
+}
+
+void 
+Array::insert(int index, int value) {
+	if (index < 0 || index>size)
+		throw Exception();
+
+	if (size == capacity)
+		increase_capacity(size + 1);
+	
+	for (int i = size - 1; i >= index; i--)
+		elements_storage[i + 1] = elements_storage[i];
+	elements_storage[index] = value;
+	size++;
+
+}
+
+void
+Array::push(int value) {
+	insert(size, value);
+}
+
+void 
+Array::remove(int index) {
+	if (index < 0 || index >= size)
+		throw Exception();
+	for (int i = index; i < size - 1; i++)
+		elements_storage[i] = elements_storage[i + 1];
+
+	elements_storage[size - 1] = -10000000;
+	size--;
+}
+
+void 
+Array::pop() {
+	remove(size - 1);
+}

+ 53 - 0
vector/Array.h

@@ -0,0 +1,53 @@
+#pragma once
+#include<iostream>
+using namespace std;
+
+const int DEFAULT_CAPACITY=10;
+class Array {
+	int* elements_storage;
+
+	int size, capacity;
+	
+
+
+	//óâåëè÷åíèå ðàçìåðà
+	void increase_capacity(int new_capacity);
+public:
+
+	//àäðåñàöèÿ
+	int& operator[](int index);
+	//óäàëåíèå ïî èíäåêñó
+	void remove(int index);
+	//âñòàâêà â êîíåö
+	void push(int value);
+	//âñòàâêà
+	void insert(int index, int value);
+
+	//óäàëåíèå  êîíöà
+	void pop();
+	//ðàçìåð
+	int get_size();
+
+
+	//êîíñòðóêòîð
+	explicit Array(int start=DEFAULT_CAPACITY);
+	//êîíñòðóêòîð êîïèðîâàíèÿ
+	Array(const Array& value);
+
+
+
+	//ïðèñâàèâàíèå ìàññèâà
+	Array& operator =(const Array& arr);
+
+
+
+
+
+	//äåñòðóêòîð
+	~Array();
+
+	//âûâîä
+	friend ostream& operator <<(ostream& os, Array& arr);
+
+
+};

+ 16 - 0
vector/exception.cpp

@@ -0,0 +1,16 @@
+//#include "exception.h"
+//#include <iostream>
+//
+//using namespace std;	
+//// â êîòîðîé ìîæåò ïðîèçîéòè èñêëþ÷åíèå
+//void f(int k)
+//{
+//	try
+//	{
+//		int& res = g(k);
+//	}
+//	catch (Exception& e)
+//	{
+//		cout << "Ïðîèçîøëà îøèáêà!!" << endl;
+//	}
+//}

+ 2 - 0
vector/exception.h

@@ -0,0 +1,2 @@
+#pragma once
+class Exception {};

+ 54 - 0
vector/динамическиймассив.cpp

@@ -0,0 +1,54 @@
+// динамическиймассив.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
+//
+
+#include <iostream>
+#include "Array.h"
+#include "exception.h"
+
+using namespace std;
+
+int main()
+{
+    Array arr;
+    for (int i = 0; i < 11; i++)
+        arr.push(i);
+    try {
+        arr.insert(2, 1324);
+    }
+    catch (Exception& e) {
+        cout << "Error \n";
+        return -2;
+    }
+    cout <<"arr1= " << arr << endl << "length=" << arr.get_size() << endl;
+
+    Array arr2(12);
+    for (int i = 0; i < 20; i++)
+        arr2.push(i);
+    cout << "before arr2= " << arr2 << endl << "length=" << arr2.get_size() << endl;
+    try {
+        arr2.pop();
+        arr2.pop();
+        arr2.remove(1);
+        arr2.remove(2);
+    }
+    catch (Exception& e) {
+        cout << "Error \n";
+        return -2;
+    }
+    cout << "cur arr2= " << arr2 << endl << "length=" << arr2.get_size() << endl;
+
+    arr2 = arr;
+    Array arr3=Array(arr2);
+    cout << "cur arr3=arr2=arr1 " << arr3 << endl << "length=" << arr3.get_size() << endl;
+}
+
+// Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"
+// Отладка программы: F5 или меню "Отладка" > "Запустить отладку"
+
+// Советы по началу работы 
+//   1. В окне обозревателя решений можно добавлять файлы и управлять ими.
+//   2. В окне Team Explorer можно подключиться к системе управления версиями.
+//   3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения.
+//   4. В окне "Список ошибок" можно просматривать ошибки.
+//   5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемент", чтобы создать файлы кода, или "Проект" > "Добавить существующий элемент", чтобы добавить в проект существующие файлы кода.
+//   6. Чтобы снова открыть этот проект позже, выберите пункты меню "Файл" > "Открыть" > "Проект" и выберите SLN-файл.