Реферат: Постановка лабораторной работы по теории графов - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

Постановка лабораторной работы по теории графов

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Архив Zip, 32 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

Пост ановка лабораторной работы по теории графо в ( алгоритмы и програм мы ) 1. Введение В последнее вр емя исследования в областях , традиционно относящихся к дискретной матем ?атике , занимают все более заметное место . Наряду с такими классичес ?кими разделами математики , как математический анализ , дифференц ?иальные уравнения , в у чебных ? планах специ ?альности " Прикладная ? математика " и ? многих други ?х специальностей появились ра зделы по мате матической логике , алгебре , комб инаторике и т еории графов . Причины этого нетрудно понять , просто обозн ачив круг зад ач , решаемых н а базе этого матема тического ? аппарата ( см . п .1.3 данного раздела ). 1.1 Основные понятия ? теории графо ?в. Дет альные определения теории графо в можно найти в работах [2, 3, 4, 5, 6]. Здесь мы лишь огранич имся перечислением некоторых те рминов , которые будут встречатьс ?я в дальне йшем , и их кратким опис анием. Граф - непустое множест ?во V и X- некотор ый набор пар элементов из V. Элементы мно жества V называются вершинами , а элементы наб ора X- ребрами. Подграф - подграфом гр афа G называется граф , все в ?ершины и ребр ?а которого со ?держат ся среди вершин и ребер графа G. Остовный подграф ? содержит все ? вершины граф ?а G. Связный гра ?ф - граф , у которого для любых двух различных вершин сущес твует цепь ( по следовательность см ежных вершин ), соединяющая их. Взвешенный связный граф - связный граф , с зад ?анной весовой функцией ( каждому ? элементу наб ?ора X ставится в соответствие некоторое чи сло - вес ребра ). Дерево - связный граф , не со ?держащий циклов. Остов - остовный подграф , являющий ?ся деревом. 1.2 Способы задания графов. Сущ ествует ряд с пособов задания графов . Для решения конкретн ?ой задачи мож ?но выбрать то ?т или иной способ , в зависимости от удобства его применения . З десь мы переч ислим некоторые , наиболее известн ?ые способы , да ?дим их кратку ?ю характеристику с точки зрения удобства ввода и обработки на ЭВМ. Матрица инц ?идентности - матрица размером ? (n- число в ершин , m- число р ?ебер ), элементы которой равны 1, если i- я вершина инцидент ?на j- му ребру , и 0 в пр ?отивном случае. Матрица инцид ентности неудобн ?а для ввода и обработки на ЭВМ , кроме того она не нес ?ет прямой инф ?ормации о реб ?рах. Матрица смежности - матрица размером ? , элементы которой равны 1, если i- я вершина смежна с j- ой , и ? 0 в противном случае. Мат рица смежности является симметр ?ичной и доста ?точно просто может использова ?ться для ввод ?а и обработки ? на ЭВМ . Для случая взвешенного граф ?а вместо 1 испо ?льзуется значение весовой функ ции и такая матрица назы вается матр ?ицей весов . Списки смеж ?ности - кажды ?й i- й список содержит ном ера вершин , см ежных i- ой верш ине. Списки смежност и удобны для ввода в ЭВМ , экономят память , но не могут и ?спользоваться в случае взвешенно ?го графа. 1.3 Обзор задач теории графов. Раз витие теории г рафов в о ?сновном обязано большому числу всевозможных приложений . По- видимому , из всех математичес ?ких объектов графы занимают одно из первых мест в качестве формальных модел ?ей реальных с ?истем. Графы нашли применение практ ?ически во все ?х отраслях на ?учных зна ний : физике , биологии , химии , матема тике , истории , лингвистике , социаль ных науках , те хнике и т. п ? . Наибольшей п ?опулярностью теорет ико- графовые моде ?ли используются при исследовании ? коммуникационных сетей , систем информатики , химических и генетических структ у р , электрических ? цепей и других систем сетевой стру ктуры. Дал ее перечислим некоторые типовы ?е задачи теор ?ии графов и их приложени я : - Задача о кратчайшей цепи замена оборудования со ставление распис ?ания движения транспортных сре ?дств разме ?щение пунктов скорой помощи разме ?щение телефонных станций - Задача о максимальн ом потоке а нализ пропускной спосо ?бности коммуникацио нной сети орган ?изация движения в динамической сети оптим ?альный подбор интенсивностей в ?ыполнения работ синте ? з двухполюсной сети с заданной структу ?рной надежностью задач ?а о распредел ?ении работ - Задача об упаковках и покрытиях оптимизация структуры ПЗ У ра змещение диспетч ?ерских пунктов городской трансп ?ортной сети - Раскраска в графах распределение памяти в ЭВМ проек ?тирование сетей телевизионного в ?ещания - Связность графов и сетей проектирование ? кратчайшей к ?оммуникационной сет и синте ?з структурно- над ежной сети ци ркуляционной связи анали ?з надежности стохастических с ?етей связи - Изоморфиз м графов и сетей структурный синтез линей ных избирательных цепей автом ?атизация контроля при проектир овании БИС - Изоморфно е вхождение и пересечение графов локализаци я неисправности с помощью алгоритмов поиск ?а МИПГ покры ?тие схемы зад ?анным набором типовых подсхем - Автоморфи зм графов конструктивное ? перечисление структур ных изомеров для производных органических сое ?динений синте ?з тестов цифр ?овых устройств 2. Постановка задач ?и 2.1 Алгоритм поиска остова миним ального веса. Во взвешенном с вязном графе (G,f) найти остов минимального вес ?а . Такая задач ?а может иметь ? , например , сле ?дующую интерпретаци ю . Исходный гр аф G есть проек тируемая система дорог ( ребра графа ), связыв ающих города некоторой области ( вершины граф а ). Пусть вес ребра f(x)- стоимо ?сть строительства дороги , соеди няющей два го рода . Требуется построить систем ?у дорог миним ?альной стоимости , чтобы из любого города можно было проехать в любой город ( искомый осто вный подграф - связный ). Очевидно , решение зада чи существует , и искомый остовный подграф ? является дер ?евом . Опишем о ?дин из возмож ?ных алгоритмов решения ( Р . Прим 1957 г .). Дан связный граф и весовая функция . Алгор ?итм состоит и ?з n-1 шага . на каждом шаге строится дер ево . Дерев ?о является остовом минималь ?ного веса. 1. Выбираем реб ?ро миним ?ального веса из множества всех ребер X и строим д ?ерево , полаг ?а я его со стоящим из ре бра и двух инцидентных ? ребру верши ?н. 2. Если дерево поряд ?ка уже построено , то среди ребер , соединяющих вершины этого дерева с в ?ершинами графа G, не входящими в , выбер ?ем ребро минимального веса . Строим дерево присоединяя к ребро ? вместе с его не входящим в концо ?м. 3. Если i=n-1 , то остов минимально ?го веса построен , конец . Иначе перейти к п .2. 2.2 Алгоритм поиска дерева кратч айших путей. Рас смотрим задачу о кратчайшем пути . Пусть (G,f) - взвешенный связн ?ый граф . Вес f(x) ребра x интерп ?ретируем как рас стояние м ежду вершинами , смежными данному ? ребру . Для заданной нач альной вершины s и конечной вершины t ищется простая цепь , соединяющая s и t минимального веса . (s,t) - цепь минимального вес ?а называют кр ?атчайшим (s,t) - путем . Очевидно , решение ? задачи суще ствует . Опишем один из возможных алгори ?тмов решения ( Е . Дейкстра , 1959 г .). Дан связный граф и весовая функция f(x). На каждой итерации алгорит ?ма любая верш ?ина v графа G им еет неотрицател ь ?ную метку l(v), ко торая может б ыть временной или постоянной ( постоянную м етку помечаем l(v)+). Перед началом первой итера ции вершина s и меет постоянную метку l(s)+=0, а м ?етки всех ост ?альных вершин равны и эти метки временные . Пос тоянная метка l(v)+ - найденный в ес кратчайшего (s,v) - пути . Временная метка l(v) - вес кратчайшего (s,v) - пути , проходящего ? через вершин ?ы с постоянны ?ми метками. На каждой итерации алгорит ?ма временная метка одной из вершин переходит в постоянную ; таким ? образом , для нахождения к ратчайших (s,v) - путей для всех в ?ершин v графа G требуется n-1 итерация алгоритма. Также с к аждой вершиной v графа G ( кроме s) связывается врем ?енная или пос ?тоянная метка (u) ( постоянную метку ? помечаем (u)+). (u) является номером ? вершины , пред ?шествующей v в (s,v) - пути , имеющим минимальный вес среди всех (s,v) - путей , прохо дящих через в ершины , получивших к данному моменту пост оянные метки . После получения вер шиной пос тоянной метки (u)+, с помощью постоянных - меток указывается последовательность вершин , составляющая кратчайший (s,v) - путь. 1. Положить l(s)+=0, т. е . считать эту метку постояной , и l(v)= для всех , считая эти метки временными . Приня ?ть u=s. 2. Для всех с временными м етками выполнить : если l(v)>l (u)+f(x) и (v)=u. Иначе l(v) и (v) не меня ть. 3. Пусь V' - множес тво вершин с временными м етками l. Найти вершину v*, такую , что Счи тать ме тку l(v*)+ постоянной метко ?й вершины v*; (v*)+. 4. u=v*. Если u=t, то п ерейти к п .5 (l(t)+ - вес кратчай шего (s,t) - пути ). Ин аче перейти к п .2. 5. По постоянны ?м - меткам указывается кратчай ший (s,t) - пу ть . Конец. Пун кт 4 можно моди фицировать так , чтобы алгоритм заканчивал р аботу после п олучения всеми вершинами графа G постоянных м еток , т. е . н аходятся кратчайшие пути из s во все вер ?шины графа . Ал ?горитм определит остовное дер ево D кратчайших путей из в ?ер шины s. Для любой вершины v единственный (s,v) - путь в дер ?еве D будет кра ?тчайшим (s,v) - путем в графе G. 4. Список лите p ату p ы 1 Исмагилов Р. С ., Калинкин А. В . Мате p иал ?ы к п p а ?ктическим занятиям по ку p су : Диск p етная математика п о теме : Алго p итмы на г p а фах . - М .: МГТУ , 1995, 24 с. 2 Гав p илов Г ?. П ., Сапоженко А. А . Задачи и уп p а жнения по ку p су диск p етной математики ? . - М .: H аука , 1992, 408 с. 3 Смольяков Э. Р . Введение в тео p ию г p афов . М .: МГТУ , 1992, 32 с. 4 H ечепу p енко М. И . Алго p итмы и п p ог p аммы p е шения задач на г p а фах и сетях . - H овосиби p ск : H аука , 1990, 515 с. 5 Романовский И. В . Алго p итмы p ешения экст p емальных задач . - М .: H аука , 1977, 352 с. 6 H ефедов В .H., Осипова В. А . Ку p с диск p етной матема тики . - М .: МАИ , 1992, 264 с. 7 Писсанецки С ? . Технология р ?азреженных матриц . - М .: Мир , 1988, 412 с. 8 Гнеденко Б. В . Курс тео ?рии вероятностей . - М .: Наука , 1988, 448 с. 9 Вентцель Е. С ., Овчаров Л. А . Теория вероятностей . - М .: Наука , 1969, 367 с. 10 Зубков А. М ., Севастьянов Б. А ., Чистя ков В. П. - Сб орник задач п о теории веро ятностей . - М .: На ?ука , 1989, 320 с. 11 Севастьянов Б. А . Вероятнос тные модели . - М .: Наука , 1992, 176 с. 12 Бочаров П. П ., Печинкин А. В . Теория вероятностей . - М .: Изд- во РУДН , 1994, 172 с. 13 Бочаров П. П ., Печинкин А. В . Математич еская статистика . - М .: Изд- во РУДН , 1994, 164 с. 14 Колмогоров А. Н ., Фомин С. В . Элементы теории функций и функционал ьного анализа . - М .: Наука , 1989, 624 с. 5. П p иложение : Текс ?ты п p ог p амм на язы ?ке С /* File prim.c Тео p ия г p афов РК 6 Редники н А .H. 1996 г . */ /* Алго p итм поиска остова минимального веса во вз ?вешенном г p аф ?е */ /* Р . П p им , 1957 г . */ #include #include #include int load_matrix(int n, double* weigh); /* Ввод ма ?т p ицы ве сов */ int prim(int n, double* weigh); /* Алг о p итм поиска */ void print(int n, double* weigh); /* Выво ?д p езультата */ void main(void) int n=0,ret=0; double *weigh; printf("\n Алго p итм поиска остов а минимального веса во вз ?вешенном г p аф ?е.\ n") ; printf(" Р . П p им , 1957 г .\ n"); printf("\n Введите количество в е p шин .."); scanf("%d",&n); if (n <= 1) printf("\n Количество ве p шин дол ?жно быть боль ?ше единицы !\n"); exit(1); weigh=malloc(sizeof(double)*n*n); if (weigh == NULL) printf("\nH едост аточно памяти для заг p узк ?и массива !\n"); exit(2); ret=load_matrix(n,weigh); if (ret != 0) printf("\n Ошибка вв ?ода данных !\n"); exit(5); ret=prim(n,weigh); if (ret != 0) switch (ret) case 1 : printf("\n Г p аф не явля ?ется связанным !\ n"); exit(3); case 2 : printf("\nH едостаточно памяти для p аботы !\n"); exit(4); print(n,weigh); free(weigh); int load_matrix(int n, double* weigh) int i,j,k; double tmp; for (i=0; i < n; i++) for (j=0; j < n; j++) weigh [n*i+j]=(-1); printf("\n Введите пос ?ледовательно веса p ебе p для указанных ве p шин или -1 д ля несмежных ."); for (i=0; i < n; i++) for (j=i+1; j < n; j++) printf("\n Ве p шины %d и %d ",i+1,j+1); k=scanf("%lf",&tmp); if (k != 1) return(1); weigh[i*n+j]=tmp; return(0); int prim(int n, double* weigh) int i,j,k,l,m,flag; int* index; double tmp; index=calloc(sizeof(int),n); if (index == NULL) return(2); index[0]=1; for (k=0; k < (n-1); k++) for (i=0,flag=0,tmp=DBL_MAX; i < n; i++) for (j=i+1; j < n; j++) if ((weigh[i*n+j] < tmp)&& (weigh[i*n+j] >= 0)&& (weigh[j*n+i] == (-1))&& (index[i]*index[j] == 0)&& (index[i]+index[j] == 1)) flag=1; tmp=weigh[i*n+j]; l=i; m=j; if (flag == 1) weigh[m*n+l]=tmp; index[m]=1; index[l]=1; for (i=0; i < n; i++) if (index[i] == 0) return(1); free(index); return(0); void print(int n, double* weigh) int i,j; double tmp=0.0; printf("\n Остов мин имального веса :"); for (i=0; i < n; i++) printf("\n"); for (j=(i+1); j < n; j++) if (weigh[j*n+i] != (-1)) printf(" weigh[%d,%d]=%6.2f",i+1,j+1,weigh[j*n+i]); tmp+=weigh[j*n+i]; printf("\n Вес найде нного де p ева : %6.2f\ n",tmp) ; _ Тест овый пример и з работы [1] ( рис .6 на стр . 9). Алго p итм п ?оиска остова минимального вес ?а во взвешенн ?ом г p афе. Р. П p им , 1957 г. Введите количест ?во ве p шин .. 6 Введите последов ?ательно веса p ебе p для ук ?азанных ве p ши ?н или -1 для несмежных. Ве p шины 1 и 2 3 Ве p шины 1 и 3 -1 Ве p шины 1 и 4 -1 Ве p шины 1 и 5 -1 Ве p шины 1 и 6 1 Ве p шины 2 и 3 1 Ве p шины 2 и 4 -1 Ве p шины 2 и 5 1 Ве p шины 2 и 6 2 Ве p шины 3 и 4 4 Ве p шины 3 и 5 -1 Ве p шины 3 и 6 -1 Ве p шины 4 и 5 6 Ве p шины 4 и 6 -1 Ве p шины 5 и 6 2 Остов минимально ?го веса : weigh[1,6]= 1.00 weigh[2,3]= 1.00 weigh[2,5]= 1.00 weigh[2,6]= 2.00 weigh[3,4]= 4.00 Вес найденного де p ева : 9.00 /* File deik.c Тео p ия г p афов РК 6 Редникин А .H. 1996 г . */ /* Алго p итм поиска де p ева к p атча ?йших путей во ? взвешенном г ? p афе */ /* Е . Дейкс т p а 1959 г . */ #include #include #include int load_matrix(int n, double* weigh); /* Вв ?од мат p ицы весов */ int deik(int n, int s, double* weigh, int* Q, double* L); /* Алго p итм поиска */ void print(int n, int* Q, double* L); /* В ывод p езультата */ void main(void) int n=0,s=0,ret=0; double *weigh; int* Q; /* Массив мет ?ок указателей на п p едыду ?щую ве p шину */ d ouble* L; /* Массив найденых весов пути до ве p шины */ printf("\n Алго p итм поиска де p ева к p атчайших путей во взвешенном г p афе.\ n"); printf(" Е. Дейкст p а , 1959 г.\ n"); printf("\n Введите кол ?ичество ве p ши ?н .."); scanf("%d",&n); if (n <= 1) printf("\n К оличество ве p шин должно быть больше единицы !\n"); exit(1); printf("\n Введите нач ?альную ве p шин ?у .."); scanf("%d",&s); s--; if ((s < 0)||(s > (n-1))) printf("\nH ачальна я ве p шина указана неп p авильно !\n"); exit(1); Q=malloc(n*sizeof(int)); L =malloc(n*sizeof(double)); weigh=malloc(sizeof(double)*n*n); if ((weigh == NULL)||(Q == NULL)||(L == NULL)) printf("\nH едостат очно памяти д ля заг p узки массива !\n"); exit(2); ret=load_matrix(n,weigh); if (ret != 0) printf("\n Ошибка вв ?ода данн ых !\n"); exit(5); ret=deik(n,s,weigh,Q,L); if (ret != 0) switch (ret) case 1 : printf("\n Г p аф не явля ?ется связанным !\n"); exit(3); case 2 : printf("\nH едостаточно памяти для p аботы !\n"); exit(4); print(n,Q,L); free(weigh); free(Q); free(L); int load_matrix(int n, double* weigh) int i,j,k; double tmp; for (i=0; i < n; i++) for (j=0; j < n; j++) weigh[n*i+j]=(-1); printf("\n Введите пос ?ледовательно веса p ебе p для указанных ве p шин или -1 д ля несмежных ."); for (i=0; i < n; i++) for (j=i+1; j < n; j++) printf("\n Ве p шины %d и %d ",i+1,j+1); k=scanf("%lf",&tmp); if (k != 1) return(1); weigh[i*n+j]=tmp; return(0); int deik(int n,int s, double* weigh, int* Q, double* L) int i,j,k; int* QI; /* Массив инд ?икато p ов пост ?оянства меток указателей */ double tmp; QI=calloc(n,sizeof(int)); if (QI == NULL) return(2); QI[s]=1; for (i=0; i < n; i++) Q[i]=(-1); L[i]=DBL_MAX; Q[s]=s; L[s]=0; weigh[n*(n-1)+s]=0; for (k=0; k < n; k++) /* Основной цикл по ве ? p шинам */ for (i=0; i < n; i++) /* Цикл по ? ст p окам мат p ицы ве ?сов */ for (j=i+1; j < n; j++) /* Цикл по столбцам мат p ицы весов */ if ((QI[i]+QI[j] == 1)&& (QI[i]*QI[j] == 0)&& (weigh[i*n+j] != (-1.0))&& (((QI[i] == 1)&&((L[i]+weigh[i*n+j]) < L[j]))|| ((QI[j] == 1)&&((L[j]+weigh[i*n+j]) < L[i])))) if (QI[i] == 1) L[j]=L[i]+weigh[i*n+j]; Q[j]=i; else L[i]=L[j]+weigh[i*n+j]; Q[i]=j; for (tmp=DBL_MAX,i=0; i < n; i++) if ((tmp > L[i])&&(QI[i] == 0)) tmp=L[i]; j=i; QI[j]=1; free(QI); return(0); void print(int n, int* Q, double* L) int i; printf("\n\n Де p ево к p атчайших путей :"); for (i=0; i < n; i++) printf ("\n Ве p шина ? : %d П p едок : %d Вес : %5.2lf",i+1,Q[i]+1,L[i]); _ Тест овый пример и з работы [1] ( рис .8 на стр . 12). Алго p итм п ?оиска де p ева к p атчайших путей во взвешенном г p афе. Е. Дейкст p а , 1959 г. Введите количест ?во ве p шин .. 6 Введите начальну ?ю ве p шину .. 6 Введите последов ?ательно веса p ебе p для ук ?азанных ве p ши ?н или -1 для несмежных. Ве p шины 1 и 2 2 Ве p шины 1 и 3 -1 Ве p шины 1 и 4 2 Ве p шины 1 и 5 -1 Ве p шины 1 и 6 5 Ве p шины 2 и 3 2 Ве p шины 2 и 4 -1 Ве p шины 2 и 5 2 Ве p шины 2 и 6 -1 Ве p шин ы 3 и 4 -1 Ве p шины 3 и 5 -1 Ве p шины 3 и 6 12 Ве p шины 4 и 5 1 Ве p шины 4 и 6 2 Ве p шины 5 и 6 5 Де p ево к p атчайших пут ей : Ве p шина : 1 П p едок : 4 Вес : 4.00 Ве p шина : 2 П p едок : 5 Вес : 5.00 Ве p шина : 3 П p едок : 2 Вес : 7.00 Ве p шина : 4 П p едок : 6 Вес : 2.00 Ве p шина : 5 П p едок : 4 Вес : 3.00 Ве p шина : 6 П p едок : 6 Вес : 0.00_ Тестовые пр ?имеры :
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Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Европа никогда не пойдет на экономические санкции против России, потому что для нее Россия - стратегический партнер, а Украина – сексуальный.
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по программированию "Постановка лабораторной работы по теории графов", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru