- •Этапы создания исполняемой программы
- •Идентификаторы
- •Ключевые слова
- •Комментарии
- •Структура программы
- •Вывод данных
- •Ввод данных
- •Вопросы для самоконтроля
- •Тема 1.1(2). Типы данных. Константы и переменные
- •Основные (стандартные) типы данных
- •Область действия переменных
- •1.3.1. Математические операции
- •1.3.2. Простое присваивание
- •1.3.3. Составное (сложное) присваивание
- •1.3.4. Операция приведения (преобразования) типов
- •1.3.5. Операции отношения
- •1.3.7. Операция sizeof
- •1.3.8. Операция "запятая" (,)
- •1.3.9. Условная операция (?:)
- •1.3.10. Указатель. Определение адреса переменной
- •1.3.11. Директива define
- •1.3.12. Директива include
- •1.3.13. Примеры программ
- •1.3.14. Вопросы для самоконтроля
- •Тема 1.3. Программирование алгоритмов различной структуры
- •Базовые конструкции структурного программирования
- •Операторы ветвления
- •1.4.1. Условный оператор if
- •If (условие) оператор_1; else оператор_2;
- •If (условие) оператор_1;
- •1.4.2. Оператор выбора switch
- •Операторы цикла
- •1.4.3. Оператор while
- •1.4.4. Оператор do...While
- •1.4.5. Оператор for
- •1.4.6. Функция exit(), операторы break, continue, return
- •Стандартные математические функции
- •Тема 1.4. Ввод-вывод данных
- •Функции get() и put()
- •Функция getch()
- •Функция printf
- •Функция sprintf()
- •Тема 1.5. Функции. Локальные и глобальные переменные. Способы передачи данных.
- •1.5.1. Видимость переменных
- •1.5.2. Определение функции
- •1.5.3. Функция main
- •1.5.4. Вызов функции
- •1.5.5. Способы передачи данных
- •1.5.6. Возвращаемые значения функции
- •1.5.7. Использование прототипов функций
- •Тема 1.6(1). Массивы и указатели
- •Объявление массива
- •Доступ к элементам массива
- •Многомерные массивы
- •Указатели
- •Тема 1.6(2). Структуры и строки
- •1.6.1. Структуры
- •1 Способ – по шаблону.
- •2 Способ – при объявлении (описании) шаблона.
- •1.6.2. Способы реализации строк
- •1.6.3. Строковые константы
- •1.6.4. Указатель на символьную строку
- •1.6.5. Массив символов
- •1.6.6. Некоторые функции для работы со строками
- •1.6.7. Некоторые функции проверки и преобразования символов
- •Тема 1.7. Работа с памятью
- •Функция malloc
- •Функция free
- •Операция new
- •Операция delete
- •Тема 1.10. Динамические структуры
- •Разновидности динамических структур
- •Примеры программ (фрагментов программ) для работы с динамическими структурами
1.5.6. Возвращаемые значения функции
Если необходимо вернуть значение в вызывающую функцию, надо указать его после оператора return. Можно заключить возвращаемое значение в круглые скобки. В этом случае перед названием функции указывается тип возвращаемого значения.
Пример функции, которая возвращает среднее арифметическое от введенных 3-х чисел.
#include<iostream.h>
float sred (float nl, float n2, float n3) // объявление функции sred
{
int s;
s=( n1 + n2 + n3)/ 3;
return s;
}
main()
{
float num1, num2, num3;
int avg;
cout<<"\n Введите три числа";
cin>>num 1>>num2>>num3 ;
avg=sred (numl, num2, num3); // вызов функции sred
cout<<"\n Среднее значение= "<< avg;
return 0;
}
Замечание
Хотя функция может получать более одного параметра, она возвращает только одно значение в вызывающую функцию. Если функция должна изменять более одного значения, их необходимо передавать по адресу. Оператор return не может возвращать несколько значений. Если функция не возвращает никакого значения, то перед ее именем указывается слово void. В этом случае оператор return можно опустить.
1.5.7. Использование прототипов функций
В программе можно сначала описывать вызываемые функции, а затем главную функцию main (как это делалось во всех выше описанных примерах). Чтобы изменить порядок описания функций необходимо использовать прототип функций. Прототип функции выглядит так же как ее заголовок, только с точкой запятой в конце. Прототип функции можно использовать, даже если эта функция не возвращает результат или нет необходимости передавать в нее значения (т.е. у нее нет параметров).
Предыдущий пример, записанный при помощи прототипов функций:
#include <iostream.h>
float sred (float nl, float n2, float n3); // прототип (объявление) функции sred
main()
{
float num1, num2, num3;
int avg;
cout<<"\n Введите три числа";
cin>>num1>>num2>>num3 ;
avg=sred (numl, num2, num3); // вызов функции sred
cout<<"\nСреднее значение= "<< avg;
return 0;
}
float sred (float nl, float n2, float n3) // определение функции sred
{
int s;
s=(n1 + n2 +n3) / 3; //тело функции sred
return s;
}
Использование прототипов позволяет исключить возможные ошибки при передаче параметров.
Тема 1.6(1). Массивы и указатели
Цели изучения темы
-
изучить работу с одномерными и двумерными массивами;
-
изучить работу с указателями.
Объявление массива
Массив – это множество однотипных данных, объединенных под одним именем.
Формат объявления массива:
<тип элементов массива> <имя массива>[количество элементов массива]
где
тип элементов массива – любой тип данных языка С++
Пример
int mas[3]; // объявлен массив из 3 целых чисел
Нумерация в массивах начинается с нуля. Поэтому массив mas содежит элементы, которые обозначаются: mas[0], mas[1], mas[2].
Массив можно инициализировать при объявлении. В этом случае нет необходимости указывать его размер.
Пример
int mas[]={23, 25, 81}; // объявлен и инициализирован массив из 3 целых чисел
Элементы массива mas получили значения:
mas[0]= 23,
mas[1]= 25,
mas[2]= 81.
Массив символов в С++ представляет собой строку символов. При этом строка символов обязательно заканчивается признаком конца, которым служит символ ‘\0’.
Пример
char city [ ] = "Москва";
Массив city будет содержать строку из 7 элементов: 6 букв и 0-символ. 0-символ является признаком конца строки, в программе он обозначается \0.
Такой способ инициализации не подходит, если в дальнейшем в массив city потребуется занести название другого города с длинным названием.
Можно описать название города по-другому:
char city1[ ] = {'М', 'о', 'с', 'к', 'в', 'а' }
Массив city1 – это массив символов; он будет содержать 6 элементов (символов).
Примечание. В одинарных кавычках (апострофах) ‘b’ записывают символы, в двойных – строки символов, потому что последний символ строки символов – признак конца строки ‘\0’. Поэтому ‘b’ – это один символ, а “b” – два (символ b и символ конца строки).
Объявленные выше массивы city и city1 в памяти ПК представлены следующим образом:
№ |
City |
№ |
City1 |
0 |
М |
0 |
М |
1 |
О |
1 |
о |
2 |
С |
2 |
с |
3 |
К |
3 |
к |
4 |
В |
4 |
в |
5 |
А |
5 |
а |
6 |
/0 |
|
|
Вышеописанный способ инициализации возможен только при объявлении массива. В программе необходимо использовать поэлементную инициализацию:
city [0]='м';