Вопрос № 108868: Пожалуйста! Помогите! Напишыте простейшый пример на язике Pascal(желательно с обьяснениями) программы перевода с двоичной системы исчисления в восьмеричную (входные данные Double Word, а результат
- Word) и наоборот с восьмеричной в двоичную! Ес...Вопрос № 108937: const masBin: array[0..7] of string[3]=
('000','001','010','011',
'100','101','110','111'); - это массив для 8-чной системы исчисления,
а как написать массив для 16-чной?
Я пробовал набирать:
masBin: array[0..9] of string[4]=...Вопрос № 108945: Просил уже решить эту задачу, но ответа так и не получил. Для стальных и чугунных труб, уже находящихся в эксплуатации, коэффициент сопротивления определяется но формуле: Л={либо 0,021/Д^0,3(степень)при Р>9,2*10^5 ,либо ((1,5*10^-6/Д)+1/Р)^0,3 при...
Вопрос № 108.868
Пожалуйста! Помогите! Напишыте простейшый пример на язике Pascal(желательно с обьяснениями) программы перевода с двоичной системы исчисления в восьмеричную (входные данные Double Word, а результат
- Word) и наоборот с восьмеричной в двоичную! Если можно так же с двоичной в десятиричную. Я знаю что это вас не затруднит - ви профессионалы своего дела, поэтому заранее Вам спасибо! Помогите!
Отвечает: Gh0stik
Здравствуйте, Мироненко Николай Николаевич!
Программа перевода из двоичной в восьмиичную: const masBin: array[0..7] of string[3]=
('000','001','010','011',
'100','101','110','111');
var c8,c2,v,d:string;
i:integer;
begin
write('BIN=');read(c2);
c8:='';
for i:=1 to length(c2) mod 3 do c2:='0'+c2; {если число не состоит из полных триад, то дополняем его ведущими нулями}
while length(c2) > 2 do
begin
v:=copy(c2,length(c2)-2,3); {вырезаем из числа триаду (набор из трех символов)}
i:=0;
while v<>masBin[i] do inc(i); {выбираем из массива номер соответствующего элемента}
str(i,d);
c8:=d+c8; {непосредственно формируем число}
delete(c2,length(c2)-2,3);
end;
write('OCT=',c8); {выводим число в 8-чной системе счисления}
readln;
end.
Программа перевода из восьмиичной в двоичную: const masBin: array[0..7] of string[3]=
('000','001','010','011',
'100','101','110','111');
var c8,c2:string;
i:integer;
begin
write('OCT=');read(c8);
c2:='';
for i:=1 to length(c8) do
c2:=c2+masBin[ord(c8[i])-48]; {используя массив перехода переводим цифру в двоичную}
write('BIN=',copy(c2,pos('1',c2),length(c2)-pos('1',c2)+1)); {выводим число без ведущих нулей}
readln;
readln;
end.
Good Luck!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессор) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 11.11.2007, 00:26 Оценка за ответ: 5 Комментарий оценки: Спасибо за точный и самое главное понятный мне ответ! Все работает! Огромное спасибо!!!
Вопрос № 108.937
const masBin: array[0..7] of string[3]=
('000','001','010','011',
'100','101','110','111'); - это массив для 8-чной системы исчисления,
а как написать массив для 16-чной?
Я пробовал набирать:
masBin: array[0..9] of string[4]=
('0000','0001','0010','0011','0100',
'0101','0110','0111','1000','1001');
masBin: array['A'..'F'] of char =
('1010','1011','1100','1101','1110','1111') - в результате ошибка:
"Type mismatch" - поогите с написаниям массива! Пожалуйста!
Отвечает: Gh0stik
Здравствуйте, Мироненко Николай Николаевич!
Ошибка возникает потому, что Вы описали массив CHAR-ов, а пытаетесь положить в него STRING, потому и возникает "ошибка не соответствия типов".
Да и вообще Ваш массив в идеале должен выглядеть так: const masBin: array[0..15] of string[4]=
('0000','0001','0010','0011',
'0100','0101','0110','0111',
'1000','1001','1010','1011',
'1100','1101','1110','1111');
Как я понял, Вам необходимо сделать переход от HEX к BIN, то рекомендую Вам ознакомится с программкой в приложении.
Good Luck!!!
Приложение:
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессор) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 11.11.2007, 15:02 Оценка за ответ: 5 Комментарий оценки: Большое Вам спасибо за помощь в исправлении ошибки!
Отвечает: Стома С.С.
Здравствуйте, Мироненко Николай Николаевич!
masBin: array['A'..'F'] of char =
('1010','1011','1100','1101','1110','1111')
измените
masBin: array['A'..'F'] of string[4] =
('1010','1011','1100','1101','1110','1111')
array[] - указываете что это массив и диапазон его
of тип - указываете какой тип должен храниться в массиве исходя из размерности массива и типа вычисляется размер памяти для его хранения, тип Char хранит символ
0, 1, а, А не важно а вы присваиваете ему строку вот он и пишет несоответствие типов
Ответ отправил: Стома С.С. (статус: 2-ой класс)
Ответ отправлен: 11.11.2007, 22:52 Оценка за ответ: 5 Комментарий оценки: Просмотел Ваш ответ, и он меня чесно говоря удовлетворяет. Спасибо за помощь в решении проблемы! На оценки я не жлоб, поэтому ставлю 5!!!
Вопрос № 108.945
Просил уже решить эту задачу, но ответа так и не получил. Для стальных и чугунных труб, уже находящихся в эксплуатации, коэффициент сопротивления определяется но формуле: Л={либо 0,021/Д^0,3(степень)при Р>9,2*10^5 ,либо ((1,5*10^-6/Д)+1/Р)^0,3 при Р<9,2*10^5. Где Р=С*Д/В; Вычислить Р и Л если даны В=0,009 см^2/с Д=19,1мм С=1,2,5,10,20,50,100м/с
Предварительно необходимо привести все величины к одному "измерению", а уж потом пробовать вычислять... (см2 -> м2; мм -> м).
Вот код программы: var l,p,d,v:real;
c:integer;
begin
d:=0.0191;
v:=0.0000009;
for c:=1 to 100 do
case c of
1,2,5,10,20,50,100:
begin
p:=c*d/v;
if p > 920000
then l:=0.021/exp(0.3*ln(d))
else l:=exp(0.3*ln(0.0000015/d+1/p));
writeln('c=',c:3,' p=',p:11:3,' l=',l:4:3);
end;
else continue;
end;
readln;
end.
Good Luck!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессор) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 11.11.2007, 16:22 Оценка за ответ: 5 Комментарий оценки: Ну а какой комментарий? Быстро, профессионально! Спасибо.