Создание программы - Программирование, компьютеры и кибернетика курсовая работа

Создание программы - Программирование, компьютеры и кибернетика курсовая работа



































Выбор языка программирования и его обоснование. Определение системных требований. Схема алгоритма и программа на языке Qbasic. Разработка руководства пользователя. Способы конструирования программ. Особенности и принципы динамического программирования.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.


С развитием и совершенствованием ЭВМ тесно связано появление средств программирования. Для машин первого поколения они составлялись в машинных кодах. Это был трудоемкий процесс, поскольку программисту самому приходилось распределять память под программу, исходные данные и результаты. Разобраться в такой программе, модифицировать ее было практически невозможно. Еще в период перехода к машинам второго поколения (50-е годы) возникла необходимость в создании больших и сложных программ. Процесс их составления в машинных кодах резко снижал эффективность использования ЭВМ. Этот период характеризовался появлением первых алгоритмических языков программирования. Они отличались наглядной формой реализации алгоритма, использованием привычной математической символики, ограниченным набором ключевых слов. Основное их достоинство - универсальность.
Работа с программой, выполненной на алгоритмическом языке, очень упрощалась за счет относительной простоты написания, возможности модифицирования. Совершенствование вычислительной техники, а именно увеличение объема памяти и быстродействия машин, делало программирование на алгоритмических языках все более распространенным и перспективным. В настоящее время существует большое количество алгоритмических языков, которым присущи как общие, так и отличительные черты. Это Фортран, Бейсик, Паскаль и др. На их примере можно наглядно увидеть те характерные особенности, которые присущи программированию на алгоритмических языках вообще.
Бейсик (BASIC) - это сокращение английских слов BeginnersAll-purpouseSymbolicInstractionCode, что в переводе означает «многоцелевой язык символических инструкций для начинающих». Он был разработан профессорами Дартмутского колледжа (США) Т. Куртцем и Дж. Кемени в 1965 году для обучения студентов, незнакомых с вычислительной техникой. Этот язык, напоминающий Фортран, но более простой, быстро стал очень популярным. Особенно его популярность повысилась с появлением персональных компьютеров, где он стал одним из основных языков программирования. Существует множество версий языка Бейсик и все они имеют особенности. В каждой из них можно выделить общее подмножество, в котором отражены характерные (стандартные) грамматика, синтаксис и семантика языка. Наиболее популярной версией является Qbasic, благодаря удобному интерфейсу и представлению пользователю ряда сервисных возможностей, присущих современным системам программирования.
Целью данной курсовой работы является разработка программы и оформление программной документации согласно ЕСПД решения уравнения
Разработанная программа может применяться в учебных заведениях для решения уравнений типа =0 и при инженерных расчетах.
Цель работы - разработать программу решения уравнения. Для этого необходимо:
- графически или аналитически отделить корень уравнения (х) = 0 ;
- преобразовать уравнение F(х) = 0 к виду х = (х) так, чтобы в некоторой окрестности [а, b] корня производная вида '(х) удовлетворяла условию (1):
- выбрать начальное приближение корня, расположенное на отрезке [а, b];
- составить схему алгоритма и программу на алгоритмическом языке Qbasic;
- провести вычисления по программе;
- оформить программную документацию согласно ЕСПД.
Для реализации данной задачи в качестве языка программирования был выбран язык Qbasic.
QBasic - диалект языка программирования Бейсик(BASIC), разработанный компанией Microsoft, а также среда разработки, позволяющая писать, запускать и отлаживать программы на этом языке.
QBasic удобен для выполнения несложных вычислений и для прямой работы с портами. Наряду с Pascal, язык популярен для обучения программированию, и используется во многих учебных заведениях.
Так как язык QBasic разрабатывался для операционной системы DOS, то особые требования к минимальным возможностям системы не предъявляются. Для запуска программы нужен USB - порт либо привод CD/DVD.
Данный метод позволяет найти приближенные значения корней уравнения, их количество и промежутки, которым они принадлежат.
Для определения количества корней уравнения =0 и промежутки, которым они принадлежат, преобразуем, исходное уравнениек виду. Строим графики функций на промежутке [0,1; 2] с шагом 0,1. Абсцисса точки пересечения этих функций и будет корнем уравнения =0.
Для построения графика построим таблицу значений y(x) (табл. 1).
Графики функций представлены на рисунке 1.
Таблица 1. Значения у и х для построения графиков функций
На рисунке 1 видно, что графики функций пересекаются в одной единственной точке, значит корень у искомого уравнения =0 один. Абсцисса точки пересечения графиков принадлежит промежутку [1,2; 1,6], следовательно, корень уравнения =0 тоже будет принадлежать этому же промежутку.
Найдем корень уравнения методом итераций на промежутке [1,2 ; 1,6] с абсолютной погрешностью =1*10 -4
Преобразуем исходное уравнение к виду x=(x) следующим образом:
Найдем значения функции на промежутке [1,2; 1,6] (табл. 2)
Таблица 2. Значения функции на промежутке [1,2; 1,6]
Из полученных данных видно, что для всех значений х на промежутке . Поэтому q=0,61, значит . Следовательно, процесс итераций сходится.
Для составления схемы алгоритма приведем соответствие аналитических переменных машинным:
х - х - текущее значение корня уравнения F(х) = 0 ;
х - х0 - начальное значение корня;
у - у - последующее значение корня;
- е - предельная абсолютная погрешность;
д - d - абсолютная разность между предыдущим и последующим значениями корня уравнения.
Блок-схема алгоритма решения задачи представлена на рисунке 2.
Рисунок 2. Блок-схема решения задачи
Результат работы программы представлен на рисунке 3.
Рисунок 3. Результат работы программы
Данный программный продукт выполнен на языке программирования Qbasic и представлен в виде выполняемого файла с именем 1.exe.
Данный программный продукт находит корни уравнения вида
В качестве входных данных необходимо ввести начальное приближение корня принадлежащего отрезку [a, b] - x0 (вещественный тип) и предельную абсолютную погрешность - е (вещественный тип). Причем a>0, так как функция на промежутке]-?; 0 [не определена, следовательно на данном промежутке решений нет.
В качестве выходных данных пользователь получает результат: корень - х (вещественный тип), лежащий на отрезке [a, b] с предельной абсолютной погрешностью е, и количество итераций - n (целый тип).
Для запуска программы нужно запустить файл 1.exe и ввести исходные данные (рис. 4).
Рисунок 4 Окно ввода исходных данных
Результат работы программы представлен на рисунке 5.
Рисунок 5 Результат работы программы
Для повторного запуска программы с другими данными достаточно на вопрос «Повторить программу? y/n» ввести у. Для выхода из программы ввести n.
Под типом данных понимается множество допустимых значений переменных, а также совокупность операций над ними.
В Qbasic можно выделить следующие группы типов:
В Q basic введено два стандартных целых типа (табл. 3), которые отличаются форматами и диапазонами допустимых значений.
Для работы с целыми типами данных используются следующие арифметические функции (табл. 4), результат которых тоже целое число:
Таблица 4. Арифметические функции для работы с целыми типами данных
Получение целой части вещественного числа X
Округление до целого вещественного числа X
Округление до длинного целого вещественного числа X
Получение наибольшего целого числа, которое меньше или равно X
В Q basic определено два стандартных вещественных типа, которые отличаются форматами и диапазонами допустимых значений (табл. 5)
Таблица 5. Стандартные вещественные типы
Результат работы функций сложения, умножения, деления, вычитания и возведения в степень вещественных чисел дает вещественное число.
Кроме этого, используются следующие функции (табл. 6), результат которых - вещественное число:
Таблица 6. Арифметические функции для работы с вещественным типом данных
Представление числа с двойной точностью
Представление числа с одинарной точностью
Логические данные, которые имеют значение либо «истина» - 1, либо «ложь» - 0, обрабатываются с помощью логических операций и операций сравнения. К ним относятся:
- OR - объединение, или логическое сложение;
- AND - пересечение, или логическое умножение;
- XOR - исключающее ИЛИ или сложение по модулю два;
- IMP - импликация, или следование.
Результат работы операций задается следующей таблицей истинности (таблицы значений):
Запомнить таблицу можно, помня следующее:
- операция отрицания меняет значение операнда на противоположное;
- для того чтобы результат операции логического умножения был истинен, все операнды должны быть истинны;
- для того чтобы логическое сложение дало истину, нужно, чтобы хотя бы один операнд был истинен;
- сложение по модулю два дает истину, только если операнды имеют разные значения;
- для определения результата операции эквивалентности нужно помнить, что он истинен, если операнды равны между собой, и ложен в противном случае.
- для операции импликации из ложного операнда следует все что угодно - результат будет истинен, а из истины следует только истина.
При обработке логических данных используются также операции сравнения, которые называются логическими отношениями:
Результат операции логического отношения равен минус единице, если задаваемое отношение выполняется, и нулю, если условие ложно.
Массив представляет собой заранее известное количество однотипных элементов, снабженных индексами. Массив может быть одномерным или многомерным.
Чтобы задать массив в Qbasic, необходимо использовать зарезервированное слово  DIM , значения индексов массива и тип элементов массива.
Например , объявление одномерного массива 11  целых  чисел может быть задано так: DIM N%(10)
Интерпретатор автоматически устанавливает минимальное значение индекса, равное нулю. Например, запись DIM BB (5,7), х(5) объявляет двумерный массив BB из 48 чисел обычной точности и одномерный массив из шести таких чисел.
Оператор OPTION BASE устанавливает минимальное значение индексов массива. Он должен быть указан  до объявления  массивов:
Оператор ERASE  отменяет  объявление массивов, сделанных оператором DIM:
В Q basic имеется тип данных, который называется символьным. Для указания при использовании переменную такого типа, необходимо в имени этой переменной справа необходимо записать знак $.
Этот тип является порядковым, и значения символьных переменных можно сравнивать между собой используя знаки сравнения (>, <, >=, <=).
Например, «pit» < «pita»<» pitaon».
Возможна между ними иконкатенация(+): «само» + «лет» = «самолет».
К символьным переменным относятся все прописные латинские буквы: «А», «В», «С»,…, «Z», строчные: «а», «b», «с»,…, «z», цифры: «0», «1», «2»,…, «9», знаки препинания, всевозможные скобки, русские буквы и т.д.
В программах их значения всегда заключаются в апострофы.
Внутри каждого такого ряда коды символов упорядочены:
- коды всех строчных букв меньше всех прописных.
Для работы с таким типом данных часто используются функции, аргументы которых могут быть символьными переменными (табл. 8).
Таблица 8 Функции для работы с символьными переменными
Преобразование кода N в символьное представление
Преобразование символа Х$ в десятичный код
Выделение N символов, начиная с самого левого символа в символьном выражении Х$
Выделение М символов, начиная с N-ro символа в символьном выражении Х$ (М может быть опущено)
Выделение N символов, начиная с самого правого символа в символьном выражении Х$
Обмен символьными выражениями Х$ и Y$
Формирование строки из N одинаковых символов
Перевод десятичных чисел в восьмеричное счисление
Перевод десятичных чисел в шестнадцатеричное счисление
Определение длины символьного выражения
Переводит число в символьную форму, резервируя перед символьным выражением один пробел для знака
Поиск подстроки YS в строке Х$ начиная с N-ro символа N можно опустить
Одним из типов данных в Qbasic является файловый тип, который является последовательностью связанных между собой однотипных компонентов - записей, расположенных на внешнем носителе. Запись рассматривается как единое целое.
В Qbasic имеется 2 категории файлов, работа с которыми отличается
Программирование - это реализация некоторой идеи, которая лежит в основе конструирования программ.
Фундаментальным понятием при обработке задач на ЭВМ является алгоритм.
Алгоритм-это конечная последовательность точных указаний, приводящая к решению поставленной задачи. Как следует из определения, класс задачи определяет класс указаний (действий).
Псевдокод - это искусственный и неформальный язык, который помогает программисту разрабатывать алгоритмы. Псевдокод используется для разработки алгоритмов, которые потом должны быть преобразованы в структурированную программу на любом языке программирования. Псевдокод подобен разговорному языку; он удобный и дружелюбный, но это не язык программирования. Программы на псевдокоде не могут выполняться на компьютере.
Их назначение - помочь программисту продумать разработку программы прежде, чем попытаться написать ее на языке программирования. Тщательно подготовленная программа на псевдокоде может быть легко преобразована в соответствующую программу на выбранном языке программирования. Во многих случаях для этого достаточно просто заменить предложения псевдокода их эквивалентами из выбранного языка программирования. Псевдокод включает только исполняемые операторы - те, которые выполняются, когда программа переведена из псевдокода на язык программирования и запущена на обработку. Объявления не являются исполняемыми операторами.
Блок-схема - это графическое представление алгоритма или фрагмента алгоритма. Блок-схема рисуется с использованием специальных символов, таких, как прямоугольники, ромбы, овалы и малые окружности; эти символы соединяются стрелками, называемыми линиями связи .
Подобно псевдокоду блок-схемы часто используются при разработке и описании алгоритмов, хотя большинство программистов предпочитает псевдокод. Блок-схемы наглядно показывают, как действуют управляющие структуры.
Нисходящее проектирование - подход к проектированию программ, при котором первоначально создается главный модуль, для которого затем проводится декомпозиция (разбиение на модули, решающие подзадачи главной задачи).
Метод нисходящего проектирования предполагает последовательное разложение общей функции обработки данных на простые функциональные элементы («сверху - вниз»). В результате строится иерархическая схема, отражающая состав и взаимоподчиненность отдельных функций.
Создание программы с использованием технологии нисходящей (сверху - вниз) разработки с пошаговой детализацией. Эта технология является неотъемлемой частью создания хорошо структурированных программ. Она начинаем с записи псевдокода вершины.
Вершина - это единственное предложение (оператор), выражающее общее назначение программы. Таким образом, вершина отображает всю программу в целом.
Вершина редко отображает достаточное количество деталей, на основании которых можно написать программу на языке программирования.
Для этого вершину делят на ряд более мелких задач и записывают их в том порядке, в котором они должны выполняться.
Многие программы могут быть логически разделены на три этапа:
- этап задания начальных значений, в котором задаются начальные значения переменных программы;
- этап обработки данных, в котором вводятся данные и устанавливаются значения соответствующих переменных программы;
- заключительный этап, в котором вычисляются и печатаются окончательные результаты.
Программист завершает процесс нисходящей разработки с пошаговой детализацией, когда алгоритм на псевдокоде настолько детализирован, чтобы его псевдокод можно было бы преобразовать в программу на языке программирования.
Реализованная программа окажется в этом случае простой и наглядной.
Нисходящее проектирование может осуществляться следующими способами:
- По алгоритму программы создается текст главного модуля, содержащего в виде комментариев основны6е этапы решения задачи. Желательно, чтобы каждая строка комментария представляла собой вызов подпрограммы, решающей подзадачу главной задачи.
- Основные этапы заменяются строчкой кода, представляющего собой вызов функции, соответствующей этапу решения задачи. Выбирается имя функции, тип возвращаемого значения и определяется список параметров.
- По каждой вновь созданной функции записывается определение. Тело функции содержит комментарии. Процедура повторяется до тех пор, пока комментарии не будут заменены кодом на языке выбранном языке программирования.
Динамическое программирование в теории управления и теории вычислительных систем - способ решения сложных задач путём разбиения их на более простые подзадачи. Он применим к задачам с оптимальной подструктурой, выглядящим как набор перекрывающихся подзадач, сложность которых чуть меньше исходной. В этом случае время вычислений, по сравнению с «наивными» методами, можно значительно сократить.
Ключевая идея в динамическом программировании достаточно проста. Как правило, чтобы решить поставленную задачу, требуется решить отдельные части задачи (подзадачи), после чего объединить решения подзадач в одно общее решение. Часто многие из этих подзадач одинаковы. Подход динамического программирования состоит в том, чтобы решить каждую подзадачу только один раз, сократив тем самым количество вычислений. Это особенно полезно в случаях, когда число повторяющихся подзадач экспоненциально велико.
Метод динамического программирования сверху - это простое запоминание результатов решения тех подзадач, которые могут повторно встретиться в дальнейшем. Динамическое программирование снизу включает в себя переформулирование сложной задачи в виде рекурсивной последовательности более простых подзадач.
Оптимальная подструктура в динамическом программировании означает, что оптимальное решение подзадач меньшего размера может быть использовано для решения исходной задачи. К примеру, кратчайший путь в графе из одной вершины (обозначим s) в другую (обозначим t) может быть найден так: сначала считаем кратчайший путь из всех вершин, смежных с s, до t, а затем, учитывая веса ребер, которыми s соединена со смежными вершинами, выбираем лучший путь до t (через какую вершину лучше всего пойти). В общем случае мы можем решить задачу, в которой присутствует оптимальная подструктура, проделывая следующие три шага.
- Разбиение задачи на подзадачи меньшего размера.
- Нахождение оптимального решения подзадач рекурсивно, проделывая такой же трехшаговый алгоритм.
- Использование полученного решения подзадач для конструирования решения исходной задачи.
Подзадачи решаются делением их на подзадачи ещё меньшего размера и т.д., пока не приходят к тривиальному случаю задачи, решаемой за константное время (ответ можно сказать сразу). К примеру, если нам нужно найти n!, то тривиальной задачей будет 1! = 1 (или 0! = 1).
Перекрывающиеся подзадачи в динамическом программировании означают подзадачи, которые используются для решения некоторого количества задач (не одной) большего размера.
Динамическое программирование пользуется следующими свойствами задачи:
- возможность запоминания решения часто встречающихся подзадач.
Динамическое программирование обычно придерживается двух подходов к решению задач:
- нисходящее динамическое программирование: задача разбивается на подзадачи меньшего размера, они решаются и затем комбинируются для решения исходной задачи. Используется запоминание для решений часто встречающихся подзадач.
- восходящее динамическое программирование: все подзадачи, которые впоследствии понадобятся для решения исходной задачи просчитываются заранее и затем используются для построения решения исходной задачи. Этот способ лучше нисходящего программирования в смысле размера необходимого стека и количества вызова функций, но иногда бывает нелегко заранее выяснить, решение каких подзадач нам потребуется в дальнейшем.
Языки программирования могут запоминать результат вызова функции с определенным набором аргументов (мемоизация), чтобы ускорить «вычисление по имени». В некоторых языках такая возможность встроена, а в некоторых требует дополнительных расширений.
Известны сериальное динамическое программирование, включённое во все учебники по исследованию операций, и не сериальное динамическое программирование (НСДП), которое в настоящее время слабо известно, хотя было открыто в 1960-х годах.
Обычное динамическое программирование является частным случаем не сериального динамического программирования, когда граф взаимосвязей переменных - просто путь. НСДП, являясь естественным и общим методом для учета структуры задачи оптимизации, рассматривает множество ограничений и / или целевую функцию как рекурсивно вычислимую функцию. Это позволяет находить решение поэтапно, на каждом из этапов используя информацию, полученную на предыдущих этапах, причём эффективность этого алгоритма прямо зависит от структуры графа взаимосвязей переменных. Если этот граф достаточно разрежен, то объём вычислений на каждом этапе может сохраняться в разумных пределах.
Одним из основных свойств задач, решаемых с помощью динамического программирования, является аддитивность. Неаддитивные задачи решаются другими методами.
Решение какой-либо задачи с помощью ЭВМ распадается на три основных этапа:
- программная реализация алгоритма на ЭВМ.
В данной работе реализованы все указанные выше этапы в среде программирования Qbasic.
Была оформлена пояснительная записка в соответствии с требованиями, предъявляемых к программной документации.
В ведении отражена область применения разработанной программы, актуальность и общий обзор.
В первой части курсовой работы сформулированы цель и задачи для решения уравнения методом итераций, обоснован выбор языка программирования, описаны системные требования к программе и изложены методы решения данной задачи.
Во второй части курсовой работы приведено руководство пользователя.
В третьей - ответы на контрольные вопросы.
В работе представлено задание, направленные на овладение основами программирования в указанной среде:
- выполнение арифметических операций,
- решения задач из курса высшей математики.
В результате ее выполнения разработана программа, охватывающая основные возможности версии, позволяющие выполнять все необходимые действия по составлению, отладке и выполнению программ.
В среде Qbasic существует несколько экранных режимов. Основной исходный экран представляет поле редактирования текста программы. Встроенный текстовый редактор выполняет две функции - редактирования текста и синхронной интерпретации строки. В этой связи строки в некоторых программах не нумеровались. Результаты работы программы, комментарии и сообщения интерпретатора представлялись в текстовом экране (по умолчанию режим SCREEN 0).
Особый интерес представляла система помощи help (подсказок), имеющая контекстную структуру с возможностью копирования примеров из текста подсказок, что позволило освоить работу с языком программирования Qbasic практически самостоятельно.
Таким образом, основная цель курсовой работы по овладению основами программирования в среде Qbasic выполнена.
1. Могилев А.В. Информатика. - М., 1999. - 816 с.
2. Сафронов И.К. Бейсик в задачах и примерах. - СПб.: BHV, 2001. - 215 с.
3. Семашко Г.Л. Программирование для всех. - М.: Наука, 1986. - 325 с.
4. Ставнистый Н.Н. Qbasic в математике. Решение задач с помощью компьютера. Ч1. - М.: СОЛОН-Р, 2001. - 143 с.
5. Федоренко Ю. Алгоритмы и программы на QBASIC. - СПб.: Питер, 2002. - 287 с.
6. Хомоненко А.Д. Основы современных компьютерных технологий. - СПб.: КОРОНА принт, 1998. - 448 с.
7. Чернов Б.И. Программирование на алгоритмических языках Бейсик, Фортран, Паскаль. - М.: Просвещение, 1991. - 192 с.
Организация вычислительных процессов и программирования на алгоритмическом языке. Создание программы "Калькулятор". Выбор языка и среды программирования. Функциональная схема работы программы, описание разработанных алгоритмов. Способы устранения ошибок. курсовая работа [434,1 K], добавлен 27.08.2012
Обоснование необходимости разработки программы для игры "Тетрис". Математическая и графическая части алгоритма. Выбор языка и среды программирования. Отладка текста программы, разработка интерфейса пользователя. Тестирование, руководство пользователя. курсовая работа [1,5 M], добавлен 17.01.2011
Создание программы визуализации методов сортировки массива, особенности и направления ее практического применения. Выбор и обоснование среды программирования. Разработка руководства пользователя. Листинг программы и оценка эффективности ее использования. дипломная работа [1,0 M], добавлен 15.06.2014
Стандартизированный процедурный язык программирования. Создание системного программного обеспечения и прикладных программ. Особенности языка Си, его основные недостатки. Передача параметров в функцию по значению. Стандартная библиотека языка Си. презентация [396,3 K], добавлен 12.11.2012
Особенности объектно-ориентированного программирования. Основные возможности языка программирования Java, классификация платформ. Создание программы, обеспечивающей вычисление арифметических выражений. Руководство пользователя и характеристика функций. курсовая работа [1,2 M], добавлен 07.07.2012
Ознакомление с возможностями языка Си как средой программирования высокого уровня. Циклы программирования параметрического оператора for и функции форматированного ввода. Разработка программы средствами Си: блок-схема, текст и тестирование программы. контрольная работа [204,4 K], добавлен 26.01.2013
Разработка экспертной системы по выбору языка программирования для данного программного обеспечения. Выбор и обоснование механизма вывода решения. Дерево базы знаний экспертной системы. Программа формирования основного меню, руководство пользователя. курсовая работа [1,9 M], добавлен 15.08.2012
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Создание программы курсовая работа. Программирование, компьютеры и кибернетика.
Реферат по теме Развитие математических представлений у дошкольников
Контрольная работа: Древнерусская культура
Отчет по практике по теме Основы слесарного дела
Сочинение Дружная Семья 4
Косметология Рефераты
Реферат по теме Сущность правосознания
Доклад по теме Человек и труд
Реферат по теме Принцип эквивалентности и законы сохранения
Дипломная работа по теме Торговые связи Семипалатинска в XVIII - начале XX веков
Обсерватории России Реферат Кратко
Курсовая работа: Учет кредитования физических лиц в ОАО "Балтийский Банк"
Реферат: Психика и мозг человека: принципы и общие механизмы связи. Скачать бесплатно и без регистрации
Реферат по теме Анализ управления персоналом предприятия
Реферат: Что такое культура речи?. Скачать бесплатно и без регистрации
Н А Римский Корсаков Сочинение
Курсовая работа по теме Нестационарная фильтрация 'цветного' шума
Курсовая работа: Инфляционные процессы в экономике
Реферат: Current Us ProblemVideo Games And Violence Essay
Курсовая работа: Частная детективная и охранная деятельность
Реферат: Речевой этикет 2
Внутренние интерфейсы IDE и их разновидности - Программирование, компьютеры и кибернетика реферат
Анализ конкурентной среды предприятия "Билайн" - Маркетинг, реклама и торговля контрольная работа
Расчет горно-подготовительных и нарезных работ - Геология, гидрология и геодезия курсовая работа


Report Page