- •1.2Типы данных
- •1.2.1Объявление переменной
- •1.2.2Категории типов данных
- •1.2.3Целый тип данных
- •1.2.4Данные с плавающей точкой (вещественные типы)
- •1.3Знаки операций
- •1.3.3Простое присваивание
- •1.3.4Составное присваивание
- •1.3.5Приоритеты операций и порядок вычислений
- •1.4Структура и компоненты программы на языке си
- •1.5Организация ввода-вывода в стиле си
- •1.6.1 Манипуляторы и форматирование ввода-вывода
- •1.7Математические функции
- •2Алгоритм. Элементы структурного программирования
- •2.1Понятие алгоритма
- •2.2Основные требования к алгоритмам
- •2.3Элементы структурного программирования
- •3Программирование алгоритмов линейной структуры
- •4Алгоритмы и программы ветвящейся структуры. Условный оператор if. Переключатель switch
- •4.1Алгоритмы и программы ветвящейся структуры
- •4.1.1Условный оператор if
- •If (выражение) оператор1;
- •4.1.2Логические операции
- •4.2Примеры составления алгоритмов и программ с использованием условного оператора If
- •4.3Переключатель switch
- •5Алгоритмы и программы циклической структуры
- •5.1 Понятие цикла. Разновидности циклов
- •5.3Оператор while
- •5.4Оператор do while
- •5.5Оператор continue
- •6Регулярные типы данных. Массивы
- •6.1 Понятие регулярного типа
- •6.2Алгоритмы сортировки массивов
- •6.3 Постановка задачи сортировки и методы её решения
- •6.4Алгоритм прямого упорядочения (Алгоритм сортировки выбором элемента)
- •6.5Алгоритм попарного сравнения соседних элементов («пузырьковая» сортировка)
- •6.6Алгоритм сортировки выбором элемента
- •6.7Методы доступа к элементам массивов, использование указателей
- •6.8Организация многомерных массивов. Указатели на многомерные массивы
- •7.1Описание и определение функции
- •7.2Вызов функции
- •7.3Передача параметров в функцию
- •7.4Описание прототипа функции
- •7.5Функция с переменным количеством параметров
- •7.6Понятие сигнатуры функции
- •7.7Подставляемые (встраиваемые) функции
- •7.8Передача параметров в главную функцию
- •7.9Рекурсивные вызовы функции
- •7.10Примеры составления функций
- •8Указатели
- •8.1Понятие указателя
- •8.2Инициализация указателей
- •8.3Операции с указателями
- •8.4Ссылки
- •9Структуры (struct)
- •10Динамические структуры данных
- •3.1 Односвязные списки
- •Д обавление в начало списка.
- •2 ) Добавление в середину списка.
- •У даление первого элемента списка.
- •3 )Удаление элемента из середины списка.
- •Int Data; //поле данных
- •If (!q) //...И он первый в списке
- •3.2 Стек
- •3.3 Очередь
- •11Динамические массивы
- •12Функции и массивы
- •13Указатели на функции
- •14.1Файловый ввод/вывод с помощью потоков
- •14.2 Дополнительные функции файлового ввода/вывода
- •14.3Режимы файлов
- •14.4 Двоичные файлы
- •14.5Произвольный доступ к файлам
- •Список использованных источников
4.2Примеры составления алгоритмов и программ с использованием условного оператора If
П ример 4.1. Определить большее из двух целых чисел A и B.
Блок-схема алгоритма решения задачи:
#include<iostream.h>
void main()
{
int Max,A,B;
cout<<”\nВведите значения A и B \n”;
cin>>A>>B;
if(A>=B) Max=A;
else Max=B;
cout<<”\nЗначение Max= ”<<Max;
}
Пример 4.2. Определить принадлежит ли вводимое с клавиатуры значение A интервалу [0..5].
Блок-схема алгоритма решения этой задачи аналогична примеру 4.1.
#include<iostream.h>
void main()
{
int Max;
float A;
cout<<”\nВведите значения A и B \n”;
cin>>A;;
if((A>=0)&&(A<=5))
cout>>”\nЗначение ”<<A<<”принадлежит отрезку [0..5]”;
else
cout>>”\nЗначение ”<<A<<”не принадлежит отрезку [0..5]”;
}
Пример 4.3. Значения переменных X, Y, Z вводятся с клавиатуры. Если X Y Z, то все значения возвести в квадрат, при X >Y >Z каждое из них разделить на 2, в противном случае изменить знаки чисел. Изменённые значения переменных вывести на экран.
Обратите внимание, что при решении данной задачи в каждой ветви условного оператора необходимо использовать составной оператор.
Блок-схема алгоритма решения задачи:
#include<iostream.h>
void main()
{
int X,Y,Z;
cout<<”\nВведите значения X, Y и Z \n”;
cin>>X>>Y>>Z;
if((X<=Y)&&(Y<=Z)){ X*=X;Y*=Y;Z*=Z;}
else if ((X>Y)&&(Y>Z)) {X/=2; Y/=2; Z/=2;}
else {X=-X;Y=-Y;Z=-Z;}
cout<<”\nX= ”<<X<<”\tY=”<<Y<<”\tZ=”<<Z<<endl;
}
4.3Переключатель switch
Переключатель switch очень удобен при программировании, особенно когда возможно большое количество вариантов решения задачи.
switch (выражение ) оператор
Оператор в этом случае представляет собой тело переключателя, практически всегда является составным и имеет такой вид:
{ case константа-1 : операторы
case константа-2 : операторы
............................
default : операторы
}
Выполнение переключателя состоит в вычислении управляющего выражения и переходе к группе операторов, помеченных case-меткой, равной управляющему выражению, если такой case-метки нет, выполняются операторы по метке default. Пункт default может отсутствовать и тогда, если управляющему выражению не соответствуют ни одна case-метка, весь переключатель эквивалентен пустому оператору. Следует учитывать, что при выполнении переключателя происходит переход на оператор с выбранной case-меткой и дальше операторы выполняются в естественном порядке. Например, в переключателе
switch (count)
{ case 1 : x=1;
case 2 : x=2;
case 3 : x=3;
default : x=4;
}
если значение count равно 1, то после перехода на case 1 будут выполнены все операторы, в результате x станет равным 4. Чтобы разделить ветви переключателя, в конце каждой ветви нужно записать оператор break, не имеющий операндов. По этому оператору происходит выход из переключателя к следующему оператору программы:
switch (count)
{ case 1 : x = 1; break;
case 2 : x = 2; break;
case 3 : x = 3; break;
default : x = 4;
}
Теперь в зависимости от значения count будет выполняться только одна ветвь переключателя и x будет принимать одно из четырех предусмотренных значений.
Блок-схема алгоритма для представленного фрагмента выглядит так: