![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Решение. Program perestanowki;
Program perestanowki; uses WinCrt; const mm = 100; var m, i, j, k, n: integer; a, p: array [1..mm] of integer; begin write('Введите число эл. для перестановки '); readln(m); writeln('Введите элементы массива a[1..m]'); for i: = 1 to m do begin write('Введите ', i, '-й элемент '); readln(a[i]); p[i]: = i end; for i: = 1 to m do write(a[i], ' '); writeln; for i: = m - 1 downto 1 do if p[i] < p[i+1] then begin n: = p[i]; for j: = m downto i do if n < p[j] then begin p[i]: = p[j]; p[j]: = n; k: = 1; while i + k < m - k + 1 do begin n: = p[i+k]; p[i+k]: = p[m+1-k]; p[m+1-k]: = n; k: = k + 1 end; j: = i end; for i: = 1 to m do write(a[p[i]]: 4); writeln end end. Задача 26. На доске Решение Program Problem26; uses WinCrt; const n = 8; label 1; type u = array [1..n] of longint; f = array [1..n] of u; var p: u; a: f; i, z, v, y, l, j: longint; {----------------------------------------------------------------------------------------} Procedure output_p(p: u; y, n: longint); var i, j: longint; begin writeln(y, '-й способ расстановки ладьей'); for i: = 1 to n do begin a[i][p[i]]: = p[i]; for j: = 1 to n do begin if a[i][j] < > p[i] then a[i][j]: = 0; write(a[i][j]: 4) end; writeln end end; {----------------------------------------------------------------------------------------} begin for i: = 1 to n do p[i]: = n + 1 - i; z: = 1; for i: = 1 to n do z: = z*i; y: = 1; output_p(p, y, n); for y: = 2 to z do begin i: = 2; j: = 1; while p[i - 1] < = p[i] do i: = i + 1; while p[j] < = p[i] do j: = j + 1; v: = p[i]; p[i]: = p[j]; p[j]: = v; if i = 2 then goto 1; for l: = 1 to (i - 1) div 2 do begin v: = p[l]; p[l]: = p[i - l]; p[i - l]: = v end; 1: output_p(p, y, n) end end. Задача 27. Процедура определения наибольшей стоимости груза m при заданном его весе z. Решение Procedure gen_comb(n, k: integer; z: real; var m: real); var i, j, q, b: integer; begin for j: = 1 to k do begin max[j]: = n - j + 1; min[j]: = k - j + 1; x[j]: = min[j] end; i: = 0; q: = 0; b: = 0; while i< =k do begin q: = q + 1; s[q]: = 0; for j: = k downto 1 do s[q]: = s[q] + p[x[j]]; if s[q] = z then begin b: = b + 1; s1[b]: = 0; for j: = k downto 1 do begin s1[b]: = s1[b] + c[x[j]]; if m < s1[b] then m: = s1[b] end end; i: = 1; while (i < = k) and (x[i] = max[i]) do i: = i + 1; if i < = k then x[i]: = x[i] + 1; for j: = i - 1 downto 1 do begin min[j]: = x[j + 1] + 1; x[j]: = min[j] end end end;
|