Реферат: Разработка системы задач (алгоритмы-программы) по дискретной математике

Реферат: Разработка системы задач (алгоритмы-программы) по дискретной математике




💣 👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻




























































Вятский Государственный Гуманитарный Университет

Тема: Разработка системы упражнений и задач (алгоритмы-программы) по дискретной математике.
Проверила: Ашихмина Татьяна Викторовна
Представление графа в памяти компьютера. 6
Алгоритм Флойда (кратчайшие пути между всеми парами вершин). 9
Глава 2 Система задач и упражнений. 9
Несмотря на то, что для решения задач в основном используются общие методы, все-таки мышление каждого конкретного человека немного отличается от мышления других людей, если он обладает достаточной базой знаний. Таким образом, при решении задач «начиная с нуля» можно зайти в тупик, если выбрать неверный путь решения задачи. В данном курсовом проекте мы разработаем собственную классификацию задач, позволяющую определить наиболее подходящий способ решения, чтобы облегчить процесс моделирования и составления алгоритма и предотвратить выбор неверного способа, также рассмотрим данную классификацию с точки зрения методики преподавания информатики. выбор неверного способа. В этом заключается актуальность данного курсового проекта.
Цель:
Разработать собственную классификацию для задач по дискретной математике. Для достижения этой цели были поставлены следующие задачи:
1) Разработать собственную систему задач и упражнений по дискретной математике.
2) Определить способы решения данных задач, используя теоретический материал курса дискретной математики.
3) Составить алгоритм – программу для каждой задачи, реализующий выбранный способы решения.
4) Разработать систему критериев классификации данной системы задач.
Даны N упорядоченных множеств U1 U2,..., Un (N - известно), и требуется построить вектор А=(а1 а2, ..., аn), где a1€U1, a2€U2, ..., an€Un, удовлетворяющий заданному множеству условий и ограничений.
В алгоритме перебора вектор А строится покомпонентно слева направо. Предположим, что уже найдены значения первых (к-1) компонент, A=(a1, a2, ..., a (
k
-1)
), ?, ..., ?), тогда заданное множество условий ограничивает выбор следующей компоненты а k
некоторым множеством S k
CU k
. Если Sk<>[ ] (пустое), мы вправе выбрать в качестве а к

