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

Инфортика 1 задание зделать


Инфортика 1 задание зделать

👇
Открыть все ответы
Ответ:
VanilRio
VanilRio
19.11.2022
Сначала посмотрим, какое из чисел больше. Как в обычной арифметике: если вдруг надо вычесть из меньшего большее, мы вычитаем из большего меньшее и ставим в ответе знак минус.
Требуется сделать вычитание (группировка разрядов по 4 сделана для удобства чтения):
  111 0001 1011
- 101 0011 0101

Тут все хорошо, из большего вычитается меньшее.
Вычитаем "в столбик", как обычные числа, но помним, что система счисления двоичная, поэтому когда из 0 вычитается единица, то мы "занимаем единичку" у старшего разряда, уменьшая его на 1. Но, поскольку цифр-то всего две - 0 и 1, то заняв единицу в старшем разряде, мы понимаем, что там останется 0 или 1. А когда мы занимаем единицу? Да лишь тогда, когда от 0 должны отнять 1. Единичка из старшего разряда - это 10₂, т.е. на самом деле обычная десятичная двойка, и после вычитания из 10₂ единицы, получим единицу.
Как итог, в разряде:
0-0=0
1-1=0
1-0=1
0-1=1 и при этом в соседнем слева разряде надо тоже вычесть единицу по этим же правилам.

  111 0001 1011
- 101 0011 0101

       1 1110 0110

Это и есть ответ.
4,4(2 оценок)
Ответ:
Dasha20101111
Dasha20101111
19.11.2022

Я комментарием пометил ошибку

type point=record

x,y:real;

end;

var a:array[1..3] of point;

i,j: integer;

z: point;

c: real;

begin

writeln('Координаты вершин');

readln(a[1].x,a[1].y,a[2].x,a[2].y,a[3].x,a[3].y);

//отсортируем по убыванию y

for i:=1 to 2 do

for j:=i+1 to 3 do

if a[i].y>a[j].y then

begin

z:=a[j];

a[j]:=a[i];

a[i]:=z;

end;

//выбираем первую точку

if a[2].x a[2].x then    // Ошибка, здесь ничего не сравнивается

begin

z:=a[3];

a[3]:=a[2];

a[2]:=z;

end;

for i:=1 to 3 do begin

c:=sqrt(a[i].x*a[i].x + a[i].y*a[i].y);

writeln ('Расстояние от начала координат',' ',c);

end;

readln

end.

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