Для работы Коллеги, нужна помощь! Может кто сталкивался с таким уже. Кто может, подскажите в общем: Итак, стоит задача "НАПИСАТЬ КОД", который бы считал мне число ПИ методом Архимеда (в окружность вписывают правильные шестиугольники кратные 6: 6, 12, 24, 48, 96, ..., и описывают окружность правильными многоугольниками с тем же количеством углов: 6, 12, 24, 48, 96,...), но сложность в том, что компьютер должен делать расчет бесконечно, т.е. считать и выводить количество знаков после запятой до тех пор, пока я не отключу программу. Таким образом, эта программа должна выводить результат больше, чем границы стандартных типов данных (даже самых больших, таких как long double). Из подсказок: 1) Мне предложили использовать массив байтов; 2) Создать свой тип данных, из стандартных я могу использовать только int; 3) Результат расчета записывать куда-нибудь в файл; 4) Мог поставить работу программы на паузу, потом включить ее, чтобы она дальше считала Это задание на период адаптации меня в компании (я устроился программистом). Это код, который я сделал для тестирования формулы, это расчет числа ПИ по написанному многоуголику /* РАСЧЁТ ЧИСЛА ПИ a_nPlusOne = sqrt(pow(a_n/2, 2) + pow(r - sqrt(pow(r, 2) - pow(a_n/2, 2)), 2)); */ #include #include using namespace std; int main() { setlocale(LC_ALL, "RUS"); /*Ввод количества итераций*/ int NumberOfIterations; cout << "Введите количество итераций " << endl; cin >> NumberOfIterations; // нет смысла вводить больше 29 !!! /*Вводные данные*/ int m = 6; const double r_in = 0.5; double a_n = 0.5; double d_in = 2 * r_in; double a_nPlusOneIn; /*Расчет периметра ВПИСАННОГО многоугольника*/ for (int n = 1; n <= NumberOfIterations; n++) { if (m <= 0) { cout << "ПЕРЕПОЛНЕНИЕ !!!" << endl; break; } else { a_nPlusOneIn = sqrt(pow(a_n / 2, 2) + pow(r_in - sqrt(pow(r_in, 2) - pow(a_n / 2, 2)), 2)); double result_a_nPlusOneIn = 2 * a_nPlusOneIn; cout << "Расчет " << n << endl; cout << "Количество сторон ВПИСАННОГО многоугольника равно " << m << endl; cout << "Длина стороны ВПИСАННОГО многоугольника равна " << result_a_nPlusOneIn << endl; cout << "Число ПИ примерно равно " << ((result_a_nPlusOneIn * m) / d_in) << endl << endl; a_n = a_nPlusOneIn; m = m * 2; } } return 0; }
Для работы Необходимо помочь с задачей, реализовать ее на С++. Итак, стоит задача "НАПИСАТЬ КОД", который бы считал мне число ПИ = 3,14… методом Архимеда (в окружность вписывают правильные шестиугольники кратные 6: 6, 12, 24, 48, 96, ..., и описывают окружность правильными многоугольниками с тем же количеством углов: 6, 12, 24, 48, 96,...), но сложность в том, что компьютер должен делать расчет бесконечно, т.е. считать и выводить количество знаков после запятой до тех пор, пока я не отключу программу. Таким образом, эта программа должна выводить результат больше, чем границы стандартных типов данных (даже самых больших, таких как long double). Из подсказок и требований: 1) Мне предложили использовать массив байтов; 2) Создать свой тип данных, из стандартных я могу использовать только int; 3) Результат расчета записывать куда-нибудь в файл; 4) Мог поставить работу программы на паузу, потом включить ее, чтобы она дальше считала; 5) Нельзя использовать сторонние библиотеки; Это код, который я сделал для тестирования формулы, это расчет числа ПИ по написанному многоуголику /* РАСЧЁТ ЧИСЛА ПИ a_nPlusOne = sqrt(pow(a_n/2, 2) + pow(r - sqrt(pow(r, 2) - pow(a_n/2, 2)), 2)); */ #include #include using namespace std; int main() { setlocale(LC_ALL, "RUS"); /*Ввод количества итераций*/ int NumberOfIterations; cout << "Введите количество итераций " << endl; cin >> NumberOfIterations; // нет смысла вводить больше 29 !!! /*Вводные данные*/ int m = 6; const double r_in = 0.5; double a_n = 0.5; double d_in = 2 * r_in; double a_nPlusOneIn; /*Расчет периметра ВПИСАННОГО многоугольника*/ for (int n = 1; n <= NumberOfIterations; n++) { if (m <= 0) { cout << "ПЕРЕПОЛНЕНИЕ !!!" << endl; break; } else { a_nPlusOneIn = sqrt(pow(a_n / 2, 2) + pow(r_in - sqrt(pow(r_in, 2) - pow(a_n / 2, 2)), 2)); double result_a_nPlusOneIn = 2 * a_nPlusOneIn; cout << "Расчет " << n << endl; cout << "Количество сторон ВПИСАННОГО многоугольника равно " << m << endl; cout << "Длина стороны ВПИСАННОГО многоугольника равна " << result_a_nPlusOneIn << endl; cout << "Число ПИ примерно равно " << ((result_a_nPlusOneIn * m) / d_in) << endl << endl; a_n = a_nPlusOneIn; m = m * 2; } } return 0; }
Как могу я найти учеников в Нижнем Новгороде через ваш сайт?
Зарегистрируйтесь на нашем сайте и заполните профиль, указав свои квалификации и предметы, которые вы преподаёте. Ваш профиль будет доступен потенциальным ученикам, которые могут связаться с вами напрямую для дальнейшего обсуждения деталей обучения
Какие требования к квалификации для регистрации на сайте?
Для регистрации требуется базовая информация о вашем образовании и опыте преподавания. Мы не требуем наличия лицензий или сертификатов, но вы можете указать их для повышения доверия потенциальных учеников
Могу ли я установить гибкий график работы?
Вы полностью контролируете свой график и можете обсуждать его напрямую с учениками, чтобы найти удобное время для обеих сторон
Как происходит процесс оплаты занятий?
Оплата проводится напрямую между вами и учениками. В среднем вы сможете заработать от 497.54 рублей с занятия
Каковы условия отмены занятий?
Условия отмены и взаимодействия с учениками вы устанавливаете и согласовываете индивидуально. Мы рекомендуем обговаривать все ключевые моменты перед началом обучения