перейти к выбору ^/^ "^выборы п«я»,
так далее. Однако /[ ■ Д Jfcv при данном а,
таковы, что Sk оказалось пустым, то мы возвращаемся к выбору
а (
k
-1)
и выбираем в качестве нового a (k-1)
тот элемент S (k-i)
, который непосредственно следует за только что отброшенным. Может оказаться, что для нового a (k-1)
условия задачи допускают непустое Sk, и тогда мы пытаемся снова выбрать элемент а к
. Если невозможно выбрать a (k-1)
, мы возвращаемся еще на шаг назад и выбираем новый элемент а (к-2)
и так далее.
Графическое изображение - дерево поиска. Корень дерева (0 уровень) есть пустой вектор. Его сыновья суть множество кандидатов для выбора а1 и, в общем случае, узлы k-го уровня являются кандидатами на выбор а к
при условии, что а1, а2, ..., a (k-1)
выбраны так, как указывают предки этих узлов. Вопрос о том, имеет ли задача решение, равносилен вопросу, являются ли какие-нибудь узлы дерева решениями. Разыскивая все решения, мы хотим получить все такие узлы.
Рекурсивная схема реализации алгоритма,
if <вектор является решением> then <записать его>
for a€Si do Васкtrаск(вектор| | a,i+l); {| | - добавление к вектору компоненты}
Оценка временной сложности алгоритма. Данная схема реализации перебора приводит к экспоненциальным алгоритмам. Действительно, Пусть все решения имеют длину N, тогда исследовать требуется порядка | Si| *| S2| *...*| SN| узлов дерева. Если значение S; ограничено некоторой константой С, то получаем порядка C N
узлов.
Логарифмический (бинарный или метод деления пополам) по­иск данных применим к сортированному множеству элементов а 1
< а 2
< ... < а п
,
размещение которого выполнено на смежной па­мяти. Для большей эффективности поиска элементов надо, чтобы пути доступа к ним стали более короткими, чем просто последова­тельный перебор. Наиболее очевидный метод: начать поиск со среднего элемента, т.е. выполнить сравнение с элементом а. Результат сравнения позволит определить, в какой половине по­следовательности а {
,
а 2
,..., а,
1+
„ ,,..., а п

продолжить поиск,
применяя к ней ту же процедуру, и т.д. Основная идея бинарного поиска довольно проста, однако «для многих хороших програм­мистов не одна попытка написать правильную программу закон­чилась неудачей». Чтобы досконально разобраться в алгоритме, лучше всего представить данные а х
< а 2
<
... < а п

в виде двоичного дерева сравнений, которое отвечает бинарному поиску.
Двоичное дерево называется деревом сравнений
, если для лю­бой его вершины (корня дерева или корня поддерева) выполняет­ся условие:
{Вершины левого поддерева}<Вершина корня<{Вершины

правого поддерева

}.

Рис
.
Пример дерева сравнений, отвечающего бинарному поиску среди сортированных элементов: 3,5,7,9,12,19,27,44
Т.о. бинарный поиск – это сравнение эталона х, которое осуществляется с элементом, расположенным в середине массива и в зависимости от результата сравнения (больше или меньше) дальнейший поиск проводится в левой или правой половине массива.
Используется, когда имеется какая-либо информация о массиве, например массив упорядочен по неубыванию. Общее количество сравнений имеет порядок О(N*logN).
Используется, когда необходимо объединить упорядоченные фрагменты массивов: A[k],…,A[m] и B[m+1],…,B[q] в один C[k],…,C[q], тоже упорядоченный (k<=m<=q). Основная идея решения состоит в сравнении очередных элементов каждого фрагмента, выяснении, какой из элементов меньше, переносе его во вспомогательный массив С (для простоты) и продвижении по тому фрагменту массива, из которого взят элемент. При этом следует не забыть записать в С оставшуюся часть того фрагмента, который не успел себя «исчерпать».
Метод слияний – один из первых в теории алгоритмов сортировки. Он предложен Дж. Фон Нейманом в 1945 году. Эффективность алгоритма, по Д. Кнуту, составляет С=О(N*logN).
Метод предложен Ч.Э.Р.Хоаром в 1962 году.
Идея метода. В исходном массиве А выбирается некоторый элемент Х (барьерный элемент). Основной целью алгоритма является запись Х «на свое место» в массиве, пусть это будет место k, такое, что слева от Х были элементы массива, меньшие или равные Х, а справа – элементы массива, большие Х, т.е. массив А будет иметь вид: (А[1],A[2],…,A[k-1]),A[k] (X), (A[k+1],…, A[n]).
В результате элемент A[k] находится на своем месте и исходный массив А разделен на две неупорядоченные части, барьером между которыми является элемент A[k]. Дальнейшие действия очевидны – независимо сортировать полученные части по той же логике до тех пор, пока не останутся части массива, состоящие из одного элемента, то есть пока не будет отсортирован весь массив.
Определим граф как конечное множество вершин V и набор Е неупорядоченных и упорядоченных пар вершин и обозначим G=(V,E). Мощности множеств V и Е будем обозначать буквами N и М Неупорядоченная пара вершин называется ребром, а упорядоченная пара - дугой. Граф, содержащий только ребра, называется неориентированным; граф, содержащий только дуги, - ориентированным, или орграфом. Вершины, соединенные ребром, называются смежными. Ребра, имеющие общую вершину, также называются смежными. Ребро и любая из его двух вершин называются инцидентными. Говорят, что ребро (u, v) соединяет вершины и и v. Каждый граф можно представить на плоскости множеством точек, соответствующих вершинам, которые соединены линиями, соответствующими ребрам. В трехмерном пространстве любой граф можно представить таким образом, что линии (ребра) не будут пересекаться.
Способы описания.
Выбор соответствующей структуры данных для представления графа имеет принципиальное значение при разработке эффективных алгоритмов. При решении задач используются следующие четыре основных способа описания графа: матрица инциденций; матрица смежности; списки связи и перечни ребер. Мы будем использовать только два: матрицу смежности и перечень ребер.
Матрица смежности - это двумерный массив размерности N*N. 1, вершина с номером i смежна с вершиной с номером j, 0, вершина с номером i не смежна с вершиной с номером j
Для хранения перечня ребер необходим двумерный массив R размерности М*2. Строка массива описывает ребро.
Путем (или ориентированным маршрутом) ориентированного графа называется последовательность дуг, в которой конечная вершина всякой дуги, отличной от последней, является начальной вершиной следующей.
Простой путь - это путь, в котором каждая дуга используется не более одного раза.
Элементарный путь - это путь, в котором каждая вершина используется не более одного раза.
Если существует путь из вершины графа v в вершину i, то говорят, что i достижима из v.
Матрицу достижимости определим следующим образом:
Множество R(v) - это множество таких вершин графа G, каждая из которых может быть достигнута из вершины v. Обозначим через F(v) множество таких вершин графа G, которые достижимы из v с использованием путей длины 1. T2(v) - это Г(Г(у)), то есть с использованием путей длины 2 и так далее. В этом случае:
При этом р - некоторое конечное значение, возможно, достаточно большое.
Пример (для рисунка). R(1)={1}U{2,5}U{1,6}U{2,5,4}U{1,6,7}={1,2,4,5,6,7}
Выполняя эти действия для каждой вершины графа, мы получаем матрицу достижимостей R.
Дано. Ориентированный граф G=, s - вершина источник; матрица смежности A (A:array[1..n,1..n] of integer); для любых u, v€V вес дуги неотрицательный (А[u,v]>=0). Результат. Массив кратчайших расстояний - D.
В данном алгоритме формируется множество вершин Т, для которых еще не вычислена оценка расстояние и, это главное, минимальное значение в D по множеству вершин, принадлежащих Т, считается окончательной оценкой для вершины, на которой достигается этот минимум. С точки зрения здравого смысла этот факт достаточно очевиден. Другой "заход" в эту вершину возможен по пути, содержащему большее количество дуг, а так как веса неотрицательны, то и оценка пути будет больше.
В таблице приведена последовательность шагов (итераций) работы алгоритма. На первом шаге минимальное значение D достигается на второй вершине. Она исключается из множества Т, и улучшение оценки до оставшихся вершин (3,4,5,6) ищется не по всем вершинам, а только от второй.
Время работы алгоритма пропорционально N 2
.
Дано. Ориентированный граф G=, s - вершина источник; матрица смежности A (A:array[1..n,1..n] of integer); для любых u, v€V вес дуги неотрицательный (А[u,v]>=0). Результат. Матрица D кратчайших расстояний между всеми парами вершин графа и кратчайшие пути.
Идея алгоритма. Обозначим через D m

[i,j] оценку кратчайшего пути из i в j с промежуточными вершинами из множества [1..m]. Тогда имеем: D 0

[i,j]:=A[i,j] и D ( m+1
)
[i,j]=min{D m

[i,j],D m

[i,m+1]+D m

[m+1,j]}. Второе равенство требует пояснения. Пусть мы находим кратчайший путь из i в j с промежуточными вершинами из множества [1..(m+1)]. Если этот путь не содержит вершину (m+1), то D (

m

+1)

[i,j]=D m

[i,j]. Если же он содержит эту вершину, то его можно разделить на две части от i до (m+1) до j. Время работы алгоритма пропорционально N 3
.
Набор задач, разработанный нами и изложенный ниже можно систематизировать по следующим критериям:
Задачи высокого уровня сложности

:
это задачи олимпиадного уровня, требующие глубокого знания предмета, а также комплексного подхода к решению задачи (Пример для нашего набора задач, задача о роботах, задача о комнатах музея).
Задачи среднего уровня сложности:

это задачи, требующие хороших знаний предмета и навыков применения знаний на практике, т.е в процессе решения задач (Пример: задача о семьях, задача о футболистах, задача про милицию и диспетчера).
Задачи низкого уровня сложности:

это задачи, для решения которых необходимы общие знания предмета и не требующие особых навыков применения знаний на практике, т.к. данные задачи направлены на формирование данных навыков.
Ситуативные задачи:

это задачи, формулировка которых представляет собой ситуацию из жизни. Это необходимо для более наглядного представления задачи, а также для того, чтобы сделать задачу более интересной для решения.
Задачи со строгой формулировкой:

это задачи, в формулировке которой строго изложена суть задачи. Данные задачи являются задачами более низкого уровня, так как в них не требуется определения тематики задачи, а следовательно, и выбора способа решения, требуется лишь реализация алгоритма на языке программирования.
Задачи с единственным способом решения:

это задачи, решить которые можно лишь одним способом, т.е. задачу нельзя рассмотреть с точки зрения различных тематик, таким образом, отсутствует выбор способа решения задачи (Пример: задача о футболистах и т.д.).
Задачи с несколькими способами решения:

это задачи, которые могут быть рассмотрены с точки зрения различных тематик и, таким образом, имеют более широкий спектр решений (Пример: задача о метрополитене и т.д.).
Задачи, имеющие решение применимое только к конкретным задачам:

это задачи, которые в своей формулировке имеют достаточно много деталей, чтобы их решение было применимо только к конкретным задачам (Пример: задача о роботах).
Задачи, имеющие решение применимое к целому классу подобных задач:

это задачи, в формулировке которых не содержится особых деталей, чтобы их решение было применимо к целому классу подобных задач (Пример: задача о метрополитене и т.д.).




Комнаты музея.
Составьте алгоритм-программу определения числа комнат в музее и площади каждой комнаты в клетках. План музея показан ниже на рисунке.
Площадь музея состоит из клеток: m рядов и p столбцов. В каждой клетке такой матрицы (цифровая карта) проставляется число, в котором кодируется наличие стен у данной клетки. Значение числа в каждой клетке является суммой чисел: 1 (клетка имеет стену на западе), 2 (клетка имеет стену на севере), 4 (клетка имеет стену на востоке), 8 (клетка имеет стену на юге). Например, если в клетке стоит число 11 (11=8 + 2 + 1), то клетка имеет стену с южной стороны, с северной и с западной.
Исходные данные представляются в текстовом файле со следующей структурой. Первая строка: m, p – размерность сетки. Вторая строка, третья и следующие строки содержат описание матрицы цифровой карты по строкам. Расчетные данные вывести на экран в следующем порядке: первая строка – площадь каждой комнаты музея, вторая строка – количество комнат в музее.
Данную задачу можно решить используя метод перебора с возвратом.
Используя массив координат перемещения, смотрим, где отсутствуют стены, для каждой клетки, и последовательно двигаемся в ту клетку, в которую возможно, предварительно помечая клетку, в которой уже были. Если мы зашли в тупик, то возвращаемся в клетку, из которой вышли. Одновременно считаем количество клеток в каждой комнате. Когда происходит возврат в начальную точку движения, делаем всю комнату просмотренной (при помощи массива логического типа). Затем ищем клетку, в которой ещё не были и делаем её начальной точкой движения.




Пират в подземелье.
В поисках драгоценных камней пират проваливается в подземелье. План подземелья – матрица N*M комнат с драгоценными камнями. Камни из одной комнаты имеют одинаковую стоимость. Пирату в каждой комнате разрешается взять всего лишь один камень с собой и следовать в любую другую соседнюю с ней комнату. Каждую из комнат пират может посещать всего лишь один раз. Требуется составить алгоритм-программу определения маршрута посещения пиратом К комнат лабиринта таким образом, чтобы он набрал камней на максимально возможную сумму. Входные и выходные данные: В первой строке входного файла содержатся числа N,M,K. В следующих N строках располагается матрица N*M лабиринта. Каждый элемент матрицы представляется стоимостью камня соответствующей комнаты. Маршрут начинается с левой верхней угловой комнаты лабиринта. Выходные данные: содержат единственное число, равное общей стоимости взятых с собой камней.
Выходные данные для данного примера:

Идея решения:
Данную задачу можно решить используя метод перебора с возвратом.
Двигаясь последовательно по комнатам считаем общую стоимость камней и выбирая наибольшую перебираем все возможные варианты передвижения пирата по комнатам.
(
Текст программы см. Приложение 2 )





Диспетчер и милиция.
У диспетчера имеется схема города, на которой изображены районы и дороги, связывающие данные районы. На схеме указаны расстояния от одного пункта к другому и направление движения, которое разрешено. Схема выглядит следующим образом:
Диспетчеру поступают запросы из патрульных машин милиции, патрульные сообщают район, где они находятся и район, в который им необходимо попасть на вызов. Требуется составить алгоритм – программу, которая бы помогла диспетчеру найти минимальное расстояние, которое предстоит покрыть патрульной машине. Необходимо учесть направление движения, которое разрешено на данном участке пути.
Решение.
Входные и выходные данные:
Первая строка входного файла содержит количество районов города. Затем идет матрица смежности, где занесены все пути из одной вершины в другую с расстоянием:
Номер района, из которого выехала милицейская машина и в который ей необходимо попасть вводятся с клавиатуры.
Единственное число, которое представляет собой минимальный путь, который предстоит покрыть милицейской машине.
Идея решения:
данную задачу можно решить с помощью алгоритма поиска кратчайших путей в графе (алгоритм Дейкстры).





Задача о футболистах.
Футбольная команда поехала на выездную игру, так как команда большая, то все игроки залезли в два автобуса, в произвольном порядке и в разных количествах. В автобусах игроки по привычке построились по возрастанию номеров и сели. Необходимо составить алгоритм – программу, помогающую игрокам, на выходе из двух автобусов, сразу же вставать по возрастанию номеров.
Входной файл содержит три строки. В первой строке находятся два числа – количество игроков в первом и втором автобусах. Вторая строка содержит номера игроков, находящихся в первом автобусе. Третья строка содержит номера игроков, находящихся во втором автобусе:
Выходные данные: номера футболистов, вышедших из автобусов в порядке возрастания. Выходные данные для данного примера:
Оптимального решения данной задачи можно добиться, используя метод сортировки слияниями.

(
Текст программы см. Приложение 4 )





Задача о семьях.
На сельской улице живут Ивановы и Петровы. Необходимо, используя минимальное число обменов, расселить их так, чтобы Ивановы жили с одного конца улицы, а Петровы – с другого.
Исходные и выходные данные. С клавиатуры вводится n - количество человек, проживающих на данной улице. Затем вводится массив А[1..n], состоящий из 0 и 1, где 0 – Петров, 1 – Иванов. Выходными данными является число обменов.
Задача по методам сортировки
. Один из способов её решения заключается в следующем. Пусть Ивановы должны жить в начале улицы, а Петровы – в конце. По индексу i (isum1 then {сравниваем текущую стоимость набранных камней со стоимотью набранных ранее, с целью увеличения стоимости}
If (A[x+dx[i],y+dy[i]]>0)and B[x+dx[i],y+dy[i]] then {просматриваем варианты перехода пирата в другую комнату, проверяя не был ли пират в ней до этого}
sum:=sum+A[x+dx[i],y+dy[i]]; {прибавляем стоимость камня, находящегося в данной комнате к суммарной стоимости}
B[x+dx[i],y+dy[i]]:=false; {отмечаем, что в данной комнате мы уже были}
Type mas=array[1..n,1..n]of Integer;
procedure Init(z:string); {инициализация входных данных}
function MinZn(R:mn):integer; {вычисляет номер района, путь до которого из района отправления минимален}
If (D[i]0)and(i in R) then
Function Min(i,j:integer):integer;{возвращает минимальное значение из двух возможных}
WriteLn('Введите пункт отправления и пункт назначения');
procedure Init(z:string); {инициализация исходных данных}
While (i<=m)and(j<=q)do {пока не вышли футболисты хотя бы из одного автобуса}
{сравниваем номера футболистов в разных автобусах, выходит в строй футболист с наименьшим номером}
If A[i]<=B[j] Then begin D[t]:=A[i]; Inc(i); end
Else begin D[t]:=B[j]; Inc(j); end;
{из одного автобуса вышли все футболисты, осталось выйти остальным}
While i<=m do begin D[t]:=A[i]; Inc(i); Inc(t); end;
While j<=q do begin D[t]:=B[j]; Inc(j); Inc(t); end;
For i:=1 to t-1 do Write(D[i],' ');
Write(‘введите массив через пробел(0 – Петров, 1 - Иванов)’);
procedure Init(z:string); {инициализация данных}
procedure Get(i:integer); {i – номер станции, из которой необходимо отправится}
If l in S then {по строкам матрицы смежности А, принадлежащим множеству S}
If A[l,j]=1 Then T:=T+[j]; {смотрим если есть путь из данного пункта в пункт j, то добавляем номер пункта j в множество Т}
If (j in T)and(i<>j) then Write(j,' '); {просматриваем содержится ли номер пункта j в множестве имеющих путь из пункта i}
{A – матрица достижимостей, B[i] – какие роботы могут быть в i пункте}
SOne, STwo: SSet; {SOne – роботы, которые едут со скоростью 1, STwo – роботы, которые едут со скоростью 2}
N, M:integer; {N – число пунктов, M – число роботов}
Procedure Init; {инициализация входных данных}
Write(‘Число пунктов:’); ReadLn(N);
writeLn(‘Введите пункты, которые соединяет дорога №’, i);
Write(‘Число роботов:’); ReadLn(M);
Write(‘Пункт, где находится робот №’,i,’:’); ReadLn(K);
If K=1 then Include(SOne,i) Else Include(STwo,i);
While (i<=N)and(B[i]<>[1..M])do Inc(i);
while(j<=N)and Not((j in A[i])and(B[i]+B[j]=[1..M]))do Inc(j);
Function AddIfCan(mode:integer; S:Sset):Boolean;
AddIfCan:=false; {S – множество роботов, которые едут}
If (i<>j)and(j in A[i])and(C[i]*B[j]*S<>B[j]*S) Then Begin
While (j<=N)and (not(j in A[i])or(B[i]+B[j]<>[1..m])or Not((SOne=[])or(STwo=[])or((B[i]*SOne=SOne)and(B[j]*STwo=STwo))or (B[j]*SOne=SOne)and(B[i]*STwo=STwo)))do Inc(j);
While IncS and Not FindS and(time<=N*2)and(ForMet=0)do begin
If Time Mod 2=0 then IncS:=AddIfCan(0,[1..m])
FindS:=ProvCanMet and(time mod 2=1);
If Time>N*2 then WriteLn(‘Пункт В: Роботы не встретятся’)
Write(‘Пункт В: Роботы встретятся через’);
3: write(time/2:0:3,’+1/’,(time mod 2+1)*3);
WriteLn(‘Пункт А:’,time,’момент(а,ов) времени’);
WriteLn(‘Пункт Б:’,time – Byte(ForB)*0.5:0:1,’момент(а,ов) времени’);
WriteLn(‘Пункт А: Роботы не встретятся’);
writeLn(‘Пункт Б: Роботы не встретятся’);
writeLn(‘Пункт В: Роботы не встретятся’);
A:mas; {массив представляющий собой список возрастов детей}
procedure Init(z:string); {инициализация данных}
procedure Print; {вывод списка на экран}
i:=m; j:=t; x:=A[(m+t)div 2]; {x- барьерный элемент, т.е. возраст, относительно которого будет сортироваться список, i,j – нижний и верхний номер, рассматриваемой части списка}
If A[i]>x then Inc(i)else {смотрим элементы списка относительно
If A[j]D[i,k]+D[k,j] then begin {определение пути с минимальным
P[i,j]:=k; {заносим номер станции, которая будет
end; предпоследней, посещенной напарником}
procedure Way(i,j:integer); {рекурсивная процедура, выводит
begin последовательность станций, которые посетит
If P[i,j]<>i then begin напарник, отталкиваясь от данных,
Way(i,P[i,j]); занесенных в массив P}
Writeln('Введите из какой станции и в какую будем искать путь:');
procedure Solve(i,j:integer;Var t:integer);
В данном курсовом проекте мы разработали свой набор задач и критерии, по которым данный набор можно классифицировать. Несмотря на то, что разрабатывая критерии классификации, мы оперировали с конкретным набором задач, данная классификация может быть применима ко многим наборам задач. Единственное несоответствие, которое может произойти, это несоответствие по тематике. Таким образом, данная классификация достаточно универсальна и может иметь широкое практическое применение. При выполнении данного курсового проекта основные трудности пришлись на выбор литературы, так как по данной теме литературы немного и ее необходимо рассматривать с точки зрения методики преподавания информатики. В сборниках задач большое место отведено задачам, имеющим строгую формулировку, которую изменить на ситуативную достаточно сложно, так как задачи имеют маленькую практическую значимость в жизни.
Таким образом, цели поставленные при выполнении данного курсового проекта достигнуты.
1)
Б.Н. Иванов Дискретная математика. Алгоритмы и программы. Москва 2001г.

2)
С.М. Окулов Программирование в алгоритмах. Москва 2002г.

3)
Н.Вирт Алгоритмы и структуры данных. Москва «Мир» 1989г.

4)
В.М. Кирюхин, А.В. Лапунов, С.М. Окулов Задачи по информатике. Международные олимпиады 1989-1996гг. Москва
ABF
1996г.

5)
С.М. Окулов, А.А. Пестов, О.А. Пестов Информатика в задачах. Киров 1998г.

