Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 6
1

Написать программу <<Конвертер>>

26.05.2009, 14:09. Показов 3385. Ответов 1
Метки нет (Все метки)

«Перевод из 10-ичной системы счисления в 2-, 8-, 16-ичную»
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2009, 14:09
Ответы с готовыми решениями:

Написать программу - конвертер величин
Написать методы преобразования величин. Написать программу взывающие эти методы. Миля - Километр ...

Можно ли в дельфи 7 написать программу видео конвертер?
Можно ли в дельфи 7 написать программу видео конвертер? Если да то какими функциями?

Написать программу для перевода единиц измерения (конвертер)
Написать программу для перевода единиц измерения например длины . Из: В: Миллиметры Миллиметры ...

Написать программу конвертер текстовых файлов с одной кодировки в другую из файла (CP1251, UTF8, KOIR8)
Написать программу конвертер текстовых файлов с одной кодировки в другую из файла (текст кириллица....

1
138 / 138 / 65
Регистрация: 20.03.2009
Сообщений: 235
26.05.2009, 18:06 2
Лучший ответ Сообщение было отмечено angelada как решение

Решение

функции выдраны из модуля:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
uses crt;
var
n,x:integer;
 
FUNCTION DEC2BIN(DEC: LONGINT): STRING; {в 2-ую сс}
 
VAR
  BIN : STRING;
  I, J: LONGINT;
 
BEGIN
  IF DEC = 0 THEN BIN := '0'
  ELSE
  BEGIN
    BIN := '';
    I := 0;
    WHILE (1 SHL (I + 1)) <=DEC DO I := I + 1;
    { (1 SHL (I + 1)) = 2^(I + 1) }
    FOR J := 0 TO I DO
    BEGIN
      IF (DEC SHR (I - J)) = 1 THEN BIN := BIN + '1'
      { (DEC SHR (I - J)) = DEC DIV 2^(I - J) }
      ELSE BIN := BIN + '0';
      DEC := DEC AND ((1 SHL (I - J)) - 1);
      { DEC AND ((1 SHL (I - J)) - 1) = DEC MOD 2^(I - J) }
    END;
  END;
  DEC2BIN := BIN;
END;
 
FUNCTION DEC2HEX(DEC: LONGINT): STRING; {в 16-ую сс}
 
CONST
  HEXDigts: STRING[16] = '0123456789ABCDEF';
 
VAR
  HEX : STRING;
  I, J: LONGINT;
 
BEGIN
  IF DEC = 0 THEN HEX := '0'
  ELSE
  BEGIN
    HEX := '';
    I := 0;
    WHILE (1 SHL ((I + 1) * 4)) <=DEC DO I := I + 1;
    { 16^N = 2^(N * 4) }
    { (1 SHL ((I + 1) * 4)) = 16^(I + 1) }
    FOR J := 0 TO I DO
    BEGIN
      HEX := HEX + HEXDigts[(DEC SHR ((I - J) * 4)) + 1];
      { (DEC SHR ((I - J) * 4)) = DEC DIV 16^(I - J) }
      DEC := DEC AND ((1 SHL ((I - J) * 4)) - 1);
      { DEC AND ((1 SHL ((I - J) * 4)) - 1) = DEC MOD 16^(I - J) }
    END;
  END;
  DEC2HEX := HEX;
END;
 
FUNCTION DEC2OCT(DEC: LONGINT): STRING; {в 8-ую сс}
 
CONST
  OCTDigts: STRING[8] = '01234567';
 
VAR
  OCT : STRING;
  I, J: LONGINT;
 
BEGIN
  IF DEC = 0 THEN OCT := '0'
  ELSE
  BEGIN
    OCT := '';
    I := 0;
    WHILE (1 SHL ((I + 1) * 3)) <=DEC DO I := I + 1;
    { 8^N = 2^(N * 3) }
    { (1 SHL (I + 1)) = 8^(I + 1) }
    FOR J := 0 TO I DO
    BEGIN
      OCT := OCT + OCTDigts[(DEC SHR ((I - J) * 3)) + 1];
      { (DEC SHR ((I - J) * 3)) = DEC DIV 8^(I - J) }
      DEC := DEC AND ((1 SHL ((I - J) * 3)) - 1);
      { DEC AND ((1 SHL ((I - J) * 3)) - 1) = DEC MOD 8^(I - J) }
    END;
  END;
  DEC2OCT := OCT;
END;
 
begin
clrscr;
    repeat
       write('Viberite cifru 1-2-naya, 2-8-naya, 3-16-naya: ');
    readln(n);
       until (n=1) or (n=2) or (n=3);
               writeln('Vvedite 4islo: ');
       readln(x);
case n of
1: writeln(dec2bin(x));
2: writeln(dec2oct(x));
3: writeln(dec2hex(x));
end;
readkey;
END.
Добавлено через 5 минут 15 секунд
если же надо не по отдельности, а сразу во все 3 системы, поставьте так:
Pascal
1
2
3
4
5
6
7
begin
clrscr;
writeln('Vvedite 4islo: ');
readln(x);
writeln('2-naya: ', dec2bin(x), ' 8-naya: ', dec2oct(x), ' 16-naya: ', dec2hex(x));
readkey;
END.
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2009, 18:06

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Написать конвертер величин
написать приложение который может пересчитать вес в фунтах, валюта, площадь

Написать конвертер валют
Доброго времени суток. Есть задача универа, написать конвертер валют. То есть пользователь вводит...

Написать конвертер дат
Друзья, помогите, сроки горят... Самому разбираться некогда совсем( Очень надо! Необходимо...

Написать конвертер из jpg в bmp
Здравствуй, форум. Можно ли как-то написать конвентор из jpg в bmp? и как это сделать?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.