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

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

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

 
 Ответить  Открыть новую тему 
> подсчет едениц из двоичного числа, для VOLVO
zetsokol
сообщение 6.12.2005 16:27
Сообщение #1


Новичок
*

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

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


Вот код программы но он считает не правильно



var
X, i, n: Integer;
begin
Readln(X);

n := 0;
for i := 0 to 15 Do
if (($0001 shl i) and X) <> 0 then inc(n);

writeln(n);
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 6.12.2005 16:30
Сообщение #2


Гость






zetsokol,
правда? Может это не код, а ты неправильно считаешь? Я уже говорил, повторяю СПЕЦИАЛЬНО для тебя: я НЕ ПРИНИМАЮ возражения в такой форме !!! Приведи пример, который ты пробовал (и данные, которые вводил), и то, что ты ХОЧЕШЬ получить, и что получил... Иначе, извини, я ничем помочь тебе не могу...

Вот результат прогона:
Цитата(Console)
0
0

7
3

127
7

А вот теперь ТЫ докажи мне, что программа неправильно работает !!! mad.gif
 К началу страницы 
+ Ответить 
zetsokol
сообщение 7.12.2005 10:34
Сообщение #3


Новичок
*

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

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


Извени я неправильно наверное тебе пояснил.

Сосчитать количество единиц в двоичной записи числа i.

Например:

00111011

ответ:

5 едениц
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.12.2005 11:01
Сообщение #4


Гость






zetsokol, специально для тебя - повторяю:
"00111011"(2) = 59(10)

Вводишь в мою программу число 59 и получаешь 5... Не может Паскаль работать с числами в системе счисления 2... Если тебе надо было нечто другое - нужно было ПРАВИЛЬНО задавать вопрос, а не утверждать, что программа работает неверно.
 К началу страницы 
+ Ответить 
zetsokol
сообщение 7.12.2005 12:18
Сообщение #5


Новичок
*

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

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


Еще раз сори. Я не про то что прога работает не верно просто считала не то что надо было мне.

На счет двоичной системы счисления - водить число нужно только еденицы пусть в 10 системе. Поставить проверку не трудно
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.12.2005 12:24
Сообщение #6


Гость






Попробуй вот так:
var
s: string;
i, count: integer;

begin
write('n = '); readln(s);

count := 0;
for i := 1 to length(s) do
if s[i] = '1' then inc(count)
else
if s[i] <> '0' then begin
writeln('error: illegal input'); halt;
end;

writeln('count = ', count)

end.
 К началу страницы 
+ Ответить 
zetsokol
сообщение 9.12.2005 10:01
Сообщение #7


Новичок
*

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

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


спасибо Volvo по идее должно работать. Что-то я сам про это не додумался, я тока про целый тип думал good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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