Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Программа системы счисления / 7 сообщений из 7, страница 1 из 1
09.10.2017, 21:41
    #39533695
Tasia17
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа системы счисления
Пожалуйста! Объясните, что построчно происходит в этих функциях и процедурах! Очень срочно нужно!

Код: 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.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
function CheckDotCount(s: string): boolean; 
var
  count, i : integer;
begin
  count := 0;
  for i := 1 to Length(s) do
    if (s[i] = '.') then inc(count);  
   if (count > 1) then CheckDotCount := false
   else CheckDotCount := true;
end;


function IntToHex(ds: byte): string;
const
 b: string = '0123456789ABCDEF';
begin
if (b[(ds shr 4) + 1] = '0') then
  Result:= b[(ds and $F) + 1]
else Result:= b[(ds shr 4) + 1] + b[(ds and $F) + 1];  
end;


function HexToInt(s: string): Longword;
 var
   b: Byte;
   c: Char;
 begin
   Result := 0;
   s := UpperCase(s);
   for b := 1 to Length(s) do
   begin
     Result := Result * 16;
     c := s[b];
     case c of
       '0'..'9': Inc(Result, Ord(c) - Ord('0'));
       'A'..'F': Inc(Result, Ord(c) - Ord('A') + 10);
     end;
   end;
 end;


function checkSS(base : integer; s : string): boolean;
var
  i: integer;
  flag : boolean;
begin
  flag := true;
  for i := 1 to Length(s) do 
  begin
    if (HexToInt(s[i]) >= base) then flag := false;
  end;
  if ((base > 16) or (base < 2)) then flag := false;
  Result := flag;
end;


function checkSSR (base : integer):boolean;
begin
if ((base > 16) or (base < 2)) then Result := false
else
Result := true;
end;


function getStringBeforeDot(s:string): string;
  //pos : integer;
begin
  if (Pos('.',s) = 0) then Result := s
  else Result := Copy(s, 1,Pos('.',s)-1);
end;


function getStringAfterDot(s: string):string;
begin
  if (Pos('.',s) = 0) then Result := ''
  else
    Result := copy(s,Pos('.',s)+1,Length(s));
end;


procedure IntConverter(s:string; base_in : integer; base_out : integer);
var
  n1,N,i,r1 : integer;
  d1 : array [0..255] of integer;
begin
  n1 := Length(s);
  N := 0;
  for i := 1 to n1 do
  begin
    N:= N*base_in+HexToInt(s[i]);
  end;
  if (N = 0) then write ('0')
  else
  begin
    r1 := 0;
    while (N <> 0) do
    begin
       d1[r1] := N mod base_out;
       N := N div base_out;
       inc(r1);
    end;
  for i:=r1-1 downto 0 do
    write(IntToHex(d1[i]));
  end;
end;


procedure DotConverter(s:string; base_in : integer; base_out : integer);
var
  n2 , i, k2: longint;
  Nf : double;
begin
  n2 := Length(s);
  if (n2 = 0) then
  begin
    writeln();
    exit;
  end;
  write('.');
  Nf := 0;
  for i := n2 downto 1 do
  begin
    Nf := (HexToInt(s[i]) + Nf) / base_in;
  end;
  k2 := 0;
  while ((Nf <> 0) AND (k2 < 20)) do
  begin
    inc(k2);
    write(IntToHex(Floor(Nf*base_out)));
    Nf := ((Nf*base_out));
  end;
end;
...
Рейтинг: 0 / 0
09.10.2017, 22:47
    #39533707
Aleksandr Sharahov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа системы счисления
Tasia17,

давай сама напиши конкретно, какое место тебе непонятно и что более-менее понятно, а я попробую ответить и исправить, если увижу ошибку.
...
Рейтинг: 0 / 0
10.10.2017, 11:51
    #39533937
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа системы счисления
Tasia17,

это VB?

Там кажись встроеные функции для перевода между Счислениями!
...
Рейтинг: 0 / 0
10.10.2017, 11:56
    #39533940
Aleksandr Sharahov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа системы счисления
Areostar,

это Pascal, домашнее задение
...
Рейтинг: 0 / 0
10.10.2017, 13:11
    #39533994
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа системы счисления
Aleksandr Sharahov,

Тогда понятно!

А им что не обясняли как с счисления на счисление переводить, перед теп как паскаот начать?
Там же все элементарно!!
...
Рейтинг: 0 / 0
10.10.2017, 13:20
    #39534004
Aleksandr Sharahov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа системы счисления
AreostarAleksandr Sharahov,

Тогда понятно!

А им что не обясняли как с счисления на счисление переводить, перед теп как паскаот начать?
Там же все элементарно!!

Не знаю, как сейчас учат. Но складывается впечатление, что у немалой части студентов есть проблемы даже с пониманием представления данных в памяти.
...
Рейтинг: 0 / 0
10.10.2017, 16:57
    #39534217
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программа системы счисления
Aleksandr Sharahov,

Печально если так!

Но скорее всего это просто горе-студентка!
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Программа системы счисления / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]