Программирование с использованием перегрузки операций и функциональных классов

Практические навыки создания функциональных классов и использования их в программных кодах. Элементы перегрузки операций. Примеры программ с применением вспомогательных функций языка С++: нахождение минимума, пузырьковая сортировка, алгоритм Эвклида.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.