2. Популярное до сих пор в школах решение на TurboPascal 7.01 (1983г.)
uses Crt; const nn=100; var i,n,min:integer; a:array[1..nn] of integer; begin ClrScr; Randomize; Write('n='); Read(n); min:=100; for i:=1 to n do begin a[i]:=Random(101)-50; Write(a[i],' '); if a[i]<min then min:=a[i] end; Writeln; for i:=1 to n do if a[i]<0 then a[i]:=a[i]*min; for i:=1 to n do Write(a[i],' '); Writeln; ReadKey end.
Для удобства перенёс таблицу из вопроса в Excel (см. приложение №1)
Вопрос №1: Определите, какое минимальное количество учителей физкультуры требуется при таком расписании. Почему? ответ: 3. Так как на втором уроке одновременно идут 3 занятия у классов: 9А, 10А, 10Б.
Вопрос №2: Найдите один из вариантов расписания, при котором можно обойтись двумя учителями физкультуры, совмещать уроки нельзя. ответ: см. приложение (картинка №2)
Вопрос №3: В школе три учителя физкультуры: Иванов, Петров, Сидоров. Распределите между ними уроки в таблице так, чтобы ни у кого не было "окон" (пустых уроков). ответ: см. приложение (картинка №3)
Вопрос №4: Распределите между тремя учителями уроки так, чтобы нагрузка у всех была одинаковой. ответ: см. приложение (картинка №4)
// PascalABC.NET 3.2, сборка 1437 от 03.05.2017
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
var min:=a.Min;
a.Transform(x->x<0?x*min:x); a.Println
end.
Пример
n= 15
-34 7 0 -48 4 42 35 14 -47 6 -29 43 46 40 -18
1632 7 0 2304 4 42 35 14 2256 6 1392 43 46 40 864
2. Популярное до сих пор в школах решение на TurboPascal 7.01 (1983г.)
uses Crt;
const
nn=100;
var
i,n,min:integer;
a:array[1..nn] of integer;
begin
ClrScr;
Randomize;
Write('n='); Read(n);
min:=100;
for i:=1 to n do begin
a[i]:=Random(101)-50;
Write(a[i],' ');
if a[i]<min then min:=a[i]
end;
Writeln;
for i:=1 to n do
if a[i]<0 then a[i]:=a[i]*min;
for i:=1 to n do
Write(a[i],' ');
Writeln;
ReadKey
end.