теория-билеты экзамен по информатике. Система счисления это совокупность приемов и правил, по которым числа записываются и читаются
Скачать 144.81 Kb.
|
Управляющие конструкции языка: оператор if-else. Стандартные функции ввода-вывода scanf и printf. |
== | равно | 5 == 5 - это истина |
!= | не равно | 3 != 2 - это истина |
> | больше | 7 > 6 - это истина |
>= | больше или равно | 1 <= 1 - это истина |
< | меньше | 5 < 5 - это ложь |
<= | меньше или равно | 3 <= 2 - это ложь |
Структура if:
if ( условное выражение )
// тут располагается один оператор, который выполнится, если условное выражение - истинно
Пример:
if ( 7 > 6 )
printf( "Семь больше шести" );
В этом примере программа оценивает условное выражение — «семь больше шести?» Чтобы увидеть результат работы этого фрагмента кода просто вставьте его в функцию main() и не забудьте включить заголовок stdio.h, запускаем программу и видим результат — true. Конструкция оператора выбора if c фигурными скобочками:
if ( TRUE ) {
/* весь код который помещен внутрь скобок - выполнится */
}
Оператор else:
Иногда, когда условное выражение — ложное, было бы удобно, чтобы выполнялся некоторый код, отличный от того кода, который выполняется при ИСТИННОМ условии. Как же это делается?
Вот пример использования оператора if else:
if ( TRUE ) {
/* выполняется этот код, если условие истинно */
}
else {
/* выполняется этот код, если условие ложно */
}
Конструкция else if:
Обычно операторы else if используют, когда необходим множественный выбор, то есть, например, определены несколько условий, которые одновременно могут быть истинными, но нам необходимо только одно истинное условное выражение. Вы можете использовать оператор if else сразу после оператора выбора if, после его тела. В таком случае, если условие первого оператора выбора — ИСТИННО, тогда конструкция else if будет игнорироваться, тогда как в противном случае, если условие первого оператора выбора — ЛОЖНО, начнет выполняться проверка в конструкции else if. То есть если условие одного оператора if будет истинно, то другие проверяться не будут. Теперь чтобы все это хорошо закрепить в голове и понять, давайте рассмотрим простой пример с использование конструкций операторов выбора.
#include
#include
int main()
{
int age;
printf( "Сколько вам лет? " );
scanf( "%d", &age ); // ввод пользователем количества лет
if ( age < 100 ) { // если введенный возраст меньше 100
printf ("Вы очень молоды!\n" ); // показываем что программа сработала верно
}
else if ( age == 100 ) { // используем else для примера
printf( "Молодость уже позади\n" ); // \n - символ перевода на новую строку
}
else {
printf( "Столько не живут\n" ); // если ни одно из выше-перечисленных условий не подошло, то программа покажет этот вариант ответа
}
return 0;
}
Оператор-переключатель switch:
Оператор выбора switch является очень удобной заменой множественного использования операторов if. Оператор switch сравнивает значение одной переменной с несколькими константами. Основной формат для использования оператора множественного выбора switch case показан — ниже. Значение переменной указанной в условии switch сравнивается со значениями, которые следуют за ключевым словом case. Когда значение в переменной, соответствует значению в строке с оператором case, компьютер продолжит выполнение программы с этого места.
switch ( /*variable*/ ) {
case const1:
/*Тут находится код, который необходимо выполнить, если переменная variable будет равна const1*/
break;
case const2:
/*этот код выполнится, если variable будет равна const2*/
break;
/*...*/
default:
/*Код, который выполнится, если ни одно из константных значению не соответствует значение в переменной variable*/
break;
}
Когда сравниваемое значение в переменной variable совпадет с первым значением оператора case, программа начнет выполнять код, который находится между текущим оператором case и оператором break. Оператор break используется для того, чтобы прерывать ход программы в операторе switch и передавать управление следующему оператору, после switch. Если не использовать оператор break, то, сразу после того, как выполнится один блок кода, программа переключится на выполнения следующего case, даже, если константное значение не будет равно значению в переменной variable. Поэтому, в операторе выбора switch, блоки кода после case всегда должны предваряться оператором break.
Также стоит обратить внимание на ключевое слово default, оно не является обязательным, но в то же время оно необходимо для обработки неожиданных ситуаций. Например, когда значение переменной не совпадает ни с одним из значений case, в таком случае выполнится код, который находится в ветке default. Это может быть полезно, в случае, если мы не ожидаем, что ни одно из значений case не совпало со значением переменной в условии switch. В таком случае, мы увидим, что сработал код в ветке default.
Пример:
#include
int main()
{
printf( "Что бы сегодня посмотреть?\n" );
printf( "1. Стрела(Arrow)\n" );
printf( "2. Сверхъестественное(Supernatural)\n" );
printf( "3. Ходячие мертвецы(Walking Dead)\n" );
printf( "4. Выход\n" );
printf( "Ваш выбор: " );
int input;
scanf( "%d", &input );
switch ( input ) {
case 1: /* обратите внимание на двоеточие, точки с запятой тут нет */
printf( "«His Death Was Just The Beginning»\n" );
break;
case 2:
printf( "«Scary Just Got Sexy»\n" );
break;
case 3:
printf( "«Fight the dead. Fear the living»\n" );
break;
case 4:
printf( "Сегодня смотреть ничего не будем :(\n" );
break;
default:
printf( "Неправильный ввод\n" );
}
getchar();
return 0;
}
Итак, как же работает этот код? Для начала, мы сделали небольшое меню (строки 5 — 10), чтобы как-то информировать пользователя, что необходимо водить в программу. Как вы уже поняли, необходимо ввести число — 1, 2, 3 или 4. В зависимости от введенного числа, программа будет срабатывать по-разному. В данном примере очень хорошо видно, что вводимое значение сохраняется в переменную input, и после этого, значение в этой переменной передается в оператор switch, строка 13. В строках 13 — 29 объявлен оператор множественного выбора switch. Как же он работает? Очень просто, по порядку программа сравнивает переменную input со значениями 1, 2, 3 и 4 . Например, если мы ввели число 3, то программа выполнит код, который находится в строках 21-22, при вводе единицы, программа напечатает сообщение из строки 15. Ну, а, если мы ввели другое число, отличное от заданных, выполнится блок кода в строке 27.
Билет 6 (36)
Операторы цикла (while , do while, for )
1. while
Оператор while позволяет циклически выполнять определенную последовательность операторов до тех пор, пока истинно некоторое условие, проверяемое перед началом очередной итерации цикла (цикл с предусловием). Формально его синтаксис может быть описан следующей формулой:
while (expression) statement
где while - ключевое слово языка Си; expression - произвольное выражение, приводимое к логическому значению (условие продолжения итераций); statement - простой или составной оператор (тело цикла)
Если значение выражения expression истинно, то тело цикла выполняется до тех пор, пока это выражение не станет ложным, причем проверка производится всякий раз перед началом очередной итерации цикла. Если же значение выражения ложно в момент инициализации цикла, то тело цикла не выполняется ни разу и управление передается оператору, следующему за оператором while
2. do-while
Принципиальное назначение этого оператора такое же, как и оператора while. Семантическое различие двух этих операторов цикла состоит лишь в том, что в рассматриваемом случае условие продолжения проверяется после завершения очередной итерации (цикл с постусловием). В общем виде оператор do-while записывается следующим образом:
do statement while (expression);
где do и while - ключевые слова языка Си; statement - простой или составной оператор (тело цикла); expression - произвольное выражение, приводимое к логическому значению (условие продолжения итераций)
После однократного выполнения тела цикла вычисляется значение выражения expression. Если найденное значение истинно, то выполняется очередная итерация цикла. Этот процесс повторяется до тех пор, пока значение выражения не станет ложным, после чего управление передается оператору, непосредственно следующему за оператором do-while. Таким образом, тело цикла всегда будет выполнено хотя бы один раз
3. for
Оператор for объединяет в себе инициализацию переменных, проверку условия продолжения итераций и модификацию переменных перед выполнением очередной итерации
Общая форма записи оператора цикла for такова:
for (expression1; expression2; expression3) statement
где for - ключевое слово языка Си; expression1, expression2 и expression3 - произвольные выражения, причем второе из них приводится к логическому значению; statement - простой или составной оператор (тело цикла)
Любое из трех выражений, входящих в заголовок цикла, может быть опущено при сохранении следующей за ним точки с запятой
Перед началом выполнения цикла вычисляется значение инициализирующего выражения expression1 и значение выражения expression2, играющего роль условия продолжения итераций. Если expression2 истинно, то выполняется оператор statement тела цикла, вычисляется корректирующее выражение expression3 и вновь проверяется истинность выражения expression2
Этот процесс повторяется до тех пор, пока условие продолжения итераций не станет ложным, после чего управление передается оператору, следующему за оператором for. В случае отсутствия выражения expression2 ему условно присваивается постоянное значение "истина", что равносильно бесконечному циклическому процессу
Билет 7, 21, 35