Similar presentations:
С и C++ — универсальные алгоритмические языки. С / С++. Тема 01
1. НРТК
С / С++Тема 01. С и C++ — универсальные
алгоритмические языки
НРТК, 2022 г. 1
С и C++ — универсальные алгоритмические языки
Созонов А.А.
2. Обозначения и договоренности
Обычный текстОпределение
Текст программы или примера
Специфичная для Microsoft Visual Studio
информация
Устаревшие и не рекомендованные к
использованию возможности
НРТК, 2022 г. 2
С и C++ — универсальные алгоритмические языки
Созонов А.А.
3.
Немного историиНРТК, 2022 г. 3
С и C++ — универсальные алгоритмические языки
Созонов А.А.
4. C: Немного истории
• 1970 г., Денис Ритчи, AT&T Bell Laboratories• UNIX PDP-11: A (ассемблер) — B — C
– говорят, что авторы «улучшали» синтаксис, пока
не стало компилироваться:
#include <stdio.h>
main()
{
int R, e, C, *u;
for(;printf("\n"),R--; printf("|") )
for( e=C; e--;printf("_"+(*u++/8)%2))
printf("| "+(*u/4)%2);
}
НРТК, 2022 г. 4
С и C++ — универсальные алгоритмические языки
Созонов А.А.
5. С: Немного истории
• Первый продукт — компилятор• 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
НРТК, 2022 г. 5
С и C++ — универсальные алгоритмические языки
Созонов А.А.
6. С++: Продолжение С
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
НРТК, 2022 г. 6
С и C++ — универсальные алгоритмические языки
Созонов А.А.
7.
Общая характеристика СНРТК, 2022 г. 7
С и C++ — универсальные алгоритмические языки
Созонов А.А.
8. Общая характеристика С
• C — язык низкого уровня– компьютерные (аппаратные) типы данных
– логические операции над битами, сдвиги, работа
с адресами и регистрами
• C — язык высокого уровня
– структуры данных и операторы структурного
программирования
– необычно большой набор операций
– указатели и функции
• Простой компилятор
– эффективность
– экономичность
– переносимость
НРТК, 2022 г. 8
С и C++ — универсальные алгоритмические языки
Созонов А.А.
9. Общая характеристика С
• Препроцессор• Развитые библиотеки
– богатая стандартная библиотека
– большое число разнообразнейших библиотек
• Существенные недостатки
– трудность чтения низкоуровнего кода:
a++ << --b | 4
– «слабый» синтаксис
• ‘a’ + 28
• контроль параметров функций
НРТК, 2022 г. 9
С и C++ — универсальные алгоритмические языки
Созонов А.А.
10.
Алгоритмы и основыалгоритмизации
НРТК, 2022 г. 10
С и C++ — универсальные алгоритмические языки
Созонов А.А.
11. Следующие темы
Что такое алгоритмический язык?
Что такое алгоритм?
Что такое программа?
Схема универсального алгоритмического
языка
НРТК, 2022 г. 11
С и C++ — универсальные алгоритмические языки
Созонов А.А.
12. Что такое алгоритмический язык?
• Это язык для записи программ для ЭВМ• Программа — одна из форм представления
алгоритма
• Формы представления алгоритмов
– описательная (на естественном языке)
– графическая (блок-схемы)
– программой
• Алгоритмический язык — язык для записи
алгоритмов
• Что такое алгоритм?
НРТК, 2022 г. 12
С и C++ — универсальные алгоритмические языки
Созонов А.А.
13. Что такое алгоритм?
• Алгоритм это — последовательностьдействий, которые надо выполнить для
достижения заданной цели
– инструкция по включению телевизора
– правила дорожного движения
– «где ты купила эту кофточку»?
• Исполнитель алгоритма — человек,
техническое устройство, и т. д.
НРТК, 2022 г. 13
С и C++ — универсальные алгоритмические языки
Созонов А.А.
14. Что такое алгоритм?
• Как вскипятить чайник?– налейте в чайник воду
– включите газ на плите
– поставьте чайник на плиту
–…
• Как разогреть воды?
– вылить воду из чайника
– выполнить алгоритм «вскипятить чайник»
НРТК, 2022 г. 14
С и C++ — универсальные алгоритмические языки
Созонов А.А.
15. Что же такое алгоритм?
• Последовательность однозначнопонимаемых действий (операций) над
однозначно понимаемыми объектами
(данными)
• Определяющие свойства алгоритма
– исходные и результирующие данные
– начальное и конечное действие
– конечность (ограниченность) действий
– декомпозиция на составные части
(подалгоритмы)
– эффективность
НРТК, 2022 г. 15
С и C++ — универсальные алгоритмические языки
Созонов А.А.
16. А это значит, что:
• Алгоритмический язык долженпредоставить средства для
– описания объектов (данных) алгоритма
– описания действий (операций) алгоритма
– декомпозиции алгоритма на составные части
(подалгоритмы)
• Алгоритмические языки бывают
– универсальными
– специализированными
• И средства этих языков
– универсальные
– специализированные
НРТК, 2022 г. 16
С и C++ — универсальные алгоритмические языки
Созонов А.А.
17. Схема универсального АЯ
АЯОбъекты (данные)
Действия
Прост. типы
Операции
Целое
+ - * /
Действительное
…
Строка
…
Операторы
Структуры
ввод / вывод
Массив
присваивания
Запись
ветвления
…
цикла
Декомпозиция
Процедуры и
функции
Раздельная
компиляция файлов
Библиотеки
переключатель
…
НРТК, 2022 г. 17
С и C++ — универсальные алгоритмические языки
Созонов А.А.
18. Литература
Страуструп Б. Язык программирования Си++.
Специальное издание. Пер. с англ. — М.: ООО «БиномПресс», 2004. — 1104 с.
Липпман С. Основы программирования на С++. Вводный
курс. Пер. с англ. — М.: Вильямс, 2002.
Лафоре Р. Объектно-ориентированное программирование
в C++. Пер. с англ. — СПб.: Питер, 2003. — 928 с.
Шилдт Г. Полный справочник по C++. Пер. с англ. — М.:
Вильямс, 2004. — 800 с.
Подбельский В. В. Язык Си++: Учебное пособие. — 5-е
изд., дораб. — М.: Финансы и статистика, 2006. — 560 с.
НРТК, 2022 г. 18
С и C++ — универсальные алгоритмические языки
Созонов А.А.
19. Что такое программа для ЭВМ?
• То, что ЭВМ может выполнять• Последовательность команд (инструкций), которые может
выполнять (интерпретировать) ЭВМ
• Программа – форма представления алгоритма
• Формы представления алгоритма:
– Описательная (на естественном языке)
– Графическая (блок-схемы)
– Программа
Задача
НРТК, 2022 г. 19
Алгоритм
?
Алг. язык
Программа
Описание
Алг. язык 2
Программа 2
Блок-схема
Алг. язык 3
Программа 3
С и C++ — универсальные алгоритмические языки
Созонов А.А.