Скачать презентацию Операторы Условные операторы if — else Скачать презентацию Операторы Условные операторы if — else

Условные операторы и циклы.ppt

  • Количество слайдов: 34

Операторы • Условные операторы – if - else. • Оператор цикла – while. • Операторы • Условные операторы – if - else. • Оператор цикла – while. • Сокращенные операции, операции инкремента и декремента. • Операторы цикла – for. • Оператор множественного выбора – switch. • Оператор цикла – do - while. • Использование операторов break и continue в циклах for и while. • Оператор return. • Решение различных задач.

Условные операторы – if - else. Формат оператора: if(условие) { блок операторов (если условие Условные операторы – if - else. Формат оператора: if(условие) { блок операторов (если условие истинно) } Или if( условие ) { блок операторов 1; (если условие истинно) } else { блок операторов 2; (если условие истинно) } Пример – Студент получает стипендию, если его балл не ниже 5. Написать программу, которая сообщает о том, получил студент стипендию или нет. #include #include int main() { int mark; printf( "Enter grade : " ); scanf( "%d", &mark ); if( mark >= 5 ) { printf( “Student have grant" ); } else { printf( “Student haven’t grant" ); } getch(); return 0; } //Объявление переменных //Запрос на ввод переменной //Чтение переменной по адресу mаrk //Если балл студента не ниже 5 //Сообщаем, что он получает стипендию //Иначе //Сообщаем, что не получает

Условные операторы – if - else. Пример – Студент получает стипендию, если его балл Условные операторы – if - else. Пример – Студент получает стипендию, если его балл не ниже 5. Если же балл студента больше 8, то он получает повышенную стипендию. Написать программу, которая сообщает о том, получил студент стипендию или нет. #include #include int main() { int mark; //Объявление переменных printf( "Enter grade : " ); //Запрос на ввод переменной scanf( "%d", &mark ); //Чтение переменной по адресу mаrk if( mark < 5 ) //Если балл студента ниже 5 { printf( “Student haven’t grant" ); //Сообщаем, что он получает стипендию } else //Иначе { if( grade >= 8 ) //Если балл студента выше 8 { printf( “Student have extra grant" ); //Сообщаем, что он получает повышенную стипендию } else { printf( “Student have simple grant" ); //Сообщаем, что получает обычную степендию } } getch(); return 0; }

Условные операторы – if - else. Пример – ввести 2 значения с клавиатуры и Условные операторы – if - else. Пример – ввести 2 значения с клавиатуры и вывести большее. #include #include int main() { int a, b; printf( "Enter A : scanf( "%d", &a ); printf( "Enter B : scanf( "%d", &b ); if( a > b ) { printf( "%d", } else { printf( "%d", } getch(); return 0; } " ); //Объявление переменных //Запрос на ввод переменной //Чтение переменной по адресу а " ); //Если A > B a ); //Выводим значение А //Иначе b); //Выводим значение В

Условные операторы – if - else. Пример – ввести 2 значения с клавиатуры и Условные операторы – if - else. Пример – ввести 2 значения с клавиатуры и вывести большее, или сообщить что они равны #include #include int main() { int a, b; printf( "Enter A : " ); scanf( "%d", &a ); printf( "Enter B : " ); scanf( "%d", &b ); if( a > b ) { printf( "%d", a ); } else { if( a < b ) { printf( "%d", b); } else { printf( "A equal B, %d", a ); } } getch(); return 0; } //Объявление переменных //Запрос на ввод переменной //Чтение переменной по адресу а //Если A > B //Выводим значение А //Иначе если A < B //Выводим значение В //Иначе //Сообщаем, что они равны

Условные операторы – if - else. Пример – ввести 2 значения с клавиатуры и Условные операторы – if - else. Пример – ввести 2 значения с клавиатуры и вывести большее, или сообщить что они равны #include #include int main() { int a, b; printf( "Enter A : " ); scanf( "%d", &a ); printf( "Enter B : " ); scanf( "%d", &b ); if( a > b ) printf( "%d", a ); else if( a < b ) printf( "%d", b); else printf( "A equal B, %d", a ); getch(); return 0; } //Объявление переменных //Запрос на ввод переменной //Чтение переменной по адресу а //Если A > B //Выводим значение А //Иначе если A < B //Выводим значение В //Иначе //Сообщаем, что они равны

Условные операторы – if - else. Формат оператора: Операторы сравнения (Принимают значение true, если Условные операторы – if - else. Формат оператора: Операторы сравнения (Принимают значение true, если выражение верно): a > b - больше a < b - меньше a >= b - больше либо равно a <= b - меньше либо равно a == b - равно a != b - не равно Булевы операторы ! a - не А, отрицание (Принимает значение true, если A – false, и наоборот) a && b - А и В (Принимает значение true, если A и B – true) a || b - А или В (Принимает значение true, если A или B – true)

Оператор цикла – while. Формат оператора: while( условие ) оператор; Оператор while обеспечивает многократное Оператор цикла – while. Формат оператора: while( условие ) оператор; Оператор while обеспечивает многократное повторение одного оператора, следующего за ним. Повторение происходит до тех пор, пока условие, находящееся в круглых скобках истинно. Для повторения более чем одного оператора, следует воспользоваться операторными скобками: while( условие ) { оператор 1; оператор 2; . . . оператор n; }

Оператор цикла – while. Пример 1 – вывести числа от 1 до 10. #include<stdio. Оператор цикла – while. Пример 1 – вывести числа от 1 до 10. #include #include int main() { int nom = 1; while( nom <= 10 ) { printf( "%d n", nom ); nom = nom + 1; } getch(); return 0; } //Переменная цикла //Пока переменная цикла меньше либо равна 10: //Вывести её значение //Увеличить переменную цикла на 1.

Оператор цикла – while. Пример 2 – В группе учится 10 человек. Каждый из Оператор цикла – while. Пример 2 – В группе учится 10 человек. Каждый из них получил баллы за тест от 0 до 100. Необходимо вычислить среднее арифметическое 10 введенных отметок. 1. Объявить необходимые переменные. 2. Установить счетчик в 0. 3. Установить сумму в 0. 4. Пока счетчик меньше 10: 4. 1. Ввести следующую оценку 4. 2. Прибавить оценку к сумме. 4. 3. Увеличить счетчик на 1. 5. Полученную сумму разделить на 10. 6. Вывести результат.

Оператор цикла – while. Пример 2 – В группе учится 10 человек. Каждый из Оператор цикла – while. Пример 2 – В группе учится 10 человек. Каждый из них получил баллы за тест от 0 до 100. Необходимо вычислить среднее арифметическое 10 введенных отметок. #include #include int main() { int i = 0; int sum = 0; int grade; double average; while( i < 10 ) { printf( "Enter grade (0 -100) : " ); scanf( "%d", &grade ); sum = sum + grade; i = i + 1; } average = (double)sum / 10; printf( "Average is : %. 2 lf", average ); getch(); return 0; } //Переменная цикла //Сумма всех баллов //Переменная для ввода отметки //Средняя отметка //Цикл от 0 до 9 (всего 10 проходов) //Вывод надписи на экран //Чтение введенных баллов //Суммирование введенных баллов //Увеличение переменной цикла //Получаем средний балл… //…и выводим его на экран

Оператор цикла – while. Пример 2 – Модифицируем код для достижения лучшего результата и Оператор цикла – while. Пример 2 – Модифицируем код для достижения лучшего результата и защиты от введения неверных данных. 1. Объявить необходимые переменные. 2. Установить счетчик в 0. 3. Установить сумму в 0. 4. Пока счетчик меньше 10: 4. 1. Ввести следующую оценку 4. 1. 1. Если отметка выходит за допустимые границы – вывеси сообщение и предложить ввести ещё раз. 4. 2. Прибавить оценку к сумме. 4. 3. Увеличить счетчик на 1. 5. Полученную сумму разделить на 10. 6. Вывести результат.

Оператор цикла – while. Пример 2 – Модифицируем код для достижения лучшего результата – Оператор цикла – while. Пример 2 – Модифицируем код для достижения лучшего результата – защиты от введения неверных данных. #include #include int main() { int i = 0; int sum = 0; int grade; float average; while( i < 10 ) { printf( "Enter grade (0 -100) : " ); scanf( "%d", &grade ); if( grade >= 0 && grade <= 100 ) { sum = sum + grade; i = i + 1; } else { printf( "Incorrect grade! " ); } } average = ( float )sum / 10; printf( "Average is : %f", average ); getch(); return 0; } //Переменная цикла //Сумма всех баллов //Переменная для ввода отметки //Средняя отметка //Цикл от 0 до 9 (всего 10 проходов) //Выводим надпись на экран //Чтение введенных баллов //Если отметка не выходит за пределы диапазона. . . //. . . добавляем введенные баллы //и увеличение переменной цикла //Иначе. . . //. . . сообщаем об ошибке //Получаем средний балл, приводим к типу float //Выводим его на экран

Оператор цикла – while. Пример 3 – В группе учится произвольное количество человек. Каждый Оператор цикла – while. Пример 3 – В группе учится произвольное количество человек. Каждый из них получил баллы за тест от 0 до 100. Необходимо вычислить средний балл группы. 1. Объявить необходимые переменные. 2. Установить счетчик в 0. 3. Установить сумму в 0. 4. Вести первую отметку. 5. Пока не ввели “-1”: 5. 1. Если отметка выходит за допустимые границы – вывеси сообщение об ошибке. Иначе: 5. 1. 1. Прибавить оценку к сумме. 5. 1. 2. Увеличить счетчик на 1. 5. 2. Ввести следующую оценку 6. Проверить, был ли введен хотя бы 1 результат. 7. Полученную сумму разделить на значение счетчика. 8. Вывести результат.

Оператор цикла – while. #include<stdio. h> #include<conio. h> int main() { int i = Оператор цикла – while. #include #include int main() { int i = 0; int sum = 0; int grade; float average; printf( "Enter grade (0 -100) : " ); scanf( "%d", &grade ); while( grade != -1 ) { if( grade >= 0 && grade <= 100 ) { sum = sum + grade; i = i + 1; } else { printf( "Incorrect grade! " ); } printf( "Enter grade (0 -100) : " ); scanf( "%d", &grade ); } if( i > 0 ) { average = ( float )sum / i; printf( "Average is : %2. 1 f", average ); } else printf( "No grades!" ); getch(); return 0; } //Переменная цикла //Сумма всех баллов //Переменная для ввода отметки //Средняя отметка //Вывод надписи на экран //Чтение введенных баллов //Цикл, пока не введем -1 //Если отметка не выходит за пределы диапазона. . . //. . . добавляем введенные баллы //и увеличение переменной цикла //Иначе. . . //. . . сообщаем об ошибке //Вывод надписи на экран //Чтение введенных баллов //Если были введены баллы: //Получаем средний балл, приводим к типу float //Выводим (с точность 1 знак после запятой) //Иначе //сообщаем о том, что не было введено баллов

Сокращенные операции. += -= *= /= %= a a a += 5 -= 7 Сокращенные операции. += -= *= /= %= a a a += 5 -= 7 *= 10 /=4 %= 2 a a a = = = a a a + – * / % 5 7 10 4 2

Операции инкремента и декремента. ++ a++ ++a a = a + 1 (Выполняется после Операции инкремента и декремента. ++ a++ ++a a = a + 1 (Выполняется после выполнения основноего действия) a = a + 1 (Выполняется до выполнения основноего действия) -- a---a a = a – 1 (Выполняется после выполнения основноего действия) a = a - 1 (Выполняется до выполнения основноего действия) #include #include int main() { int a = 5; printf( "%d n", a ); printf( "%d n", a++ ); printf( "%d n", a ); getch(); return 0; } #include #include int main() { int a = 5; printf( "%d n", a ); printf( "%d n", ++a ); printf( "%d n", a ); getch(); return 0; }

Максимальное упрощение кода. #include<stdio. h> #include<conio. h> int main() { int i = 0, Максимальное упрощение кода. #include #include int main() { int i = 0, sum = 0, grade; printf( "Enter grade (0 -100) : " ); scanf( "%d", &grade ); while( grade != -1 ) { if( grade >= 0 && grade <= 100 ) { sum += grade; i++; } else printf( "Incorrect grade! " ); printf( "Enter grade (0 -100) : " ); scanf( "%d", &grade ); } if( i ) printf( "Average is : %2. 1 f", ( float )sum / i ); else printf( "No grades!" ); getch(); return 0; }

Упражнение – Задания № 1 и 2 Упражнение – Задания № 1 и 2

Оператор цикла – for(<инициализация>; <условие>; <выражения приращения> ) <оператор> for(<инициализация>; <условие>; <выражения приращения> ) Оператор цикла – for(<инициализация>; <условие>; <выражения приращения> ) <оператор> for(<инициализация>; <условие>; <выражения приращения> ) { <оператор 1> <оператор 2>. . . <оператор n> } <инициализация> - инициализация переменных цикла. Может содержать более одной переменной. Примеры: for( a = 0; a < 2; a-- ); for( a = 0, b = 5; a < 2; a-- ); for( int a = 0; a < 2; a-- ); <условие> - условие продолжения цикла. Т. е. цикл продолжается если данное условие – истина. Аналогичен условию в цикле while(<условие>); <выражения приращения> - действия, выполняющиеся в конце каждого круга цикла. Примеры: for( a = 0; a < 2; a++ ); for( a = 0; a < 2; a++, b++, c -= 10 ); Последовательность срабатывания выражений следующая: инициализация > условие > оператор(если условие истинно) > выражения

Оператор цикла – for. Пример 1 – вывести числа от 0 до 10. Альтернативой Оператор цикла – for. Пример 1 – вывести числа от 0 до 10. Альтернативой циклу while является цикл for. #include #include int main() { int nom = 1; while( nom <= 10 ) { printf( "%d n", nom ); nom++; } getch(); return 0; } #include #include int main() { int nom; for( nom = 1; nom <= 10; nom++ ) printf( "%d n", nom ); getch(); return 0; } //Переменная цикла //Пока переменная цикла меньше либо равна 10: //Вывести её значение //Увеличить переменную цикла на 1. //Переменная цикла //Цикл for от 1 до 10 с шагом 1 //Вывести её значение Или ещё короче: #include #include int main() { for( int nom = 1; nom <= 10; nom++ ) printf( "%d n", nom ); getch(); return 0; } //Цикл for от 1 до 10 с шагом 1 //Вывести её значение

Оператор цикла – for. Пример 2 – вычислить сумму всех четных чисел от 2 Оператор цикла – for. Пример 2 – вычислить сумму всех четных чисел от 2 до 100. #include #include int main() { int i; int sum = 0; for( i = 2; i <= 100; i += 2 ) sum += i printf( “Sum is : %d", sum ); getch(); return 0; } //Переменная цикла //Цикл for от 2 до 100 с шагом 2 (2, 4, 6, 8, 10… все четные) //Суммируем числа //Выводим сумму на экран Пример 3 – Вычислить сумму, которая будет в банке через 10 лет при начальном взносе 10000. Использовать сложный процент размером в 5% годовых. #include #include int main() { int i; double money = 10000; double proc = 0. 05; for( i = 1; i <= 10; i++ ) { money = money + money * proc; printf( "Yere %2 d, Money : %6. 4 lf n", i, money); } getch(); return 0; } //Переменная цикла, номер года //Начальная сумма //Годовой процент //Цикл от 1 до 10 (итого - 10 лет) //Вычисление сложного процента //Вывод суммы денег на экран

Упражнение – Задания № 6 и 5 Упражнение – Задания № 6 и 5

Оператор множественного выбора – switch( переменная ) { case значение 1: операторы; break; case Оператор множественного выбора – switch( переменная ) { case значение 1: операторы; break; case значение 2: операторы; break; . . . case значение. N: операторы; break; default: операторы; break; } <переменная> - переменная, с которой осуществляется сравнение. <значение 1>, <значение 2>, … <значение. N> - значения, с которыми сравнивается переменная. Должны быть того же типа, что и переменная, и являться константами. <операторы> - действия, которые выполняются в случае, если значение переменной равно значению соответсвующего case.

Оператор множественного выбора – switch. Пример 1 – Написать простейший калькулятор с четырьмя действиями(+, Оператор множественного выбора – switch. Пример 1 – Написать простейший калькулятор с четырьмя действиями(+, -, *, /). #include #include int main() { double a, b; char c; scanf( "%lf%c%lf", &a, &c, &b ); //Читаем строку вида "число, оператор, число" switch( c ) //Сравниваем переменную с - оператор { case '+' : //если с == '+' printf( "a + b = %lf", a + b ); //выполняем сложение break; case '-' : //если с == '-' printf( "a - b = %lf", a - b ); break; case '*' : //если с == '*' printf( "a * b = %lf", a * b ); break; case '/' : //если с == '/' if( b == 0 ) //Проверяем случай деления на 0 printf( "Error : devide by 0!" ); else printf( "a / b = %lf", a / b ); break; default: //если с не равен ни одному из вышеперечисленных случаев printf( "Error : wrong operator!" ); //сообщаем об ошибке } getch(); return 0; }

Упражнение – Модифицировать калькулятор так, чтобы он считал столько выражений, сколько требуется пользователю ( Упражнение – Модифицировать калькулятор так, чтобы он считал столько выражений, сколько требуется пользователю ( вместо одного ).

Оператор множественного выбора – switch. Пример 2 – Вводятся буквы от A до D Оператор множественного выбора – switch. Пример 2 – Вводятся буквы от A до D без учета регистра. Посчитать количество каждой из введенных букв. Код программы – list 1. txt

Упражнение – Модифицировать данную программу так, чтобы она считала цифры от 0 до 9 Упражнение – Модифицировать данную программу так, чтобы она считала цифры от 0 до 9

Оператор цикла – do - while. Формат оператора: do оператор; while( условие ); do Оператор цикла – do - while. Формат оператора: do оператор; while( условие ); do { операторы; } while( условие ); Пример – вывести числа от 1 до 10. while() : do - while(): #include #include int main() { int nom = 1; while( nom <= 10 ) { printf( "%d n", nom ); nom = nom + 1; } getch(); return 0; } #include #include int main() { int nom = 1; do { printf( "%d n", nom ); } while( ++nom <= 10 ); getch(); return 0; } //Переменная цикла //Пока переменная цикла меньше либо равна 10: //Вывести её значение //Увеличить переменную цикла на 1. //Переменная цикла //Начало цикла //Вывести её значение на экран //Пока переменная цикла меньше либо равна 10:

Использование операторов break и continue в циклах for и while. Операторы break и continue Использование операторов break и continue в циклах for и while. Операторы break и continue применяются в циклах for и while. break – мгновенно завершает выполнение циклов for и while. Выполнение продолжается со следующей за циклом операции. continue – приводит к пропуску следующих за continue операторов, завершает выполнение текущей итерации и переходит к выполнению следующей. В операторе while сразу за continue следует проверка условия продолжения цикла. В операторе for – сначала выполняется приращение, затем – проверка.

Использование операторов break и continue в циклах for и while. #include<stdio. h> #include<conio. h> Использование операторов break и continue в циклах for и while. #include #include int main() { int counter; for( counter = 1; counter <= 10; counter++ ) { if( counter == 5 ) break; printf( "%d n", counter ); } printf( "COUNTER value is : %d", counter ); getch(); return 0; } #include #include int main() { int counter; for( counter = 1; counter <= 10; counter++ ) { if( counter == 5 ) countinue; printf( "%d n", counter ); } getch(); return 0; } //Счетчик цикла //Выполняем проход от 1 до 10 //Если счетчик равен 5 //Выходим из цикла //печатаем значение счетчика //Первая операция, следующая за break; //Счетчик цикла //Выполняем проход от 1 до 10 //Если счетчик равен 5 //Переходим к следующей итерации //Печатаем значение счетчика Что выведет каждая из программ?

Операторов return – мгновенной завершение функции. В случае использования оператора в функции main() получается Операторов return – мгновенной завершение функции. В случае использования оператора в функции main() получается автоматическое завершение программы. #include #include int main() { int counter; for( counter = 1; counter <= 10; counter++ ) { if( counter == 5 ) { getch(); return 0; } printf( "%d n", counter ); } printf( "COUNTER value is : %d", counter ); getch(); return 0; } //Счетчик цикла //Выполняем проход от 1 до 10 //Если счетчик равен 5 //Ждем нажатия любой клавиши //Завершаем программу //печатаем значение счетчика P. S. Полное назначение оператора return будет рассмотрено на дальнейших занятиях.

Упражнения. 1. 2. 3. 4. 5. Y Напишите программу, которая вводит 2 целых числа Упражнения. 1. 2. 3. 4. 5. Y Напишите программу, которая вводит 2 целых числа – X и Y, и вычисляет выражение X. Напишите программу, которая бы считала факториал введенного числа. Модифицируйте предыдущую программу так, чтобы она считала количество нулей в конце вычисленного факториала. Напишите программу, которая бы переводила двоичное число в десятичное. Пример: При вводе числа 100101 ответ должен быть – 32 + 4 + 1 = 37 Напишите программу, вычисляющую число: либо 6. 7. 8. Для справки: e = 2, 7182845905 Написать программу, которая бы проверяла быстродействие компьютера: Программа считает от 0 до 4 000 с шагом 1. Каждые 1 000 операций программа выводит надпись на экран. Напишите программу, которая вводит целое число – размер стороны квадрата и рисует его на экране. Для числа равного 4 – рисунок принимает вид: **** Модифицировать программу, чтобы она выводила квадрат в виде: (введенное число - 5) ***** * * * *****

Упражнения. 9. Напишите программу, которая бы считывали некоторое количество значений и определяла наименьшее среди Упражнения. 9. Напишите программу, которая бы считывали некоторое количество значений и определяла наименьшее среди них. Для завершения ввода необходимо ввести зарезервированное значение. 10. Напишите программу, которая выводит один под другим следующие рисунки. Для вывода использовать только 3 оператора – printf(“*”); , printf(“ ”); и printf(“n”); * ****** ***** **** *** ***** ** ** ****** * * ****** 11. Напишите программу, вычисляющую число Пи по формуле: Для справки: п = 3, 1415926535897932384626433832795 12. Египетская тройка – такое соотношение катетов в прямоугольном треугольнике, при котором длина катетов и гипотенузы имеет целочисленное значение. Пример: 3, 4, 5 ( 3*3 + 4*4 = 5*5 ). Задача – найти все возможные египетские тройки от 1 до 500. Использовать цикл for тройной вложенности. 13. Нарисовать ромб, используя условия задачи № 10. Количество строк – произвольное нечетное число от 1 до 19 – ввести с клавиатуры программно проверить на нечетность. * ***** *** *