1. Создать класс Butterfly у которого есть поля:
Строка “стадия жизни” (гусеница, куколка или бабочка);
Число “дни жизни”;
В нашей задаче следующие условия для перехода на следующую стадию жизни объекта:
гусеница = от 0 до 7 дней
куколка = от 8 до 15 дней
бабочка = от 16 до 23 дней
Если бабочка прожила 24 дня она становится гусеницей 0 дней.
Необходимо создать метод в классе, который добавляет единицу к текущему дню этой бабочки и переводит её на следующую стадию жизни если условия соблюдены.
Например если была гусеница, которая живет уже 7 дней, то эта функция превратит её в куколку, которая живет 8 дней.
Или если была куколка, которая живет 13 дней, эта функция изменит только её дни жизни.
Задача: Создать вектор указателей на объекты класса Butterfly. Добавить 10 указателей на объекты и с помощью цикла вызвать этот метод для каждого объекта. Вывести на экран исходный и получившийся вектор
2. Модифицируйте программу из домашнего задания по ГПСЧ:
“С помощью функций rand() и srand() создайте ГПСЧ, который выводит количество очков, полученных при бросании двух игральных кубиков. Не забудьте учесть теорию вероятностей. Выведите не менее 100 исходов”
#include <ctime>
#include <iostream>
using namespace std;
int main() {
srand(time(0));
int sum;
for (int i = 0; i < 1000; i++) {
sum = rand() % 6 + 1 + rand() % 6 + 1;
cout << sum << " ";
if ((i + 1) % 10 == 0) cout << endl;
}
}
Необходимо создать контейнер map который хранит в себе ключ “сумма очков на кубиках”, а в значении хранит количество выпадений данной суммы очков. Вывести на экран ключ - значение после генерации 1000 исходов.
C/C++
Нужна помощь по шаблонам на C++
1)
.
#include <iostream>
#include <string>
#include <vector>
class Butterfly
{
public:
std::string stage_name;
int life_days;
void changeStage()
{
if (stage_name == "гусеница" && life_days >= 7)
{
stage_name = "куколка";
life_days = 0;
}
else if (stage_name == "куколка" && life_days >= 15)
{
stage_name = "бабочка";
life_days = 0;
}
else if (stage_name == "бабочка" && life_days >= 23)
{
stage_name = "гусеница";
life_days = 0;
}
else
{
life_days += 1;
}
}
};
int main()
{
std::vector<Butterfly*> butterflies;
for (int i = 0; i < 10; i++)
{
butterflies.push_back(new Butterfly);
}
// Инициализация вектора
for (int i = 0; i < 10; i++)
{
butterflies[i]->stage_name = "гусеница";
butterflies[i]->life_days = 0;
}
std::cout << "Исходный вектор:" << std::endl;
for (int i = 0; i < 10; i++)
{
std::cout << butterflies[i]->stage_name << " " << butterflies[i]->life_days << std::endl;
}
// С помощью цикла вызываем метод changeStage()
for (int i = 0; i < 10; i++)
{
butterflies[i]->changeStage();
}
std::cout << "\nПолучившийся вектор:" << std::endl;
for (int i = 0; i < 10; i++)
{
std::cout << butterflies[i]->stage_name << " " << butterflies[i]->life_days << std::endl;
}
return 0;
}
2)
#include <ctime>
#include <iostream>
#include <map>
using namespace std;
int main() {
srand(time(0));
int sum;
map<int, int> m;
for (int i = 0; i < 1000; i++) {
sum = rand() % 6 + 1 + rand() % 6 + 1;
cout << sum << " ";
if ((i + 1) % 10 == 0) {
cout << endl;
}
if (m.find(sum) != m.end()) {
m[sum]++;
}
else {
m[sum] = 1;
}
}
cout << "Результаты бросания двух кубиков:" << endl;
for (auto n : m) {
cout << "Сумма очков: " << n.first << ", Количество исходов: " << n.second << endl;
}
return 0;
}
.
#include <iostream>
#include <string>
#include <vector>
class Butterfly
{
public:
std::string stage_name;
int life_days;
void changeStage()
{
if (stage_name == "гусеница" && life_days >= 7)
{
stage_name = "куколка";
life_days = 0;
}
else if (stage_name == "куколка" && life_days >= 15)
{
stage_name = "бабочка";
life_days = 0;
}
else if (stage_name == "бабочка" && life_days >= 23)
{
stage_name = "гусеница";
life_days = 0;
}
else
{
life_days += 1;
}
}
};
int main()
{
std::vector<Butterfly*> butterflies;
for (int i = 0; i < 10; i++)
{
butterflies.push_back(new Butterfly);
}
// Инициализация вектора
for (int i = 0; i < 10; i++)
{
butterflies[i]->stage_name = "гусеница";
butterflies[i]->life_days = 0;
}
std::cout << "Исходный вектор:" << std::endl;
for (int i = 0; i < 10; i++)
{
std::cout << butterflies[i]->stage_name << " " << butterflies[i]->life_days << std::endl;
}
// С помощью цикла вызываем метод changeStage()
for (int i = 0; i < 10; i++)
{
butterflies[i]->changeStage();
}
std::cout << "\nПолучившийся вектор:" << std::endl;
for (int i = 0; i < 10; i++)
{
std::cout << butterflies[i]->stage_name << " " << butterflies[i]->life_days << std::endl;
}
return 0;
}
2)
#include <ctime>
#include <iostream>
#include <map>
using namespace std;
int main() {
srand(time(0));
int sum;
map<int, int> m;
for (int i = 0; i < 1000; i++) {
sum = rand() % 6 + 1 + rand() % 6 + 1;
cout << sum << " ";
if ((i + 1) % 10 == 0) {
cout << endl;
}
if (m.find(sum) != m.end()) {
m[sum]++;
}
else {
m[sum] = 1;
}
}
cout << "Результаты бросания двух кубиков:" << endl;
for (auto n : m) {
cout << "Сумма очков: " << n.first << ", Количество исходов: " << n.second << endl;
}
return 0;
}
Похожие вопросы
- Нужна помощь с задачей по c++
- Нужна помощь с выполнением заданий в C++
- C++.Нужна помощь в написании кода.
- Мне нужна помощь с одной задачкой по c++.
- Нужна помощь при решении задачи в c++
- Шаблон структур C++
- Очень нужна помощь. нужен код на C. Задачка будет в описании.
- Помощь с заданием на c++
- Программирование C++, нужна помощь)
- Нужна помощь в программировании на языке C++