IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Строки
Zzzzz
сообщение 10.12.2005 20:10
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Как от одного элемента строки отнять другой g[5]-st[1] ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.12.2005 20:12
Сообщение #2


Гость






Chr(Ord(g[5])-Ord(st[1]))

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

Кстати, а что будет если g[5] < st[1] ? Программа завершится с ошибкой, или в строке будет мусор...
 К началу страницы 
+ Ответить 
Zzzzz
сообщение 10.12.2005 20:22
Сообщение #3





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


У меня задача: по номеру группы вычислить год набора.Пользователь вводит группу 1523,а программа от текущего года отнимает номер курса,т.е 1 цифру.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Zzzzz
сообщение 10.12.2005 20:34
Сообщение #4





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Последний вопрос,просто очень нужно!!!Как напечатать результат?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 10.12.2005 20:44
Сообщение #5


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


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.



Сообщение отредактировано: klem4 - 10.12.2005 20:52


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Zzzzz
сообщение 10.12.2005 20:57
Сообщение #6





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


blum.gif Большое спасибо!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Sonya
сообщение 10.12.2005 23:46
Сообщение #7


Гость






y- (ord(s[1])-48));

А почему именно 48(как нашли это число?)
 К началу страницы 
+ Ответить 
volvo
сообщение 10.12.2005 23:57
Сообщение #8


Гость






Ord('0') = 48
Порядковый номер '0' в таблице символов...
yes2.gif
 К началу страницы 
+ Ответить 
Sonya
сообщение 11.12.2005 0:08
Сообщение #9


Гость






Наверное мне не дано...
 К началу страницы 
+ Ответить 
volvo
сообщение 11.12.2005 11:06
Сообщение #10


Гость






Sonya,
погоди, а что именно непонятно? Смотри:
Код
y- (ord(s[1])-48))

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

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

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

Что, собственно, и делается...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 31.08.2025 10:24
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"