MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Информатика, программирование -> Разработка программы формирования перестановок, сочетаний, размещений (Turbo Pascal 7.0.)

Название:Разработка программы формирования перестановок, сочетаний, размещений (Turbo Pascal 7.0.)
Просмотров:143
Раздел:Информатика, программирование
Ссылка:Скачать(13 KB)
Описание: Лабораторная работа № 2. Комбинаторика   Цель работы: Получение практических навыков решения комбинаторных задач. Программа работы: 1. Изучить теорию. 2. Разработать программу формирования перестановок

Университетская электронная библиотека.
www.infoliolib.info

Часть полного текста документа:

Лабораторная работа № 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. ............





Нет комментариев.



Оставить комментарий:

Ваше Имя:
Email:
Антибот:  
Ваш комментарий:  
 
     

Вечно с вами © MaterStudiorum.ru