Форум программистов, компьютерный форум CyberForum.ru

Код в Delphi перевести в C++, может кто в силах - C++

Войти
Регистрация
Восстановить пароль
 
StyxVX
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 8
30.10.2011, 22:06     Код в Delphi перевести в C++, может кто в силах #1
собственно код:
Delphi
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
var i,j,User,o,u:integer;
    DAC:array [1..3,1..3] of byte;
    user_str,command:string;
 
function test_bit(a:integer;b:byte):boolean;
{Test of Rights; 1 - grant, 2 - write, 3 - read}
var i,c:integer;
begin
 c:=a;
 for i:=1 to b-1 do c:=c div 2;
 if c mod 2=1 then test_bit:=true else  test_bit:=false;
end;
 
procedure print_rights(User:integer);
var j:integer;
begin
 for j:=1 to 3 do {Objects}
 begin
  write('Object ',j);
  if test_bit(DAC[User,j],1) then write(' grant');
  if test_bit(DAC[User,j],2) then write(' write');
  if test_bit(DAC[User,j],3) then write(' read');
  if (not test_bit(DAC[User,j],1)) and (not test_bit(DAC[User,j],2))
     and (not test_bit(DAC[User,j],3)) then write(' not rights');
  writeln;
 end;
end;
 
begin
 {Random fill discrete access control matrix}
 randomize;
 for i:=2 to 3 do
  for j:=1 to 3 do
   DAC[i,j]:=random(8);
 for j:=1 to 3 do DAC[1,j]:=7;
 
 {print DAC}
 for i:=1 to 3 do
 begin
  for j:=1 to 3 do write(DAC[i,j],' ');
  writeln;
 end;
 
 {modelling}
 repeat
  {Identification}
  writeln('User:');
  readln(User_str);
  if User_str='Administrator' then User:=1
     else if User_str='User1' then User:=2
          else if User_str='User2' then User:=3
               else if User_str='exit' then break
                    else begin writeln('Not registred user'); continue; end;
  print_rights(User); {print user's rights}
 
  repeat {user commands}
   write('command>');
   readln(command);
   if command='exit' then break;
   if command<>'grant' then {Not grant command}
   begin
    write('At what object?');readln(o);
    if (o>3) or (o<1) then begin writeln('Object not exist');continue;end;
    if (command='read') and (test_bit(DAC[User,o],3)) then writeln('Read successfully');
    if (command='write') and (test_bit(DAC[User,o],2)) then writeln('Write successfully');
    if (command='read') and (not test_bit(DAC[User,o],3)) then writeln('Read denied');
    if (command='write') and (not test_bit(DAC[User,o],2)) then writeln('Write denied');
   end
   else begin {grant command}
         write('from what object? ');readln(o);
         if (o>3) or (o<1) then begin writeln('Object not exist');continue;end;
         if not test_bit(DAC[User,o],1) then begin writeln('grant denied');break;end;
         write('to what user? ');readln(u);
         if (u>3) or (u<1) then begin writeln('User not exist');continue;end;
         write('what right? ');readln(command);
         if (command='read') and (test_bit(DAC[User,o],3)) then begin if not test_bit(DAC[u,o],3) then
                             DAC[u,o]:=DAC[u,o]+4 end
            else if (command='write') and (test_bit(DAC[User,o],2)) then begin if not test_bit(DAC[u,o],2) then
                             DAC[u,o]:=DAC[u,o]+2 end
              else writeln('You dont have right');
        end;
  until (command='exit');
 until false;
end.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2011, 22:06     Код в Delphi перевести в C++, может кто в силах
Посмотрите здесь:

кто может объяснить синтаксис C++
проверьте пожалуйста еще один код программы, кто может C++
Перевести код программы из Delphi в C++ C++
C++ 3 задачи на С++.. Кто может...
Кто может закомментировать код программы С++ ? C++
кто может перевести код в с++ C++
C++ кто может перевести на С++ с Паскаля
Кто может написать программу на с++ C++
Кто может переделать код? C++
Кто может перевести из паскаля в с++? C++
C++ Может кто перевести эту прогу,для codeblocks
C++ кто может С++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 03:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru