Другие языки программирования и технологии
програмирование в c++
Посланный на колонизацию планеты Тау-Кита робот опустился в точку с координатами (0;0). Робот получает команды с Земли и выполняет их. Каждая команда состоит в перемещении вле- во, вправо, вверх или вниз на один таукитянский метр. Требуется определить в точке с какими координатами окажется робот в результате выполнения всех команд.
Останется на месте. Ибо никаких команд, судя по вопросу, не поступало )))
Да и задачка тупая - перемещение трехмерное, а координаты двумерные
Да и задачка тупая - перемещение трехмерное, а координаты двумерные
Алексей Батраев
Перемещение одномерное, алё. Вверх-вниз, влево-вправо - где третье???
#include <iostream>
using namespace std;
class Robot {
public:
using pos_t = pair<int, int>;
Robot() : pos_({ 0, 0 }) { }
void left() { --pos_.first; }
void right() { ++pos_.first; }
void down() { --pos_.second; }
void up() { ++pos_.second; }
private:
pos_t pos_;
friend ostream& operator<<(ostream& out, const Robot& robot) {
cout << robot.pos_.first << ", " << robot.pos_.second;
return out;
}
};
int main() {
Robot robot;
cout << "Start: " << robot << '\n';
robot.left();
cout << "Left: " << robot << '\n';
robot.left();
cout << "Left: " << robot << '\n';
robot.down();
cout << "Down: " << robot << '\n';
robot.down();
cout << "Down: " << robot << '\n';
robot.right();
cout << "Right: " << robot << '\n';
robot.right();
cout << "Right: " << robot << '\n';
robot.right();
cout << "Right: " << robot << '\n';
robot.up();
cout << "Up: " << robot << '\n';
system("pause");
}
using namespace std;
class Robot {
public:
using pos_t = pair<int, int>;
Robot() : pos_({ 0, 0 }) { }
void left() { --pos_.first; }
void right() { ++pos_.first; }
void down() { --pos_.second; }
void up() { ++pos_.second; }
private:
pos_t pos_;
friend ostream& operator<<(ostream& out, const Robot& robot) {
cout << robot.pos_.first << ", " << robot.pos_.second;
return out;
}
};
int main() {
Robot robot;
cout << "Start: " << robot << '\n';
robot.left();
cout << "Left: " << robot << '\n';
robot.left();
cout << "Left: " << robot << '\n';
robot.down();
cout << "Down: " << robot << '\n';
robot.down();
cout << "Down: " << robot << '\n';
robot.right();
cout << "Right: " << robot << '\n';
robot.right();
cout << "Right: " << robot << '\n';
robot.right();
cout << "Right: " << robot << '\n';
robot.up();
cout << "Up: " << robot << '\n';
system("pause");
}
Сергей Герасимчук
а можно решить через char?
ох щас запилю паттерн команда
class robot
{
public:
int x, y;
}
class command
{
protected:
robot R;
public:
command (robot R)
{
this.R=R;
};
virtual void execute()=0;
};
class moveup: public command
{
public:
void execute()
{R->y++};
};
class movedown: public command
{
public:
void execute()
{R->y--};
};
class moveleft: public command
{
public:
void execute()
{R->x--};
};
class moveright: public command
{
public:
void execute()
{R->x++};
};
class sender
{
private:
robot R;
public:
sender(robot R)
{
this.R=R;
};
command switcher (int i)
{
command C;
switch i:
case 1 C=new moveright(R); break;
case 2 C=new moveleft(R); break;
case 3 C=new moveup(R); break;
case 4 C=new movedoun(R); break;
return C;
};
}
MAIN()
{
robot R=new robot();
sender C=new sender(R);
ну и пошли посылать ему команды типа
C.switch(1).execute();
}
class robot
{
public:
int x, y;
}
class command
{
protected:
robot R;
public:
command (robot R)
{
this.R=R;
};
virtual void execute()=0;
};
class moveup: public command
{
public:
void execute()
{R->y++};
};
class movedown: public command
{
public:
void execute()
{R->y--};
};
class moveleft: public command
{
public:
void execute()
{R->x--};
};
class moveright: public command
{
public:
void execute()
{R->x++};
};
class sender
{
private:
robot R;
public:
sender(robot R)
{
this.R=R;
};
command switcher (int i)
{
command C;
switch i:
case 1 C=new moveright(R); break;
case 2 C=new moveleft(R); break;
case 3 C=new moveup(R); break;
case 4 C=new movedoun(R); break;
return C;
};
}
MAIN()
{
robot R=new robot();
sender C=new sender(R);
ну и пошли посылать ему команды типа
C.switch(1).execute();
}
Алексей Батраев
В каком язеке принято не указывать тип возвращаемого значения функции?
В какой точке начал, в такой и закончит. Задача не для программирования, а для простой логики.
#include "iostream"
int main (){
int point [2] {0,0};
++point [0];
--point [0];
++point [1];
--point [1];
std::cout << "( "<< point [0] << ", " << point [1] << " )";
}
#include "iostream"
int main (){
int point [2] {0,0};
++point [0];
--point [0];
++point [1];
--point [1];
std::cout << "( "<< point [0] << ", " << point [1] << " )";
}
Похожие вопросы
- Помогите пожалуйста разобрать задачу по програмированию на C++.
- Програмирование в VBA
- о програмировании
- C чего лучьше начать изучение програмирования?
- C чего лучше всего начать програмирование ?
- При создании сайта всегда используется HTML? Возможно програмирование на других языках? На c++ можно програмировать?
- Создание сайтов и програмирование
- какой язык лучше для програмирования?
- Какой язык програмирования учить ?
- хочу занятся програмированием...какой язык програмирования посоветуете?