М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
lub3
lub3
19.09.2022 01:27 •  Информатика

Составить программу на паскале для получения таблицы умножения в шестнадцатеричной системе счисления с использованием типа переменной char, оператора case и функции chr(z1+48) - для получения символьного значения цифры от 0 до 9 (где z1 – переменная для первой цифры произведения)

👇
Ответ:
Qocharian
Qocharian
19.09.2022
Var
A,B:integer;
C,H:Char;
Begin
For B:= 1 to 15 do
 Begin
 For A:= 1 to 15 do
  Begin
   Case (A*B) mod 16 of
   0:H:='0';
   1..9:H:=Chr(((A*B)mod 16)+48);
   10:H:='A';
   11:H:='B';
   12:H:='C';
   13:H:='D';
   14:H:='E';
   15:H:='F';
   End;
   Case (A*B)div 16 of
   0:C:='0';
   1..9:C:=Chr(((A*B)div 16)+48);
   10:C:='A';
   11:C:='B';
   12:C:='C';
   13:C:='D';
   14:C:='E';
   15:C:='F';
   End;
   Write(C+H,' ')
  End;
 WriteLn
 End
End.
4,4(42 оценок)
Открыть все ответы
Ответ:
mastervydy
mastervydy
19.09.2022
Все приведённые ниже коды написаны и отлажены в среде PascalABC.NET 3.2. сборка 1439(10.05.2017).

Сначала программа, показывающая период=))

Var
   N:uint64;
   B:BigInteger:=1;
Begin
Write('N = ');ReadLn(N);
For var i:= 1 to N do
    Begin
    if (i mod 10 <> 5)and(i mod 10 <> 0) then B:=B*i
       else if i mod 10 = 5 then B:=B div 2;
    Write(B mod 10);
    if i mod 40 = 0 then WriteLn;
    End;
End.

N = 1000
1264224288868266264448468868222428448466
6264224288868266264448468868222428448466
6264224288868266264448468868222428448466
6264224288868266264448468868222428448466
6264224288868266264448468868222428448466
6264224288868266264448468868222428448466
6264224288868266264448468868222428448466
6264224288868266264448468868222428448466
6264224288868266264448468868222428448466
6264224288868266264448468868222428448466
6264224288868266264448468868222428448466
6264224288868266264448468868222428448466
6264224288868266264448468868222428448466
6264224288868266264448468868222428448466
...
Ну и так далее.

Искомая программа:

Const
   T = '6626422428886826626444846886822242844846';
Var
   S:BigInteger;
Begin
S:=ReadString.ToBigInteger;
if S > 1 then WriteLn(T[(S mod 40).ToString.ToInteger+1])
else WriteLn(1)
End.
4,5(50 оценок)
Ответ:
Sayva11
Sayva11
19.09.2022
// PascalABC.NET 3.2, сборка 1437 от 03.05.2017
// Внимание! Если программа не работает, обновите версию!

type
  tField=(char,integer);

function GetNewField(oldfld:tField;x,y:integer;var newfld:tField):boolean;
begin
  Result:=true;
  var xo:=oldfld[0];
  case xo.ToLower of
  'a':
    case x of
    -2,-1:Result:=false;
    1:newfld:=(Succ(xo),0);
    2:newfld:=(Succ(Succ(xo)),0)
    end;
  'b':
    case x of
    -2:Result:=false;
    -1:newfld:=(Pred(xo),0);
    1:newfld:=(Succ(xo),0);
    2:newfld:=(Succ(Succ(xo)),0)
    end;
  'g':
    case x of
    -2:newfld:=(Pred(Pred(xo)),0);
    -1:newfld:=(Pred(xo),0);
    1:newfld:=(Succ(xo),0);
    2:Result:=false
    end;
  'h':
    case x of
    -2:newfld:=(Pred(Pred(xo)),0);
    -1:newfld:=(Pred(xo),0);
    1,2:Result:=false
    end;
  else
    case x of
    -2:newfld:=(Pred(Pred(xo)),0);
    -1:newfld:=(Pred(xo),0);
    1:newfld:=(Succ(xo),0);
    2:newfld:=(Succ(Succ(xo)),0)
    end
  end;
  if Result=true then begin
    var yo:=oldfld[1];
    case yo of
    1:
      case y of
      -2,-1:Result:=false;
      else newfld:=(newfld[0],yo+y);
      end;
    2:
      case y of
      -2:Result:=false;
      else newfld:=(newfld[0],yo+y);
      end;
    7:
      case y of
      -2,-1,1:newfld:=(newfld[0],yo+y);
      2:Result:=false
      end;
    8:
      case y of
      -2,-1:newfld:=(newfld[0],yo+y);
      1,2:Result:=false
      end
    else
      newfld:=(newfld[0],yo+y);
    end
  end
end;

begin
  var ax:=Arr(-2,-1,1,2);
  var ay:=ax;
  var s:=ReadlnString('Укажите клетку, на которой стоит конь');
  var f1,f2:tField;
  f1:=(s[1],s[2].ToDigit);
  foreach var x in ax do
    foreach var y in ay do
      if abs(x)+abs(y)=3 then
        if GetNewField(f1,x,y,f2) then Print(f2[0]+f2[1]);
  Writeln
end.

Примеры
Укажите клетку, на которой стоит конь b1
a3 c3 d2

Укажите клетку, на которой стоит конь C5
A4 A6 B3 B7 D3 D7 E4 E6

Укажите все клетки шахматного поля, находящиеся под боем коня, заданного координатами на шахматном п
4,6(6 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