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.
Объяснение:
В принципе я указал комментарии к некоторым действиям, так что должно быть понятно(комментарии потом лучше стереть). В отчет можешь сделать скриншот уже с результатом работы программы (мы так обычно делаем). Если остались вопросы пиши в комментарии.
===== 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.