это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
Ознакомительный фрагмент работы:
Лабораторная работа № 2. Комбинаторика
Цель работы:
Получение практических навыков решения комбинаторных задач.
Программа работы:
1. Изучить теорию.
2. Разработать программу формирования перестановок, сочетаний, размещений.
3. Выполнить вычислительные эксперименты.
Используемые программно-технические средства:
1. Персональный компьютер типа IBM PC.
2. Turbo Pascal 7.0.
Краткая теория:
Комбинаторикой называют раздел дискретной математики, в котором рассматриваются вопросы, связанные с формированием и подсчетом комбинаций из элементов перестановок, сочетаний, размещений.
Перестановкой из элементов называют комбинации отличающиеся порядком расположения элементов.
Количество перестановок определяется по формуле
Сочетанием из элементов по элементам называются комбинации отличающиеся хотя бы одним элементом.
Количество сочетаний без повторений определяется по формуле:
Размещением без повторений из элементов по называют комбинации, отличающиеся либо элементами, либо порядком расположения элементов.
Количество размещений без повторений определяется по формуле:
Число размещений связано с числом перестановок и сочетаний соотношением:
Математическая постановка задачи:
Составить программу формирования перестановок, сочетаний, размещений с выводом результатов на экран дисплея.
Описание программы:
Данная программа, написанная на языке Паскаль, начинается с раздела переменных, полный список которых представлен в таблице 1. В основе алгоритма программы лежат три процедуры, каждая из которых отвечает за закрепленную за ней часть программы (см. таблицу 2). Выбор требуемой операции происходит путем использования оператора case.
Работа программы начинается с вывода сообщения о необходимости выбрать операцию для выполнения. Далее требуется ввести из скольки и по сколько элементов будет осуществляться данная операция. Результат выполнения операции выводится на экран.
Таблица 1 - Список идентификаторов переменных
| Идентификатор | Тип | Применение |
| massiwi1 | massiwi1:massiwi; | Для хранения промежуточных результатов |
| massiwi2 | massiwi2:massiwi; | Для хранения промежуточных результатов |
| iz_skolki | integer | Из скольки элементов |
| po_skolko | integer | По сколько элементов |
| i, j, | integer | Для организации циклов |
| Nomer | integer | Хранит номер выбранной операции |
| y | integer | Вспомогательная переменная |
Таблица 2 - Список процедур
| Имя процедуры | Формальные параметры | Вызов процедуры | Применение |
| sochetanye | m, y - целые числа; | sochetanye(m,y:integer); | Операция сочетания |
| perestanovka | m, y - целые числа; s - массив; | perestanovka(m,y:integer; s:mas); | Операция перестановки |
| razmesheniye | m, y - целые числа; | razmesheniye(m,y:integer; s:mas); | Операция размещения |
Постановка отдельного примера:
Рассмотрим все возможные перестановки из 7-ми элементов, сочетания из 6 по 3 элемента и размещения из 7 по 3 элемента.
Вывод
В результате всей проделанной работы мы получили практические навыки решения комбинаторных задач, также нами была разработана программа на языке Паскаль, реализующая формирование перестановок, сочетаний и размещений с выводом результатов на экран дисплея.
Приложение
Листинг программы
uses crt;
label kombinatorika;
type
massiwi=array [1..20] of integer;
var
massiwi1:massiwi;
massiwi2:massiwi;
iz_skolki, po_skolko:integer;
i,j:integer;
nomer:integer;
y:integer;
procedure perestanovka(m,y:integer; s:massiwi);
var
j,i:integer;
s1:massiwi;
begin
for i:=1 to m do begin
massiwi1[y]:=s[i];
j:=1;
for y:=1 to m do begin
if s[y]<>s[i] then begin
s1[j]:=s[y];
j:=j+1;
end;
end;
if y=iz_skolki then begin
for j:=1 to iz_skolki do write(massiwi1[j]);
writeln;
end else
perestanovka(m-1,y+1,s1);
end;
end;
procedure sochetanye(m,y:integer);
var
j,i:integer;
begin
for i:=1 to m do begin
massiwi1[y]:=i;
if y=po_skolko then begin
for j:=1 to po_skolko do write(massiwi1[j]);
writeln;
end else
sochetanye(m,y+1);
end;
end;
procedure razmesheniye(m,y:integer; s:massiwi);
var
j,i:integer;
begin
for i:=1 to m do begin
massiwi1[y]:=i;
if y=po_skolko then begin
for j:=1 to po_skolko do write(massiwi1[j]);
writeln;
perestanovka(po_skolko,1,massiwi2);
end else begin
sochetanye(m,y+1);
perestanovka(po_skolko,1,massiwi2);
end;
end;
end;
Begin
kombinatorika:clrscr;
for i:=1 to 8 do
writeln;
writeln(' Wi dolgni wibrat neobhodimuy operaciyu:');
writeln('-->> 1. Razmeshenie;');
writeln('-->> 2. Perestanovka; ');
writeln('-->> 3. Sochetanie; ');
writeln('-->> 4. Vihod.');
writeln;
write('-->> Wi wibrali:');
readln(nomer);
case nomer of
1: begin
clrscr;
write('Sochetanye iz=');
readln(iz_skolki);
write(' po=');
readln(po_skolko);
writeln;
writeln('Sochetanye:');
sochetanye(iz_skolki,1);
readln;
goto kombinatorika;
end;
2: begin
clrscr;
write('Perestanovka iz=');
readln(iz_skolki);
for i:=1 to iz_skolki do massiwi2[i]:=i;
writeln;
writeln('Perestanovka:');
perestanovka(iz_skolki,1,massiwi2);
readln;
goto kombinatorika;
end;
3:begin
clrscr;
write('Razmeshenie iz=');
readln(iz_skolki);
write(' po=');
readln(po_skolko);
for i:=1 to iz_skolki do massiwi2[i]:=i;
writeln;
writeln('Razmeshenie:');
razmesheniye(iz_skolki,1,massiwi2);
readln;
goto kombinatorika;
end;
4: end;
end.
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников
Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
Написать отчет по учебной практике. Есть только методичка и название...
Отчет по практике, Реклама и PR
Срок сдачи к 8 авг.
нужны две статьи на разные уникальные актуальные темы по архитектуре...
Статья, Архитектура
Срок сдачи к 3 авг.
Написать курсовую работу
Курсовая, Управление в технических системах, теория автоматического управления
Срок сдачи к 7 авг.
Составить предложения 4 штуки чтобы в них были слова: дождь,море, рука
Услуги корректора, Русский язык
Срок сдачи к 3 авг.
Без ии! исследование дневников с сайта "прожито"
Другое, История повседневности
Срок сдачи к 23 авг.
Разработка эффективной методики воспитания скоростно-силовых способностей у мальчиков 12–14 лет с использованием круговой тренировки с отягощениями на уроках физической культуры
ВКР, Физическая культура и спорт
Срок сдачи к 7 авг.
Отчет по практике, во бакалавриат, строительство - учебная
Отчет по практике, Строительство
Срок сдачи к 4 авг.
Профиль вычислительные машины, комплексы, системы и сети.
Диплом, Прикладная информатика
Срок сдачи к 7 авг.
Нужно выполнить отчет по производственной практике по курсовой работе
Отчет по практике, Маркетинг
Срок сдачи к 18 сент.
Написать третью главу магистерской диссертации на тему "Прокурор и его полномочия в уголовном судопроизводстве. Проблемные аспекты"
ВКР, Уголовное право
Срок сдачи к 1 сент.
Написать первую главу магистерской диссертации и научную статью по третьей главе.
Магистерская диссертация, Управление инвестиционно-строительной деятельностью
Срок сдачи к 20 сент.
выполнить конрольную работу
Контрольная, Дисциплина "Методы принятия управленческих решений"
Срок сдачи к 25 авг.
Организационно-правовое обеспечение защиты персональных данных в государственном (муниципальном) органе
Диплом, Государственное и муниципальное управление (Синергия)
Срок сдачи к 16 авг.
Технологии привлечения на государственную гражданскую (муниципальную) службу квалифицированных специалистов
Диплом, Государственное муниципальное управление (Синергия)
Срок сдачи к 23 авг.
Заполните форму и узнайте цену на индивидуальную работу!