С и C++ — универсальные алгоритмические языки. С / С++. Тема 01

Содержание

Слайд 2

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

А.А.

Обозначения и договоренности

Обычный текст
Определение
Текст программы или примера
Специфичная для Microsoft Visual Studio информация
Устаревшие и не рекомендованные к использованию возможности

Слайд 3

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов А.А. Немного истории

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

А.А.

Немного истории

Слайд 4

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

А.А.

1970 г., Денис Ритчи, AT&T Bell Laboratories
UNIX PDP-11: A (ассемблер) — B — C
говорят, что авторы «улучшали» синтаксис, пока не стало компилироваться:
#include
main()
{
int R, e, C, *u;
for(;printf("\n"),R--; printf("|") )
for( e=C; e--;printf("_"+(*u++/8)%2))
printf("| "+(*u/4)%2);
}

C: Немного истории

Слайд 5

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

А.А.

С: Немного истории

Первый продукт — компилятор
1976 г. – перенос Unix на Interdata 8/32 (затем и на другие платформы)
1978 г. — первая книга
1987 г. — стандарт ANSI C
UNIX, OS IBM, MS DOS, Mac OS, …
1999 г. — стандарт ISO 9899:1999

Поробнее — см.
C/C++: http://www.helloworld.ru/texts/comp/lang/c/c8/index.htm

Слайд 6

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

А.А.

С++: Продолжение С

1980 г., Бьярн Страуструп AT&T Bell Laboratories
С++ почти включает С (но есть и несовместимости)
С++ расширяет С за счет ООП и строгой проверки типов
Borland C++, Visual C++, Borland C++ Builder, Microsoft Visual Studio C++ Compiler, Intel C++ Compiler, GNU C++ Compiler…
1998 г. — стандарт ISO 14882:1998
2003 г. — стандарт ISO 14882:2003

Слайд 7

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов А.А. Общая характеристика С

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

А.А.

Общая характеристика С

Слайд 8

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

А.А.

Общая характеристика С

C — язык низкого уровня
компьютерные (аппаратные) типы данных
логические операции над битами, сдвиги, работа с адресами и регистрами
C — язык высокого уровня
структуры данных и операторы структурного программирования
необычно большой набор операций
указатели и функции
Простой компилятор
эффективность
экономичность
переносимость

Слайд 9

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

А.А.

Общая характеристика С

Препроцессор
Развитые библиотеки
богатая стандартная библиотека
большое число разнообразнейших библиотек
Существенные недостатки
трудность чтения низкоуровнего кода:
a++ << --b | 4
«слабый» синтаксис
‘a’ + 28
контроль параметров функций

Слайд 10

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов А.А. Алгоритмы и основы алгоритмизации

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

А.А.

Алгоритмы и основы
алгоритмизации

Слайд 11

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

А.А.

Следующие темы

Что такое алгоритмический язык?
Что такое алгоритм?
Что такое программа?
Схема универсального алгоритмического языка

Слайд 12

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

А.А.

Что такое алгоритмический язык?

Это язык для записи программ для ЭВМ
Программа — одна из форм представления алгоритма
Формы представления алгоритмов
описательная (на естественном языке)
графическая (блок-схемы)
программой
Алгоритмический язык — язык для записи алгоритмов
Что такое алгоритм?

Слайд 13

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

А.А.

Что такое алгоритм?

Алгоритм это — последовательность действий, которые надо выполнить для достижения заданной цели
инструкция по включению телевизора
правила дорожного движения
«где ты купила эту кофточку»?
Исполнитель алгоритма — человек, техническое устройство, и т. д.

Слайд 14

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

А.А.

Что такое алгоритм?

Как вскипятить чайник?
налейте в чайник воду
включите газ на плите
поставьте чайник на плиту

Как разогреть воды?
вылить воду из чайника
выполнить алгоритм «вскипятить чайник»

Слайд 15

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

А.А.

Что же такое алгоритм?

Последовательность однозначно понимаемых действий (операций) над однозначно понимаемыми объектами (данными)
Определяющие свойства алгоритма
исходные и результирующие данные
начальное и конечное действие
конечность (ограниченность) действий
декомпозиция на составные части (подалгоритмы)
эффективность

Слайд 16

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

А.А.

А это значит, что:

Алгоритмический язык должен предоставить средства для
описания объектов (данных) алгоритма
описания действий (операций) алгоритма
декомпозиции алгоритма на составные части (подалгоритмы)
Алгоритмические языки бывают
универсальными
специализированными
И средства этих языков
универсальные
специализированные

Слайд 17

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов А.А. Схема универсального АЯ АЯ

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

А.А.

Схема универсального АЯ

АЯ

Слайд 18

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

НРТК, 2022 г. С и C++ — универсальные алгоритмические языки Созонов

А.А.

Литература

Страуструп Б. Язык программирования Си++. Специальное издание. Пер. с англ. — М.: ООО «Бином-Пресс», 2004. — 1104 с.
Липпман С. Основы программирования на С++. Вводный курс. Пер. с англ. — М.: Вильямс, 2002.
Лафоре Р. Объектно-ориентированное программирование в C++. Пер. с англ. — СПб.: Питер, 2003. — 928 с.
Шилдт Г. Полный справочник по C++. Пер. с англ. — М.: Вильямс, 2004. — 800 с.
Подбельский В. В. Язык Си++: Учебное пособие. — 5-е изд., дораб. — М.: Финансы и статистика, 2006. — 560 с.