Разработка на C/C++: различия между версиями
Vovan (обсуждение | вклад) (Новая: =Типы данных= ==Концепция== '''Тип данных определяет:''' * ''внутреннее представление'' данных в памяти комп...) |
Vovan (обсуждение | вклад) (→Операторы ветвления) |
||
| (не показаны 24 промежуточные версии этого же участника) | |||
| Строка 5: | Строка 5: | ||
* ''множество значений'', которые могут принимать величины этого типа; | * ''множество значений'', которые могут принимать величины этого типа; | ||
* ''операции и функции'', которые можно применять к величинам этого типа; | * ''операции и функции'', которые можно применять к величинам этого типа; | ||
| + | ==Типы данных== | ||
| + | Все типы данных языка С++ можно разделить на ''основные'' и ''составные''. | ||
| + | |||
| + | ===Шесть основных типов данных=== | ||
| + | Основные (''стандартные'') типы данных часто называют ''арифметическими'', поскольку их можно использовать в арифметических операциях. Для описания основных типов определены следующие '''ключевые слова''': | ||
| + | |||
| + | * int (целый); | ||
| + | * char (символьный); | ||
| + | * wchar_t (расширенный символьный); | ||
| + | * bool (логический); | ||
| + | * float (вещественный); | ||
| + | * double (вещественный с двойной точностью); | ||
| + | |||
| + | Первые четыре типа называют челочисленными (''целыми''), а последние два - ''типами с плавающей точкой.'' Код, который формирует компилятор для обработки целых величин, отличается от кода для величин с плавающей точкой. | ||
| + | |||
| + | Существует четыре ''спецификатора типа'', уточняющих внутреннее представление и диапазон значений стандартных типов: | ||
| + | |||
| + | * short (короткий) | ||
| + | * long (длинный) | ||
| + | * signed (знаковый) | ||
| + | * unsigned (беззнаковый) | ||
| + | |||
| + | ====Целый тип (int)==== | ||
| + | Размер типа '''int''' не определяется стандартом, а зависит от компьютера и компилятора. Для 16-разрядного процессора под величины этого типа отводится 2 байта, для 32-разрядного - 4 байта. | ||
| + | |||
| + | При использовании типа со спецификатором ''short'' под число отводится 2 байта '''независимо от разрядности процессора'''. | ||
| + | |||
| + | При использовании типа со спецификатором ''long'' под число отводится 4 байта. | ||
| + | |||
| + | ====Символьный тип (char)==== | ||
| + | Под величину символьного типа отводится количество байт, достаточное для размещения любого символа из набора символов для данного компьютера. Как правило это 1 байт. Этот тип может быть как со знаком, так и без знака. В величинах со знаком можно хранить значения в диапазоне от '''-128''' до '''127'''. При использования спецификатора ''unsigned'' значения могут находиться в пределах от '''0''' до '''255'''. | ||
| + | |||
| + | ====Расширенный символьный тип (wchar_t)==== | ||
| + | |||
| + | Тип ''wchar_t'' предназначен для работы с набором символов, для кодировки которых недостаточно 1 байта, например, Unicode. Размеры этого типа зависят от реализации; как правило, он соответствует типу ''short''. Строковые константы типа ''wchar_t'' записываются с префиксом '''L''', например '''L"Preved"'''. | ||
| + | |||
| + | ====Логический тип (bool)==== | ||
| + | |||
| + | Величины логического типа могут принимать только значения '''true''' и '''false''', являющиеся зарезервированными словами. Внутренняя форма представления значения '''false''' - 0 (нуль). Любое другое значение интерпретируется как '''true'''. При преобразовании к целому типу '''true''' имеет значение 1. | ||
| + | |||
| + | =Операторы ветвления= | ||
| + | ==Условный оператор '''if'''== | ||
| + | Условный оператор '''if''' используется для разветвления процесса вычисления на два направления | ||
| + | |||
| + | '''Формат оператора:''' | ||
| + | |||
| + | '''if ('''выражение''') {'''оператор_1''';'''оператор_2;'''} [else {'''оператор_3''';'''оператор_4''';}];''' | ||
| + | |||
| + | [[Изображение:struct.png|left|3000px|thumb|Структурная схема условного оператора]]<br clear="all"> | ||
| + | |||
| + | Пример использования условного оператора можно посмотреть | ||
| + | [[Пример3: Программа вычисления квадратного уравнения (с использованием условного оператора if)|здесь]] | ||
| + | |||
| + | ==Условная операция== | ||
| + | |||
| + | Условная операция является трехоперандной и имеет синтаксис: | ||
| + | |||
| + | '''Формат оператора''' | ||
| + | |||
| + | переменная=выражение? значение1:значение2; | ||
| + | |||
| + | Пример: '''max=(a>b)?a:b;''' - Если '''a>b''' , то '''a=a''', а '''b=b'''. В противном случае - наоборот: '''a=b''', '''b=a''' | ||
| + | |||
| + | ==Оператор '''switch'''== | ||
| + | |||
| + | Оператор switch (переключатель) предназначен для разветвления процесса вычислений на несколько направлений. | ||
| + | |||
| + | '''Формат оператора''' | ||
| + | |||
| + | '''switch ('''выражение'''){''' | ||
| + | '''case''' константное_выражение_1''': ['''список_операторов_1'''] | ||
| + | '''case''' константное_выражение_1''': ['''список_операторов_1'''] | ||
| + | ... | ||
| + | '''case''' константное_выражение_1''': ['''список_операторов_1''']''' | ||
| + | '''[default:''' список операторов''']''' | ||
| + | '''}''' | ||
| + | |||
| + | [[Изображение:switch.png|2000px|left|thumb|Структурная схема оператора switch]]<br clear="all"> | ||
| + | |||
| + | Пример использования оператора switch можно посмотреть | ||
| + | [[Пример4: Бессмысленная программа вывода на консоль названия дня недели в соответствии с введенной цифрой|здесь]] | ||
| + | |||
| + | ==Оператор цикла спараметром ('''оператор for''')== | ||
=Задачи= | =Задачи= | ||
Текущая версия на 15:18, 12 ноября 2008
Содержание
Типы данных
Концепция
Тип данных определяет:
- внутреннее представление данных в памяти компьютера;
- множество значений, которые могут принимать величины этого типа;
- операции и функции, которые можно применять к величинам этого типа;
Типы данных
Все типы данных языка С++ можно разделить на основные и составные.
Шесть основных типов данных
Основные (стандартные) типы данных часто называют арифметическими, поскольку их можно использовать в арифметических операциях. Для описания основных типов определены следующие ключевые слова:
- int (целый);
- char (символьный);
- wchar_t (расширенный символьный);
- bool (логический);
- float (вещественный);
- double (вещественный с двойной точностью);
Первые четыре типа называют челочисленными (целыми), а последние два - типами с плавающей точкой. Код, который формирует компилятор для обработки целых величин, отличается от кода для величин с плавающей точкой.
Существует четыре спецификатора типа, уточняющих внутреннее представление и диапазон значений стандартных типов:
- short (короткий)
- long (длинный)
- signed (знаковый)
- unsigned (беззнаковый)
Целый тип (int)
Размер типа int не определяется стандартом, а зависит от компьютера и компилятора. Для 16-разрядного процессора под величины этого типа отводится 2 байта, для 32-разрядного - 4 байта.
При использовании типа со спецификатором short под число отводится 2 байта независимо от разрядности процессора.
При использовании типа со спецификатором long под число отводится 4 байта.
Символьный тип (char)
Под величину символьного типа отводится количество байт, достаточное для размещения любого символа из набора символов для данного компьютера. Как правило это 1 байт. Этот тип может быть как со знаком, так и без знака. В величинах со знаком можно хранить значения в диапазоне от -128 до 127. При использования спецификатора unsigned значения могут находиться в пределах от 0 до 255.
Расширенный символьный тип (wchar_t)
Тип wchar_t предназначен для работы с набором символов, для кодировки которых недостаточно 1 байта, например, Unicode. Размеры этого типа зависят от реализации; как правило, он соответствует типу short. Строковые константы типа wchar_t записываются с префиксом L, например L"Preved".
Логический тип (bool)
Величины логического типа могут принимать только значения true и false, являющиеся зарезервированными словами. Внутренняя форма представления значения false - 0 (нуль). Любое другое значение интерпретируется как true. При преобразовании к целому типу true имеет значение 1.
Операторы ветвления
Условный оператор if
Условный оператор if используется для разветвления процесса вычисления на два направления
Формат оператора:
if (выражение) {оператор_1;оператор_2;} [else {оператор_3;оператор_4;}];
Пример использования условного оператора можно посмотреть здесь
Условная операция
Условная операция является трехоперандной и имеет синтаксис:
Формат оператора
переменная=выражение? значение1:значение2;
Пример: max=(a>b)?a:b; - Если a>b , то a=a, а b=b. В противном случае - наоборот: a=b, b=a
Оператор switch
Оператор switch (переключатель) предназначен для разветвления процесса вычислений на несколько направлений.
Формат оператора
switch (выражение){
case константное_выражение_1: [список_операторов_1]
case константное_выражение_1: [список_операторов_1]
...
case константное_выражение_1: [список_операторов_1]
[default: список операторов]
}
Пример использования оператора switch можно посмотреть здесь
Оператор цикла спараметром (оператор for)
Задачи
Задача 1
Задание
Напишите рекурсивную функцию, которая принимает массив и размер массива как аргументы и возвращает наибольший элемент массива. Функция должна рекращать свою работу и возвращаться, если принимаемый массив имеет один элемент.

