Виртуални функции

Размер: px
Започни от страница:

Download "Виртуални функции"

Препис

1 Виртуални функции

2 Статично свързване Как компилаторът избира кой метод или коя функция да бъде извикана? Прави се сравнение между формални и фактически параметри и се избира най-точното съвпадение в случай, че има няколко най-точни, грешка за двусмислица Важно: Методът, който ще се извика се предопределя по време на компилация и при всяко изпълнение е един и същ

3 Статично свързване Пример: Person* pp = new Student( Иван, 123, 40000, 5); Кой метод ще извика pp->print()? Student::print или Person::print? подсказка: кое от двете може да се определи със сигурност по време на компилация, а не по време на изпълнение? Свързването по време на компилация нариаме статично или ранно (early binding) В C++ по подразбиране свързването е статично има езици, в които по подразбиране не е статично!

4 Защо само статично свързване не стига Пример: Person* pp = NULL; char c; cin >> c; if (c == 's') pp = new Student; if (c == 'e') pp = new Employee;... if (pp!= NULL) pp->print(); // Person::print Няма как компилаторът да знае какво ще въведе потребителят, затова се залага на сигурното Как можем да направим така, че да се извика този метод, който трябва?

5 Защо само статично свързване не стига Решение 1: Person* pp = NULL; char c; cin >> c; if (c == 's') pp = new Student; if (c == 'e') pp = new Employee;... if (pp!= NULL) { if (c == 's') ((Student*)pp)->print(); if (c == 'e') ((Employee*)pp)->print();

6 Защо само статично свързване не стига Решение 2: struct SmartPerson { Person* person; enum { PERSON, STUDENT, EMPLOYEE } type; void print() const { if (type == PERSON) person->print(); if (type == STUDENT) ((Student const*)person)->print(); if (type == EMPLOYEE) ((Employee const*)person)->print(); } }; SmartPerson pp = { NULL, PERSON }; char c; cin >> c; if (c == 's') { pp.person = new Student; pp.type = STUDENT; } if (c == 'e') { pp.person = new Employee; pp.type = EMPLOYEE; } pp.print();

7 Защо само статично свързване не стига И двете решения не са напълно добри, понеже изискват програмата да помни допълнителни неща... Колко хубаво би било, ако можеше със създаването си обектът да има етикет и по време на изпълнение етикетът се използва, за да се определи кой метод да се извика

8 Динамично свързване При динамичното (късно) свързване (late binding) методът, който ще се извика, се определя по време на изпълнение извиква се методът на този клас, от който всъщност е даденият обект независимо че указателят може да е дефиниран към базов клас

9 Виртуални член-функции В C++ динамичното свързване може да се включи за всяка отделна член-функция, като тя се обяви като виртуална virtual <сигнатура>; Класове с виртуални функции се наричат полиморфни Примери: class Person {... virtual void print() const;... }; Person p, *pp = &p; pp->print(); // Person::print() Student s; pp = &s; pp->print(); // Student::print() Employee e; pp = &e; pp->print(); // Employee::print()

10 Особености на виртуалните функции Само член-функции могат да бъдат виртуални Конструкторите не могат да са виртуални те се извикват преди обектът да е създаден Статичните член-функции не могат да са виртуални те могат да се извикват без обект Наследяващата член-функция в производния клас трябва да е със същата сигнатура ако сигнатурата е различна, това е друга функция наследяващите функции са автоматично виртуални и запазената дума virtual може да се пропусне virtual се пише само пред декларацията, не пред дефиницията

11 Видимост на виртуални функции Правило: Видимостта на една виртуална функция се определя от видимостта ѝ в класа на обекта, (указателя, псевдонима), през който се извиква Това означава ли, че: може private виртуална функция да се извика извън класа? няма смисъл виртуална функция в основния клас да е private или protected, понеже няма как да се извика? основният клас, който съдържа виртуалната функция, трябва да е наследен с public?

12 Извикване на виртуални функции Какво става ако виртуална функция, се извика: чрез обект Person p; p.print(); статично свързване, понеже типът се знае предварително чрез указател Person* pp = &s; pp->print(); динамично свързване чрез псевдоним Person& ap = e; ap.print(); еквивалентно на указател, динамично свързване чрез указване на област Person::print(); статично свързване, указали сме кой метод да се извика

13 Извикване на виртуални функции Какво става ако виртуална функция, се извика: от член-функция void Person::f() {... print();... } еквивалентно на извикване през this, динамично свързване! от конструктор на основен клас Person::Person() { print(); } статично свързване, обектът от производен клас още не е построен! от деструктор на основен клас Person::~Person() { print(); } статично свързване, обектът от производния клас вече е разрушен!

14 Косвено динамично свързване void Person::prettyPrint() const { cout << [ Person ] ; print(); cout << ; } Ако Student s; какво ще изведат: Person p = s; p.prettyprint(); Person* pp = &s; pp->prettyprint(); Person& ap = s; ap.prettyprint();

15 Косвено динамично свързване void Person::prettyPrint() const { cout << [ Person ] ; print(); cout << ; } Ако Student s; какво ще изведат: Person p = s; p.prettyprint(); Person* pp = &s; pp->prettyprint(); Person& ap = s; ap.prettyprint(); Извод: Виртуалността автоматично се разпростира и сред член-функциите, които извикват виртуални член-функции!

16 Коя реална функция ще се извика? Не е задължително виртуална функция да има нова реализация във всеки производен клас Избира се виртуалната функция, която е най-близко до класа, от който е обекта final overrider търси се отдолу-нагоре При множествено наследяване могат да се получат двусмислици ако Intern не дефинираше print(), какво щеше да изведе следният код? Intern i; Person* pp = &i; pp->print(); двусмислицата се вижда още по време на компилация!

17 Механизъм на виртуалните таблици Как програмата решава по време на изпълнение кой метод да се изпълни? За всеки клас с виртуални функции се създава таблица с указатели към тях (виртуална таблица) За всеки обект с виртуални функции в началото се поставя указател към виртуална таблица При динамично свързване, се случва следното: компилаторът изчислява номера i на извикваната виртуалната функция компилаторът генерира код, който намира i-тия указател във виртуалната таблица на обекта извиква функцията, която се сочи от този указател

18 Механизъм на виртуалните таблици Employee Employee::Employee Employee::setPosition Employee::print Employee::getPosition Person Person::Person Person::setName Person::print Person::getID Student Student::Student Student::setGrade Student::print Student::getFN Employee VTable Person VTable Student VTable Person vptr name id Employee Person vptr name id position salary

19 Виртуални таблици и множествено наследяване При множествено наследяване се създава по една виртуална таблица за всеки основен клас Във всеки обект има по един указател към виртуална таблица за всеки основен клас Ако имаме и виртуално наследяване, представянето става още по-сложно За щастие, в рамките на този курс няма да пишем компилатор за C++

20 Типова информация по време на изпълнение (RTTI) В C++ има механизъм за намиране на типа на даден обект по време на изпълнение typeid(<израз>) връща обект от тип type_info ако <израз> е lvalue от полиморфен клас, връща динамичния тип на <израз> иначе, връща статичния тип на <израз> можете да получите името на даден тип cout << typeid(pp).name() << ' ' << typeid(*pp).name(); два типа могат да се сравняват с == или!= typeid(p)!= typeid(s), typeid(*pp) == typeid(student)

21 Виртуални деструктори Person* pp = new Employee;... delete pp; Кой деструктор ще се извика?

22 Виртуални деструктори Person* pp = new Employee;... delete pp; Кой деструктор ще се извика? статично свързване, деструкторът на Person динамичната памет на Employee остава неосвободена (изтичане на памет)! Искаме да се вика правилният деструктор! Можем да декларираме деструктора като виртуален Тогава свързването е динамично и ще се извика деструкторът на Employee

Lush Green

Lush Green Класове Какво са класовете? Основен инструмент на ООП Средство за дефиниране на абстрактни типове данни Синтактична конструкция, която позволява логическо групиране на данни и операциите над тях Дефиниция

Подробно

Lush Green

Lush Green Конструктори Жизнен цикъл на обект За обекта се заделя памет и се свързва с неговото име Извиква се подходящ конструктор на обекта... (достъп до компоненти на обект, изпълняване на операции) Достига се

Подробно

2. Наследяване в C++ Съдържание Съдържание Наследяване (Rev: 1.2) Любомир Чорбаджиев 1 1 февруари 2007 г. 1 Наследяване 1 2

2. Наследяване в C++ Съдържание Съдържание Наследяване (Rev: 1.2) Любомир Чорбаджиев 1 1 февруари 2007 г. 1 Наследяване 1 2 2. Съдържание Съдържание Наследяване (Rev: 1.2) Любомир Чорбаджиев 1 lchorbadjiev@elsys-bg.org 1 февруари 2007 г. 1 Наследяване 1 2 2 3 Полиморфизъм 9 1. Наследяване Наследяване UML UML unified modeling

Подробно

Динамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София

Динамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Динамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.3 16 ноември 2004 г. Пример:

Подробно

4

4 Наследяване и 4 Трифон Трифонов Обектно-ориентирано програмиране, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 11 май 2017 г. Трифон Трифонов (ООП 16/17) Наследяване и голямата

Подробно

Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически униве

Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически униве Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision :

Подробно

Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Тр

Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Тр Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Трифон Трифонов (УП 16/17) Динамична памет 21 декември

Подробно

Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София

Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.1 9 март 2005 г. template< class

Подробно

Обработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Re

Обработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Re Обработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.1 27 февруари 2005 г. 1 #include < cstdio

Подробно

Black and White

Black and White Advanced C++ Memory Management Йордан Димитър Зайков Трендафилов Memory Management Effective C++ 2 nd ed: 3, 5, 7, 8, 9, 10 More Effective C++: 1, 3, 8 Exceptional C++: 35, 36 Какво всъщност прави new?

Подробно

Класове в C++ (Rev: 742) Любомир Чорбаджиев 1 20 октомври 2006 г. Съдържание Съдържание 1 Обектно-ориентирано програмиране 1

Класове в C++ (Rev: 742) Любомир Чорбаджиев 1 20 октомври 2006 г. Съдържание Съдържание 1 Обектно-ориентирано програмиране 1 Класове в C++ (Rev: 742) Любомир Чорбаджиев 1 lchorbadjiev@elsys-bg.org 20 октомври 2006 г. Съдържание Съдържание 1 Обектно-ориентирано програмиране 1 1.1 Модулност............................ 1 1.2 Обектно-ориентирана

Подробно

Канонична форма на клас или 4 (голямата четворка) Трифон Трифонов Обектно-ориентирано програмиране, спец. Компютърни науки, 1 поток, спец. Софтуерно и

Канонична форма на клас или 4 (голямата четворка) Трифон Трифонов Обектно-ориентирано програмиране, спец. Компютърни науки, 1 поток, спец. Софтуерно и Канонична форма на клас или 4 (голямата четворка) Трифон Трифонов Обектно-ориентирано програмиране, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 6 април 2017 г. Трифон Трифонов

Подробно

Структура на програма в C - Част 7 - масиви, оператор за индексиране, sizeof оператор

Структура на програма в C - Част 7 - масиви, оператор за индексиране, sizeof оператор Структура на програма в C Част 7 - масиви, оператор за индексиране, sizeof оператор Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София

Подробно

C++

C++ Управляващи оператори в C++ Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 18 30 октомври 2018 г. Трифон Трифонов (УП 18/19) Управляващи оператори в C++ 18 30 октомври

Подробно

Синтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/

Синтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/ Синтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/16) Синтаксис за дефиниране на функции 6 януари 2016

Подробно

ИНТЕРНЕТ ПРОГРАМИРАНЕ - JAVA JAVA ОБЕКТИ Ненко Табаков Пламен Танов Технологическо училище Електронни системи Технически университет София 9 октомври

ИНТЕРНЕТ ПРОГРАМИРАНЕ - JAVA JAVA ОБЕКТИ Ненко Табаков Пламен Танов Технологическо училище Електронни системи Технически университет София 9 октомври JAVA ОБЕКТИ Ненко Табаков Пламен Танов Технологическо училище Електронни системи Технически университет София 9 октомври 2008 JAVA ОБЕКТИ Забележка: Тази лекция е адаптация на лекция от курса: 6.092 Java

Подробно

Структура на програма в C - Част 6 - goto, switch, break и continue клаузи

Структура на програма в C - Част 6 - goto, switch, break и continue клаузи Структура на програма в C Част 6 - goto, switch, break и continue клаузи Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 21 април

Подробно

Указатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23

Указатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23 Указатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23 Указатели! Калин Георгиев Увод в програмирането 21

Подробно

-

- Лениво оценяване и програмиране от по-висок ред Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 7 януари 2016 г. Трифон Трифонов (ФП-И 15/16) Лениво оценяване 7 януари 2016 г.

Подробно

Програмиране на Паскал

Програмиране на Паскал Поради връзката на С++ с езика С в голяма част от литературата е прието записването С/С++. Това е найизползваният език за програмиране в света, поради което синтаксисът на някои от по-новите езици като

Подробно

СЪЗДАВАНЕ НА СЪДЪРЖАНИЕ, ИНДЕКСЕН УКАЗАТЕЛ И ВМЪКВАНЕ НА ПОЛЕТА I. СЪЗДАВАНЕ НА СЪДЪРЖАНИЕ Съдържанието се създава по съществуващ в Word форматен стил

СЪЗДАВАНЕ НА СЪДЪРЖАНИЕ, ИНДЕКСЕН УКАЗАТЕЛ И ВМЪКВАНЕ НА ПОЛЕТА I. СЪЗДАВАНЕ НА СЪДЪРЖАНИЕ Съдържанието се създава по съществуващ в Word форматен стил СЪЗДАВАНЕ НА СЪДЪРЖАНИЕ, ИНДЕКСЕН УКАЗАТЕЛ И ВМЪКВАНЕ НА ПОЛЕТА I. СЪЗДАВАНЕ НА СЪДЪРЖАНИЕ Съдържанието се създава по съществуващ в Word форматен стил или по създаден от вас потребителски стил. По подразбиране

Подробно

