Вопрос по информатике:
Известно, что в электронных таблицах 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 соответственно. Необходимо составить программу, которая по
имени столбца определят его номер.
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 16.05.2015 19:51
- Информатика
- remove_red_eye 7696
- thumb_up 27
Ответы и объяснения 1
Для записи номеров столбцов используются 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.2016
begin
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
Функция на VBA
Function 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 = cn
End Function
- 17.05.2015 12:07
- thumb_up 42
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.