6)
Н.Вирт Систематическое программирование. Под ред. Ю.М. Баяковского. Москва «Мир» 1977г.


Название: Разработка системы задач (алгоритмы-программы) по дискретной математике
Раздел: Рефераты по информатике, программированию
Тип: реферат
Добавлен 10:07:24 31 августа 2005 Похожие работы
Просмотров: 588
Комментариев: 17
Оценило: 6 человек
Средний балл: 4.2
Оценка: 4   Скачать

Срочная помощь учащимся в написании различных работ. Бесплатные корректировки! Круглосуточная поддержка! Узнай стоимость твоей работы на сайте 64362.ru
Если Вам нужна помощь с учебными работами, ну или будет нужна в будущем (курсовая, дипломная, отчет по практике, контрольная, РГР, решение задач, онлайн-помощь на экзамене или "любая другая" учебная работа...) - обращайтесь: https://clck.ru/P8YFs - (просто скопируйте этот адрес и вставьте в браузер) Сделаем все качественно и в самые короткие сроки + бесплатные доработки до самой сдачи/защиты! Предоставим все необходимые гарантии.
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.

Реферат: Разработка системы задач (алгоритмы-программы) по дискретной математике
Курсовая работа по теме Процессуальная самостоятельность следователя
Курсовая работа по теме Пенсионное страхование в Российской Федерации
Контрольная работа по теме Российская политическая традиция: истоки, социокультурные основания, историческая динамика
Реферат: Иван Грозный как общественный деятель
Магистерская Диссертация Бгу Уфа Гму
Реферат по теме Размещение угольной промышленности России
Реферат: Карбид кремния. Скачать бесплатно и без регистрации
Реферат На Тему Транспортный Налог В Волгоградской Области
Лекция по теме Чисельні методи розв’язання алгебраїчних рівнянь
Контрольная Работа Номера По Геометрии
Контрольная работа по теме Инженерный анализ в машиностроении
Эссе Про Психолога
Реферат по теме Кастрированные боги и жрецы
Реферат: Как провести стресс-интервью
Реферат: Летний отдых и налогообложение
Дипломная работа по теме Государственное регулирование инновационной деятельности в Республике Казахстан
Курсовая Работа На Тему Провалы Рынка Природопользования И Необходимость Его Государственного Регулирования
Ответ на вопрос по теме Комплексный анализ
Курсовая работа по теме Невербальный портрет литературного героя на примере повести А.И. Куприна 'Гранатовый браслет'
Контрольная работа по теме Научные знания средневекового арабского мира
Реферат: Туризм как составляющая непроизводственной сферы деятельности
Реферат: Роль персонала в обеспечении безопасности функционирования технологических систем
Сочинение: Разные лица Владимира Высоцкого

Report Page