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

СИ++ Построить два треугольника с вершинами в заданном множестве точек на плоскости так, чтобы первый треугольник лежал строго внутри второго.

👇
Открыть все ответы
Ответ:
ElenaComarova
ElenaComarova
15.07.2020

===== PascalABC.NET =====

function Dec2Bin(m, n: integer): string;

// перевод целого n  в строку длины m,

// содержащую битовое представление n

begin

 Result := '0' * m;  // строка из m нулей

 var i := m;   // идем по строке справа налево

 while n > 0 do

 begin  

   if n.IsOdd then

     Result[i] := '1';  // единичный бит для нечетной цифры

   n := n shr 1;   // сдвиг на 1 разряд вправо- аналог деления на 2

   i += -1;        // к следующему символу строки

 end

end;

procedure SubSets<integer>(P: HashSet<integer>);

begin

 var n := P.Count;     // мощность множества

 var L := P.ToList;    // список из элементов множества  

 var Q := new HashSet<HashSet<integer>>; // результирующее множество

 var ht := new HashSet<integer>;   // новое рабочее множество

 Q.Add(ht);        // добавили пустое множество

 ht := nil;

 Q.Add(P);         // добавили исходное множество

 var m := Trunc(2 ** n) - 2;   // число оставшихся подмножеств

 for var i := 1 to m do        // перебор сочетаний

 begin

   var s := Dec2Bin(n, i);   // битовая шкала для сочетания

   ht := new HashSet<integer>;   // создали рабочее множество

   for var j := 1 to n do    // построение подмножества

     if s[j] = '1' then

       ht.Add(L[j-1]);

   Q.Add(ht);    // добавили подмножество

   ht := nil     // уничтожили рабочее подмножество

 end;

 Q.Print(', ')

end;

begin

 var n := ReadInteger('Мощность множества:');

 var P := ReadSeqInteger('Введите элементы множества:', n).ToHashSet;

 SubSets(P)

end.


Задание на фотографии
Задание на фотографии
4,6(42 оценок)
Ответ:

program Project1;

const

 n = 15;

var

 c: array[1..n] of real = (0, 1.25, -371, 0.5, -0.1, 1.2, -5, -172.3, 19783, -2.7, 43.51, 0, -0.02, 14.5, 123.7);

 // Переменная для хранения массива.

 i: integer; // Вс переменная для организации цикла.

 minelem: real; // Переменная для хранения значения элемента с минимальным значением.

 indmin: integer; // Переменная для хранения значения индекса минимального элемента.

 

begin

 writeln('Исходный массив:');

 for i:= 1 to n do      // Вывод массива в консоль.

   begin

     write(c[i]:9:2);

     if i mod 8 = 0 then

       writeln;

   end;

 writeln;

 minelem:= c[1];

 indmin:= 1;

 for i:= 2 to n do

   if c[i] < minelem then // Условие для нахождения элемента с минимальным значением.

     begin

       minelem:= c[i];

       indmin:= i; // Индекс элемента с минимальным значением.

     end;

 writeln('Минимальный элемент массива находится на ',indmin,' месте и равен ',minelem:0:2);

 Readln;

end.

Объяснение:

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

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