а) Сформулируйте задачу оптимального планирования для школьного кондитерского цеха, в котором выпускается три вида продукции: пирожки, пирожные и коржики.
Алгоритм сортировки строки массива по возрастанию методом прямого выбора может быть представлен так: 1. Просматривая строку массива от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального. 2. Просматривая строку массива от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального. 3. И так далее до предпоследнего элемента.
Решение:
//Pascal const n = 7;
var a: array[1..n, 1..n] of integer; i, j, min, ind: integer;
//Заполнение массива сл. числами и вывод на экран begin for i := 1 to n do begin for j := 1 to n do begin a[i, j] := random(100); write(a[i, j]:4); end; writeln; end;
//Сортировка строки матрицы прямым выбором
for i := 1 to n - 1 do begin min := a[4, i]; ind := i; for j := i + 1 to n do if a[4, j] < min then begin min := a[4, j]; ind := j; end; a[4, ind] := a[4, i]; a[4, i] := min; end; writeln;
//вывод отсортированной строки for j := 1 to n do begin write(a[4, j]:4); end; end.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
uses crt,graphABC;
var h,c,r1,r2,r3,i,x1,y1,x2,y2:integer;
u:real;
begin
repeat
write('Введите время в часах, от 0 до 24 кратное 3 h=');
readln(h);
until (h in [0..24])and(h mod 3=0);
setwindowsize(400,400);
c:=200;
r1:=c-30;
r2:=r1-40;
r3:=r1+20;
centerwindow;
clrscr;
hidecursor;
circle(c,c,r1);
//u:=pi/2-pi/6;
for i:=1 to 12 do
begin
u:=-i*pi/6+pi/2;
x1:=c+round(r1*cos(u));
y1:=c-round(r1*sin(u));
setbrushcolor(clBlack);
setbrushstyle(bsSolid);
circle(x1,y1,2);
x2:=c+round(r3*cos(u));
y2:=c-round(r3*sin(u));
u:=u-pi/6 ;
setbrushstyle(bsClear);
textout(x2-3,y2-5,inttostr(i));
end;
setpenwidth(3);
h:=h mod 24 mod 12;
u:=-h*pi/6+pi/2;
line(c,c,c+round(r2*cos(u)),c-round(r2*sin(u)));
end.