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

> Прочтите прежде чем задавать вопрос!

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

 
 Ответить  Открыть новую тему 
> задача на паскале:составить функцию
vesna
сообщение 18.01.2009 20:49
Сообщение #1





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

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


здравствуйте!скажу сразу:искал и на FAQ и на Поиске.не нашёл.

под расстоянием между двумя n-разрядными двоичными кодами понимают количество несовподений в каждой из n-позиций.
Условие:составить функцию rasst(n1n2),аргументами которой являются два длинных положительных числа,рассматриваемые как32-разрядные двоичные коды. возвращаемое функцией значение должно совпадать с "расстоянием" междуn1и n2.

если кто сможет помоч,огромное СПАСИБО,потому что в информатике я norespect.gif

Сообщение отредактировано: vesna - 18.01.2009 22:31
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.01.2009 21:33
Сообщение #2


Гость






Цитата
здравствуйте!скажу сразу:искал и на FAQ и на Поиске.не нашёл.
А знаешь, почему не нашел? Потому что как ты не соизволил дать нормальное название своему топику, так, возможно, и раньше кто-то не назвал тему как положено. И тема была закрыта, или даже существует, но поиском не находится...

Поменяй название темы на более информативное, "задача на паскале" - это плохая идея, иначе согласно пункту 1 Правил Раздела тема будет закрыта или удалена. То же самое касается и второй твоей темы...
 К началу страницы 
+ Ответить 
volvo
сообщение 19.01.2009 23:55
Сообщение #3


Гость






vesna, здесь у тебя вся игра на битовых операциях. Проверяешь последние биты чисел, если они равны - то ничего не делать, если не равны - то увеличить счетчик несовпадений, а потом сдвинуть оба числа на один бит вправо... Продолжать, пока не просмотришь все 32 бита... Вот так, например:
function rasst(n1, n2: longint): integer;
var i, res: integer;
begin
res := 0;
for i := 0 to 31 do begin
inc(res, (n1 and $1) xor (n2 and $1));
n1 := n1 shr 1; n2 := n2 shr 1;
end;
rasst := res;
end;
 К началу страницы 
+ Ответить 
vesna
сообщение 20.01.2009 10:23
Сообщение #4





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

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


огромное СПАСИБО
Вы меня очень выручили!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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