Программирование с использованием перегрузки операций и функциональных классов
Практические навыки создания функциональных классов и использования их в программных кодах. Элементы перегрузки операций. Примеры программ с применением вспомогательных функций языка С++: нахождение минимума, пузырьковая сортировка, алгоритм Эвклида.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 05.01.2014 |
Размер файла | 37,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Ташкентский университет информационных технологий
Самаркандский филиал
Лабораторная работа
на тему: "Программирование с использованием перегрузки операций и функциональных классов"
Выполнила: Хидирова В.
Проверил: Нуриев С.А.
Самарканд - 2013
Цель: Получить практические навыки перегрузки операций, практические навыки создания функциональных классов и использования их в программах.
Методические указания:
1. В классе реализовать перегрузку операций, указанных варианте:
бинарные операции (+, -, *);
унарные операции (+=, -=, *=, /=, ++ и --);
операции отношения (==, !=, >, >=, <, <=).
2. Тестирование должно быть выполнено для всех типов данных и для всех операций.
3. Для закрытых интервалов вещественных чисел [a,b]и [c,d] определены следующие операции:
[a,b]+ [c,d]= [a+c,b+d]; [a,b]- [c,d]= [a-c,b-d];
[a,b]* [c,d]= [min(a*c,a*d,b*c,b*d), max(a*c,a*d,b*c,b*d)]);
[a,b]/ [c,d]= [a,b]* [1/c,1/d]при условии c>0 или d<0;
[a,b]== [c,d]если a=c и b=d; [a,b]<= [c,d]если a<=c и b<=d.
4. Центрированный закрытый интервал имеет вид [a-r,a+r].
5. В конечной n мерной логике значениями являются целые числа от 0 до n-1 и операции определяются следующим образом:
a*b=min(a,b); a+b=max(a,b); a-b=a+n-1-b.
6. В логике знаков операции определяются следующим образом:
a*b=sign(a)*sign(b); a+b = sign(a)+sign(b); a-b= sign(a)-sign(b).
7. Алгоритмы для второго задания должны быть реализованы как методы шаблона класса. При этом некоторые параметры, например, интервалы интегрирования, может быть определены как защищенные поля класса, значения которых определяются в конструкторе класса.
8. При решении нелинейных уравнений и минимизации функций вычисления надо проводить пока не выполнится условие: |x1-x0|<e.
9. При вычислении интегралов по возможности вычисления надо проводить с дроблением шага пока не выполнится условие: |S1-S0|<e.
10. Функции, к которым применяются алгоритмы, должны быть переданы как параметры методов класса, реализующего алгоритм.
11. Если в выбранном языке используются делегаты, то второе задание должно быть выполнено с использованием делегатов, а не шаблонов.
Программы: функциональный класс перегрузка программа
1) Нахождение минимума
#include <iostream.h>
#include <conio.h>
template <typename T>
T min (T a,T b){
return a<b?a:b;
}
int main(int argc, char *argv []){
int a,b,c;
cin"a"b;
c=min<int>(a,b);
cout"c;
getch();
return 0;
}
2) Пузырьковая сортировка
#include <iostream.h>
#include <conio.h>
template <typename T>
T sort (T n){
int a [], I, j, k;
for (i=0; i<n; i++)
cin" a [i];
for(i=0; i<n-1; i++)
for(j=i+1; j<n; j++)
if (a [i]>a [j]) {
k=a [i];
a [i]=a [j];
a [j]=k;
}
for (i=0; i<n;i++)
return a [i];}
int main() {
int n;
cin"n;
int c []= sor(n);
cout"c [n];
return 0;}
3) Алгоритм Эвклида
#include <iostream.h>
#include <conio.h>
template <typename T>
T alg (T a, T b){
Int c;
While (a!=b){
If (a>b) a=a-b;
Else b=b-a;
If (a=b) return a;
}
Int main() {
Int a, b,c;
Cin"a"b;
C=alg(a,b);
Cout"c"endl;
Return 0;
}
Тестирование:
Заключение
В этой лабораторной мы ознакомились с вспомогательными функциями С++ что позволяет нам более углублённо изучить эту программу. Также мы научились делать шаблоны для основной программы и операции для перегрузки программы.
Список литературы
1. Гради Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. Невский диалект, 560 стр, 2001 г.
2. Грехем И. Объектно-ориентированные методы. Принципы и практика.
Вильямс. 879 стр., 2004 г.
3. Иванова Г.С. Объектно-ориентированное программирование. Учебник.
МГТУ им Баумана. 320 стр., 2003 г.
4. Ашарина Н.А. Основы программирования на языках Си, С++. Учебный курс. М.: 2002 г.
Размещено на Allbest.ru
...Подобные документы
Понятие перегрузки (доопределения) операций и её разновидности. Пример соответствующей программы перегрузки, понятие полиморфизма и правила isA. Использование классов операторов в программах языка С++, конструкций операторов и производных классов.
реферат [19,9 K], добавлен 30.10.2011Понятие матриц и операции, выполняемые с ними. Разработка программы для вычислений над матрицами в среде MS Visual Studio Express с применением языка программирования C++. Работа с библиотекой математического типа vector. Реализация перегрузки операций.
курсовая работа [107,3 K], добавлен 22.12.2010Программирование нестандартных функций, задач оптимизации, дифференциального уравнения и аппроксимации с помощью языка Паскаль. Алгоритм и программа операций над матрицами. Нахождение значения корней нелинейного уравнения по методу половинного деления.
курсовая работа [1,1 M], добавлен 12.08.2011Системное и функциональное проектирование. Описание взаимодействия с сервером, классов системных компонентов. Обзор функциональных классов из пакетов helpers, dialogs и networking. Разработка программных модулей. Технико-экономическое обоснование проекта.
дипломная работа [1,7 M], добавлен 15.06.2014Оценка функциональных возможностей стандартных классов представления данных на примерах использования избранных методов ("detect: ifNone:" класса Set, "to:by:do:" класса Number и "copy: ReplaceFrom: to: with:" класса OrderedCollection), их тестирование.
лабораторная работа [1,1 M], добавлен 14.10.2012Алгоритмизация и структурное программирование на языке С/С++. Создание справочника в памяти (ввод данных), вывод справочника на экран с использованием потоковых классов, сортировка методом Шелла. Циклы, описание применяемых специальных алгоритмов.
курсовая работа [1,0 M], добавлен 26.02.2012Различные способы обработки информации и программирование в среде Pascal. История создания языка. Блок схема с использованием заголовка функций задания. Описание подпрограмм. Сущность структурного программирования в аспекте написания алгоритмов программ.
курсовая работа [331,9 K], добавлен 18.01.2016Особенности разработки программ для ЭВМ. Этапы планирования программы. Понятие и особенности алгоритмов. Средства, используемые для создания программ. Виды и классификация языков программирования. Структурное и объектно-ориентированное программирование.
реферат [59,7 K], добавлен 19.08.2010Разработка интернет-приложения (Web–сервиса), позволяющего делать заказы онлайн, выполнять их обработку. Диаграмма вариантов использования. Модель предметной области. Описание концептуальных классов. Моделирование процесса выполнения операций в языке UML.
курсовая работа [1,3 M], добавлен 21.11.2013Способы сортировки задач программирования: пузырьком, пузырьковая с просеиванием, метод последовательного поиска минимумов, вставками. Распределяющая сортировка - RadixSort-цифровая - поразрядная. Теория чисел. Простые числа. Задача "Красивые числа".
реферат [90,5 K], добавлен 14.05.2008Основной метод языка С# Main (), его роль в работе программы, варианты написания и ключевые слова. Особенности перегрузки методов, их рекурсивный вызов. Понятие модификаторов доступа, их ключевые функции. Разработка алгоритмов для тематических программ.
курсовая работа [1,3 M], добавлен 30.05.2015Приемы и правила объектно-ориентированного программирования с использованием языка С++. Общие принципы разработки объектно-ориентированных программ. Основные конструкции языка С++. Разработка различных программ для Windows с использованием WIN32 API.
учебное пособие [1,6 M], добавлен 28.12.2013Принципы разработки математических моделей, алгоритмов и программ. Составление программы вычисления функции с использованием нестандартных функций. Нахождение значения корней нелинейного уравнения по методу касательных. Программа для вычисления интеграла.
курсовая работа [568,3 K], добавлен 07.03.2015Решение задач прикладного программирования. Оформление разработанных алгоритмов в виде графических схем. Написание программ с использованием подпрограмм, их отладка. Блок-схемы и листинг программ. Наборы тестов для отладки разработанных программ.
курсовая работа [575,8 K], добавлен 06.12.2013Способы решения системы дифференциальных, нелинейный и линейных уравнений. Понятие интерполирования и аппроксимации. Основные принципы линейного программирования. Сущность и условия применения трендового анализа. Алгоритм создания электронной таблицы.
курсовая работа [2,0 M], добавлен 02.01.2012Построение модели прецедентов, модели пригодности для прецедента. Описание атрибутов и операций классов системы. Проектирование с применением методологии ICONIX. Построение диаграммы пригодности, диаграммы последовательностей и диаграмма классов.
курсовая работа [949,5 K], добавлен 25.05.2015Понятия шаблонов функции и класса, правила описания на языке С++. Разработка и отлаживание в среде программирования программ, содержащих шаблоны функций и классов. Шаблон функции square, возвращающей квадрат переменной. Создание шаблона класса массива.
лабораторная работа [162,6 K], добавлен 25.05.2013Основные принципы дизайна классов в объектно-ориентированном проектировании: единственной обязанности, открытости-закрытости, подстановки Барбары Лизков, разделения интерфейса, инверсии зависимостей. Понятие быстрой разработки программ Мартина Роберта.
презентация [57,5 K], добавлен 05.01.2014Изучение понятия и основных видов массивов. Ввод массива с клавиатуры и вывод на экран. Сортировка массивов. Метод простых обменов (пузырьковая сортировка). Сортировка простым выбором и простым включением. Решение задач с использованием массивов Паскаля.
курсовая работа [82,1 K], добавлен 18.03.2013Приложение для организации и контроля разработки программного обеспечения, сокращающее сроки проектирования программных продуктов и оптимизирующее данный процесс. Технологии создания приложений на платформе .NET. Алгоритм получения и обновления списка.
дипломная работа [861,9 K], добавлен 27.11.2014