Количество символов между двумя буквами алфавита. Определение буквы по ее номеру в алфавите

Задача

  1. Пользователь вводит две буквы. Определить, на каких местах алфавита они стоят, и сколько между ними находится букв.
  2. Пользователь вводит номер буквы в алфавите. Определить, какая это буква.

Пояснение к задаче и алгоритм решения

Чтобы определить позицию буквы в алфавите, надо знать по используемой таблице символов коды первой буквы алфавита и той, позиция которой определяется. Если вычесть из кода искомой буквы код первой и прибавить 1, то получим как раз номер буквы в алфавите. Почему нужно прибавлять 1? Представьте, что ищется позиция буквы 'b'. Если из ее кода вычесть код буквы 'a', то получится 1, но 'b' - это вторая буква.

Для того, чтобы определить количество символов между двумя буквами, надо найти разность их кодов или позиций в алфавите и вычесть из полученного значения 1.

Поиск буквы по ее номеру в алфавите также опирается на знание кода первой буквы. К коду первой буквы прибавляется номер в алфавите искомой буквы за вычетом 1.

Нижеприведенные программы правильно работают только с английскими строчными (маленькими) буквами.

Исходный код на языке программирования Pascal

var
    a,b: char;
    an, bn, n: byte;
begin
    write('Буква 1: '); readln(a);
    write('Буква 2: '); readln(b);
    an := ord(a);
    bn := ord(b);
    writeln('Позиция 1: ', an-ord('a')+1);
    writeln('Позиция 2: ', bn-ord('a')+1);
    n := abs(bn-an)-1;
    writeln('Количество букв между ними: ', n);
    writeln;
    write('Позиция буквы в алфавите: '); readln(n);
    n := n+ord('a')-1;
    writeln('Это буква - ', chr(n));
end.

Пример(ы) выполнения программы на языке Pascal

Буква 1: d
Буква 2: a
Позиция 1: 4
Позиция 2: 1
Количество букв между ними: 2
 
Позиция буквы в алфавите: 20
Это буква - t

Исходный код на языке программирования C

#include <stdio.h>
 
main() {
    char a, b, n;
    scanf("%c%c", &a, &b);
    printf("Позиция 1: %d\n", a-'a'+1);
    printf("Позиция 2: %d\n", b-'a'+1);
    printf("Между ними символов: %d\n", abs(b-a)-1);
 
    scanf("%d", &n);
    printf("Это буква: %c\n", n+'a'-1);
}

Пример(ы) выполнения программы на языке C

qe
Позиция 1: 17
Позиция 2: 5
Между ними символов: 11
26
Это буква: z

Особенности решения на языке программирования C

В языке программирования Си символьный тип по сути является числовым. Вывод буквы или числа зависит от формата вывода. "%c" выводит символ, соответствующий числу-коду по таблице символов; "%d" выводит само число.

Исходный код на языке программирования Python

a = ord(input('1-я буква: '))
b = ord(input('2-я буква: '))
a = a - ord('a') + 1
b = b - ord('a') + 1
print('Позиции: %d и %d' % (a,b))
print('Между буквами символов:', abs(a-b)-1)
 
n = int(input('Номер буквы в алфавите: '))
n = ord('a') + n - 1
print('Это буква', chr(n))

Пример(ы) выполнения программы на языке Python

1-я буква: t
2-я буква: z
Позиции: 20 и 26
Между буквами символов: 5
Номер буквы в алфавите: 12
Это буква  l

Исходный код на языке программирования КуМир

алг буква в алфавите
нач
  сим a, b
  цел an, bn
  вывод "Позиции двух букв в алфавите:", нс
  ввод a, b
  an := код(a)-код('a')+1
  bn := код(b)-код('a')+1
  вывод an," ", bn, нс
  вывод "Количество символов между ними: ", abs(an-bn)-1, нс
  вывод "Номер буквы: "
  ввод an
  a := символ(код('a')+an-1)
  вывод "Это буква: ", a
кон

Пример(ы) выполнения программы на языке КуМир

Позиции двух букв в алфавите:
a d
1 4
Количество символов между ними: 2
Номер буквы: 4
Это буква: d

Исходный код на языке программирования Basic

input "Первый символ: ", a$
input "Второй символ: ", b$
a = asc(a$) - asc("a") + 1
b = asc(b$) - asc("a") + 1
c = abs(a-b) - 1
print "Место в алфавите первого символа: " + a
print "Место в алфавите второго символа: " + b
print "Между ними символов: " + c
 
input "Номер символа в алфавите: ", n
a = asc("a")
n$ = chr(n+a-1)
print "Это символ: " + n$

Пример(ы) выполнения программы на языке Basic

Первый символ: a
Второй символ: z
Место в алфавите первого символа: 1
Место в алфавите второго символа: 26
Между ними символов: 24
Номер символа в алфавите: 6
Это символ: f

Тема

Линейные алгоритмы

Уровень сложности

Средний

Дата публикации