Номер 1
использовать Робот
алг
нач
нц пока сверху свободно
вверх
кц
нц пока сверху стена
закрасить
влево
кц
нц пока сверху не стена
влево
кц
нц пока сверху стена
закрасить
влево
кц
вверх
вправо
нц пока снизу стена
закрасить
вправо
кц
нц пока снизу не стена
вправо
кц
нц пока снизу стена
закрасить
вправо
кц
кон
Номер 2
использовать Робот
алг
нач
нц пока сверху стена
закрасить
влево
кц
вправо
нц пока сверху стена
если справа не свободно то
вправо
все
если справа свободно то
вправо
если сверху стена то
закрасить
все
все
кц
влево
нц пока снизу не стена
вниз
кц
нц пока слева не стена и снизу стена
закрасить
влево
кц
кон
Консольные программы — это наследие старых операционных систем типа MS DOS, работавших в текстовом режиме. Полной аналогии здесь нет, но создатели систем разработки пытаются сделать всё, чтобы было максимальное сходство. Для консольной программы операционная система или система разработки предоставляет специальное окно (обычно — черного цвета), в котором виден ход выполнения программы.
Оконное приложение всегда имеет своё собственное окно (обычно его называют главным окном приложения). Кроме главного окна в приложении могут использоваться множество других окон.
При разработке оконного приложения используются различные элементы управления: командные кнопки, окна ввода, надписи, меню и т.д.
//На VS 2010 решается так, в других средах разработки может нужно к заголовкам добавить .h или убрать подключение пространства имен STD :(Console application)
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
using namespace std;
void Print(int m, int ** matr) // Функция печати матрицы на экран
{
for(int i = 0; i< m; i++)
{
for(int j = 0; j<m; j++)
{
cout.width(4);
cout<<matr[i][j];
}
cout<<endl;
}
}
void search_and_print(int X, int **M) //Функция поиска элементов с их сортировкой и выводом на экран
{
int razmer = ((X*X) - X)/2;
int *mas = new int [razmer];
int Y = X - 1;
float srednee = 0;
int index = 0;
for (int j = 0; j<Y;j++)
{
for(int i = 0; i<(X-1);i++ )
{
mas[index] = M[i][j];
index++;
}
Y--;
}
for(int i = 0; i<(razmer-1); i++) //Сортировка методом выбора. X-1 раз ищем наименьший элемент.
{
//Принимаем за наименьший первый элемент из расматриваемых:
int min = i;
//Поиск минимального элемента из неупорядоченных:
for(int j = i+1;j<razmer;j++)
{
//Если нашли меньший элемент, запминаем его номер:
if(mas[j]<mas[min]) min = j;
}
//Обмен элементов:
int a = mas[i];
mas[i] = mas[min];
mas[min] = a;
}
cout<<"\nUporyado4enniy massiv:\n";
//Вывод и суммирование элементов отсортированного массива для среднего
for(int i = 0;i<razmer;i++)
{
cout<<mas[i]<<ends;
srednee += mas[i];
}
//Поиск арифметичесгоко реднего}
srednee = srednee/razmer;
cout<<"\nSrednee: "<<srednee;
delete [] mas;
}
void main()
{
srand ((unsigned)time(NULL));
int X;
cout<<"Vveditrazmer matritsi po gorizontaly i po vertikaly:\n";
cin>>X;
int** Matr;
Matr = new int* [X]; //Безопасный задания динамического
{
Matr[i] = new int[X]; // двумерного массива.
for(int j =0; j<X; j++) //Заполняем матрицу
{ Matr[i][j] = rand()%10-5;} //Числами от -5 до 5
}
cout<<"Ishodnaya matritsa:\n";
Print(X,Matr);
search_and_print(X,Matr);
_getch();
delete [] Matr;
}