Главная » Все файлы » Просмотр файлов из архивов » Файлы формата DJVU » Бьерн Страуструп. Язык программирования С++. Специальное издание (2011)

Бьерн Страуструп. Язык программирования С++. Специальное издание (2011), страница 14

DJVU-файл Бьерн Страуструп. Язык программирования С++. Специальное издание (2011), страница 14 Информатика (1507): Книга - 1 семестрБьерн Страуструп. Язык программирования С++. Специальное издание (2011): Информатика - DJVU, страница 14 (1507) - СтудИзба2018-10-07СтудИзба

Описание файла

DJVU-файл из архива "Бьерн Страуструп. Язык программирования С++. Специальное издание (2011)", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .

Просмотр DJVU-файла онлайн

Распознанный текст из DJVU-файла, 14 - страница

Обзор языка С++ программироваиия, а также знакомства с фундаментальными идеями и приемами его использования. 2.2. Парадигмы программирования Объектно-ориентированное программирование есть техника программироваиия, можно сказать, парадигма, для написания «хороших» программ для иекоторого класса задач. Термин же «объектио-ориеитироваииый язык программирования» должен в первую очередь означать такой язык, который хорошо поддерживает объектио-ориеитироваииый стиль программирования.

Здесь следует четко различать две ситуации. Мы говорим, что язык поддерживает некоторый стиль программирования, если ои предоставляет специальиые средства, позволяющие этот стиль легко (удобио, надежно, эффективно) реализовывать иа практике. Если же язык требует исключительных усилий и огромного опыта для реализации некоторой техники программирования, то мы говорим, что ои лишь допускает возможность ее применения. Например, иа языке Рокгап 77 можно писать структурные программы, а иа языке С можно писать программы в объектио-ориеитироваииом стиле, ио все это требует неадекватно больших усилий, так как эти языки напрямую ие поддерживают указанные стили программирования. Поддержка парадигмы программирования осуществляется ие только через специальио для этого предназначенные языковые конструкции, ио и более тонко— через механизмы автоматического выявления непреднамеренного отклонения от выбранной парадигмы как иа этапе компиляции, так и/или иа этапе выполнения программы.

Строгая проверка типов является очевидным примером такого механизма; вьивлеиие неоднозначностей (двусмыслениостей — атЬ1яцй1ез) и контроль исполнения программы дополняют языковые средства поддержки парадигмы программирования. Виеязыковые средства, такие как библиотеки и среды программирования, еще более расширяют реальную поддержку парадигмы. В то же время, неправильно говорить, что некоторый язык программирования лучше другого просто потому, что ои содержит некоторые конструкции, отсутствующие в другом языке. И тому есть немало реальных примеров. На самом деле, важно не то, какими средствами обладает язык, а то, что средств этих иа деле достаточно для реальной поддержки стиля программирования, оптимального для коикретной предметной области: 1.

Все эти средства должны естественно и элегантно интегрироваться в язык. 2. Должна иметься возможность комбинировать средства для достижения целей, в противном случае требующих применения дополнительных специализированных средств. 3. Неестественных «средств специального назначения» в языке должно быть как можно меньше. 4.

Реализация средств поддержки парадигм ие должна обременять ие нуждающиеся в иих программы. 5. От программиста нельзя требовать знаний тех аспектов языка, которых ои явным образом ие использует в своих программах. 61 2.3 Процедурное программирование Первый из перечисленных принципов апеллирует к эстетике и логике. Два последующих выражают концепцию минимализма. А два последних принципа гласят: «нет нужды — нет проблемы». Язык С++ создавался с учетом перечисленных принципов как расширение языка С для добавления поддержки абстракции данных, объектно-ориентированного и обобщенного стилей программирования.

Он не навязывает программисту конкретный стиль программирования. Стили программирования и поддерживающие их механизмы языка С++ рассматриваются в последующих разделах. Изложение материала стартует с рассмотрения процедурного стиля программирования, а заканчивается объектно-ориентированным программированием классовых иерархий и обобщенным программированием, использующим шаблоны языка С+а, Показано, что каждая из парадигм строится поверх ее предшественницы, каждая вносит что-то новое в совокупный рабочий инструментарий С++-программиста, и что каждая парадигма основывается на проверенных временем и практикой подходах к проектированию и разработке программ.

Изложение материала в последующих разделах настоящей главы не является исчерпывающим. Акцент делается на вопросах проектирования программ и на их структуре, а вовсе не на тонкостях и деталях самого языка. На данном этапе важнее понять, что именно можно сделать с помощью языка С++, а не то, как этого достичь практически.

2.3. Процедурное программирование Исходная парадигма процедурного программирования звучит так: Решите, какие процедуры нужны; используйте наилучшие алгоритмы. Здесь акцент делается на процессе обработки данных, в первую очередь на алгоритме необходимых вычислений. Языки поддерживают эту парадигму, предоставляя механизмы передачи аргументов функциям и получения их возврата (то есть вычисленного значения функции). Литература по процедурному программированию наполнена обсуждением способов передачи аргументов и различением их типов, классификацией видов функций бпроцедур, подпрограмм и макросов) и т.п. Функция извлечения квадратного корня является типичным примером «хорошего стиля» для процедурной парадигмы. Получив аргумент в виде числа с плавающей точкой двойной точности, она вырабатывает искомый результат.

Для этого она выполняет хорошо известные математические вычисления: йоиЫе ватт!йоиЫе иге) ( Д код для вычисления квадратного корня ) тоги'у ( ) Глава 2. Обзор языка С++ 62 ! йоиЫе гооз2 = зцгз (2) У... ) Фигурные скобки, ( ), в языке С++ предназначены для группировки. Здесь они указывают начало и конец тела функции. Двойная наклонная черта, //, означает начало комментария, который занимает всю оставшуюся часть строки. Ключевое слово чоЫ указывает здесь на отсутствие у функции возвращаемого значения (возврата).

С точки зрения организации программ, функции используются для наведения порядка в хаосе алгоритмов. Сами алгоритмы записываются с помошью функциональных вызовов и других средств языка. В следующих подразделах бегло рассматриваются простейшие средства языка С++, предназначенные для организации вычислений. 2.3.1. Переменные и простейшая арифметика Каждое имя в программе и каждое выражение имеют определенный тип, задающий набор допустимых для них операций.

К примеру, следующее объявление !п! !псЬ! устанавливает, что злей относится к типу !лг, то есть !лсл является целочисленной переменной. Обьявление является оператором (зта!етеп!), вводящим имя в программу. Оно связывает имя с типом. Тип определяет, что Можно (допустимо) делать с именем или выражением. Язык С++ имеет ряд встроенных типов, имеюших непосредственное отношение к устройству электронных узлов (процессор и оперативная память) компьютера.

Например: //логический, возможные значения - )гие и /а!зе /У символьный, например, 'а', 'з', и '9' /У целый, например, 1, 42, и 121б // вещественные числа с двойной точностью, например, 3.!4 и 299793.0 Ьоо! сйаг !п! ИоиЫе // плюс, упорный и бинарный //минус, укорный и бинарный // умножение // деление // остаток от деления (второй операнд не может иметь тип // с плавающей запятой) Для заданного компьютера переменная типа сйаг имеет естественный размер, используемый для хранения символа (как правило, один байт), а переменная типа зп! — естественный размер, используемый для вычислений с целыми числами (обычно называемый словам). С любой комбинацией этих типов можно выполнять следующие арифметические операции: 2.3.

Процедурное программирование А также операции сравнения; 77 равно 77 не равно УУменыие чем 77 болыие чем УУменьще или равно 77 болыие или равно Для арифметических операций и операций присваивания С++ выполняет имеющие очевидный смысл преобразования типов, так что их можно использовать смешанным образом: 77 функция, не возвращающая значение Как н в языке С, знак = используется для операции присваивания, а знак == используется для операции сравнения на равенство.

2.3.2. Операторы ветвления и циклы Язык С++ обеспечивает общепринятый набор операторов ветвления и цикла. Для примера рассмотрим функцию, выводящую приглашение к вводу и возвращающую булевское (логическое) значение, зависящее от ввода пользователя: Ьоо1 ассерг() ( сонг« "Во уои таят зо ргосееа (у ог и) З ~п"; 77 вывести вопрос сйаг апвиег = О; ст» апзюег; (7(апзеег == 'у' ) ге(ига ггие; ге1игп 7а(лег ) 77 считать ответ Операция «(«вставить в поток») используется как операция вывода, а саит представляет собой стандартный поток вывода. Операция» (»извлечь из потока») используется как операция ввода, а саа представляет собой стандартный поток ввода.

Правый операнд операции» принимает введенное значение, причем само это значение зависит от типа операнда. Символ ~п в конце выводимой строки означает переход на новую строку. Приведенный пример можно слегка улучшить, если явно отреагировать на ответ 'и': Ьоо1 ассер(2 ( ) ( сонг « "Ро уои »ганг го ргосей(у ог п) З',п" ( 77 вывести вопрос сааг апзюег = О; с(п»апзщег; 77 считать ответ го(О лоте (ипсиоп ( ) ( »(оиЫе О = 2.2» Ьи(= 7; Н = аИ; 1= а*1; 77 инициализировать число с плавающей запятой 77 инициализировать целое число У присвоить сумму переменной а 77 присвоить произведение переменной 1 Глава 2. Обзор языка С++ вп асд (апв!гег) ( саве 'у': ге!иги Йие; саве 'и': ге!и!и га(ве ! Фегаи!! ! сои!« "1'» га/ге Йа! 1ог а ио.

~и"; ге!ига „гагве ! ) Оператор в!в1гс1! сравнивает заданное значение с набором констант. Константы в разных саяе-ветвях должны быть разными, и если проверяемое значение не совпадает ни с одной из них, то выбирается в(еуаи11-ветвь. Программист, в общем случае, не обязан реализовывать !1е1аи1г-ветвь.

Редкая программа совсем не использует циклов. В нашем примере мы могли бы дать пользователю несколько попыток ввода: ооо1 ассергЗ () ( 1п! !г(ев = 1; !г))11е (и(ев < 4) ( сои! « "Ро уои !ваи! !о ргосее4 (у ого) З' и" ! /Увывести вопрос сг!аг апвтег = О! с(и» аивиег! /У считать ответ в!г(гс)! (апвп ег) ( саве 'у': ге(игп !гие! саве 'п': ге!иги 1а1ве ! Ые1аи11: сои! « "Яог!у, 1 Мои '! ипаегвгапй Йа!. ~и" ! и1ев = гг(ев + 1 ! ) ) сои! « "1'Н !иве Йа! 1ог а по.

~п" ! ге!ига 1а!ве ! Оператор цикла )ггг11е исполняется до тех пор, пока его условие не станет равным уа1ве (влоись»). 2.3.3. Указатели и массивы Массив можно объявить следующим образом; сваг г(10) ! //массив из 10 символов 2 4 Модульное программирование Указатель объявляется так, как показано ниже: с)заг* р; //укоэатель на символ В этих объявлениях () означает «массив», а * означает «указатель».

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5301
Авторов
на СтудИзбе
416
Средний доход
с одного платного файла
Обучение Подробнее