فى نظام من نظم جداول البيانات مثل اكسل على سبيل المثال يتم استخدام الترقيم التالي فى الأعمدة
26 وهكذا حتى العمود B والعمود الثانى له الترتيب A العمود الاول له الترتيب
والعمود 28 AA بعد ذلك يتم استخدام خانتين من الحروف فالعمود 27 يعبر عنه ب Z له الترتيب
. . .يستخدم ثلاثة خانات وهكذا ZZ و بعد AZ والعمود 52 يعبر عنه ب AA
الاعمدة يعبر عنها بالارقام الصحية التى تبدء من 1 فيعبر عن موقع الخلية بدمج
الصفوف + الاعمدة
: على سبيل المثال
BC23
يعبر عن العمود 55 و الصف 23
فى بعض الاحيان يستخدم طريقة اخري على سبيل المثال
R23C55
تعنى الصف 23 و العمود 55
المطلوب
تصميم برنامج والذي يقوم بقراءة المدخلات وتحويلها الى نظام اخري
المدخلات
اول سطر يحتوي عدد المدخلات التى ستيدخلها المستخدم وهو عدد صحيح
بعد ذلك يتم ادخال كل سطر يحتوي على نظام
مثال
الدخل
BC23 R23C55
الخرج
2 R23C55 BC23
البرنامج
حاول حل البرنامج بنفسك اولًا
CPP بلغة
#include <cstdio> #include <cstring> #include <cctype> int main() { int n; char ch[20]; scanf("%d", &n); while (n--) { scanf("%s", ch); size_t m = strlen(ch); size_t C = 1; while (C < m && isdigit(ch[C])) { ++C; } if (C > 1 && C < m) { int col(0); for (size_t i = C + 1; i < m; ++i) { col = col * 10 + (ch[i] - '0'); } int pow(26); while (col > pow) { col -= pow; pow *= 26; } col -= 1; while (pow != 1) { pow /= 26; printf("%c", col / pow + 'A'); col %= pow; } ch[C] = 0; printf("%sn", ch + 1); } else { int col(0), val(0), pow = (1); size_t i = 0; while (isalpha(ch[i])) { col += pow; pow *= 26; val = val * 26 + ch[i] - 'A'; i += 1; } col += val; printf("R%sC%dn", ch + i, col); } } return 0; }