Презентация 35_ОАиП.ppt
- Количество слайдов: 7
ТЕМА: АЛГОРИТМЫ ГЕНЕРИРОВАНИЯ ПЕРЕСТАНОВОК.
Комбинаторика – область математики, где осуществляются выборки из множеств. Множество – любая совокупность объектов. Объекты множества – элементы, они различны и отличимы друг от друга. Мощность множества – количество элементов множества (например N).
Перестановка - расстановка, которая включает все N элементов, но элементы отличаются друг от друга лишь порядком. Обозначается: Задача: Сколькими способами можно расположить на шахматной доске 8 ладей, чтобы они не били друга. Доска 8 на 8. Ответ: Р 8=8!
ЗАДАЧА 1: Напишите программу: дан одномерный массив, состоящий из 15 элементов. Поменять местами последний элемент массива с первым найденным минимальным элементом, затем поделить на заданное число все элементы, начиная с номера, где был найденный минимальный элемент, до последнего элемента массива. Выдавать на печать исходный и полученный массивы.
program primer 1; Var k, i: integer; b, p, min: real; x: array [1. . 15] of real; begin write (‘Введите произвольное число p ’); readln (p); for i: =1 to 15 do begin write (‘Введите х [‘, i, ‘] ‘); readln (x[i]) end; writeln (‘Исходный массив’) for i: =1 to 15 do begin write (‘ х [‘, i, ‘] ‘); writeln (x[i]) end; min: = x[1]; k: =1; For i: =2 to 15 do begin If (x[i]<min) then begin min: =x[i]; k: =[i] end; If (x[15]<>x[k]) then begin b: =x[k]; x[k]: = x[15]; x[15]: =b end; if (p<>0) then if (k<>15) for i: =k to 15 do x[i]: =x[i]/p else x[15]: =x[15]/ p else writeln (‘Деление невозможно’); writeln (‘Полученный массив’) for i: =1 to 15 do begin write (‘ х [‘, i, ‘] ‘); writeln (x[i]) end; readln end.
ЗАДАЧА 2: Напишите программу: дан одномерный массив, состоящий из N элементов. Определить самый правый максимальный элемент во второй половине массива, вычесть полученное максимальное значение из всех элементом первой половины массива, после чего поменять местами первый элемент массива с найденным максимальным элементом. Выдавать на печать исходный и полученный массивы. Trunc(х) – преобразует вещественный аргумент х в целое число путем отбрасывания дробной части Round(x) - преобразует вещественный аргумент х в целое число путем округления до ближайшего целого
program primer 43; Var k, i, n: integer; max: = x[trunc(n/2)+1]; k: = trunc(n/2)+1; b, max: real; For i: = trunc(n/2)+2 to n do x: array [1. . 50] of real; If (x[i]>=max) begin then begin write (‘Введите количество элементов массива n’); max: =x[i]; k: =[i] end; readln (n); For i: =1 to trunc(n/2) do for i: =1 to n do x[i]: =x[i] – max; begin b: =x[k]; write (‘Введите х [‘, i, ‘] ‘); x[k]: =x[1]; readln (x[i]) a[1]: =b; end; writeln (‘Полученный массив’) writeln (‘Исходный массив’) for i: =1 to n do begin write (‘ х [‘, i, ‘] ‘); writeln (x[i]) end; max: = x[trunc(n/2)+1]; k: = trunc(n/2)+1; end; readln end.
Презентация 35_ОАиП.ppt