В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Гaяз
Гaяз
30.05.2022 11:58 •  Информатика

Для какого из числаx истинна высказывание (x< 5) (x< 4)

Показать ответ
Ответ:
sofia27supko
sofia27supko
02.05.2023 09:59
Const
  gend = ['м', 'ж'];

type
  tMan = record
    gender: char;
    fio: string;
    height: integer
  end;

var
  man: tMan;
  max1, max2: integer;
  mfio: string;
  f: file;

begin
  { Заполнение файла }
  Assign(f, 'manfile.txt');
  Rewrite(f);
  Writeln('Введите через Enter пол (м/ж), фамилию и рост в см');
  Writeln('Для отказа введите 0');
  repeat
    Readln(man.gender);
    if man.gender in gend then
    begin
      Readln(man.fio);
      Readln(man.height);
      Write(f, man);
      Writeln('Данные приняты, продолжайте')
    end
  until not (man.gender in gend);
  Close(f);
  { Работа с файлом }
  Assign(f, 'manfile.txt');
  Reset(f);
  max1 := 0; max2 := 0;
  while not Eof(f) do
  begin
    Read(f, man);
    with man do
      if (gender = 'м') and (max1 < height) then
      begin
        max1 := height;
        mfio := fio
      end
      else if (gender = 'ж') and (max2 < height) then max2 := height;
  end;
  Writeln('Самый высокий- ', mfio, ', рост самой высокой равен ', max2);
  Close(f);
end.

Тестовое решение:

Введите через Enter пол (м/ж), фамилию и рост в см
Для отказа введите 0
м
Иванов И.И.
176
Данные приняты, продолжайте
ж
Егорова К.С.
169
Данные приняты, продолжайте
ж
Старова Г.К.
168
Данные приняты, продолжайте
м
Минкин Р.Т.
179
Данные приняты, продолжайте
0
Самый высокий- Минкин Р.Т., рост самой высокой равен 169
0,0(0 оценок)
Ответ:
виктор1258963
виктор1258963
22.09.2020 09:17
1. Переводим отдельно целую часть, отдельно - дробную. Целую часть переводим путем последовательного целочисленного деления с остатком на основание системы, в которую осуществляется перевод. Нам надо сделать перевод в системы счисления по основаниям 2, 8 и 16, поэтому выбираем 16 - это даст меньше всего операций деления.
125/16=7 остаток 13.
7 меньше 13, деление прекращаем. Теперь записываем частное, а за ним остатки в обратном порядке (это общее правило, а в нашем случае остаток единственный). Получаем 7 13. Заменяем полученные десятичные числа шестнадцатиричными и получаем 7D.
Теперь переводим дробную часть. Тут надо производить последовательное умножение на основание системы и отбрасывать целые части, записывая их в качестве получаемых цифр числа. Процесс ведут до получения нулевой дробной части или прекращают, если получено необходимое число цифр.
0.68х16=10.88, записываем 10, в 16й системе счисления это А
0.88х16=14.08, 14 ⇒ E
0.08x16=1.28, 1 ⇒ 1
0.28x16=4.48, 4 ⇒ 4
0.48x16=7.68, 7 ⇒ 7
0.68x16=10.88, 10 ⇒ E и все пошло по кругу.
Следовательно, дробная часть не может быть точно представлена в 16й системе счисления.
Ограничимся двумя цифрами после запятой.
Тогда результат перевода запишется так: 125.68(10)=7D.AE(16)
Переход к двоичной системе очень простой, поскольку 16  - это 2 в четвертой степени. Поэтому каждую шестнадцатиричную цифру мы просто заменяем четырьмя двоичными цифрами (так называемой тетрАдой).
7D.AE(16)=0111 1101.1010 1110(2) - очень простая операция.
Перевод из двоичной системы в восьмеричную тоже прост, поскольку 8 - это 2 в кубе. Разбиваем двоичное число на триАды (по три разряда) влево и вправо от десятичной точки и каждую триаду заменяем восьмеричной цифрой (они по написанию совпадают с десятичными). Если разрядов для триады не хватает, дополняем их нулями слева для целой части и справа для дробной.
001 111 101.101 011 100(2)=175.534(8)

2. Перевод из двоичного представления в восьмеричное мы только что делали. Повторим его.
111 011.001 101(2) = 73.15(8)
В шестнадцатиричную систему перевод делается так же, только двоичное число надо разбивать не на триады, а на тетрады. С дополнением нулями, как и для восьмеричной системы.
0011 1011.0011 0100(2) = 3В.34(16)
Осталось сделать перевод в десятичную систему счисления. Конечно, его можно выполнять для любого основания, но лучше брать такое, где меньше всего ненулевых цифр. В двоичном представлении 8 единиц, в восьмеричном и шестнадцатиричном - по 4. Следовательно можно брать или восьмеричное число, или шестнадцатиричное. Допустим, выбрано шестнадцатиричное число. Записываем его в расширенной форме по степеням основания (т.е. 16 в нашем случае):
3B.34_{16}=3\times 16^1+11\times 16^0+3\times 16^{-1}+4\times 16^{-2}= \\ 3\times 16+11+\frac{3}{16}+\frac{4}{16^2}=48+11+ \frac{3}{16}+ \frac{4}{256}=59+\frac{3}{16}+\frac{1}{64}= \\ 59+\frac{3\times 4+1}{64}=59 \frac{13}{64}=59.203125_{10}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота