Входно/изходните операции са разширяеми. Лесно се реализират входно/изходни операции за типове, дефинирани от потребителя. Потоци (Rev: 1.1) Любомир Ч
|
|
- Simeon Nachev
- преди 4 години
- Прегледи:
Препис
1 Входно/изходните операции са разширяеми. Лесно се реализират входно/изходни операции за типове, дефинирани от потребителя. Потоци (Rev: 1.1) Любомир Чорбаджиев 1 lchorbadjiev@elsys-bg.org 8 май 2007 г. Йерархия на потоците за вход/изход ios_base basic_ios<> Съдържание basic_ostream<> basic_istream<> Съдържание basic_ofstream<> basic_iostream<> basic_ifstream<> 1 Йерархия на потоците за вход/изход 1 2 Писане в поток 3 basic_fstream<> 3 Четене от поток Четене на символни низове 8 6 Изключения генерирани от входно/изходните операции 9 7 при изходни операции 10 8 Манипулатори 16 9 Файлови потоци Йерархия на потоците за вход/изход Въведение Входно/изходните потоци в C++ са обектно ориентирани. Входно/изходните операции в C++ са строго типизирани. Това позволява при обработването на данни с различен тип да се използва C++ механизмът за предефиниране на оператори и функции. 1 Йерархия на потоците за вход/изход Потоците за вход/изход са организирани като йерархия от шаблонни класове. Потоците, които се използват обичайно са: ostream, istream, ofstream, ifstream. Тези потоци са 8 битови т.е. последователността от символи, които се четат/пишат са от типа char. Дефинициите на тези потоци са следните: typedef basic_ostream<char> ostream; typedef basic_istream<char> istream; typedef basic_ofstream<char> ofstream; typedef basic_ifstream<char> ifstream; typedef basic_fstream<char> fstream; Йерархия на потоците за вход/изход В езика C++ освен типа char (8 битов символ) е дефиниран и типа wchar_t (16 битов символ); Потоците, които работят с типа wchar_t са: 2
2 typedef basic_ostream<wchar_t> wostream; typedef basic_istream<wchar_t> wistream; typedef basic_ofstream<wchar_t> wofstream; typedef basic_ifstream<wchar_t> wifstream; typedef basic_fstream<wchar_t> wfstream; Работа с потоците за вход/изход Всички потоци за вход/изход са дефинирани в пространството от имена std. Основните потоци са дефинирани в заглавния файл <iostream>. В него са дефинирани обектите: cin обект от класа istream, който е свързан със стандартния вход. cout обект от класа ostream, който е свързан със стандартния изход. cerr обект от класа ostream, който е свързан със стандартната грешка. Този поток е небуфериран. 2. Писане в поток Писане в поток За писане в изходен поток се използва операторът operator<<. В класа basic_ostream този оператор е дефиниран за всички примитивни типове: 2 class basic_ostream: 3 v i r t u a l public basic_ios<ch, Tr> { 4 public: 5 //... 6 basic_ostream& operator <<( short n); 7 basic_ostream& operator <<( int n); 8 basic_ostream& operator <<( long n); 9 basic_ostream& operator <<( unsigned short n); 10 // }; Писане в поток Операторът operator<< връща псевдоним, насочен към използвания изходен поток ostream. Това дава възможност операторът за изход да се прилага каскадно. Изразът: cout << "x=" << x; е еквивалентен на: (cout.operator <<("x=")). operator <<(x); Операции за изход, дефинирани от потребителя Да разгледаме клас point, определен от потребителя: 1 class point { 2 double x_, y_; 3 public: 4 point(double x, double y) 5 : x_(x), y_(y) 6 {} 7 double get_x( void) { return x_;} 8 double get_y( void) { return y_;} 9 void set_x(double x) {x_=x;} 10 void set_y(double y) {y_=y;} 11 // }; Операции за изход, дефинирани от потребителя Операторът operator<< за този тип може да бъде дефиниран по следния начин: 1 ostream& operator <<(ostream& out, 2 const point& p) { 3 out << ( 4 << p.get_x() <<, 5 << p.get_y() << ) ; 6 return out; 7 } 3. Четене от поток Четене от поток 3 4
3 За четене от входен поток се използва операторът operator>>. В класа basic_istream този оператор е дефиниран за всички примитивни типове: 2 class basic_istream: 3 v i r t u a l public basic_ios<ch, Tr> { 4 public: 5 //... 6 basic_istream& operator >>( short& n); 7 basic_istream& operator >>( int& n); 8 basic_istream& operator >>( long& n); 9 // }; Операторът operator>> пропуска символите разделители (, \n, \r, \t, \f, \v ). 4. Най-разпространената грешка при използване на потоци за вход istream: това, което е в потока се различава от това, което очакваме да бъде в потока. Например: искаме да прочетем променлива от типа int, а в потока има букви. За да се предпазим от този тип грешки е необходимо преди да се използват прочетените от потока данни да се провери състоянието на потока. Всеки поток istream и ostream има свързано с него състояние. Състоянието на потока е дефинирано в базовия клас basic_ios<>. 2 class basic_ios: public ios_base { 3 public: 4 //... 5 bool good( void) const; 6 bool eof( void) const; 7 bool fail( void) const; 8 bool bad( void) const; 9 // }; good() предходните операции са изпълнени успешно; eof() вижда се краят на файла; fail() следващата операция няма да се изпълни успешно; bad() потокът е повреден. Състоянието на потока представлява набор от флагове, които са дефинирани в базовия клас ios_base: 1 class ios_base { 2 public: 3 //... 4 typedef... iostate; 5 static const iostate 6 badbit, // потокът е развален 7 eofbit, // вижда се краят на файла 8 failbit,// следващата операция няма да се изпълни 9 goodbit;// потокът е наред 10 // }; В класа basic_ios<> са дефинирани следните методи за манипулиране на състоянието на потока: 2 class basic_ios: public ios_base { 3 public: // връща флаговете на състоянието на потока 6 iostate rdstate( void) const; 7 // установява флаговете на състоянието 8 void clear(iostate f=goodbit); 9 // добавя f към флаговете на състоянието 10 void setstate(iostate f) { 11 clear(rdstate() f); 12 } 13 }; 5 6
4 2 class basic_ios: public ios_base { 3 public: operator void* () const; 6 }; Операторът, дефиниран в ред 5, е оператор за преобразуване към void*. Този оператор връща стойност, различна от NULL, ако потокът е наред. Този оператор за преобразуване позволява потоците да участват в условни оператори и оператори за цикъл. Например: while(cin){ cin >> i; } Операции за вход, дефинирани от потребителя Нека формата за въвеждане на променливи от типа point е (x,y), където x и y са числа с плаваща точка. Тогава дефиницията на оператор за четене на обекти от класа point може да бъде направена по следния начин: 1 istream& operator >>(istream& in, point& p) { 2 double x,y; 3 char c; 4 in >> c; 5 i f (c!= ( ) { 6 in.clear(ios_base::badbit); 7 return in; 8 } 9 in >> x >> c; Операции за вход, дефинирани от потребителя 10 i f (c!=, ) { 11 in.clear(ios_base::badbit); 12 return in; 13 } 14 in >> y >> c; 15 i f (c!= ) ) { 16 in.clear(ios_base::badbit); 17 return in; 18 } 7 19 i f (in.good()){ 20 p.set_x(x); 21 p.set_y(y); 22 } 23 return in; 24 }; 5. Четене на символни низове Четене на символи Операторът operator>> е предназначен за форматиран вход т.е. за четене на обекти от някакъв очакван тип, в някакъв очакван формат. Когато предварително не се знае какви типове ще има във входния поток, то от входния поток обикновено се четат символни низове. За тази цел се използва семейството от методи get(), дефинирани в basic_istream<>. Четене на символи char c; cin.get(c); char buf[100]; cin.get(buf,100); cin.get(buf,100, \n ); cin. getline( buf,100); cin.getline(buf,100, \n ); Четене на символи Функциите in.get(buf,n) и in.get(buf,n,term) прочитат не повече от n 1 символа. Тези методи винаги поставят 0 след прочетените в буфера символи. Ако при четене с get е срещнат завършващият символ, то той остава в потока. Следващият фрагмент е пример за хитър безкраен цикъл: 1 char buf[256]; 2 while(cin) { 8
5 3 cin.get(buf,256); 4 cout << buf; 5 } Функцията getline() се държи аналогично на get(), но прочита от istream срещнатия завършващ символ. Четене на символи in.ignore(max,term) пропуска следващите символи докато не срещне символа term или не прочете max символа. in.putback(ch) превръща ch в следващия непрочетен символ от потока in. in.peek() връща следващия символ от потока in, но не го изтрива от потока. 6. Изключения генерирани от входно/изходните операции Изключения Да се проверява за грешки след всяка входно/изходна операция е неудобно. Поради това е предвидена възможност да помолите потока да генерира изключения, когато се променя състоянието му. В базовия клас basic_ios<> са дефинирани две функции: void exceptions(iostate st) установява състоянията, при които трябва да се генерира изключение. iostate exceptions() const връща набора от флагове на състоянието, при които се генерира изключение. Основната роля на генерирането на изключения при вход/изход е да се обработват малко вероятни изключителни ситуации. Изключенията могат да се използват и за контролиране на входноизходните операции. Пример: изключения 2#include <list> 3 4 using namespace std; 5 6 int 7 main( int argc,char* argv[]) { 8 list< int > result; 9 ios_ base:: iostate oldstate= cin. exceptions(); 10 cin. exceptions( ios_ base:: eofbit 11 ios_base::badbit 12 ios_ base:: failbit); Пример: изключения 14 try { 15 for(;;){ 16 int i; 17 cin >> i; 18 result.push_back(i); 19 } 20 } catch(const ios_base::failure& e) { 21 cout<<"ios_base::failure catched..."<<endl; 22 } return 0; 25 } 7. при изходни операции то на входно/изходните операции се контролира чрез класовете basic_ios и ios_base. За управление на форматирането на входно/изходните операции се използва набор от флагове, определени в ios_base. Част от флаговете, определящи състоянието на формата са представени в следния фрагмент: 1 class ios_base { 2 public: 3 t y p e d e f implementation_ dependent fmtflags; 4 static const fmtflags 5 skipws, // пропуска разделителите при четене 9 10
6 6 boolalpha, // типа boolean се представят 7 // като true и false 8 // целочислени типове 9 dec, // десетична система 10 hex, // шестнадесетична система 11 oct, // осмично система 12 showbase, // поставя префикс, 13 // обозначаващ системата 1 // числа с плаваща запетая 2 scientific,// представяне във вида: d.dddddeddd 3 fixed, // представяне във вида: ddddd.dd 4 showpoint, // незначеща нула пред десетичната точка 5 showpos, // явен знак + пред положителните числа 6...; 7 }; Състояние на формата skipws пропускане на разделителните символи boolalpha представяне на типа boolean dec целочислени типове в каква бройна hex система да се извеждат oct showbase представяне на бройната система scientific как се извеждат типовете с плаваща fixed точка showpoint showpos За манипулиране на състоянието на формата, в класа ios_base са дефинирани следните методи: 1 class ios_base { 2 public: fmtflags flags() const; 5 fmtflags flags( fmtflags f); 6 fmtflags setf(fmtflags f){ 7 return flags(flags() f); 8 } 1 fmtflags setf(fmtflags f, fmtflags mask) { 2 return flags((flags()&~mask) (f&mask)); 3 } 4 void unset(fmtflags mask) { 5 flags(flags()&~mask); 6 } 7 }; Стандартната схема за работа с флаговете за форматиране е следната: запомняме състоянието на формата; променяме състоянието на формата и използваме потока; възстановяваме предишното състояние на потока. 1 void foo( void) { 2 ios_ base:: fmtflags old_ flags= cout. flags(); 3 cout.setf(ios_base::oct); cout.flags(old_flags); 6 }; Извеждане на цели числа Добавянето на флагове чрез метода setf() или чрез побитово ИЛИ ( ) е удобно, само когато дадена характеристика на потока се управлява от един бит. Тази схема е неудобна в случаи като определяне на бройната система. В такива случаи състоянието на формата не се определя от един бит. Решението на този проблем, което се използва в <iostream>, е да се предостави версия на setf() с втори псевдо-аргумент : cout.setf(ios_base::oct, ios_base::basefield); cout.setf(ios_base::dec, ios_base::basefield); cout.setf(ios_base::hex, ios_base::basefield); 11 12
7 Извеждане на цели числа: пример 2 using namespace std; 3 4 int main( int argc,char* argv[]) { 5 cout.setf(ios_base::showbase); 6 cout.setf(ios_base::oct, ios_base::basefield); 7 cout<< 1234 << << 1234 << endl; 8 cout.setf(ios_base::dec, ios_base::basefield); 9 cout<< 1234 << << 1234 << endl; 10 cout.setf(ios_base::hex, ios_base::basefield); 11 cout<< 1234 << << 1234 << endl; return 0; 14 }; Извеждане на цели числа: пример x4d2 0x4d2 Извеждане на числа с плаваща точка Извеждането на числа с плаваща запетая се определя от формата и точността. Форматите, които се използват за извеждане на числа с плаваща запетая са: Универсален позволява на потока сам да реши в какъв вид да се представи извежданото число. По подразбиране потоците използват този формат. Научен представя числото като десетична дроб с една цифра преди десетичната точка и показател на степента. Фиксиран точността определя максималният брой цифри след десетичната точка. По подразбиране точността е 6 цифри. Извеждане на числа с плаваща точка: пример 2 using namespace std; 3 int main( int argc, char* argv[]) { 4 cout<< << << << endl; 5 cout.setf(ios_base::scientific, 6 ios_ base:: floatfield); 7 cout<< << << <<endl; 8 cout.setf(ios_base::fixed, 9 ios_ base:: floatfield); 10 cout<< << << <<endl; 11 cout.setf( static_cast <ios_base::fmtflags>(0), 12 ios_ base:: floatfield); 13 cout<< << << <<endl; 14 return 0; 15 } Извеждане на числа с плаваща точка: пример e e Извеждане на числа с плаваща точка За промяна на точността на работа с числа с плаваща запетая се използват следните методи: class ios_base { public:... unsigned precision() const; unsigned precision(unsigned n);... }; Използването на precision() влияе на всички входно/изходни операции с потока и действа до следващото използване на метода. Извеждане на числа с плаваща точка: пример 2 using namespace std; 3 int main( int argc,char* argv[]) { 13 14
8 4 cout. precision(12); 5 cout<< << << << 6 < < < <endl; 7 cout. precision(9); 8 cout<< << << << 9 < < < <endl; 10 cout. precision(4); 11 cout<< << << << 12 < < < <endl; 13 return 0; 14 } Извеждане на числа с плаваща точка: пример Полета за изход 2 using namespace std; 3 int main( int argc,char* argv[]) { 4 cout << ( ; 5 cout.width(5); 6 cout << 12 << ) << endl;; 7 cout << ( ; 8 cout.width(5); cout.fill( # ); 9 cout << 12 << ) << endl;; 10 cout << ( ; 11 cout.width(5); cout.fill( # ); 12 cout << "a" << ) << endl;; 13 cout << ( ; Полета за изход 14 cout.width(0); cout.fill( # ); 15 cout << "a" << ) << endl;; 16 return 0; 17 } ( 12) (###12) (####a) (a) 8. Манипулатори Манипулатори Да се променя състоянието на потока посредством флаговете на формата е неудобно. Стандартната библиотека предоставя набор от функции и обекти за манипулиране на състоянието на потока манипулатори. Манипулатори Основният начин за използване на манипулатори може да се види от следния пример: cout<<boolalpha<<true << <<noboolalpha<< true; което извежда: true 1. Използват се и манипулатори с аргументи: cout < < setprecision(10) << << endl; което извежда: Манипулаторите с аргументи са дефинирани в <iomanip>. boolalpha noboolalpha представяне на типа boolean showbase noshowbase представяне на бройната система showpoint noshowpoint showpos noshowpos skipws noskipws пропускане на разделителните символи dec целочислени типове в каква hex бройна система да се извеждат oct fixed как се извеждат типовете scientific с плаваща точка setprecision(n) точност на извеждането setw(int n) ширина на полето за извеждане setfill(int c) символ за запълване на полето 15 16
9 9. Файлови потоци Файлови потоци Потоците за работа с файлове са дефинирани в <fstream>. Потокът за писане във файл е basic_ofstream. template< class Ch, class Tr=char_traits<Ch> > class basic_ofstream: public basic_ostream<ch,tr> { public: e x p l i c i t basic_ofstream(const char* p, openmode m=out trunc); bool is_open() const; void open(const char* p, openmode m=out trunc); void close();... }; 5 std::cerr << p << << p2 << std::endl; 6 std::exit(1); 7 } 8 int main( int argc,char* argv[]) { 9 i f (argc!=3) 10 error("bad number of arguments..."); 11 std::ifstream from(argv[1]); 12 i f (!from) 13 error("bad input file", argv[1]); 14 std::ofstream to(argv[2]); 15 i f (!to) 16 error("bad output file:", argv[2]); 17 char ch; 18 while(from.get(ch)) 19 to.put(ch); 20 i f (!from.eof()!to) 21 error("something strange..."); 22 return 0; 23 } Файлови потоци c lass ios_base { public: t y p e d e f implementation_ dependent1 openmode; static const openmode app, ate, binary, in, out, trunc;... }; in отваряне за четене out отваряне за запис app запис на данните в края на файла; предизвиква отваряне на файла в режим out ate запис на данните в края на файла trunc унищожава предишното съдържание на файла Файлови потоци 2#include <fstream> 3#include <cstdlib> 4 void error(const char* p, const char* p2="") { 17 18
Потоци (Rev: 1.1)
Потоци (Rev: 1.1) Любомир Чорбаджиев 1 lchorbadjiev@elsys-bg.org 1 Технологическо училище Електронни системи Технически университет, София 8 май 2007 г. Л. Чорбаджиев (ELSYS) Потоци (Rev: 1.1) 8 май 2007
ПодробноПредефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически униве
Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision :
ПодробноОбработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Re
Обработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.1 27 февруари 2005 г. 1 #include < cstdio
ПодробноДинамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София
Динамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.3 16 ноември 2004 г. Пример:
ПодробноДефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София
Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.1 9 март 2005 г. template< class
ПодробноПри изпълнението на програма се извършват определени действия над данните, дефинирани в програмата.тези данни могат да бъдат постоянни ( константи ) и
При изпълнението на програма се извършват определени действия над данните, дефинирани в програмата.тези данни могат да бъдат постоянни ( константи ) или изменящи се (променливи). Тези данни най-често бива
ПодробноСериализация Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23
Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23 f «data; f» data; Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 2 / 23 Първо изискване:
ПодробноC++
Управляващи оператори в C++ Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 18 30 октомври 2018 г. Трифон Трифонов (УП 18/19) Управляващи оператори в C++ 18 30 октомври
ПодробноВ тази част, ще разгледаме аритметичните и логически операции, както, и включването им в изрази. В следващата таблица са дадени всички възможни операц
В тази част, ще разгледаме аритметичните и логически операции, както, и включването им в изрази. В следващата таблица са дадени всички възможни операции в езикът C и С++. Символ Предназначение Аритметични
ПодробноКакто бе споменато в предходните части съществуват три основни вида алгоритми: линейни, разклонени и циклични. В тази част ще разгледаме линейните алг
Както бе споменато в предходните части съществуват три основни вида алгоритми: линейни, разклонени и циклични. В тази част ще разгледаме линейните алгоритми. При линейни алгоритми действията се изпълняват
ПодробноКласове в 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 Обектно-ориентирана
ПодробноПрограмен език C Пламен Танов Ненко Табаков Мартин Вачовски Технологично училище Електронни системи Технически университет София версия 0.5
Програмен език C Пламен Танов Ненко Табаков Мартин Вачовски Технологично училище Електронни системи Технически университет София версия 0.5 Литература Необходими програми Kernighan & Ritchie - The C Programming
Подробно2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнениет
2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнението представя кратко въведение в теорията на лексическия
ПодробноМасиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г ноември 2018 г. Трифон Трифонов (УП 18/19) Ма
Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 29 ноември 2018 г. Трифон Трифонов (УП 18/19) Масиви и низове 15 29 ноември 2018 г. 1 / 16 Масиви Логическо
ПодробноУказатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23
Указатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23 Указатели! Калин Георгиев Увод в програмирането 21
ПодробноПрограмиране на Паскал
Поради връзката на С++ с езика С в голяма част от литературата е прието записването С/С++. Това е найизползваният език за програмиране в света, поради което синтаксисът на някои от по-новите езици като
ПодробноМасиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 ноември 6 декември 2018 г. Трифон Трифонов (УП 1
Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 ноември 6 декември 2018 г. Трифон Трифонов (УП 18/19) Масиви и низове 15.11-6.12.2018 г. 1 / 17 Масиви
Подробно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
ПодробноLush Green
Класове Какво са класовете? Основен инструмент на ООП Средство за дефиниране на абстрактни типове данни Синтактична конструкция, която позволява логическо групиране на данни и операциите над тях Дефиниция
ПодробноМасиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 9 ноември 2016 г. Триф
и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 9 ноември 2016 г. Трифон Трифонов (УП 16/17) и низове 9 ноември 2016 г. 1 / 5 Логическо
ПодробноПроф
Утвърдил:.. / доц. д-р Е. Великова / Утвърден от Факултетен съвет с протокол... /... СОФИЙСКИ УНИВЕРСИТЕТ СВ. КЛИМЕНТ ОХРИДСКИ Факултет по Математика и Информатика Специалност: Компютърни науки М И К 0
ПодробноМаисви
МАСИВИ 1. Структурни типове данни Структура от данни - организирана информация, която може да бъде описана, създадена и обработена с помощта на програма. Скаларни типове данни: Целочислен int Реален double
ПодробноСтруктура на програма в C - Част 2 - типове, функции
Структура на програма в C Част 2 - типове, функции Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 10 март 2019 г. И. Георгиев, Х.
Подробно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?
ПодробноМИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА
МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА У Ч Е Б Н А П Р О Г Р А М А ЗА ЗАДЪЛЖИТЕЛНА ПРОФЕСИОНАЛНА ПОДГОТОВКА ПО ПРОГРАМИРАНЕ И АЛГОРИТМИЧНИ ЕЗИЦИ ЗА ПРОФЕСИЯ: КОД 482010 ИКОНОМИСТ - ИНФОРМАТИК СПЕЦИАЛНОСТ:
ПодробноСтруктура на програма в C - Част 7 - масиви, оператор за индексиране, sizeof оператор
Структура на програма в C Част 7 - масиви, оператор за индексиране, sizeof оператор Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София
ПодробноВиртуални функции
Виртуални функции Статично свързване Как компилаторът избира кой метод или коя функция да бъде извикана? Прави се сравнение между формални и фактически параметри и се избира най-точното съвпадение в случай,
ПодробноЛекции по Програмиране първа част I. Въведение в компютрите и програмирането КОМПЮТЪР = АПАРАТУРА + ПРОГРАМНО ОСИГУРЯВАНЕ Апаратна част Hardware(Харду
Лекции по Програмиране първа част I. Въведение в компютрите и програмирането КОМПЮТЪР = АПАРАТУРА + ПРОГРАМНО ОСИГУРЯВАНЕ Апаратна част Hardware(Хардуер)Програмна част Software(Софтуер) Хардуерът включва:
ПодробноLush Green
Конструктори Жизнен цикъл на обект За обекта се заделя памет и се свързва с неговото име Извиква се подходящ конструктор на обекта... (достъп до компоненти на обект, изпълняване на операции) Достига се
ПодробноЛабораторно упражнение 6 Тема: Оператори за цикли в езика C++. Реализиране на циклични алгоритми I. Цел на лабораторното упражнение Да се затвърдят зн
Лабораторно упражние 6 Тема: Оператори за цикли в езика C++. Реализира на циклични алгоритми I. Цел на лабораторното упражние Да се затвърдят знанията на студентите за организацията и синтаксиса на програми
ПодробноСтруктура на програма в C - Част 9 - низове от символи, C-string
Структура на програма в C Част 9 - низове от символи, C-string Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 15 май 2019 г. И. Георгиев,
ПодробноMicrosoft Word - Lection06.doc
Лекция 6 (8. Ноември, 2011) Връзки http://www.cplusplus.com/doc/tutorial/files/ http://www.cplusplus.com/reference/clibrary/cstdio/fprintf/ http://www.cplusplus.com/reference/clibrary/cstdio/fscanf/ http://www.cplusplus.com/reference/clibrary/cstdio/freopen/
Подробно4
Наследяване и 4 Трифон Трифонов Обектно-ориентирано програмиране, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 11 май 2017 г. Трифон Трифонов (ООП 16/17) Наследяване и голямата
ПодробноMathematica CalcCenter
Mathematica CalcCenter Основни възможности Wolfram Mathematica CalcCenter е разработен на базата на Mathematica Professional и първоначално е бил предназначен за технически пресмятания. Информация за този
ПодробноЛабораторно упражнение 4 Тема : Реализиране на линейни програми.. I. Цел на лабораторното упражнение Аритметични и логически операции в програмният ез
Лабораторно упражнение 4 Тема : Реализиране на линейни програми.. I. Цел на лабораторното упражнение Аритметични и логически операции в програмният език С. Реализиране на линейни програми. Математически
ПодробноВ настоящата тема ще разгледаме представянето на числата в изчислителните устройства. Ще покажем представянето на числата в позиционните бройни систем
В настоящата тема ще разгледаме представянето на числата в изчислителните устройства. Ще покажем представянето на числата в позиционните бройни системи, като се акцентира на десетична, двоична и шестнадесетична
ПодробноДинамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Тр
Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Трифон Трифонов (УП 16/17) Динамична памет 21 декември
ПодробноИНТЕРНЕТ ПРОГРАМИРАНЕ - JAVA JAVA ОБЕКТИ Ненко Табаков Пламен Танов Технологическо училище Електронни системи Технически университет София 9 октомври
JAVA ОБЕКТИ Ненко Табаков Пламен Танов Технологическо училище Електронни системи Технически университет София 9 октомври 2008 JAVA ОБЕКТИ Забележка: Тази лекция е адаптация на лекция от курса: 6.092 Java
ПодробноSlide 1
Списъци. Структура и синтаксис. Създаване и показване. Основни операции(добавяне, изваждане на елемент или цял подсписък; подреждане). Трансформации. проф. дмн С. Христова Списъци Списъците / list са основна
ПодробноДопълнения в периода Версия Модул Документи Към Права на достъп до екземпляри документи е добавено право Изтриване на док
Допълнения в периода 25.04.2019 28.05.2019 Версия 4.42.0 Модул Документи Към Права на достъп до екземпляри документи е добавено право Изтриване на документ. Новото право е с по-нисък приоритет от правото
Подробно3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението
3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението представя кратко въведение в синтактичния анализ.
ПодробноПощенска Банка Формат на входни файлове за масови плащания Съдържание: 1. Общи характеристики Плащания с кредитен превод Плащания на з
Пощенска Банка Формат на входни файлове за масови плащания Съдържание: 1. Общи характеристики.... Плащания с кредитен превод... 3 3. Плащания на заплати с кредитен превод.... Плащания с директен дебит
Подробно