• Известно, что в электронных таблицах Excel столбцы обозначаются

    латинскими заглавными буквами и их комбинациями A, B, …, Z, AA, AB, …,

    AZ, BA, BB, …, BZ, …, ZZ, AAA, AAB, …, XVD. Каждому столбцу

    соответствует номер 1, 2, …, 26, 27, 28, …, 52, 53, 54, …, 78, …, 702, 703, 704,

    …, 16384 соответственно. Необходимо составить программу, которая по

    имени столбца определят его номер.

Ответы 3

  • ну и на том спасибо
    • Автор:

      stephanie
    • 6 лет назад
    • 0
  • Выложите вопрос повторно за 5 баллов, к примеру, я дам решение "для детсада" )))
  • Для записи номеров столбцов используются 26 латинских букв, причем после исчерпания букв A..Z следует АА..ZZ, затем - ААА. Это всего лишь кодирование чисел в системе счисления по основанию 26, сдвинутой на единицу (потому что нулей нет) с алфавитом А..Z.Тогда запись вида a₁a₂a₃ = a₁·26² + a₂·26 + a₃.Полагаем, что А=1, B=2, ... Z=26 Тогда XVD₂₆ = 24·26² + 22·26 + 5 = 16224 + 572 + 4 = 16800, но никак не 16384. 16384 кодируется как XFD - в условии опечатка.// PascalABC.NET 3.2, сборка 1334 от 12.11.2016begin  var s:=UpperCase(ReadlnString('Введите имя столбца'));  var n:=s.Length;  var cn:=0;  for var i:=1 to n do      cn+=(ord(s[n-i+1])-64)*trunc(power(26,i-1));  Writeln('Номер колонки равен ',cn)end.ПримерыВведите имя столбца XFDНомер колонки равен 16384Введите имя столбца AAНомер колонки равен 27Функция на VBAFunction cln(s As String) As Integer    Dim colNumber As Integer, i As Integer    s = UCase(s): cn = 0    n = Len(s)    For i = 1 To n        cn = cn + (Asc(Mid(s, n - i + 1, 1)) - 64) * 26 ^ (i - 1)    Next    cln = cnEnd Function
    • Автор:

      iris23
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years