При изпълнението на програма се извършват определени действия над данните, дефинирани в програмата.тези данни могат да бъдат постоянни ( константи ) и

При изпълнението на програма се извършват определени действия над данните, дефинирани в програмата.тези данни могат да бъдат постоянни ( константи ) и При изпълнението на програма се извършват определени действия над данните, дефинирани в програмата.тези данни могат да бъдат постоянни ( константи ) или изменящи се (променливи). Тези данни най-често бива

Подробно

Microsoft Word - VM22 SEC55.doc

Microsoft Word - VM22 SEC55.doc Лекция 5 5 Диференциални уравнения от първи ред Основни определения Диференциално уравнение се нарича уравнение в което участват известен брой производни на търсената функция В общия случай ( n) диференциалното

Подробно

3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението

3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението 3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението представя кратко въведение в синтактичния анализ.

Подробно

Сериализация Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23

Сериализация Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23 Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23 f «data; f» data; Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 2 / 23 Първо изискване:

Подробно

2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнениет

2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнениет 2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнението представя кратко въведение в теорията на лексическия

Подробно

Microsoft Word - PRMAT sec99.doc

Microsoft Word - PRMAT sec99.doc Лекция 9 9 Изследване на функция Растене, намаляване и екстремуми В тази лекция ще изследваме особеностите на релефа на графиката на дадена функция в зависимост от поведението на нейната производна Основните

Подробно

Mathematica CalcCenter

Mathematica CalcCenter Mathematica CalcCenter Основни възможности Wolfram Mathematica CalcCenter е разработен на базата на Mathematica Professional и първоначално е бил предназначен за технически пресмятания. Информация за този

