Машины Тьюринга и их варианты

Данный материал ориентирован на студентов, изучающих элементы теории алгоритмов, например, в курсе  "Математической логики". Он посвящён рассмотрению вопросов существования ограниченных вариантов машин Тьюринга (МТ), способных эмулировать вычисления MT в их авторской (классической) версии.  Читать дальше »

5
Your rating: Нет Average: 5 (2 votes)

Языки, грамматики, Бэкусовские нормальные формы (БНФ)

Введём несколько определений. Пусть задано некоторое непустое, конечное множество знаков А={a1, ...an}, которое мы назовём алфавитом

Любую конечную последовательность букв (которые могут и повторяться), выбираемых из алфавита А назовём словом (цепочкой) в А.

Множество всех слов в алфавите А, включая и пустое слово, которое мы обозначим через ε, будем обозначать через A*.   Читать дальше »

4.8
Your rating: Нет Average: 4.8 (10 votes)

Системы внутреннего кодирования целочисленных значений

Прямой код

Простейшей формой кодирования целых значений в машинной памяти является, так называемый прямой код, определяемый следующим образом.

Пусть для внутреннего представления значений целого типа в машинной памяти отводятся ячейки, состоящие из N двоичных разрядов (обычно N выбирается равным 8, 16, 32 и т.д). Читать дальше »

4.6
Your rating: Нет Average: 4.6 (20 votes)
Коцур Сергей аватар

Домашнее задание 21\09

  1. var a,revers:integer;
  2. b1,b2,b3,b4,b5,b6,b7,b8:byte;
  3. begin
  4.    writeln('Введите допустимое число a:');
  5.    read(a);
  6.    b1:= a shr 7; //[x]xxx xxxx -> xxxx xxx[x]
  7.    
  8.    b2:= a shl 1; //x[x]x xxxx -> [x]xxx xxxx
  9.    b2:= b2 shr 7; //[x]xxx xxxx -> xxxx xxx[x]
  10.    
  11.    b3:= a shl 2;  //..аналогично
  12.    b3:= b3 shr 7;
  13.    
  14.    b4:= a shl 3;
  15.    b4:= b4 shr 7;
  16.    
  17.    b5:= a shl 4;
  18.    b5:= b5 shr 7;
  19.    
  20.    b6:= a shl 5;
  21.    b6:= b6 shr 7;
  22.    
  23.    b7:= a shl 6;
  24.    b7:= b7 shr 7;
  25.    
  26.    b8:= a shl 7;
  27.    b8:= b8 shr 7;
  28.    revers:= b8*10000000+b7*1000000+b6*100000+b5*10000+b4*1000+b3*100

Набор тестов к программе выбора максимума

  1. Тест #1
  2. Input
  3. -128 127
  4. Output
  5. 127
  6.  
  7. Тест #2
  8. Input
  9. 127 -128
  10. Output
  11. 127
  12.  
  13. Тест #3
  14. Input
  15. -128 57
  16. Output
  17. 57
  18.  
  19. Тест #4
  20. Input
  21. 44 -128
  22. Output
  23. 44
  24.  
  25. Тест #5
  26. Input
  27. -128 0
  28. Output
  29. 0
  30.  
  31. Тест #6
  32. Input
  33. 0 -128
  34. Output
  35. 0
  36.  
  37. Тест #7
  38. Input
  39. -128 -53
  40. Output
  41. -53
  42.  
  43. Тест #8
  44. Input
  45. -60 -128
  46. Output
  47. -60
  48.  
  49. Тест #9
  50. Input
  51. -128 -128
  52. Output
  53. -128
  54.  
  55. Тест #10
  56. Input
  57. 127 74
  58. Output
  59. 127
  60.  
  61. Тест #11
  62. Input
  63. 83 127
  64. Output
  65. 127
  66.  
  67. Тест #12
  68. Input
  69. 127 0
  70. Output
  71. 127
  72.  
  73. Тест #13
  74. Input
  75. 0 127
  76. Output
  77. 127
  78.  
  79. Тест #14
  80. Input
  81. -100 127
  82. Output
  83. 127
  84.  
  85. Тест #15
  86. Input
  87. 127 -3
  88. Output
  89. 127
  90.  
  91. Т

