- •Вопрос 5 Скалярные типы и выражения. Приведите пример простой программы.
- •Вопрос 6 Типы операций: операции присвоения и отношения. Примеры. Операция присваивания.
- •Вопрос7 Типы операций: логические, битовые и условные операции.
- •10) Условные операторы. Варианты условных операторов. Пример: Даны целые числа X, y. Вычислить max(X, y).
- •11) Условные конструкции. Оператор switch. Приведите примеры
- •12. Условные и циклические конструкции. Виды конструкций, что общего у них.
- •13.Циклические конструкции. Виды конструкций.
- •14Циклические констрккции.Цикл while
- •Вопрос15 Циклические конструкции. Цикл do...While. Приведите примеры.
- •Вопрос16 Циклические конструкции. Цикл for. Приведите примеры. Циклические конструкции. Цикл for
- •Вопрос17 Цикл for. Использование операции "запятая". Приведите примеры.
- •Вопрос18 Укажите особенности операторов go to, break, continue, return.
- •20Этапы решения задач на компьютере
- •21 Назначение препроцессора .Примеры использования директив препроцессора
- •1. Замена идентификаторов заранее подготовленными последовательностями символов;
- •2. Включение в программу текстов из указанных файлов;
- •3. Исключение из программы отдельных частей ее текста, условная компиляция;
- •4. Макроподстановка, то есть замена обозначения параметризованным текстом, формируемым препроцессором с учетом конкретных аргументов.
- •23Основные возможности функции scanf(). Приведите примеры
- •25Арифметические операции. Приведите примеры.
- •27 Указатели и адреса
- •28 Общие сведения о массивах
- •29Многомерные массивы. Работа с массивами с помощью указателей
- •30Общие сведения о функциях. Определение функции
- •31 Класс памяти (auto)
- •32Внешний класс памяти (extern)
- •33 Внешние глобальные объекты (extern)
- •33Внешние статические объекты (static).
- •34 Строки
- •35 Функция для работы со строками
12. Условные и циклические конструкции. Виды конструкций, что общего у них.
Условная конструкция if...else Общий вид условного оператора:
if (<выражение>)
<оператор1>;
else
<оператор2>;
а также его сокращенная форма:
if (<выражение>) <оператор1>;
Вначале вычисляется значение выражения. Если его значение отлично от нуля, то выполняется оператор1. Если его значение равно нулю, и если есть else-часть, то выполняется оператор2. Если значение выражения равно нулю, но конструкция else отсутствует (имеется в наличии сокращенная форма условного оператора), то никаких действий в этом операторе не выполняется, а осуществляется переход к следующему оператору.
Примеры:
if (х > 0) {x = -x; a =2*b;} //Полная условная конструкция.
else { int i = 2; x *=i; a=b/x;}
if (a<0) a=-a; //Сокращенная условная конструкция.
При использовании блоков (то есть составных операторов с определениями и описаниями) нельзя забывать о локализации определяемых в блоке объектов. Например, следующая конструкция будет ошибочной:
if (j>0) {int i; i=2*j;} else i=-j;
так как переменная i локализована в блоке и не существует вне его.
Приведем несколько примеров использования этого оператора.
________________________________________
Пример Нахождение наибольшего из двух целых чисел a и b.
#include <iostream.h>
main ()
{
int a,b;
cout<<"Введите первое число - ";
cin>>a;
cout<<endl<<"Введите второе число - ";
cin>>b;
if (a==b) //"Внешняя" условная конструкция.
cout<<"Заданные числа равны."<<endl;
else
if (a>b) //"Внутреняя" условная конструкция.
cout<<"Первое число больше второго."<<endl;
else
cout<<"Второе число больше первого."<<endl;
}
13.Циклические конструкции. Виды конструкций.
Циклические конструкции применяют для повторения некоторого блока кода на основании условия цикла. В языке С используются циклические конструкции while, for и do-while.
Конструкция while
Цикл while имеет следующий синтаксис.
while (условное_выражение)
{
// Выполнение тела цикла, если выражение истинно
}
Другими словами, циклы while имеет смысл использовать в тех случаях, ко¬гда соответствующий оператор или блок операторов необходимо выполнять до тех пор, пока условное выражение истинно. Пример формирования строки, со¬стоящей из нечетных цифр:
int с, i;
const char str[] = "0123456789";
char OddNums[5]; //Строка для хранения нечетных цифр
с = 0; //Счетчик циклов
i = 0; //Индекс массива OddNums
while (с < 10) //До тех пор, пока с меньше 10, . ..
{
//Если остаток от деления с на 2 = 1, то записываем в i-ю позицию массива OddNums с-й
//элемент строки str, после чего значение i автоматически инкрементируется
if ((с % 2) == 1) OddNums[i++] = str[c];
с++; //с = с + 1 .
}
Конструкция for
Цикл for имеет следующий синтаксис.
for (выражение1; выражение2; выражение3)
{
// Выполнение тела цикла
}
Выражение 1 выполняется только один раз при входе в цикл, и обычно пред¬ставляет собой оператор присваивания некоторого начального значения счетчику цикла. Выражение2 — это условное выражение, определяющее момент выхода из цикла (цикл выполняется до тех пор, пока оно равно TRUE или 1).
Выражение3 — еще один оператор присваивания, в котором обычно изменяется счетчик цикла или некоторая переменная, влияющая на выполнение условия в выражении2. Вы-ражения могут быть представлены любыми операторами, включая пустые (то есть, вместо выражения можно поставить только символ точки с запятой).
Циклы while и for в большинстве случаев взаимозаменяемы. Так, представ¬ленный выше пример для цикла while, можно переписать в следующем виде:
int с, i; ,
const char str[] = "0123456789";
char OddNums[5]; //Строка для хранения нечетных цифр
i = 0; //Индекс массива OddNums
for (с =0; с < 10; с++) //До тех пор, пока с меньше 10,...
if ((с % 2) == 1) OddNums[i++] = str[c];
В одних ситуациях удобнее применять циклы for, в других — while. Досто¬инством циклов for является более наглядная инициализация и организация из¬менения счетчика цикла, С другой стороны, циклы while более гибкие и обеспе¬чивают больше возможностей для реализации нестандартных программных реше¬ний при организации повторяющихся вычислений.
Например:
Пусть нам надо посчитать сумму 10 чисел введенных пользователем с клавиатуры.
#include <stdio.h>
int main(void){
int i,summ=0, temp=0;
for (i=0;i<10;i++){
printf("\nVvedite chislo: ");
scanf("%d",&temp);
summ+=temp;
}
printf("Summa vvedennih chisel = %d\n",summ);
return(0);
}
Конструкция do-while
Кроме циклов while и for, в которых вначале выполняется проверка истин¬ности условия цикла, и только потом управление передается блоку операторов цикла, в языке C имеется также конструкция do-while. Она отличается от первых двух тем, что в ней вначале выполняется блок операторов, и только потом прове¬ряется выполнение условия. Другими словами, цикл do-whileвсегда выполняет¬ся как минимум один раз, вне зависимости от условия цикла.Цикл do-while имеет следующий синтаксис:
do
{
// Выполнение блока операторов цикла
}
while (условное_выражение);
