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

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

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

 
 Ответить  Открыть новую тему 
> помогите пожалуйста решить задачу, задача на системы исчисления
сообщение
Сообщение #1





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

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


Здравствуйте уважаемые форумчане! помогите пожалуйста решить задачу,я совсем не понимаю ее,так же как и мой друг,который в паскале более-менее разбирается.поиском пользовался,но конкретно такого не нашел.будьте добры помогите сделать, а то я совсем уже отчаялся..

Дан вектор x[8],состоящий из нулей и единиц.представить это число в десятичной системе исчисления,учитывая что x[1] соответствует старшему разряду..??? unsure.gif заранее спасибо за помощь!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

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

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


Т.е. если дан массив 1 1 1 1 1 1 1 1,то надо чтоб вывело 255?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


Цитата(Client @ 24.12.2007 19:51) *

Т.е. если дан массив 1 1 1 1 1 1 1 1,то надо чтоб вывело 255?


честно говоря я вообще не очень разбираюсь в системиах исчисления.но видимо именно так как вы сказали, Client
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Человек
*****

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

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


я думаю, должно быть как то так...
Код
function pow(const p:integer):integer;
        //возвращает степень двойки
var d,i:integer;
begin
        if p=0 then d:=1 else  begin
                d:=1; i:=1;
                while (i <= p) do begin
                        d:=d*2; inc(i);
                end;
        end;
        pow:=d;
end;
var
        b :array[1..8] of integer;
        i, int:integer;
begin
        for i:=1 to 8 do
                readln(b[i]);
        int:=0;
        for i:=7 downto 0 do
                int:=int+ b[(i+1)] * pow(i);
        writeln(int);
end.

+
обрати вниманние на ввод данных, ведь в условии не указанно это и поэтому может ты хотел реализовать по другому...

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

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

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


compiler а ты ее проверил?? Что-то не верится, что при 00000010 будет 64 (здесь считает как 01000000)mad.gif
Должно быть наоборот, ведь мы записываем число слева-направо

Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Человек
*****

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

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


Цитата(Client @ 24.12.2007 19:36) *
ведь мы записываем число слева-направо
Я незнаю как вы записываете. В задании про это ничего не сказанно, в условии указан только способ хранения. Мне удобно записывать так(обрати внимание на моё примечание).

замечание считаю не коректным.


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Профи
****

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

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


Цитата
замечание считаю не коректным.
Это мое мнение,посто, что так более удобно ввести массив (и это вовсе не замечание)
Цитата
в условии не указанно
да, это так
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





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

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


огромное спасибо,заработало!!! вот полный код:

program Gushin02;
uses crt;
var
b :array[1..8] of integer;
i, int:integer;
function pow(const p:integer):integer;
var d,i:integer;
begin
if p=0 then d:=1 else begin
d:=1; i:=1;
while (i <= p) do begin
d:=d*2; inc(i);
end;
end;
pow:=d;
end;

begin clrscr;
writeln ('vvedite vector x[8]');
for i:=8 downto 1 do
read(b[i]);
int:=0;
for i:=7 downto 0 do
int:=int+ b[(i+1)] * pow(i);
writeln(int);
readln;
readkey;

end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 20.09.2020 3:01
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name