Представьте, что робот находится на поле 150×150 см. Напротив него, на разном расстоянии, находятся 3 препятствия.
Напишите программу, благодаря которой робот вычислит расстояние до каждого из объектов, сравнит полученные
данные и доедет до ближайшего объекта.
На следующем этапе он должен расстояние до
двух оставшихся объектов и снова доехать до ближайшего, а
после этого – до самого дальнего.
все делается через LEGO MINDSTORM EDUCATION
Исходя из того, что вы мало я написал программу по вашему заданию без всяких наворотов. Использовался динамический массив.
#include <iostream>
#include <clocale>
#include <cstdlib>
int sum_arr(int arr[], int size)
{
int sum = 0;
for (int i = 0; i < size; i++)
sum += arr[i];
return sum;
}
void swap_arr(int arr1[], int arr2[], int size)
{
for (int i = 0; i < size; i++)
std::swap(arr1[i], arr2[i]);
}
int main()
{
int N, M;
std::cin >> N >> M;
int** arr = new int* [N];
for (int i = 0; i < N; i++)
arr[i] = new int[M];
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
arr[i][j] = std::rand() % 100;
}
//вывод
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
std::cout << arr[i][j] << " ";
}
std::cout << std::endl;
}
std::cout << std::endl << std::endl;
for (int i = 0; i < N-1; i++)
{
if (sum_arr(arr[i], M) > sum_arr(arr[i + 1], M))
swap_arr(arr[i], arr[i + 1], M);
}
//вывод
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
std::cout << arr[i][j] << " ";
}
std::cout << std::endl;
}
for (int i = 0; i < N; i++)
delete[] arr[i];
delete[] arr;
std::system("PAUSE >> void");
return 0;
}
#include <iostream>
#include <vector>
#include <random>
int rand_num(int min, int max)
{
std::random_device rd;
std::mt19937 rng(rd());
std::uniform_int_distribution<int> uni(min, max);
auto random_integer = uni(rng);
return random_integer;
}
int sum_vec(std::vector<int> v)
{
int sum = 0;
for (auto &num : v)
{
sum += num;
}
return sum;
}
void print_vec_2d(const std::vector<std::vector<int>>& v)
{
for (int i = 0; i < v.size(); ++i)
{
for (int j = 0; j < v[i].size(); ++j)
{
std::cout << v[i][j] << " ";
}
std::cout << std::endl;
}
}
void sort_vec_2d(std::vector<std::vector<int>>& v)
{
for (int i = 0; i < v.size(); ++i)
{
for (int j = i + 1; j < v.size(); ++j)
{
if (sum_vec(v[i]) > sum_vec(v[j]))
{
std::swap(v[i], v[j]);
}
}
}
}
void rand_vec_2d(std::vector<std::vector<int>>& v, int min, int max)
{
v.resize(rand_num(min, max));
for (int i = 0; i < v.size(); ++i)
{
for (int j = 0; j < rand_num(min, max); ++j)
{
v[i].push_back(rand_num(min, max));
}
}
}
int main()
{
setlocale(LC_ALL, "Russian");
std::vector<std::vector<int>> nums;
rand_vec_2d(nums, 1, 10);
std::cout << "Исходынй вектор: " << std::endl;
print_vec_2d(nums);
sort_vec_2d(nums);
std::cout << "Полученный вектор: " << std::endl;
print_vec_2d(nums);
//system("pause");
}