Подробно

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 ноември 6 декември 2018 г. Трифон Трифонов (УП 1

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 ноември 6 декември 2018 г. Трифон Трифонов (УП 1 Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 ноември 6 декември 2018 г. Трифон Трифонов (УП 18/19) Масиви и низове 15.11-6.12.2018 г. 1 / 17 Масиви

Подробно

Структура на програма в C - Част 2 - типове, функции

Структура на програма в C - Част 2 - типове, функции Структура на програма в C Част 2 - типове, функции Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 10 март 2019 г. И. Георгиев, Х.

Подробно

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г ноември 2018 г. Трифон Трифонов (УП 18/19) Ма

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г ноември 2018 г. Трифон Трифонов (УП 18/19) Ма Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 29 ноември 2018 г. Трифон Трифонов (УП 18/19) Масиви и низове 15 29 ноември 2018 г. 1 / 16 Масиви Логическо

Подробно

ПРОГРАМНО ОСИГУРЯВАНЕ НА КОМПЮТЪРА

ПРОГРАМНО ОСИГУРЯВАНЕ НА КОМПЮТЪРА СРЕДИ ЗА ПРОГРАМИРАНЕ ПРОГРАМНО ОСИГУРЯВАНЕ НА КОМПЮТЪРА Същност на програмното осигуряване За да могат компютрите да разбират описаните на езика за програмиране алгоритми, те трябва да бъдат преведени

Подробно

МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА

МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА У Ч Е Б Н А П Р О Г Р А М А ЗА ЗАДЪЛЖИТЕЛНА ПРОФЕСИОНАЛНА ПОДГОТОВКА ПО ПРОГРАМИРАНЕ И АЛГОРИТМИЧНИ ЕЗИЦИ ЗА ПРОФЕСИЯ: КОД 482010 ИКОНОМИСТ - ИНФОРМАТИК СПЕЦИАЛНОСТ:

Подробно

doll Механична кукла Механичните кукли автоматично повтарят предварително зададена последователност от движения. В Япония има традиции в изработката н

doll Механична кукла Механичните кукли автоматично повтарят предварително зададена последователност от движения. В Япония има традиции в изработката н doll Механична кукла Механичните кукли автоматично повтарят предварително зададена последователност от движения. В Япония има традиции в изработката на механични кукли, датиращи от древни времена. Движенията

Подробно

Проф

Проф Утвърдил:.. / доц. д-р Е. Великова / Утвърден от Факултетен съвет с протокол... /... СОФИЙСКИ УНИВЕРСИТЕТ СВ. КЛИМЕНТ ОХРИДСКИ Факултет по Математика и Информатика Специалност: Компютърни науки М И К 0

Подробно

Структура на програма в C - Част 9 - низове от символи, C-string

Структура на програма в C - Част 9 - низове от символи, C-string Структура на програма в C Част 9 - низове от символи, C-string Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 15 май 2019 г. И. Георгиев,

Подробно

Microsoft Word - Glava24.doc

Microsoft Word - Glava24.doc 2.4. Въведение в езика OQL Обектно ориентираният език на заявките OQL е един опит да се стандартизират обектноориентираните езици на заявките във форма на език, обединяващ в себе си декларативното SQL

Подробно

Проект 1: Форма за решаване на тест Създайте приложение, което тества знанията на ученика по Информатика. Върху формата да се разположат въпроси с по

Проект 1: Форма за решаване на тест Създайте приложение, което тества знанията на ученика по Информатика. Върху формата да се разположат въпроси с по Проект 1: Форма за решаване на тест Създайте приложение, което тества знанията на ученика по Информатика. Върху формата да се разположат въпроси с по четири отговора всеки, от които точно един е верен.

Подробно

ЕКСПЛОДИРАЩИ ТОЧКИ ГЛАВА 1 МАШИНИ Добре дошли на борда на нашето приключение. Това е математическо приключение базирано върху една моя история (аз съм

ЕКСПЛОДИРАЩИ ТОЧКИ ГЛАВА 1 МАШИНИ Добре дошли на борда на нашето приключение. Това е математическо приключение базирано върху една моя история (аз съм ЕКСПЛОДИРАЩИ ТОЧКИ ГЛАВА 1 МАШИНИ Добре дошли на борда на нашето приключение. Това е математическо приключение базирано върху една моя история (аз съм Джеймс), която не е истинска. Когато бях дете, аз

Подробно

Slide 1

Slide 1 Списъци. Структура и синтаксис. Създаване и показване. Основни операции(добавяне, изваждане на елемент или цял подсписък; подреждане). Трансформации. проф. дмн С. Христова Списъци Списъците / list са основна

Подробно

В тази част, ще разгледаме аритметичните и логически операции, както, и включването им в изрази. В следващата таблица са дадени всички възможни операц

В тази част, ще разгледаме аритметичните и логически операции, както, и включването им в изрази. В следващата таблица са дадени всички възможни операц В тази част, ще разгледаме аритметичните и логически операции, както, и включването им в изрази. В следващата таблица са дадени всички възможни операции в езикът C и С++. Символ Предназначение Аритметични

Подробно

HTML - списъци

HTML  - списъци СПИСЪЦИ Езикът HTML ви дава възможност да използвате три вида списъци - подредени, неподредени и списъци с обяснения. Подредените списъци са номерирани и изглеждат така : 1. Иван 2. Георги 3. Захари Неподредените

Подробно

Microsoft Word - Primer3_1.doc

Microsoft Word - Primer3_1.doc 3.1.) Създаване на нов проект demultiplexor и нов файл demultiplexor.vhd в текстовия редактор Galaxy Стартирайте текстовия редактор Galaxy, използвайки опциите : Start > Programs > WARP > Galaxy 3.1.1.

Подробно