Увод
Учебник: 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.
Какво е компютър?
Няма дефиниция, понятието се променя с времето.
Компютрите могат да се справят с повтарящи се задачи.
Компютърът може да се програмира, за да се справи с различни
задачи:
- Баланс на сметки.
- Сърфиране в интернет.
- Обработка на текст.
- Играене на игри.
Компютърни действия са съставени от огромен брой примитивни
операции. Примери за такива операции:
- Сложи червена точка в тази позиция на екрана.
- Вземи число от дадено място в паметта.
- Изпрати буквата A към принтера.
- Събери тези две числа.
- Ако стойността е отрицателна, продължи програмата с тази
инструкция.
Компютърът дава илюзията за плавно изпълнение, защото той
изпълнява тези операции с голяма скорост (каква?).
Компютрите са гъвкави: те могат да се справят с широк спектър от
задачи, тъй като те изпълняват различни програми, всяка от които
прави компютърът да работи по конкретна задача.
Джон
Атанасов - история на компютрите.
От микрокомпютър до суперкомпютър. Многопроцесорни компютри,
квантови компютри.
Херц, гигахерц; байт, гигабйт; флопс (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 клавиатура
Какво е програмиране?
- Програмата указва на компютъра последователността
на стъпките, необходими за изпълнение на дадена задача.
- Компютърният програмист проектира, пише и прилага тези
програми.
- Повечето компютърни потребители не са
компютърни програмисти.
- Програмирането е важно умение за информатика, софтуерния
инженер и специалист по мрежите. Еднакво важно за двата
модула на програмата "Информационни технологии" - Технологии за
компютърни игри, Бизнес информатика.
- Програмирането не е единствено техническо умение, необходимо
за успешен компютърен специалист, но е най-основното и
най-важното.
- Началните програми в този курс са досадни и няма да си
съперничат със софтуера, който сте ползвали като потребител.
- След като се развият определени умения, дори и прости програми
могат да бъдат интересни.
Анатомия на компютъра
- CPU - централен процесор - параметри, 2.5GHz, 10 GFLOPS
(теоретично)
- Memory - памет - параметри, 4GB
- RAM (Random Access Memory): read-write memory (primary
storage), , 4GB
- ROM (Read Only Memory): съдържа програми, които вшноги
трябва да са налице - например код, необходим да се стартира
компютъра.
- Secondary storage (e.g. a hard drive or flash memory)
осигурява постоянна памет, 500GB
- Bus (шина) - линии, които свързват CPU, RAM и други
устройства.
- Мotherboard (дънна платка): CPU, memory, bus, card slots
(слотове) свързващи дъното с други устройства (LAN card, sound
card, video card, etc.).
- Peripherals (периферия) свързва компютъра с човека (Universal
Serial Bus - USB):
- Monitor
- Mouse
- Keyboard
- Printer
- Camera
- Компютрите се свързват помежду си чрез компютърни мрежи (жични
или безжични).
** Проста програма - компилиране и
грешки.
// hello.cpp |
/*Име на файла, съдържащ
текста на програмата*/ |
#include <iostream> |
/*Директива на препроцесора*/ |
using namespace
std; |
/*Стандартно пространство на
имена*/ |
|
|
int main() |
/*Главна функция*/ |
{
cout << "Hello, World!\n"; |
/*Оператор за потоков изход*/ |
return 0; |
/*Връща на операционната
система числото 0*/ |
} |
|
** По-важни характеристики на синтаксиса на езика:
- Азбуката на езика се състои от всички символи от клавиатурата на
компютъра.
- Поредица от букви и цифри образува име, разделители между имената
са интервал или символ, който не е буква или цифра.
- С++ различава малки от главни букви, напр. имената 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