Помощь - Поиск - Пользователи - Календарь
Полная версия: Строки
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
Zzzzz
Как от одного элемента строки отнять другой g[5]-st[1] ?
volvo
Chr(Ord(g[5])-Ord(st[1]))

Только зачем? wacko.gif

Кстати, а что будет если g[5] < st[1] ? Программа завершится с ошибкой, или в строке будет мусор...
Zzzzz
У меня задача: по номеру группы вычислить год набора.Пользователь вводит группу 1523,а программа от текущего года отнимает номер курса,т.е 1 цифру.
Zzzzz
Последний вопрос,просто очень нужно!!!Как напечатать результат?
klem4
uses crt, dos;
var
s : string[4];
y,m,d,dw : word;
begin

clrscr;

write('Группа : '); readln(s);

GetDate(y,m,d,dw);

writeln('Год набора : ', y- (ord(s[1])-48));

readln;
end.



?

ну или вот так :

uses crt;
var
s : string[4];
y : word;
begin

clrscr;

write('Группа : '); readln(s);

write('Текущий год : '); readln(y);

writeln('Год набора : ', y- (ord(s[1])-48));

readln;
end.

Zzzzz
blum.gif Большое спасибо!!!
Sonya
y- (ord(s[1])-48));

А почему именно 48(как нашли это число?)
volvo
Ord('0') = 48
Порядковый номер '0' в таблице символов...
yes2.gif
Sonya
Наверное мне не дано...
volvo
Sonya,
погоди, а что именно непонятно? Смотри:
Код
y- (ord(s[1])-48))

y - это целое число, правда? От него надо отнять первую цифру номеры группы... Но мы не можем просто так взять и отнять от целого числа какой-то символ, потому что эти типы данных несовместимы...

Тогда посмотрим внимательно, что же, собственно, нам нужно сделать (еего мы хотим добиться этим вычитанием)... Выясняется, что если s[1] = '1', нужно от числа отнять 1, если s[1] = '2', нужно отнять 2, и т.д... Так как все цифры в алфавите идут последовательно одна за другой:
Цитата
'0', '1', '2', ...

, то получается, что нам достаточно отнять от числа НЕ символ, а разницу кодов символа и '0'.

Что, собственно, и делается...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.