Максимум без условных конструкций (Нибо Амир)

  1. Program nuinu;
  2.  
  3. var a,b,otv,a1,b1:ShortInt;
  4. c,d,ans,c1,cz,d1,dz,mak1,mak2,k,mask,post,sluch,v1,v2,w,x1,x2,sum,copmask:Byte;
  5. begin
  6. readln(a,b);
  7. c:=Byte(a);
  8. d:=Byte(b);
  9. k:= 1-((c shr 7) xor (d shr 7));
  10. k:=k shl 7;
  11. c:=c or k;
  12. d:=d or k;
  13. c1:=c xor 128;
  14. cz:=c1 shr 7;
  15. mak1:=cz;
  16. mak1:=(mak1 shl 1)+cz;
  17. mak1:=(mak1 shl 1)+cz;
  18. mak1:=(mak1 shl 1)+cz;
  19. mak1:=(mak1 shl 1)+cz;
  20. mak1:=(mak1 shl 1)+cz;
  21. mak1:=(mak1 shl 1)+cz;
  22. mak1:=(mak1 shl 1)+cz;
  23. mak1:=(mak1 shl 1)+cz;
  24. c1:=c1 and mak1;
  25. d1:=d xor 128;
  26. dz:=d1 shr 7;
  27. mak2:=dz;
  28. mak1:=(mak2 shl 1)+dz;
  29. mak2:=(mak2 shl 1)+dz;
  30. mak2:=(mak2

Задание №5

  1. in;
  2. st N;
  3. la 2;
  4. st two;
  5. K:ld N;
  6. jz M;
  7. jm L;
  8. sub two;
  9. st N;
  10. jmp K;
  11. L: la 0;
  12. jmp Final;
  13. M: la 1;
  14. Final: out;
  15. halt;

SetCalc1 Test

  1. program SetCalc1Proj;
  2. {$APPTYPE CONSOLE}
  3.  
  4. uses
  5.   SysUtils;
  6.  
  7. const L='0'; R='9';
  8.         Un=[L..R];
  9. type  TSet= set of L..R;
  10.  
  11.  function SetToStr(ss:Tset):string;
  12.   var c,comma:char;
  13.    temp:string;
  14.    i:byte;
  15.  begin
  16.   temp:='[';  // îòêðûâàþùàÿ ñêîáêà ìíîæåñòâà
  17.   comma:=',';
  18.   for c:=L to  R do begin // èäåì ïî óíèâåðñàëüíîìó ìíîæåñòâó ...
  19.    if c in ss then begin   // åñëè ýëåìåíò èç óíèâåðñàëüíîãî ìíîæ-âà  åñòü âî ìíîæ-âå ss
  20.     temp:=temp+c+comma; //  äîáàâëÿåì  åãî â temp, è äîáàâëÿåì çàïÿòóþ
  21.    end;
  22.   end;
  23.   If ss=[] then temp:=temp+']'
  24.   Else   temp[length(temp)]:=

Логический калькулятор

  1. program Logical;
  2.   var s:string;
  3.  
  4.   function _and(x,y:Char):Char; //реализация конъюнкции
  5.   begin
  6.        if ((x='0')or(y='0')) then _and:='0'
  7.        else _and:='1';
  8.   end;
  9.  
  10.   Function _or(x,y: Char): Char; //реализация дизъюнкции
  11.   begin
  12.        if ((x='1')or(y='1')) then _or:='1'
  13.        else _or:='0'
  14.   end;
  15.  
  16.   function _not(x:char):Char; //реализация отрицания
  17.   begin
  18.        if (x='1') then _not:='0'
  19.        else _not:='1';
  20.   end;
  21.  
  22.   function LogCalc1(S:String):Char; //вычисление лог.

Дружественные числа

Дружественными числами называются два различных натуральных числа, для которых сумма всех собственных делителей первого числа (сумма всех делителей, отличных от самого числа) равна второму числу и сумма всех собственных делителей второго числа равна первому числу.

Примеры дружественных чисел: 220 и 284. Делители числа 220: 1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110 (в сумме дают число 284); делители числа 284: 1, 2, 4, 71, 142 (в сумме 220).
Примеры других пар дружественных чисел: 2620 и 2924, 17296 и 18416. Читать дальше »

RSS-материал