Слайд 1Модуль 1. Основы программирования на языке высокого уровня
Рассматриваются критерии
качества программ, этапы решения задач на компьютере, базовые понятия: из
каких простейших «кирпичиков» состоят все тексты на языке программирования, что понимают под типом данных, какие встроенные типы данных есть в языке C++.
Слайд 2Критерии качества ПО
Внешние характеристики
корректность
практичность
эффективность
надежность
целостность
адаптируемость
Внутренние характеристики
удобство сопровождения
тестируемость
удобочитаемость
гибкость
портируемость
Основные - надежность, возможность точно
планировать производство и сопровождение. Для этой цели программа должна иметь
простую структуру, быть хорошо читаемой, быть легко модифицируемой
Слайд 3Парадигмы программирования
Парадигма — способ организации программы, то есть принцип
ее построения. Наиболее распространенными являются процедурная и объектно-ориентированная парадигмы.
Они
различаются способом декомпозиции, положенным в основу при создании программы.
Процедурная декомпозиция состоит в том, что задача, реализуемая программой, делится на подзадачи, а они, в свою очередь — на более мелкие этапы, то есть выполняется пошаговая детализация алгоритма решения задачи.
Объектно-ориентированная декомпозиция предполагает разбиение предметной области на объекты и реализацию этих объектов и их взаимосвязей в виде программы.
Кроме того, существуют функциональная и логическая парадигмы.
Слайд 4Этапы разработки программы
формулировка и постановка задачи;
выбор метода решения задачи;
разработка алгоритма решения задачи;
написание текста программы;
набор текста программы
и сохранение в электронном виде;
трансляция программы;
исправление ошибок;
выполнение программы;
анализ и документирование полученных результатов.
Слайд 5Запись алгоритмов
словесная
Алгоритм покупок на лимитированную сумму
Сумма покупок равна нулю
Если все
нужные товары выбраны, перейти к пункту 5, иначе выбрать товар.
Если
цена товара, добавленная к сумме покупок, не превысит имеющийся лимит, положить товар в корзину, иначе товар оставить на полке и перейти к пункту 5.
Перейти к пункту 2.
Идти в кассу оплачивать товары.
Графическая
На алгоритмическом языке
Слайд 6Основные блоки структурной
схемы алгоритма
начало, конец программы, вход, выход в
подпрограммах
выполнение операций, изменяющих обрабатываемые данные
ввод-вывод данных
выбор пути обработки данных в
зависимости от условия
обращение к подпрограмме
Слайд 7Примеры блок-схем
Вывод Х
начало
конец
Ввод А,В
Х=А-В
конец
начало
Ввод Х
если Х>0
Y=1
Y=0
Вывод Y
конец
начало
Ввод Х
Вывод Х
Х=0?
нет
да
Слайд 8Пример структуры программы
директивы препроцессора
Описания данных и/или функции
int main() {
операторы
и описания
главной функции
}
Примеры
директив препроцессора:
1) #define - указывает правила замены в тексте.
#define ZERO 0
Означает , что каждое использование в программе имени ZERO будет заменяться на 0
2) Директива #include включает в текст программы содержимое указанного файла. Эта директива имеет две формы:
#include " имя_файла "
#include <имя_файла>
Слайд 9Формирование исполняемой программы
Исходный текст программы *.сpp (*.c)
Препро-цессор
Полный текст програм-мы *.cpp
Компи-лятор
Включа-емые
файлы (*.h)
Объект-ный код *.obj
Компоновщик
Библиотечные файлы *.lib
Исполняемая программа
Слайд 10Состав языка
a-z, A-Z, 0-9, “, {,},|,/,%,…
- идентификаторы
- ключевые слова
- константы
- знаки операций
- разделители
a+b-t123/c
a=b++;
for (i=0;i
это тоже комментарий!
.
Слайд 11Список ключевых слов
asm do if return typedef
auto double inline
short typeid
bool dynamic_cast int signed typename
break else long
sizeof union
case enum mutable static unsigned
catch explicit namespace static_cast using
char export new struct virtual
class extern operator switch void
const false private template volatile
const_cast float protected this wchar_t
continue for public throw while
default friend register true
Слайд 12Константы
Вид Примеры
Логическая true (истина) false (ложь)
Целые дес. 8 0 199226
Восьм. 01 020 07155
Шестн. 0xA 0x1B8 0X00FF
Веществ. 5.7 .001
35.
Вещ. с плав. т. 0.2E6 .11e–3 5E10
Символьные 'A‘ 'ю‘ '*‘ 'db‘ '\0' '\n‘ '\012‘ '\x07\x07'
Строковые "Здесь был Vasia"
" \tЗначение r=\0xF5\n"
Явное указание
типа констант:
0X22UL, 05Lu, 2E+6L, 1.82f
Слайд 13Управляющие последовательности
\a 7 Звуковой сигнал
\b 8 Возврат на шаг
\f C Перевод страницы (формата)
\n A Перевод строки
\r D Возврат каретки
\t 9 Горизонтальная табуляция
\v B Вертикальная
табуляция
\\ 5C Обратная косая черта
\' 27 Апостроф
\" 22 Кавычка
\? 3F Вопросительный знак
\0ddd Восьмеричный код символа
\0xdd dd Шестнадцатиричный код символа
Слайд 14Типы данных
Тип данных определяет:
внутреннее представление данных в памяти компьютера =>
множество значений, которые могут принимать величины этого типа;
операции и функции,
которые можно применять к величинам этого типа.
Типы в С++ делятся на основные (fundamental) и составные (compound). Тип может описывать объект, ссылку или функцию.
Слайд 15Основные (стандартные) типы данных
int (целый);
char (символьный);
wchar_t (расширенный символьный);
bool (логический);
float (вещественный);
double
(вещественный с двойной точностью).
Спецификаторы:
short (короткий);
long (длинный);
signed (знаковый);
unsigned (беззнаковый).
+ void
Слайд 16Составные типы
Массивы;
Структуры;
Объединения;
Перечисления;
Ссылки;
Указатели
Классы
Слайд 17Диапазоны для IBM PC-совместимых
Тип Диапазон значений Размер(байт)
bool true и false 1
signed
char –128 … 127 1
unsigned char 0 … 255 1
signed short int –32 768 … 32 767 2
unsigned
short int 0 … 65 535 2
signed long int –2 147 483 648 …
2 147 483 647 4
unsigned long int 0 … 4 294 967 295 4
float 3.4e–38 … 3.4e+38 4
double 1.7e–308 … 1.7e+308 8
long double 3.4e–4932 … 3.4e+4932 10
Слайд 18Диапазоны типов по стандарту
sizeof(float) ≤ sizeof(double) ≤ sizeof(long double)
sizeof(char) ≤
sizeof(short) ≤ sizeof(int) ≤ sizeof(long)
Минимальные и максимальные значения определены в
файлах:
- целые
- вещественные