|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.04.2014, 16:15 | #1 |
Пользователь
Регистрация: 23.04.2014
Сообщений: 18
|
Можно ли перевести этот код с С++ на Pascal?
Вот задание:
программа переводит два заданных числа из десятичной системы счисления в двоичную, поразрядно суммирует их, и переводит обратно в десятичную систему счисления при этом выводя все промежуточные результаты. Числа при переводе в двоичную систему счисления должны иметь не больше восьми разрядов. Вот код С++ #include <iostream>; #include <string>; #include <conio.h>; using namespace std; const int RANK = 8; //Шаг 1. string FromDecimalToBinary(string, int); string FromBinaryToDecimal(string); string SumBinary(string, string, int); bool ifDecimalValid(string); int main() { string Value1, Value2, SumValue; //Шаг 2. setlocale(LC_ALL, "Russian"); while(true) { cout << "Введите первое слогаемое: "; cin >> Value1; //Шаг 3. if (!(ifDecimalValid(Value1))) {cout << "Число должно быть положительное и целое!" << endl; continue;} //Шаг 4. Value1 = FromDecimalToBinary(Value1, RANK); //Шаг 5. if (Value1 == "ERROR") {cout << "Данное число в двоичном представленни займет больше " << RANK << " разрядов!" << endl; continue;} //Шаг 6. break; } cout << "Первое слогаемое в двоичном представленни: " << Value1 << endl; //Шаг 7. while(true) { cout << "Введите второе слогаемое: "; cin >> Value2; //Шаг 8. if (!(ifDecimalValid(Value2))) {cout << "Число должно быть положительное и целое!" << endl; continue;} //Шаг 9. Value2 = FromDecimalToBinary(Value2, RANK); //Шаг 10. if (Value2 == "ERROR") {cout << "Данное число в двоичном представленни займет больше " << RANK << " разрядов!" << endl; continue;} //Шаг 11. break; } cout << "Второе слогаемое в двоичном представленни: " << Value2 << endl; //Шаг 12. SumValue = SumBinary(Value1, Value2, RANK); //Шаг 13. if (SumValue == "ERROR") //Шаг 14. { cout << "Сумму невозможно в двоичной системе счисления представить используя " << RANK << "разрядов" << endl; system("Pause"); return 0; } cout << "Сумма двух слогаемых в двоичной системе счеслении: " << SumValue << endl; //Шаг 15. SumValue = FromBinaryToDecimal(SumValue); //Шаг 16. cout << "Сумма двух слогаемых в десятичной системе счеслении: " << SumValue << endl; //Шаг 17. system("Pause"); return 0; } string FromDecimalToBinary(string value, int RANK) { string Binary; int Decimal = 0; for (int i = value.length()-1, grade = 1; i > -1; i--, grade *= 10) { Decimal = Decimal + (value[i] - '0')* grade; } for (; Decimal != 0; Decimal/=2) { Binary = char((Decimal%2) + '0') + Binary; } if (Binary.length() > RANK) { return "ERROR"; } for (int i = Binary.length(); i < RANK; i++) { Binary = '0' + Binary; } return Binary; } string FromBinaryToDecimal(string value) { string Result; int Decimal = 0; for (int i = value.length()-1, grade = 1; i > -1; i--, grade *= 2) { Decimal = Decimal + (value[i] - '0')*grade; } while (Decimal != 0) { Result = char((Decimal - (Decimal / 10) * 10) + '0') + Result; Decimal /= 10; } return Result; } string SumBinary(string v1, string v2, int RANK) { string Sum, some, flag = "0"; for (int i = RANK-1; i > -1; i--) { some = string(flag) + v1[i] + v2[i]; if ((some == "010") || (some == "001") || (some == "100")) { Sum = '1' + Sum; flag = '0'; continue; } if ((some == "011") || (some == "101") || (some == "110")) { Sum = '0' + Sum; flag = '1'; continue; } if (some == "111") { Sum = '1' + Sum; flag = '1'; continue; } if (some == "000") { Sum = '0' + Sum; flag = '0'; continue; } } if (flag == "1") { return "ERROR"; } return Sum; } bool ifDecimalValid(string value) { for (int i = value.length() - 1; i > -1; i--) { if((value[i] <'0') && (value[i] > '9')) { return false; } } return true; } |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
На каком языке этот код и можно ли его переделать? | thedoctor | Общие вопросы C/C++ | 8 | 11.01.2014 14:18 |
Перевести код с C++ в Pascal | BloodyBlade | Помощь студентам | 7 | 20.05.2012 20:24 |
Перевести код с Pascal на C++ | Aaaaaa111 | Помощь студентам | 1 | 22.02.2012 14:28 |
перевести код с Pascal на C++ | panic_a | Помощь студентам | 2 | 22.12.2010 00:37 |
Перевести код с Pascal в C++ | gigaman | Общие вопросы C/C++ | 1 | 26.03.2008 12:18 |