Увод

Учебник: 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. 

Textbook   

Какво е компютър?

Няма дефиниция, понятието се променя с времето.
Компютрите могат да се справят с повтарящи се задачи.
Компютърът може да се програмира, че да се справи с различни задачи:

Компютърни действия са съставени от огромен брой изключително примитивни операции. Примери за примитивни операции:

Компютърът дава илюзията за плавно изпълнение, защото той изпълнява тези операции с голяма скорост (каква?).
Компютрите са гъвкави: те могат да се справят с широк спектър от задачи, тъй като те изпълняват различни програми, всяка от които прави компютъра да работи по конкретна задача.

Джон Атанасов - история на компютрите.
От микрокомпютър до суперкомпютър. Многопроцесорни компютри, квантови компютри.
Херц, гигахерц; байт, гигабйт; флопс (FLOPS), гигафлопс, екзафлопс (EFLOPS = 1000 petaFLOPS)
(103 - кило, 106 - мега, 109 - гига, 1012 - тера, 1015 - пета)
2013, Tianhe-2, рекорд от 33.86 petaFLOPS, разпределени изчисления, облаци
Пример:
MacBook Pro 13" Dual-Core i5
Анонсиран: June 2012
2.5GHz / 4GB / 500GB / Intel HD Graphics 4000 / с international клавиатура

Какво е програмиране?

Анатомия на компютъра


** Проста програма - компилиране и грешки.
 
// hello.cpp /*Име на файла, съдържащ текста на програмата*/
#include <iostream> /*Директива на препроцесора*/
using namespace std; /*Стандартно пространство на имена*/


int main() /*Главна функция*/
{ cout << "Hello, World!\n"; /*Оператор за потоков изход*/
  return 0; /*Връща на операционната система числото 0*/
}
 Hello, World!
   
** По-важни характеристики на синтаксиса на езика:
- Азбуката на езика се състои от всички символи от клавиатурата на компютъра.
- Поредица от букви и цифри образува име, разделители между имената са интервал или символ, който не е буква или цифра.
- С++ различава малки от главни букви, напр. имената main и Main са различни.
- Програмата се разполага линейно - по редове (няма горни и долни индекси).
- Програмата се състои от оператори - всеки оператор завършва с точка и запетая ";".
- Един оператор може да се разположи на два и повече реда; няколко оператора може да се разположат на един ред - добрия стил на програмиране изисква един оператор да се пише на един ред (освен ако няма съществена причина за противното).

**  Процесът от написване до изпълнение на програмата се състои от следните стъпки:
    I стъпка: Написване на текста на програмата; използва се текстов редактор, който създава текстов файл - изходен код (source code) [напр. hello.cpp].
    II стъпка: Компилиране на програмата; извършва се от компилатора, който създава файл - обектен код (object code) [напр. hello.o или hello.obj].
    III стъпка:  Свързване на програмата; извършва се от свързваща програма (linker), която създава изпълним файл [напр. hello.exe или hello или a.out].
    IV стъпка: Изпълнение на програмата; операционната система или програмната система стартира създадения изпълним (executable) файл.


* Цикъл: Edit -> Compile -> Debug