Учебник: Cay
Horstmann, Computing
Concepts with C++ Essentials, Third Edition, John Wiley
& Sons, 2003.
Cay S. Horstmann, Timothy A. Budd, Big C++, 2nd Edition, Wiley,
January 2009.
Няма дефиниция, понятието се променя с времето.
Компютрите могат да се справят с повтарящи се задачи.
Компютърните действия са съставени от огромен брой примитивни
операции. Примери за такива операции:
Компютърът дава илюзията за плавно изпълнение, защото той
изпълнява тези операции с голяма скорост (каква?).
Компютрите са гъвкави: те могат да се справят с широк спектър от
задачи, тъй като те изпълняват различни програми, всяка от които
прави компютърът да работи по конкретна задача.
Джон
Атанасов - история на компютрите.
От микрокомпютър до суперкомпютър. Многопроцесорни компютри,
квантови компютри.
Херц, гигахерц; байт, гигабйт; флопс (FLOPS), гигафлопс,
екзафлопс (EFLOPS = 1000 petaflops)
(103 - кило, 106 - мега, 109 -
гига, 1012 - тера, 1015 - пета)
2013, Tianhe-2, 33.86 petaflops
2020, Fudaku, 415.5 petaflops
Разпределени изчисления, облаци, персонални компютри
Пример:
https://www.apple.com/macbook-air/
Лаптоп APPLE MacBook Air 13 (2020) Retina,
13.3", Intel® Core™ i3, RAM 8GB, SSD 256GB, Intel® Iris Plus
Graphics, Mac OS, Gold, Intl. kbd - 2388
лв.
Intel®
Core™ i3-1115G4 Processor
6 MB Chache
4.10 GHz Max Turbo Frequency
2 Cores
4 Threads
G - includes discrete graphics fn package
* Процесорът изпълнява машинни инструкции, които са:
161 40000 45 100 127 11280
* Асемблер - език от ниско ниво:
mov 40000, %eax
sub 100, %eax
jg 11280
mov int_rate, %eax
sub 100, %eax
jg int_error
* Програмни езици от високо ниво:
if (int_rate > 100) message_box("Interest rate error");
* Специална компютърна програма, наречена компилатор, превежда от
програмен език на високо ниво в машинни инструкции за конкретен
процесор (машинен език).
* Компилаторите следват строги конвенции (правила) по отношение на
използването на езика за програмиране.
* Когато компилатор чете инструкции за програмиране (изрази,
операции и оператори) на език за програмиране, той ще ги
трансформира в машинен код, само ако входът следва езиковите
конвенции точно.
* Строгите правила предотвратяват по-катастрофални грешки, които
биха могли да възникнат, ако компилаторът трябва "да гадае".
* Има много (стотици) езици за програмиране (List
of programming languages).
* Различията в езиците за програмиране понякога са незначителни,
но в други случаи са съществени.
if (int_rate > 100) message_box("Interest rate error");
if int_rate > 100 then System.Console.Write("Interest rate error") end if
** История на езика С++
* Езикът С се създава и развива заедно с операционната система
UNIX. Първата версия е създадена през 1973 г. от Денис
Ричи. Езикът се развива интензивно и през 1977 г. UNIX е
пренаписана на С. Стандартна версия на езика е установена през
1989 година.
* Езикът С++ е създаден от Бьорн
Страуструп 1983 г., като към езика С са добавени нови
елементи. Всъщност възниква нов обектно-ориентиран език, който
веднага получава много широко разпространение. Стандартизацията на
езика завършва през 1998 година, като книгата на Страуструп e
всъщност този стандарт.
* 2003 - Стандарти, разработени за нови версии на C++ (The C++ Standards
Committee).
* 2011-09-11: Нов C++ стандарт - C++11,
2013-05-24: CD
за новия стандарт.
* 2013-05-24: The CD
for the new C++14 standard is released.
* 2017-03-21: Working
Draft, Standard for Programming Language C++
** Компилатори и среди за програмиране на С и С++
* Unix ОС (Ubuntu и др.), Мас:
- GCC е GNU компилатор, който
поддържа най-новите версии (стандарти) на езиците C, C++;
- текстов редактор
* Системи (среди) за програмиране за MS Windows -
обикновено се състоят от текстов редактор, компилатор, библиотеки
и система за проверка на програмите (debug). За С/С++
по-известните среди за програмиране са:
- MS Visual C++ -
продукт на Майкрософт, не поддържа С++ стандарт;
- Dev C++ - поддържа С++
стандарт, няма help за езика и удобен дебъгер;
- Code::Blocks -
The open source, cross platform, free C++ IDE.
// hello.cpp | /*Име на файла, съдържащ текста на програмата*/ |
#include <iostream> | /*Директива на препроцесора*/ |
using namespace std; | /*Стандартно пространство на имена*/ |
|
|
int main() | /*Главна функция*/ |
{ cout << "Hello, World!\n"; | /*Оператор за потоков изход*/ |
return 0; | /*Връща на операционната система числото 0*/ |
} | |
Hello, World! |
След година |
Сума (баланс) |
0 |
$10,000.00 |
1 |
$10,500.00 |
2 |
$11,025.00 |
3 |