C/C++
Помогите пожалуйста, написать программу в С++
Написать программу по переводу дробного числа из системы счисления с основание Р в систему исчисления с основанием Q
Конечно, вот пример кода на C++:
#include <iostream>
#include <cmath>
using namespace std;
string convert(int decimalNumber, int base) {
string result = "";
while(decimalNumber > 0) {
int remainder = decimalNumber % base;
result = to_string(remainder) + result;
decimalNumber /= base;
}
return result;
}
int main() {
int decimalNumber, baseFrom, baseTo;
cout << "Enter decimal number: ";
cin >> decimalNumber;
cout << "Enter base from: ";
cin >> baseFrom;
cout << "Enter base to: ";
cin >> baseTo;
int integerPart = decimalNumber / baseFrom;
double fractionalPart = (double)decimalNumber / baseFrom - integerPart;
string result = convert(integerPart, baseTo);
if(fractionalPart > 0) {
result += ".";
for(int i = 0; i < 6; i++) {
fractionalPart *= baseTo;
int wholePart = (int)fractionalPart;
result += to_string(wholePart);
fractionalPart -= wholePart;
}
}
cout << "Result: " << result << endl;
return 0;
}
Пример работы программы:
Enter decimal number: 23
Enter base from: 10
Enter base to: 2
Result: 10111
Enter decimal number: 11
Enter base from: 10
Enter base to: 3
Result: 102
Enter decimal number: 0.25
Enter base from: 10
Enter base to: 2
Result: 0.01
Для перевода дробной части в другую систему счисления используется алгоритм последовательного умножения десятичной дроби на основание новой системы счисления и отбрасывания целой части до достижения необходимой точности. В приведённом примере используется точность до 6 знаков после запятой, что можно изменить на своё усмотрение.
#include <iostream>
#include <cmath>
using namespace std;
string convert(int decimalNumber, int base) {
string result = "";
while(decimalNumber > 0) {
int remainder = decimalNumber % base;
result = to_string(remainder) + result;
decimalNumber /= base;
}
return result;
}
int main() {
int decimalNumber, baseFrom, baseTo;
cout << "Enter decimal number: ";
cin >> decimalNumber;
cout << "Enter base from: ";
cin >> baseFrom;
cout << "Enter base to: ";
cin >> baseTo;
int integerPart = decimalNumber / baseFrom;
double fractionalPart = (double)decimalNumber / baseFrom - integerPart;
string result = convert(integerPart, baseTo);
if(fractionalPart > 0) {
result += ".";
for(int i = 0; i < 6; i++) {
fractionalPart *= baseTo;
int wholePart = (int)fractionalPart;
result += to_string(wholePart);
fractionalPart -= wholePart;
}
}
cout << "Result: " << result << endl;
return 0;
}
Пример работы программы:
Enter decimal number: 23
Enter base from: 10
Enter base to: 2
Result: 10111
Enter decimal number: 11
Enter base from: 10
Enter base to: 3
Result: 102
Enter decimal number: 0.25
Enter base from: 10
Enter base to: 2
Result: 0.01
Для перевода дробной части в другую систему счисления используется алгоритм последовательного умножения десятичной дроби на основание новой системы счисления и отбрасывания целой части до достижения необходимой точности. В приведённом примере используется точность до 6 знаков после запятой, что можно изменить на своё усмотрение.
●●● Сгенерировано нейросетью ●●●
Вот пример программы на C++, которая может перевести дробное число из системы счисления с основанием P в систему счисления с основанием Q:
Вот пример программы на C++, которая может перевести дробное число из системы счисления с основанием P в систему счисления с основанием Q:
#include
#include
#include
using namespace std;
int main() {
int P, Q;
string num;
cout > P;
cout > num;
cout > Q;
int integerPart = stoi(num.substr(0, num.find('.')));
string fractionalPart = num.substr(num.find('.') + 1);
string result = "";
// Перевод целой части числа
while (integerPart > 0) {
result += to_string(integerPart % Q);
integerPart /= Q;
}
reverse(result.begin(), result.end());
// Перевод дробной части числа
if (fractionalPart != "") {
result += '.';
double fractionalValue = 0.0;
for (int i = 0; i < fractionalPart.length(); i++) {
fractionalValue += (fractionalPart[i] - '0') * pow(P, -(i + 1));
}
while (fractionalValue > 0) {
fractionalValue *= Q;
int digit = floor(fractionalValue);
result += to_string(digit);
fractionalValue -= digit;
}
cout
Вот пример программы на C++ для преобразования дробного числа из базы P в базу Q:
```cpp
#include <иопоток>
использование пространства имен std;
строка convertFractionalNumber (int num, int baseFrom, int baseTo) {
результат строки = "";
int integerPart = num / baseFrom;
int FractionalPart = num % baseFrom;
в то время как (целая часть! = 0) {
результат = to_string(integerPart % baseTo) + результат;
целая часть /= baseTo;
}
результат += ".";
for (int i = 0; i < 5 && FractionalPart != 0; i++) {
дробная часть *= baseTo;
результат += to_string(fractionalPart/baseFrom);
дробная часть % = baseFrom;
}
вернуть результат;
}
интервал основной () {
число int, baseFrom, baseTo;
cout << "Введите дробное число: ";
цин >> число;
cout << "Введите базу системы счисления, из которой нужно преобразовать: ";
cin >> baseFrom;
cout << "Введите базу системы счисления, в которую нужно преобразовать: ";
cin >> baseTo;
cout << "Преобразованное число: " << convertFractionalNumber(num, baseFrom, baseTo) << endl;
вернуть 0;
}
```
В этой программе функция convertFractionalNumber принимает три аргумента:
- `num`: дробное число для преобразования
- `baseFrom`: основание системы счисления, из которой нужно преобразовать
- `baseTo`: основание системы счисления, в которую нужно преобразовать
Сначала функция разделяет целые и дробные части числа с помощью операторов `/` и `%` соответственно. Затем он преобразует целую часть в новое основание путем многократного деления на новое основание и объединения остатков. Он добавляет к результату десятичную точку, а затем преобразует дробную часть в новое основание путем многократного умножения на новое основание и добавления целой части результата к строке результата. Цикл останавливается после 5 итераций или когда дробная часть становится равной 0.
В основной функции пользователю предлагается ввести дробное число, основание системы счисления, из которой нужно преобразовать, и основание системы счисления, в которую следует преобразовать. С этими аргументами вызывается функция convertFractionalNumber, и результирующая строка выводится на консоль.
```cpp
#include <иопоток>
использование пространства имен std;
строка convertFractionalNumber (int num, int baseFrom, int baseTo) {
результат строки = "";
int integerPart = num / baseFrom;
int FractionalPart = num % baseFrom;
в то время как (целая часть! = 0) {
результат = to_string(integerPart % baseTo) + результат;
целая часть /= baseTo;
}
результат += ".";
for (int i = 0; i < 5 && FractionalPart != 0; i++) {
дробная часть *= baseTo;
результат += to_string(fractionalPart/baseFrom);
дробная часть % = baseFrom;
}
вернуть результат;
}
интервал основной () {
число int, baseFrom, baseTo;
cout << "Введите дробное число: ";
цин >> число;
cout << "Введите базу системы счисления, из которой нужно преобразовать: ";
cin >> baseFrom;
cout << "Введите базу системы счисления, в которую нужно преобразовать: ";
cin >> baseTo;
cout << "Преобразованное число: " << convertFractionalNumber(num, baseFrom, baseTo) << endl;
вернуть 0;
}
```
В этой программе функция convertFractionalNumber принимает три аргумента:
- `num`: дробное число для преобразования
- `baseFrom`: основание системы счисления, из которой нужно преобразовать
- `baseTo`: основание системы счисления, в которую нужно преобразовать
Сначала функция разделяет целые и дробные части числа с помощью операторов `/` и `%` соответственно. Затем он преобразует целую часть в новое основание путем многократного деления на новое основание и объединения остатков. Он добавляет к результату десятичную точку, а затем преобразует дробную часть в новое основание путем многократного умножения на новое основание и добавления целой части результата к строке результата. Цикл останавливается после 5 итераций или когда дробная часть становится равной 0.
В основной функции пользователю предлагается ввести дробное число, основание системы счисления, из которой нужно преобразовать, и основание системы счисления, в которую следует преобразовать. С этими аргументами вызывается функция convertFractionalNumber, и результирующая строка выводится на консоль.
Похожие вопросы
- Помогите пожалуйста написать программу на Си
- Помогите пожалуйста написать программу!
- Помоги пожалуйста написать программу на C++
- Помогите, пожалуйста, написать программу по нижеописанной задаче!
- Помогите пожалуйста написать программу на С++
- Помогите пожалуйста написать программу, реализующую десять генераторов псевдослучайных чисел.СИ!!!!
- Помогите, пожалуйста, написать программу на языке Си.
- Помогите пожалуйста написать программу небольшую в C++. Одномерный массив
- Помогите пожалуйста написать программу на C++. Очень нужно!
- Помогите пожалуйста написать программу на C++. Срочно нужно, пожалуйста.