// курсова.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <stdlib.h>
#include <conio.h>
#include <locale>
#include <ctime>
#include <iomanip>
#include "cmath"
#include <stdio.h>


using namespace std;

void gotoxy1(int x, int y) {
	COORD coord;
	coord.X = x;
	coord.Y = y;
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

void Picture()
{
	system("color A1");  
	HWND hwnd = GetConsoleWindow();  
	HDC hdc = GetDC(hwnd);
	HBRUSH black = CreateSolidBrush(RGB(0, 0, 0));
	HBRUSH white = CreateSolidBrush(RGB(255, 255, 255));
	HBRUSH grey = CreateSolidBrush(RGB(132,132,130));
	HPEN White = CreatePen(PS_SOLID, 2, RGB(255,255, 255));
	HPEN Black = CreatePen(PS_SOLID, 4, RGB(0,0,0));

	SelectObject(hdc, black);
	RoundRect(hdc,100,250,400,150,5,5);
	RoundRect(hdc,135,150,365,55,5,5);
	SelectObject(hdc, White);
	RoundRect(hdc,145,245,250,60,5,5);
	RoundRect(hdc,250,245,355,60,5,5);
	SelectObject(hdc, grey);
	Ellipse(hdc,130,230,200,300);
	Ellipse(hdc,300,230,370,300);
	SelectObject(hdc, white);
	RoundRect(hdc,150,145,245,65,5,5);
	RoundRect(hdc,255,145,350,65,5,5);
	RoundRect(hdc,95,160,105,180,2,2);
	RoundRect(hdc,95,220,120,240,5,5);
	RoundRect(hdc,380,220,405,240,5,5);
	Ellipse(hdc,150,250,180,280);
	Ellipse(hdc,320,250,350,280);

_getch();  


}

void Masuv ()
{
	int t=0,k,n,a[1000];
	cout<<"Введiть кiлькiсть елементiв у масивi: ";
	cin>>n;
	cout<<"Створений масив: ";
	for (int i=0;i<n;i++)
	{
		a[i]=rand()%15-5;
		a[0]=rand()%15;
		cout<<a[i]<<" ";
	}
	for (int i=0;i<n;i++)
		if (a[i]<0) {k=i+1; break;}

	cout<<endl<<"Вiдповiдь:  ";
	for (int i=k;i<=n;i++)
	{
		if ((a[i]%2==0) && (a[i]!=0))
			t++;
	}
	cout<<t-1<<endl;
	cout<<endl;
}

void Matrix (int n)
{
	double a[100][100],max;
	cout<<endl<<"Дана матриця : "<<endl<<endl;
	for (int i=1; i<=n; i++)  
	{
		for  (int j=1; j<=n; j++) 
		{
			a[i][j]=rand()%15-5;  
		    cout<<a[i][j]<<" ";  
		}
		cout<<endl;  
	}
	max=a[1][1];
		for (int i=1;i<=n;i++)
		{
			int k=n-i;
			for (int j=n;j>k;j--)
			{
				if (a[i][j]>max) max=a[i][j];
			}
		}
	

	cout<<endl<<"Вiдповiдь:  "<<max<<endl;
}


void length ()
{
	char s[10000];
	int i,n;
	cout<< "Введiть рядок : ";
	cin>>s;
	for (i=0;s[i-1];i++)
	{
		cout<<s[strlen(s)-i];
	}
	cout<<endl; 
}


int _tmain(int argc, _TCHAR* argv[])
{
	Picture();  //виклик функції, яка малює малюнок
	srand(time(NULL));  //оновлення бази випадкових чисел
	setlocale(LC_ALL, "Ukrainian");  //мова інтерфейсу українська
	system("color 1A"); //колір тексту та екрану


	const int size = 10;
	const int size1 = 3;
	char NumberMenu[3][30] = { "1. Масиви", "2. Матриця", "3. Структура" };

	
	while (true) {  //працюємо поки не пройдемо всі задачі
		system("cls"); //очищення экрану
		gotoxy1(17, 0);  //починаємо писати з таких координатів к в дужках
		cout << "Курсова робота \n";
		gotoxy1(5, 2);
		cout<<"з дисциплiни: 'Комп`ютернi технологiї та програмування' "<<endl;
		gotoxy1(5, 4);
		cout<<"студент групи ЕСА-12с Жирний Руслан";
		for (int j = 0; j < 3; j++) {  //цик для того щоб вивести на еран номер та назву задачі з нового рядка і в пених координатах
			gotoxy1(4, 7 + j);
			cout << NumberMenu[j];
			cout << endl;
		}
			gotoxy1(20, 10);
			int k;
			cout << endl;
			cout << "Введiть номер задачi:   ";
			cin >> k;  //введення номеру задачі
			switch (k) {  //умова, де вибирається задача

			case 1:  //якщо вибрана перша задача то
				cout<<endl<<"Задано цiлi числа a1,a2,... . Вiдомо, що а1>0 i що серед а2,а3,... \nє хоча б одне вiд`ємне число. Нехай а1,...,аn - елементи даної \nпослiдовностi, якi передують першому вiд`ємному елементу (n завчасно невiдомо). \nОтримати кiлькiсть парних серед а1,...,аn"<<endl<<endl;
				Masuv();  //допоміжна функція, рішення першої задачі
				system("pause");  //затримка екрану
				break;  //вихід із першої задачі

			case 2: //якщо вибрана друга задача то
				cout<<endl<<"Данo дiйсна квадратна матриця порядку n. Знайти найбiльше \niз значень елементiв, якi розташованi в заштрихованiй \nчастинi матрицi."<<endl<<endl;
				cout << "Введiть порядок матрицi : ";
				int n;
				cin>> n;
				Matrix(n);  //допоміжна функція, рішення друга задачі
				system("pause");  //затримка екрану
				break;  //вихід із другої задачі

			case 3:  //якщо вибрана третя задача то
				cout<<endl<<"Дано рядок S. Вивести рядок у зворотному порядку."<<endl<<endl;
				length();  //допоміжна функція, рішення третьої задачі
				exit(0);  //вихід із програми
				break;  //вихід із третьої задачі

			default:  //якщо не вибрано жодної із заданих задач
				gotoxy1(20, 13);
				cout << "Помилка! Введiть номер задачi знову!" << endl<<endl; //вивести помилку
				system("pause"); //затримка екрану
			}		
	}
	return 0;
}



