- •1. Информация о дисциплине
- •3. Пререквизиты дисциплины
- •4. Постреквизиты дисциплины
- •5. Календарно-тематический план.
- •7. Критерии оценки
- •8. Требования преподавателя.
- •Приоритеты операций и порядок вычислений
- •Лекция 4 Операторы if
- •Простое присваивание
- •Составное присваивание
- •Побочные эффекты
- •Лекция 5 Простые (одна операция) и составные операторы. Логические операторы И и ИЛИ, НЕ.
- •Сравнение двух значений
- •ЗНАКОМСТВО С ОПЕРАТОРОМ if
- •Лекция 6 Повторение одного или нескольких операторов. Операторы цикла.
- •Лекция 7 Входной поток с именем cin и выходной поток cout. Оператор извлечения (>>) и оператор вставки (<<).
- •Лекция 8 Функции. Выполнение функции.
- •Лекция 13 Объявление переменной массива. Использование индексной переменной.
- •Лекция 14 Указатели. Использование указателя на символьную строку.
- •ПЕРЕЧЕНЬ ЗАДАНИЙ НА СРСП
- •Задание № 1.1. Типы данных в С++.
- •Задание №1.3. События в программном коде.
- •Задание № 1.4. Управляющие элементы выбора
- •Задание № 2.1. Работа со списками
- •Задание № 2.2. Документирование программы.
- •Задание № 2.3.
- •Задание № 3.1. Программные алгоритмы
- •Задание № 3.2 Поиск в массивах
- •Задание № 3.3. Процедуры и функции, их организация
- •Задание № 3.4. Структуры данных
- •ГЛОССАРИЙ
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ КАЗАХСТАН
Казахский национальный педагогический университет имени Абая
Высокоуровневые методы программирования
Учебно-методический комплекс дисциплины для обучающегося
5В070300 - Информационные системы
Алматы, 2012
УДК 004.4 (075) ББК 32.973.202 я73 В 85
Рецензенты:
д.ф.-м..н., профессор А.С. Бердышев
к.т.н.,доцент Ж.Х. Жунусова
Составители:
к.ф.-м.н., доцент К.А. Искакова старшый преподаватель М.Н. Майкотов старшый преподаватель К.А. Беделов
ISBN 9965-756-17-1
Высокоуровневые методы программирования: учебно -методический комплекс. – Алматы: Нур-Принт, 2012.- 102 стр.
Рекамендовано к изданию решением Ученного Совета физикоматематического факультета Казахского национального педагогического университета имени Абая.
Протокол № 1 от « ___» _______ 201_ года.
УДК 004.4 (075) ББК 32.973.202 я73
ISBN 9965-756-17-1
© Нур-Принт, 2012
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
Опись содержания учебно-методического комплекса дисциплины
|
Наименование документации |
Стр. |
|
|
|
|
Силлабус |
4 |
|
Тезисы лекций |
8 |
|
Краткое описание семинарских и практических занятий |
87 |
|
(планы, задания для проведения семинарских и |
|
|
практических занятий, СРСП, СРС); |
|
|
Тематика и краткое описание лабораторных и |
90 |
|
студийных работ |
|
|
Задания для самопроверки и подготовки к экзамену, в |
91 |
|
том числе тесты |
|
|
Глоссарий |
101 |
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
3
|
СИЛЛАБУС |
|
|||
|
ДИСЦИПЛИНЫ ДЛЯ СТУДЕНТОВ |
|
|||
1. Информация о дисциплине |
|
|
|
||
Наименование дисциплины |
код дисциплины |
|
количество |
|
Курс 2, |
Высокоуровневые методы |
|
|
кредитов 3 |
|
семестр 3 |
программирования |
|
|
|
|
|
Наименование |
шифр специальности |
|
Кафедра ИСО |
|
Ф-М |
Специальности |
050602 |
|
|
|
факульте |
Информационные системы |
|
|
|
|
т |
Форма обучения (дневная |
), (СО, ПСО, ВО) |
|
Язык обучения рус |
cкий |
|
Время и место проведения |
дисциплины. |
|
|||
|
Время консультаций |
|
|
|
|
Расписание рубежного контроля (неделя семестра) |
|
||||
Искакова К.А., доцент, к.ф.- |
контактная информация (телефон, e-mail) |
|
|||
м.н. |
|
|
|
|
|
|
|
|
|||
Подпись |
Заведующий кафедрой |
Сыдыков Б.Д. |
|||
2. Краткое описание дисциплины. «Высокоуровневые методы программирования» в системе подготовки специалистов
информационные системы:
•освоение теоретической и практической базы основ интегрированной среды Высокоуровневые методы программирования для более углубленного понимания технологии программирования:
•помочь студентам усвоить основы программирование на
Высокоуровневые методы программирования, дающие возможность изучать и прогнозировать процессы и явления из области будущей деятельности студентов как специалистов;
формировать умения и навыки самостоятельного анализа исследования информационных систем, развивать стремление к научному поиску путей совершенствования своей работы.
3. Пререквизиты дисциплины. Для изучения дисциплины
«Высокоуровневые методы программирования» студентам необходимо хорошее знание «Информатики» в объеме средней школы, Алгоритмизация и языки программирования.
4. Постреквизиты дисциплины Дисциплина «Высокоуровневые методы программирования» служит базой для изучения таких дисциплин как “Программное обеспечение”, “БиБД”, “Программирование ПО”, “Надежность информационных систем”.
ФКазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
4
5. Календарно-тематический план.
|
Наименование тем дисциплины |
|
|
Аудиторн |
Вид |
|
|
|||||||
|
|
|
|
|
|
|
|
|
ые занятия |
задания |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
(описание) |
Всег |
||
|
|
|
|
|
|
|
|
|
Лек |
Пр/с |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
о |
||
|
|
|
|
|
|
|
|
|
ции |
ем./ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
СР |
(ч.) |
||
|
|
|
|
|
|
|
|
недели |
(ч.) |
лаб./ |
СРСП |
|
||
|
|
|
|
|
|
|
|
|
С |
|
||||
|
|
|
|
|
|
|
|
|
(ч.) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
студ |
|
|
|
|
|
Предыстория |
программирования. |
С++: |
1 |
2 |
2 |
3 |
|
2 |
9 |
||||
|
возникновение механизации вычислений. |
|
|
|
|
|
|
|
|
|||||
|
Место |
языков |
|
программирования |
в |
2 |
2 |
2 |
3 |
|
2 |
9 |
||
|
программировании. |
|
Отличие |
высокоуровневых |
|
|
|
|
|
|
|
|||
|
языков программирования от среднего и низкого |
|
|
|
|
|
|
|
||||||
|
уровней. Основные типы в C++, Производные |
|
|
|
|
|
|
|
||||||
|
типы. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ключевые слова в языке C++. Запись констант, |
3 |
2 |
2 |
3 |
|
2 |
9 |
||||||
|
переменных, стандартных функций, выражений, |
|
|
|
|
|
|
|
||||||
|
операторов. |
Директивы, |
подключение |
|
|
|
|
|
|
|
||||
|
стандартных библиотек в языке C++. Основные |
|
|
|
|
|
|
|
||||||
|
математические операции. |
|
|
|
|
|
|
|
|
|
|
|||
|
Операторы if, switch, break. Представление о |
4 |
2 |
2 |
3 |
|
2 |
9 |
||||||
|
префиксной (до) и постфиксной (после) |
|
|
|
|
|
|
|
||||||
|
операциях увеличения. Переполнения при |
|
|
|
|
|
|
|
||||||
|
арифметических операциях. |
|
|
|
|
|
|
|
|
|
|
|||
|
Разветвляющиеся |
|
логические |
операторы. |
5 |
2 |
2 |
3 |
|
2 |
9 |
|||
|
Конструкция логического ветвления. |
|
|
|
|
|
|
|
|
|
||||
|
Операторы повторения. Форматы описания |
6 |
2 |
2 |
3 |
|
2 |
9 |
||||||
|
данных. Ввод и вывод данных. |
|
|
|
|
|
|
|
|
|
|
|||
|
Использование оператора ветвления по значению. |
7 |
2 |
2 |
3 |
|
2 |
9 |
||||||
|
Стандартные элементы управления. |
|
|
|
|
|
|
|
|
|
||||
|
Ввод данных с клавиатуры и вывод данных на |
8 |
2 |
2 |
3 |
|
2 |
9 |
||||||
|
экран. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Математические операторы и выражения. |
9 |
2 |
2 |
3 |
|
2 |
9 |
||||||
|
Некоторые встроенные функции С++. |
|
|
|
|
|
|
|
|
|
||||
0 |
Обработка |
строк. |
Стандартные |
функции |
10 |
2 |
2 |
3 |
|
2 |
9 |
|||
обработки строк |
|
|
|
|
|
|
|
|
|
|
|
|
||
1 |
Чтение данных из текстового файла. Запись |
11 |
2 |
2 |
3 |
|
2 |
9 |
||||||
данных в текстовый файл. |
|
|
|
|
|
|
|
|
|
|
||||
2 |
Использование |
значений |
параметров |
в |
12 |
2 |
2 |
3 |
|
2 |
9 |
|||
вызываемых функциях. |
|
|
|
|
|
|
|
|
|
|
||||
|
Массивы, описание массивов. Алгоритмы |
13 |
2 |
2 |
3 |
|
2 |
9 |
||||||
3 |
сортировки. |
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
Указатели |
и |
динамические |
переменные. |
14 |
2 |
2 |
3 |
|
2 |
9 |
|||
Использование указателей |
|
|
|
|
|
|
|
|
|
|
||||
5 |
Возврат результата вызова функции. Изменение |
15 |
2 |
2 |
3 |
|
2 |
9 |
||||||
значений параметров в вызываемых функциях. |
|
|
|
|
|
|
|
|||||||
|
Всего |
|
|
|
|
|
|
|
30 |
30 |
45 |
|
30 |
135 |
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
5
6. Литература для изучения (не более 10 источников)
Основная литература:
1.Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. М.: 1981
2.Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы: теория и практика. М.: 1980
3.Тейер Т., Липов М., Нельсон Э. Надёжность программного обеспечения. М.: 1981
4.Пратт Т. Языки программирования. М.: 1997
5.Безбородов Ю.М. Индивидуальная отладка программ. М.: 1982
6.Вирт Н. Алгоритмы + Данные = Программы. М.: 1985
7.Страуструп Б. Язык программирования С++. М.: 1993
8.Дьюхарст С., Старк К. Программирование на С++. Киев.: 1993
Дополнительная литература:
1.Грег Перри Самоучитель программирования, С-П.: Питер, 2002
2.Англо-русский словарь по программированию и информатике. - М. .-Русский язык.1990
3.Вирт Н. Алгоритмы + структуры данных = программы. - М.:
Мир,1985
4.Гостко А.Б., Кочковая с В. Азбука программирования. -М.: Знание, 1988
5.Джонстон Г. Учитесь программировать. - М.:Ф и С,1989
6.Левин А. Самоучитель работы на компьютере / изя-3-е. - М.: Нолидж, 1997
7.Сван Т. Основы программирования. - Киев: Диалектика, 1996
Интернет-ресурсы http://proger.h10.ru/
7. Критерии оценки
Для оценки знаний студентов применяется рейтинговый контроль на основе бальной системы. Устанавливаются текущий, рубежный и итоговый контроли. Разбалловка всех видов контроля приводится в таблице
Виды |
Вид работы (занятия) |
Оценка |
Коли- |
Сумма |
контроля |
|
(max балл) |
чество |
|
|
|
|
|
|
Рубежный |
Посещение занятий |
6 |
100 |
|
контроль №1 |
|
|
|
|
Лекционные занятия |
10 |
|
|
|
|
Практические занятия |
50 |
|
|
|
Самостоятельные работы студентов |
34 |
|
|
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
6
Продолжение таблицы
Рубежный |
Посещение занятий |
|
6 |
|
100 |
|
|
||||
контроль №2 |
|
|
|
|
|
|
|
|
|
||
Лекционные занятия |
|
10 |
|
|
|
|
|||||
|
|
|
Практические занятия |
|
50 |
|
|
|
|
||
|
|
|
Самостоятельные работы студентов |
|
34 |
|
|
|
|
||
Итоговый |
|
Экзамен |
|
100 |
|
200 |
|
300 |
|||
|
контроль |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
№ |
|
Вид |
работы |
Оценка (max балл) |
|
|
Количество |
|
Сумма |
|
|
1 |
|
|
А |
4,0 |
|
100 |
|
отлично |
|||
2 |
|
|
А- |
3,67 |
|
90-94 |
|
отлично |
|||
3 |
|
|
В+ |
3,33 |
|
85-89 |
|
хорошо |
|
||
4 |
|
|
В |
3 |
|
80-84 |
|
хорошо |
|
||
5 |
|
|
В- |
2,67 |
|
75-79 |
|
хорошо |
|
||
6 |
|
|
С+ |
2,33 |
|
70-74 |
|
удовлитворительно |
|||
7 |
|
|
С |
2,0 |
|
65-69 |
|
удовлитворительно |
|||
8 |
|
|
С- |
1,67 |
|
60-64 |
|
удовлитворительно |
|||
9 |
|
|
Д+ |
1,33 |
|
55-59 |
|
удовлитворительно |
|||
8. Требования преподавателя.
Итоговый контроль оценка знаний студента подразделяется на рубежный контроль, включая текущий и завершающий контроль (экзамен). Максимальная сумма баллов рубежного контроля по трем кредитам составляет 50 баллов, завершающего контроля 50 баллов, итого 100 баллов. Систематическая проверка оценки знаний студента по каждому виду контроля учебной дисциплины, проводимая преподавателем, ведущим учебные занятия, проводится по схеме, представленной в таблице 7. Баллы соответствуют процентам.
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
7
Лекция 1 Понятие программирования. Предыстория программирования С++ возникновение механизации вычислений.
Целью программирования является описание процессов обработки данных (в дальнейшем — просто процессов). Согласно ИФИП: данные — это представление фактов и идей в формализованном виде, пригодном для передачи и переработке в некоем процессе, а информация — это смысл, который придается данным при их представлении. Обработка данных — это выполнение систематической последовательности действий с данными. Данные представляются и хранятся на т.н. носителях данных. Совокупность носителей данных, используемых при какой-либо обработке данных, будем называть информационной средой. Набор данных, содержащихся в какой-либо момент в информационной среде, будем называть состоянием этой информационной среды. Процесс можно определить как последовательность сменяющих друг друга состояний некоторой информационной среды.
Описать процесс — означает определить последовательность состояний заданной информационной среды. Если мы хотим, чтобы по заданному описанию требуемый процесс порождался автоматически на каком-либо компьютере, необходимо, чтобы это описание было формализованным. Такое описание называется программой. С другой стороны, программа должна быть понятной и человеку, так как и при разработке программ, и при их использовании часто приходится выяснять, какой именно процесс она порождает. Поэтому программа составляется на удобном для человека формализованном языке программирования, с которого она автоматически переводится на язык соответствующего компьютера с помощью другой программы, называемой транслятором. Человеку (программисту), прежде чем составить программу на удобном для него языке программирования, приходится проделывать большую подготовительную работу по уточнению постановки задачи, выбору метода ее решения, выяснению специфики применения требуемой программы, прояснению общей организации разрабатываемой программы и многое другое. Использование этой информации может существенно упростить задачу понимания программы человеком, поэтому весьма полезно ее как-то фиксировать в виде отдельных документов (часто не формализованных, рассчитанных только для восприятия человеком).
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
8
Обычно программы разрабатываются в расчете на то, чтобы ими могли пользоваться люди, не участвующие в их разработке (их называют пользователями). Для освоения программы пользователем помимо ее текста требуется определенная дополнительная документация. Программа или логически связанная совокупность программ на носителях данных, снабженная программной документацией, называется программным средством (ПС). Программа позволяет осуществлять некоторую автоматическую обработку данных на компьютере. Программная документация позволяет понять, какие функции выполняет та или иная программа ПС, как подготовить исходные данные и запустить требуемую программу в процесс ее выполнения, а также: что означают получаемые результаты (или каков эффект выполнения этой программы). Кроме того, программная документация помогает разобраться в самой программе, что необходимо, например, при ее модификации.
Компьютерные программы, или программное обеспечение, представляют собой файлы, содержащие инструкции, которые указывают компьютеру, что следует делать. Работая в среде MS-DOS или Windows, например, файлы с расширениями ЕХЕ и СОМ содержат команды, которые компьютер может выполнять. Другими словами, файлы содержат специальные инструкции, выполняемые компьютером, обычно одну за другой, для решения определенной задачи. При создании программы указывается инструкции, которые компьютер должен выполнить.
•При создании программы используйте текстовый редактор, чтобы ввести операторы C++ в исходный файл программы.
•Для преобразования операторов программы C++ в выполнимую программу, в единицы и нули, которые понимает компьютер, используйте специальную программу — компилятор C++.
•Для изменения или исправления программы используйте текстовый редактор.
•При нарушении одного (или более) правил программирования на C++ компилятор выдаст на экран сообщения о синтаксических ошибках.
Программирование представляет собой процесс определения последовательности инструкций, которые должен выполнить компьютер для решения определенной задачи. Для указания этих инструкций используется язык программирования, например C++. С
ФКазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
9
помощью текстового редактора вносится программные операторы в исходный файл. Используется специальная программа — компилятор
— для преобразования операторов из формата, в единицы и нули, которые понимает компьютер.
Создание простой программы: #include <iostream.h>
void main(void)
{
cout << "Учимся программировать на языке C++!";
}
Компиляция программы:
Компьютер работает с комбинациями единиц и нулей (называемых машинным языком), которые представляют наличие или отсутствие электрических сигналов. Если сигнал равен единице (наличие), компьютер может выполнить одну операцию, а если сигнал равен нулю (отсутствие), компьютер может выполнить другую операцию. Однако к счастью, нет необходимости писать программы в нулях и единицах (как это делали программисты в 1940 и 50 гг.). Вместо этого специальная программа — компилятор C++ — преобразует операторы программы (ваш исходный код) в машинный язык. Другими словами, компилятор просматривает исходный файл, содержащий операторы программы на C++. Если операторы не нарушают ни одно правило языка C++, компилятор преобразует их в машинный язык (единицы и нули), который компьютер может выполнить. Компилятор хранит машинный язык в выполняемом файле, имеющем, как правило, расширение ЕХЕ. Если файл ЕХЕ существует, можно запустить программу, вводя ее имя в ответ на командную подсказку.
В зависимости от используемого компилятора, команды, которые применяется для его вызова, будут различны. Например, при использовании Borland C++ следует компилировать программу FIRST.CPP с помощью команды ВСС:
C:\> BCC FIRST.CPP <ENTER>
Представление о компиляторе При создании программы используется язык программирования
(такой как C++), чтобы указать инструкции, выполняемые компьютером. Применяя текстовый редактор, вносится операторы программы в исходный файл. Далее используется специальная программа — компилятор, которая преобразует исходный файл в машинный язык
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
10
(единицы и нули, понимаемые компьютером). Если компиляция прошла успешно, результатом будет файл выполнимой программы.
#include <iostream.h> void main(void)
{
cout << "Программировать на C++ просто!";}
Если компиляция программы прошла успешно, компилятор создаст выполнимую программу с именем EASY.EXE. Когда запустится программа, на экране появится следующее сообщение:
С.\> EASY <ENTER>
Программировать на C++ просто!
Измение исходного файла, добавляя новую строку в программу:
#include <iostream.h> void main(void)
{
cout << "Программировать на C++ очень просто!"; cout << endl << "Ждём результата!";}
Запуск исходного кода покажет на экране новую строку:
Программировать на C++ очень просто! Ждём результата!
Компилятор C++ не может создать выполнимую программу, пока не будут исправлены все синтаксические ошибки.
При создании программы на C++ следует придерживаться определенных правил, называемых правилами синтаксиса. Например, надо брать текстовые сообщения в кавычки и ставить точку с запятой после большинства операторов программ.
Лекция 2 Понятие языка программирования. Место языков программирования в программировании. Отличие высокоуровневых языков программирования от среднего и низкого уровней.
Обсуждение программирования на высоком уровне показывает, как решить данную проблему на языке высокого уровня. Хотя концепции в равной степени применимы и к Паскалю и к C. Бейсик выбирается отчасти из-за того, что он является латынью для микроЭВМ, отчасти потому, что каждый владелец IBM PC имеет его в своем распоряжении и отчасти потому, что Бейсик фирмы Microsoft предоставляет наиболее полные средства использования возможностей оборудования IBM PC по сравнению с другими языками программирования. Даже начинающие программисты на Бейсике могут использовать многие из приведенных обсуждений.
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
11
Для расширения возможностей Бейсика приведен ряд подпрограмм на машинном языке, а в приложении показано, как включать их в программы. Используя эти подпрограммы можно делать такие тонкие вещи, как перепрограммирование клавиатуры или создание дополнительных дисплейных страниц для монохромного адаптера.
Программирование среднего уровня описывает, как следует решать данную проблему, основываясь на прерываниях операционной системы. Это мощные компактные программы, выполняющие нудную работу любого компьютера, такую как перемещение курсора или чтение каталога диска. Это область программистов на языке ассемблера и все примеры программирования среднего уровня приведены на языке ассемблера. Но теперь все больше и больше трансляторов с языков высокого уровня предоставляют доступ к прерываниям, позволяя грамотному программисту проделывать операции, которые не позволяет сам язык, например, чтение абсолютного сектора диска. Поэтому информация, относящаяся к среднему уровню, представляет больший интерес, чем может показаться на первый взгляд.
Примеры программирования низкого уровня показывают, как данная проблема может быть решена на уровне микросхем. Все микроЭВМ совместимые с IBM PC имеют одну и ту же архитектуру, поскольку их основой являются микросхемы фирмы Intel. Доступ к микросхемам осуществляется через порты ввода/вывода, к которым имеется доступ практически в любом языке, включая Бейсик. Обсуждая все важные для программиста микросхемы, включая таймер, интерфейс с периферией, контроллер прерываний, контроллер дисплея, контроллер HГМД (накопителя на гибких магнитных дисках) и микросхемы управления коммуникационным каналом можно придти к мнению. Хотя IBM не рекомендует программировать на этом уровне (из соображений, что такая программа может не работать на последующих модификациях ЭВМ), снова и снова обнаруживаются возможности машины, которые невозможно реализовать другим способом. Решение некоторых задач просто невозможно на Бейсике. Для решения других не предусмотрено средств операционной системы. А некоторые так сложны на низком уровне (например, многие дисковые операции). Сравнивая различные уровни между собой можно увидеть, как спуститься от языков высокого уровня к прерываниям и, в свою
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
12
очередь, как прерывания работают с микросхемами, являющимися сердцем компьютера.
Ряд трансляторов, таких как Turbo Pascal или Lattice C, позволяют использовать функции операционной системы, среднего уровня. Кроме того, многие из процедур низкого уровня могут быть на самом деле реализованы на языках высокого уровня.
Основные типы в C++, наиболее непосредственно отвечающие средствам аппаратного обеспечения, такие:
char short int long float double
Первые типа используются для представления целых, последние два — для представления чисел с плавающей точкой. Переменная типа char размер, естественный для хранения символа на данной машине (обычно, байт), а переменная типа int имеет размер, соответствующий целой арифметике данной машине (обычно слово).
Диапазон целых чисел, которые могут быть представлены типом, зависит от его размера. В C++ размеры измеряются в единицах размера данных типа char, поэтому char по определению имеет размер единица. Соотношение между основными типами можно записать так:
1 = sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) sizeof(float) <= sizeof(double)
К основному типу можно применять прилагательное const. Это дает тип, имеющий те же свойства, что и исходный тип, за исключением того, что значение переменных типа const не может изменяться после инициалиизации.
const float pi = 3.14; const char plus = '+';
Символ, заключенный в одинарные кавычки, является символьной константой. Заметьте, что часто константа, определенная таким образом, не занимает память; просто там, где требуется, ее значение может использоваться непосредственно. Константа должна инициализироваться при описании. Для переменных инициализация необязательна. Оснований для введения локальнной переменной без ее инициализации очень немного. К любой комбинации этих типов могут применяться арифметические операции:
+ (плюс, унарный и бинарный) - (минус, унарный и бинарный) * (умножение)
/(деление)
ФКазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
13
А также операции сравнения: == (равно)
!= (не равно) < (меньше) > (больше)
<= (меньше или равно) >= (больше или равно)
Заметьте, целое деление дает целый результат: 7/2 есть 3. Над целыми может выполняться операция % получения остатка: 7%2 равно 1.
При присваивании и арифметических операциях C++ выполняет все осмысленнные преобразования между основными типами, чтобы их можно было сочетать без ограничений:
double d = 1; int i = 1;
d = d + i; i = d + i;
Производные типы Вот операции, создающие из основных типов новые типы: указатель на
*const константный указатель на & ссылка на [] вектор*
() функция, возвращающая Например:
char* p // указатель на символ
char *const q // константный указатель на символ char v[10] // вектор из 10 символов
Все вектора в качестве нижней границы индекса имеют ноль, поэтому в v десять элементов: v[0]...v[9]. Переменная указатель может содержать адрес объекта соответствующего типа:
char c;
//
p = &c; // p указывает на c
Унарное & является операцией взятия адреса.
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
14
Лекция 3 Выражения и Операторы.
В C++ имеется богатый набор операций, с помощью которых в выражениях образуются новые значения и изменяются значения
Выражения
В C++ имеется большое число операций, и они будут объясняться там, где (и если) это потребуется. Следует учесть, что операции
~(дополнение) &(И)
^ (исключающее ИЛИ) | (включающее ИЛИ)
<< (логический сдвиг влево) >> (логический сдвиг вправо)
применяются к целым, и что нет отдельного типа данных для логических действий.
Смысл операции зависит от числа операндов; унарное & является операцией взятия адреса, а бинарное & - это операция логического И. Смысл операции зависит также от типа ее операндов: + в выражении a+b означает сложение с плавающей точкой, если операнды имеют тип float, но целое сложение, если они типа int. В C++ есть операция присваивания =, а не оператор присваивания, как в некоторых языках. Таким образом, присваивание может встречаться в неожиданном контексте; например, x=sqrt(a=3*x). Это бывает полезно. a=b=c означает присвоение c объекту b, а затем объекту a. Другим свойством операции присваивания является то, что она может совмещаться с большинством бинарных операций. Например, x[i+3]*=4 означает x[i+3]=x[i+3]*4, за исключением того факта, что выражение x[i+3] вычисляется только один раз. Это дает привлекательную степень эффективности без необходимости обращения к оптимизирующим компиляторам. К тому же это более кратко. В большинстве программ на C++ широко применяются указатели.
Унарная операция * разыменовывает* указатель, т.е. *p есть объект, на который указывает p. Эта операция также называется косвенной адресацией. Например, если имеется char* p, то *p есть символ, на который указывает p. Часто при работе с указателями бывают полезны операция увеличения ++ и операция уменьшения «-- ». Предположим, p указывает на элемент вектора v, тогда p++ делает p указывающим на следующий элемент.
Операторы выражения
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
15
