hlebushek
@hlebushek
oceanographer

Как написать программу, которая выдает результаты расчета через определенный интервал времени с возможностью изменения параметров?

Допустим есть переменная a и b. На каждом шаге расчета к переменной a прибавляем значение переменной b. Нужно, что бы программа выводила значение каждого шага с интервалом в 1 секунду. Но при этом должна быть возможность во время счета изменить переменную b. То есть можно поставить на паузу, изменить значение переменной и продолжить счет с уже новым значением. Думаю, что можно поставить какую-нибудь кнопку паузы, которая будет менять значение флага в цикле

переменные a, b
flag1 = true (кнопка)

цикл с интервалом по времени:
   a = a + b
   считать значение falg1 (нажал ли кнопку паузы)
   если flag1 = false: (нажал)
      считать b
      flag1 = true
      продолжить
   вывод переменной a


Как реализовать этот счес и вывод с определенным интервалом времени с возможностью паузы и изменением значения переменной? И да, написать хотелось бы на C++
ос windows, если что
  • Вопрос задан
  • 452 просмотра
Решения вопроса 1
AtomKrieg
@AtomKrieg
Давай я поищу в Google за тебя
Для паузы ничего не надо
#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
	int val =0, timer = 0, freq = 50;

	while(true) {
		Sleep(1000/freq); //win-функция
		timer += 1000/freq;

		if (timer > 1000) {
			timer -= 1000;
			cout << val++ << endl;
		}

		if (GetAsyncKeyState(VK_SPACE)) { //win-функция
			cout << "New val: ";
			cin >> val;
		}
	}

	system("pause");
	return 0;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
kpa6uu
@kpa6uu
Программист Талибана [Пыхерский Алибаба]
должно быть около того. Если во время работы программы зажмёте кнопку "C" - нужно будет ввести новое значение переменной b.
while(true){
if(getch() == 32){
std::cout << 'Vvedite novoe b: '; std::cin >> b;
}
std::cout << a << std::endl;
a = a + b;
usleep(1000000);
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы