Сравнение реализаций пользовательских типов переменных в языках высокого уровня. typedef struct tagStack{ double data; struct tagStack* prev; }*stack;

Презентация:



Advertisements
Похожие презентации
В языках высокого уровня обращение к ячейкам памяти происходит не через числовые адреса, а посредством описательных имен. Такие имена называются переменными.
Advertisements

Основы информатики Классы Заикин Олег Сергеевич zaikin.all24.org
Списки Лекция 10. Списки Список – структура данных, представляющая собой конечную последовательность элементов. Элемент списка: Данные Связь.
Объектно-ориентированный подход в языке C#. Класс в языке C# - ссылочный тип, определенный пользователем. Для классов ЯП C# допустимо только единичное.
ООП Классы Данные отдельно, методы отдельно struct Node { Node* next; void* data; }; struct List { Node* first; int size; }; void* allocate() { … } void.
Прикладное программирование кафедра прикладной и компьютерной оптики Абстрактные типы данных.
Преобразования типов В языке C/C++ имеется несколько операций преобразования типов. Они используются в случае, если переменная одного типа должна рассматриваться.
ОБЪЕКТНО- ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ (ООП) 1.
Объектно-ориентированное программирование С++. Лекция 6 Карпов В.Э.
Прикладное программирование кафедра прикладной и компьютерной оптики Наследование.
Лекция 11. Введение в ООП. Часть 4 Красс Александр СПбГУ ИТМО, 2008.
Информационные технологии Стандартные библиотечные функции манипулирование данными преобразование и шифрование определение пользователями функций.
Лекция 3 Принципы объектно- ориентированного программирования.
Обработка исключительных ситуаций Исключительная ситуация (исключение) – это ошибка, возникающая во время выполнения программы. Например, ошибка работы.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 7 Методы как средство реализации операций Лекции читает кандидат технических наук.
Методология объектно- ориентированного программирования.
Visual C++ Классы и объекты языка. Человек - примитивный Голова Туловище Руки Ноги Зрение Умение держать предмет в руках Могу ходить.
Лекция 8. Введение в ООП. Часть 1 Красс Александр СПбГУ ИТМО, 2008.
Объектно-ориентированное программирование С++. Лекция 8 Карпов В.Э.
Объектно-ориентированное программирование Центральное место в ООП занимает понятие пользовательского типа данных называемого классом, объединяющего под.
Транксрипт:

Сравнение реализаций пользовательских типов переменных в языках высокого уровня. typedef struct tagStack{ double data; struct tagStack* prev; }*stack; stack top; type stack=^tagStack; tagStack=record data: double; prev: stack; end; var top: stack; Структура tagStack вещ data stack prev Конец-структура Тип stack (у)tagStackstack top Определение нового типа данных: Объявление нового типа данных: Объявление переменной нового типа данных:

void push(double d){ stack s; s=malloc(sizeof(struct tagStack)); (*s).prev=top; s->data=d; top=s; } Procedure push(d: double); var s: stack; begin s:=new(stack); s^.prev:=top; s^.data:=d; top:=s; end; Процедура push(вещ d) stack s=Выделить(stack) s->prev=top s->data=d top=s Возврат Конец-прцедура Реализация процедуры вставки в стек: объявление переменной выделение памяти сохранение адреса вершины стека присвоение вершине стека адреса нового элемента

void pop(){ stack tmp; fprintf(stdout, "%g\n", top->data); tmp=top; top=top->prev; free(tmp); } Procedure pop; var tmp: stack; begin writeln(top^.data); tmp:=top; top:=top^.prev; Dispose(tmp); end; Реализация процедуры выталкивания из стека: объявление временной переменной для хранения адреса вершины стека сохранение адреса вершины стека присвоение вершине стека адреса предыдущего элемента освобождение памяти

int main(){ double x; top=NULL; for(x=0.0; x

Объектно-ориентированное программирование Центральное место в ООП занимает понятие пользовательского типа данных называемого классом, объединяющего под общим именем не только данные, но и функции. Парадигма ООП родилась из потребностей коллективной разработки, повтоного использования кода и сокрытия кода. Описание класса в соответст вие с UML:

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

Инкапсуляция: Свойства и методы класса могут быть открытыми или закрытыми для пользователя (программиста, который использует этот класс). В конкретных реализациях языков ООП это достигается использованием модификаторов public, private и (иногда) protected. class Test{ public: int a; private: int f(int a, int b){ return a+b; } public double getData({ return c}; private: double c; }; Test A; int d; d=A.a; //OK d=A.f(2,6); //Error double d1; d1=A.c; //Error d1=A.getData(); //OK

Наследование: можно расширить возможности класса посредством наследования. class TestA{ public: TestA():c(3.1415){c*=2; } //Конструктор ~TestA(){} //Деструктор private: double c; public: double getData({ return c} double x; protected: int q; }; class TestB: public TestA{ int s; public: int f(int a){return a*q} }; TestB B; B.s; //OK B.x; //OK B.c; //Error B.q; //Error

Полиморфизм: поведение, зависящее от контекста. Перегрузка (overloading): class Test2{ double f(int a){return a*2.0} double f(double a){return a/2.0; } }; double c; c=f(3); // c=6; c=f(3.0);// c=1.5

Переопределение(overriding) : class Test3{ public: virtual int g(int a){return a*a;} virtual int g1(int a)=0; }; class Test4:public Test3{ public: virtual int g(int a){ return a+4; } }; Test3 D3; Test4 D4; int c; c=D3.g(3) // 9 c=D4.g(3) //7 c=((D3)D4).g(3) //9

var Word, Doc Word=new ActiveXObject("Word.Application"); Word.Visible=false; Doc=Word.Documents.Add(); Doc.Content.Bold=1; Doc.Content.Font.Size=32; Doc.Content.Text="Попробуйте автоматизировать работу с Microsoft Word"; Doc.SaveAs("C:\\temp-work\\Test.doc"); Word.Application.Quit(); Модель составных компонентов - COM-технология, реализует ООП на двоичном уровне. В настоящее время COM-объекты называются объектами ActiveX Пример, объектная модель Microsoft Office:

Визуальное программирование: