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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
StyxVX
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 8
#1

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

30.10.2011, 22:06. Просмотров 269. Ответов 0
Метки нет (Все метки)

собственно код:
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.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2011, 22:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Код в Delphi перевести в C++, может кто в силах (C++):

кто может перевести код в с++ - C++
нужно перевести код в С++ В с++ вообще не понимаю ,а вот в паскале набрасал код! кому не сложно помогите пожалуйста uses crt; var...

кто может перевести на С++ с Паскаля - C++
uses crt; const raz=;{/разделители слов, можно добавить} var s,sl:string; i,k:byte; begin clrscr; writeln('Строка:'); ...

Кто может перевести из паскаля в с++? - C++
uses crt; var i,j,n,k: integer; begin read(n); for i:=1 to n div 2 do for j:=1 to n div 2 do if (i*i*i)+(j*j*j)=n...

Может кто перевести эту прогу,для codeblocks - C++
#include &quot;stdafix.h&quot; #include &lt;iostream&gt; using namespace std; int _tmain(int argc, _TCHAR* argv) { float s,t; long...

Кто может переделать код? - C++
Как переделать код, мне помогли написать код с помощью классов, на в универе мне препад сказал что классами нельзя, заставляет переделать с...

Кто может закомментировать код программы С++ ? - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; class het //class { private: float* ms; //massiv...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2011, 22:06
Привет! Вот еще темы с ответами:

Кто может преобразовать код из Паскаля на С++? - C++
111

кто может преобразовать код из Паскаля на С++? выручайте - C++
program Nu_pogodi; //3-3 Добавляем модуль Timers uses GraphABC, Timers; //3-4 Начальная скорость игры const ...

Кто-нибудь может закоментировать код слэшами,пожалуйста? - C++
#include &quot;wot.h&quot; #include &lt;stdio.h&gt; #include &lt;windows.h&gt; #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; #include...

проверьте пожалуйста еще один код программы, кто может - C++
проверьте пожалуйста еще один код программы(кто может вот условие: программа должна проверить число является ли оно простым или нет? ...


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

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

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