yamalsva45
?>

Каждый сотрудник предприятия получает электронный пропуск, на котором записаны личный код сотрудника, номер подразделения и некоторая дополнительная информация. личный код состоит из 15 символов, каждый из которых может быть буквой(используется 30 различных букв, каждая буква может быть заглавной или строчной) или одной из цифр от 1 до 9. для записи кода на пропуске отведено минимально возможное целое число байт. при этом используют посимвольное кодирование, все символы кодируют одинаковым минимально возможным количеством бит. номер подразделения-целое число от 1 до 300, он записан на пропуске как двоичное число и занимает минимально возможное целое число байт. какое наибольшее число байт могло быть выделено для хранения дополнительных сведений о сотруднике, если известно, что для хранения данных о 20 пользователях было затрачено не более 2 кбайт? ​

Информатика

Ответы

neblondinka19
В Бейсике есть встроенная функция ATN - арктангенс,
поэтому угол можно в градусах посчитать.

DIM a, b, c, cs, cst, ang, PI
INPUT " a = ", a
INPUT " b = ", b
INPUT " c = ", c
PRINT
PI = 3.141593
cs = (b * b + c * c - a * a) / (2 * b * c)
cst = cs
IF cs < 0 THEN cst = SQR(1 - cs * cs)
ang = ATN(SQR(1 - cst * cst) / cst) * 360 / (2 * PI)
IF cs < 0 THEN ang = ang + 90
PRINT "угол A = ",
PRINT USING "###.##"; ang
cs = (a * a + c * c - b * b) / (2 * a * c)
cst = cs
IF cs < 0 THEN cst = SQR(1 - cs * cs)
ang = ATN(SQR(1 - cst * cst) / cst) * 360 / (2 * PI)
IF cs < 0 THEN ang = ang + 90
PRINT "угол B = ",
PRINT USING "###.##"; ang
cs = (a * a + b * b - c * c) / (2 * a * b)
cst = cs
IF cs < 0 THEN cst = SQR(1 - cs * cs)
ang = ATN(SQR(1 - cst * cst) / cst) * 360 / (2 * PI)
IF cs < 0 THEN ang = ang + 90
PRINT "угол C = ",
PRINT USING "###.##"; ang
PRINT "Выход - любая клавиша ... "
DO
LOOP WHILE INKEY$ = ""
alena
Немного теории.
Для того, чтобы избежать переполнения разрядной сетки, значение квадрата натурального числа не должно превышать максимального числа, представимого выбранным типом данных.
В языке Паскаль числа типа longint записываются в четырех байтах в дополнительном коде, т.е. максимальное значение числа не может превышать 2³¹-1. Тогда максимальное натуральное число, квадрат которого мы можем вычислить, равно целой части от величины:
\displaystyle \lim:= \sqrt{2^{31}-1} \approx 2^{31/2}=2^{15.5}= e^{15.5\cdot ln(2)} 

//PascalABC.Net 3.0, сборка 1066
var
  s:string;
  i,n,lim,l:longint;
begin
  lim:=Trunc(exp(15.5*ln(2)));
  Write('Введите номер позиции: '); Read(n);
  i:=0; l:=0;
  while (l<n) and (i<=lim) do begin
    Inc(i); Str(i*i,s); l:=l+Length(s);
  end;
  if i<=lim then Writeln('Искомая цифра- ',s[Length(s)-l+n])
  else Writeln('Решения в типе данных longint невозможно')
end.

Тестовое решение:
Введите номер позиции: 4
Искомая цифра- 1

Введите номер позиции: 33
Искомая цифра- 5

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Каждый сотрудник предприятия получает электронный пропуск, на котором записаны личный код сотрудника, номер подразделения и некоторая дополнительная информация. личный код состоит из 15 символов, каждый из которых может быть буквой(используется 30 различных букв, каждая буква может быть заглавной или строчной) или одной из цифр от 1 до 9. для записи кода на пропуске отведено минимально возможное целое число байт. при этом используют посимвольное кодирование, все символы кодируют одинаковым минимально возможным количеством бит. номер подразделения-целое число от 1 до 300, он записан на пропуске как двоичное число и занимает минимально возможное целое число байт. какое наибольшее число байт могло быть выделено для хранения дополнительных сведений о сотруднике, если известно, что для хранения данных о 20 пользователях было затрачено не более 2 кбайт? ​
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

compm
ngz55
Vladimirovna
mmoskow3
mvolkov8
Lyubov214
MikhailovichKrizhnaya578
Информатика, 8 класс. 3, 4, 5 во
Borg Fedak1162
Borg Fedak1162
Igor120
Olgera1
pavlino-mkr
alazaref
M19026789436
skalegin68