Рабочие листы
к вашим урокам
Скачать
1 слайд
Занятие 2
Операторы
Оператор цикла – while.
Сокращенные операции, операции инкремента и декремента.
Операторы цикла – for.
Оператор множественного выбора – switch.
Оператор цикла – do - while.
Использование операторов break и continue в циклах for и while.
Оператор return.
Решение различных задач.
2 слайд
Проверка знаний.
Зачем используется директива #include<…> в начале программы?
примет истинное значение.
2. Зачем используется функция getch() в конце каждой программы?
3. Найдите ошибки в программе(5).
4*. Что выведет программа в каждом из вариантов?
#include<stdio.h>
#include<conio.h>
int main()
{
int a = 5;
if( a )
printf( “1” );
else
printf( “2” );
getch();
return 0;
}
#include<stdio.h>
#include<conio.h>
int main()
{
int a = 0;
if( a )
printf( “1” );
else
printf( “2” );
getch();
return 0;
}
#include<conio.h>
int main()
{
int b;
scanf( "%d", &a );
scanf( "%d", &b );
if( a > b )
printf( "%lf", a );
else
printf( "%lf", b);
getch();
return 0
3 слайд
Проверка знаний.
Предположим, что i = 1, j = 2, k = 3, m = 2. Что будет в результате выполнения следующих условий истина или ложь?
i == 1
j == 3
i >= 1 && j < 4
m <= 99 && k < m
j >= I || k == m
k + m < j || 3 – j >= k
!m
!( j – m )
!( k > m )
!( j > k )
При каких значениях i выражение
( ( i >= 2 ) && ( i <= 4 ) && ( i != 3 ) || ( i == 6 ) )
примет истинное значение?
7.Напишите программу, которая вводит 3 значения и определяет - сущетсвует ли триугольник с такими сторонами.
4 слайд
Оператор цикла – while.
Формат оператора:
while( <условие> )
<оператор>
Оператор while обеспечивает многократное повторение одного оператора, следующего за ним. Повторение происходит до тех пор, пока условие, находящееся в круглых скобках истинно.
Для повторения более чем одного оператора, следует воспользоваться операторными скобками:
while( <условие> )
{
<оператор 1>
<оператор 2>
...
<оператор n>
}
5 слайд
Оператор цикла while называется циклом с предусловием и имеет следующий формат:
while (выражение) тело ;
В качестве выражения допускается использовать любое выражение языка Си, а в качестве тела любой оператор, в том числе пустой или составной. Схема выполнения оператора while следующая:
1. Вычисляется выражение.
2. Если выражение ложно, то выполнение оператора while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполняется тело оператора while.
3. Процесс повторяется с пункта 1.
Оператор цикла вида
for (выражение-1; выражение-2; выражение-3) тело ;
может быть заменен оператором while следующим образом:
выражение-1;
while (выражение-2)
{ тело выражение-3; }
Так же как и при выполнении оператора for, в операторе while вначале происходит проверка условия. Поэтому оператор while удобно использовать в ситуациях, когда тело оператора не всегда нужно выполнять.
6 слайд
7 слайд
Оператор цикла – while.
Пример 1 – вывести числа от 1 до 10.
#include<stdio.h>
#include<conio.h>
int main()
{
int nom = 1;//Переменная цикла
while( nom <= 10 )//Пока переменная цикла меньше либо равна 10:
{
printf( "%d \n", nom );//Вывести её значение
nom = nom + 1;//Увеличить переменную цикла на 1.
}
getch();
return 0;
}
8 слайд
Напишите программу вывода на экран пользователя целых положительных чисел с помощью оператора while. Начальное и последнее число должно задаваться пользователем с клавиатуры.
9 слайд
В программе применено инкрементирование переменных, принятое в языке С, а именно ++i или ++j означает, что переменные увеличиваются на единицу. При этом знаки "++" могут располагаться перед именем переменной или после. Отличие в том, что ++i – это значение переменной после увеличения, а i++ – сначала переменная имеет заданное значение, а потом происходит ее увеличение. Для переменных цикла обе формы равнозначны.
Условием цикла является то, что пока переменная i меньше или равна переменной n (предполагается, что n больше начального значения i), то будут выполняться действия (печать и увеличение переменной j), заложенные в теле цикла. Расчет выражения, заключенного в круглые скобки оператора, предназначен для проверки нестрогого неравенства переменной i по отношению к переменной n. Если это неравенство выполняется, то в теле цикла происходят печать и увеличение (инкрементирование) переменных i, j.
10 слайд
Напишите программу посимвольного ввода предложения "Hello, world" и подсчитать число символов в нем (включая запятую и пробел).
В программе ввод символьных данных должен завершиться комбинацией клавиш Ctrl+Z, что будет соответствовать окончанию ввода (файла), т.е. EOF. Оператор цикла while будет выполняться до тех пор, пока не встретится так называемый конец файла EOF. В предложении \"Hello, world\" два обратных слэша включены для вывода на консоль двойных кавычек.
Функции printf("\t") осуществляют табуляцию вводимых символов. Подсчет числа вводимых символов выполняется с помощью переменной цикла (счетчика) i, которая инкрементируется в теле цикла.
Заголовочный файл #include <conio.h> служит для поддержания консольного ввода-вывода для функции _getch(). Без него при компиляции программы могут выводиться предупреждения, хотя программа с предупреждениями работает.
11 слайд
12 слайд
Оператор цикла – while.
Пример 2 – В группе учится 10 человек. Каждый из них получил баллы за тест от 0 до 100. Необходимо вычислить среднее арифметическое 10 введенных отметок.
Объявить необходимые переменные.
Установить счетчик в 0.
Установить сумму в 0.
Пока счетчик меньше 10:
4.1. Ввести следующую оценку
4.2. Прибавить оценку к сумме.
4.3. Увеличить счетчик на 1.
Полученную сумму разделить на 10.
Вывести результат.
13 слайд
Оператор цикла – while.
Пример 2 – В группе учится 10 человек. Каждый из них получил баллы за тест от 0 до 100. Необходимо вычислить среднее арифметическое 10 введенных отметок.
#include<stdio.h>
#include<conio.h>
int main()
{
int i = 0;//Переменная цикла
int sum = 0;//Сумма всех баллов
int grade;//Переменная для ввода отметки
int average;//Средняя отметка
while( i < 10 )//Цикл от 0 до 9 (всего 10 проходов)
{
printf( "Enter grade (0-100) : " );//Вывод надписи на экран
scanf( "%d", &grade );//Чтение введенных баллов
sum = sum + grade;//Суммирование введенных баллов
i = i + 1;//Увеличение переменной цикла
}
average = sum / 10;//Получаем средний балл…
printf( "Average is : %d", average );//…и выводим его на экран
getch();
return 0;
}
14 слайд
Оператор цикла – while.
Объявить необходимые переменные.
Установить счетчик в 0.
Установить сумму в 0.
Пока счетчик меньше 10:
4.1. Ввести следующую оценку
4.1.1. Если отметка выходит за допустимые границы – вывеси сообщение и предложить ввести ещё раз.
4.2. Прибавить оценку к сумме.
4.3. Увеличить счетчик на 1.
Полученную сумму разделить на 10.
Вывести результат.
Пример 2 – Модифицируем код для достижения лучшего результата и защиты от введения неверных данных.
15 слайд
Оператор цикла – while.
Пример 2 – Модифицируем код для достижения лучшего результата – защиты от введения неверных данных.
#include<stdio.h>
#include<conio.h>
int main()
{
int i = 0;//Переменная цикла
int sum = 0;//Сумма всех баллов
int grade;//Переменная для ввода отметки
float average;//Средняя отметка
while( i < 10 )//Цикл от 0 до 9 (всего 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;//Получаем средний балл, приводим к типу float
printf( "Average is : %f", average );//Выводим его на экран
getch();
return 0;
}
16 слайд
Оператор цикла – while.
Пример 3 – В группе учится произвольное количество человек. Каждый из них получил баллы за тест от 0 до 100. Необходимо вычислить средний балл группы.
Объявить необходимые переменные.
Установить счетчик в 0.
Установить сумму в 0.
Вести первую отметку.
Пока не ввели “-1”:
5.1. Если отметка выходит за допустимые границы – вывеси сообщение об ошибке.
Иначе:
5.1.1. Прибавить оценку к сумме.
5.1.2. Увеличить счетчик на 1.
5.2. Ввести следующую оценку
6.Проверить, был ли введен хотя бы 1 результат.
7.Полученную сумму разделить на значение счетчика.
8.Вывести результат.
17 слайд
Оператор цикла – while.
#include<stdio.h>
#include<conio.h>
int main()
{
int i = 0;//Переменная цикла
int sum = 0;//Сумма всех баллов
int grade;//Переменная для ввода отметки
float average;//Средняя отметка
printf( "Enter grade (0-100) : " );//Вывод надписи на экран
scanf( "%d", &grade );//Чтение введенных баллов
while( grade != -1 )//Цикл, пока не введем -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;//Получаем средний балл, приводим к типу float
printf( "Average is : %2.1f", average );//Выводим (с точность 1 знак после запятой)
}
else//Иначе
printf( "No grades!" );//сообщаем о том, что не было введено баллов
getch();
return 0;
}
18 слайд
Сокращенные операции.
+=a += 5a = a + 5
-=a -= 7a = a – 7
*=a *= 10a = a * 10
/=a /=4a = a / 4
%=a %= 2 a = a % 2
19 слайд
Операции инкремента и декремента.
++a++a = a + 1(Выполняется после выполнения основноего действия)
++aa = a + 1(Выполняется до выполнения основноего действия)
--a--a = a – 1(Выполняется после выполнения основноего действия)
--aa = a - 1 (Выполняется до выполнения основноего действия)
#include<stdio.h>
#include<conio.h>
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 a = 5;
printf( "%d \n", a );
printf( "%d \n", ++a );
printf( "%d \n", a );
getch();
return 0;
}
20 слайд
Максимальное упрощение кода.
#include<stdio.h>
#include<conio.h>
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.1f", ( float )sum / i );
else
printf( "No grades!" );
getch();
return 0;
}
21 слайд
Оператор цикла – 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 );
Последовательность срабатывания выражений следующая:
инициализация > условие > оператор(если условие истинно) > выражения
22 слайд
Оператор цикла – for.
Пример 1 – вывести числа от 0 до 10. Альтернативой циклу while является цикл for.
#include<stdio.h>
#include<conio.h>
int main()
{
int nom = 1;//Переменная цикла
while( nom <= 10 )//Пока переменная цикла меньше либо равна 10:
{
printf( "%d \n", nom );//Вывести её значение
nom++;//Увеличить переменную цикла на 1.
}
getch();
return 0;
}
#include<stdio.h>
#include<conio.h>
int main()
{
int nom;//Переменная цикла
for( nom = 1; nom <= 10; nom++ )//Цикл for от 1 до 10 с шагом 1
printf( "%d \n", nom );//Вывести её значение
getch();
return 0;
}
#include<stdio.h>
#include<conio.h>
int main()
{
for( int nom = 1; nom <= 10; nom++ )//Цикл for от 1 до 10 с шагом 1
printf( "%d \n", nom );//Вывести её значение
getch();
return 0;
}
Или ещё короче:
23 слайд
Оператор цикла – for.
Пример 2 – вычислить сумму всех четных чисел от 2 до 100.
#include<stdio.h>
#include<conio.h>
int main()
{
int i;//Переменная цикла
int sum = 0;
for( i = 2; i <= 100; i += 2 )//Цикл for от 2 до 100 с шагом 2 (2,4,6,8,10… все четные)
sum += i//Суммируем числа
printf( “Sum is : %d", sum );//Выводим сумму на экран
getch();
return 0;
}
Пример 3 – Вычислить сумму, которая будет в банке через 10 лет при начальном взносе 10000. Использовать сложный процент размером в 5% годовых.
#include<stdio.h>
#include<conio.h>
int main()
{
int i;//Переменная цикла, номер года
double money = 10000;//Начальная сумма
double proc = 0.05;//Годовой процент
for( i = 1; i <= 10; i++ )//Цикл от 1 до 10 (итого - 10 лет)
{
money = money + money * proc;//Вычисление сложного процента
printf( "Yere %2d, Money : %6.4lf \n", i, money);//Вывод суммы денег на экран
}
getch();
return 0;
}
24 слайд
Оператор множественного выбора – switch.
switch( <переменная> )
{
case <значение1>:
<операторы>
break;
case <значение2>:
<операторы>
break;
...
case <значениеN>:
<операторы>
break;
default:
<операторы>
break;
}
<переменная> - переменная, с которой осуществляется сравнение.
<значение1>, <значение2>,… <значениеN> - значения, с которыми сравнивается переменная. Должны быть того же типа, что и переменная, и являться константами.
<операторы> - действия, которые выполняются в случае, если значение переменной равно значению соответсвующего case.
25 слайд
Оператор множественного выбора – switch.
Пример 1 – Написать простейший калькулятор с четырьмя действиями(+,-,*,/).
#include<stdio.h>
#include<conio.h>
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;
}
26 слайд
Упражнение – Модифицировать калькулятор так, чтобы он считал столько выражений, сколько требуется пользователю ( вместо одного ).
27 слайд
Оператор цикла – do - while.
Формат оператора:
do
{
<операторы>
}
while( <условие> );
#include<stdio.h>
#include<conio.h>
int main()
{
int nom = 1;//Переменная цикла
while( nom <= 10 )//Пока переменная цикла меньше либо равна 10:
{
printf( "%d \n", nom );//Вывести её значение
nom = nom + 1;//Увеличить переменную цикла на 1.
}
getch();
return 0;
}
#include<stdio.h>
#include<conio.h>
int main()
{
int nom = 1;//Переменная цикла
do//Начало цикла
{
printf( "%d \n", nom );//Вывести её значение на экран
}
while( ++nom <= 10 )//Пока переменная цикла меньше либо равна 10:
getch();
return 0;
}
Пример – вывести числа от 1 до 10.
while() :
do - while():
do
<оператор>
while( <условие> );
28 слайд
Использование операторов break и continue
в циклах for и while.
Операторы break и continue применяются в циклах for и while.
break – мгновенно завершает выполнение циклов for и while. Выполнение продолжается со следующей за циклом операции.
continue – приводит к пропуску следующих за continue операторов, завершает выполнение текущей итерации и переходит к выполнению следующей.
В операторе while сразу за continue следует проверка условия продолжения цикла. В операторе for – сначала выполняется приращение, затем – проверка.
29 слайд
Использование операторов break и continue
в циклах for и while.
#include<stdio.h>
#include<conio.h>
int main()
{
int counter;//Счетчик цикла
for( counter = 1; counter <= 10; counter++ )//Выполняем проход от 1 до 10
{
if( counter == 5 )//Если счетчик равен 5
break;//Выходим из цикла
printf( "%d \n", counter );//печатаем значение счетчика
}
printf( "COUNTER value is : %d", counter );//Первая операция, следующая за break;
getch();
return 0;
}
#include<stdio.h>
#include<conio.h>
int main()
{
int counter;//Счетчик цикла
for( counter = 1; counter <= 10; counter++ )//Выполняем проход от 1 до 10
{
if( counter == 5 )//Если счетчик равен 5
countinue;//Переходим к следующей итерации
printf( "%d \n", counter );//Печатаем значение счетчика
}
getch();
return 0;
}
Что выведет каждая из программ?
30 слайд
Операторов return – мгновенной завершение функции.
В случае использования оператора в функции main() получается автоматическое завершение программы.
P.S. Полное назначение оператора return будет рассмотрено на дальнейших занятиях.
#include<stdio.h>
#include<conio.h>
int main()
{
int counter;//Счетчик цикла
for( counter = 1; counter <= 10; counter++ )//Выполняем проход от 1 до 10
{
if( counter == 5 )//Если счетчик равен 5
{
getch();//Ждем нажатия любой клавиши
return 0;//Завершаем программу
}
printf( "%d \n", counter );//печатаем значение счетчика
}
printf( "COUNTER value is : %d", counter );
getch();
return 0;
}
31 слайд
Упражнения.
Напишите программу, которая вводит 2 целых числа – X и Y, и вычисляет выражение X.
Напишите программу, которая бы считала факториал введенного числа.
Модифицируйте предыдущую программу так, чтобы она считала количество нулей в конце вычисленного факториала.
Напишите программу, которая бы переводила двоичное число в десятичное.
Пример: При вводе числа 100101 ответ должен быть – 32 + 4 + 1 = 37
Напишите программу, вычисляющую число:
либо
Для справки: e = 2,71828182845905
Написать программу, которая бы проверяла быстродействие компьютера: Программа считает от 0 до 4 000 000 с шагом 1. Каждые 1 000 000 операций программа выводит надпись на экран.
Напишите программу, которая вводит целое число – размер стороны квадрата и рисует его на экране. Для числа равного 4 – рисунок принимает вид:
****
****
****
****
Модифицировать программу, чтобы она выводила квадрат в виде: (введенное число - 5)
*****
* *
* *
* *
*****
Y
32 слайд
Упражнения.
Напишите программу, которая бы считывали некоторое количество значений и определяла наименьшее среди них. Для завершения ввода необходимо ввести зарезервированное значение.
Напишите программу, которая выводит один под другим следующие рисунки. Для вывода использовать только 3 оператора – printf(“*”);, printf(“ ”); и printf(“\n”);
* ****** ****** *
** ***** ***** **
*** **** **** ***
**** *** *** ****
***** ** ** *****
****** * * ******
11.Напишите программу, вычисляющую число Пи по формуле:
Для справки: п = 3,1415926535897932384626433832795
Египетская тройка – такое соотношение катетов в прямоугольном треугольнике, при котором длина катетов и гипотенузы имеет целочисленное значение. Пример: 3, 4, 5 ( 3*3 + 4*4 = 5*5 ).
Задача – найти все возможные египетские тройки от 1 до 500. Использовать цикл for тройной вложенности.
Нарисовать ромб, используя условия задачи №10. Количество строк – произвольное нечетное число от 1 до 19 – ввести с клавиатуры программно проверить на нечетность.
*
***
*****
*******
*****
***
*
Рабочие листы
к вашим урокам
Скачать
6 665 151 материал в базе
Настоящий материал опубликован пользователем Крачко Анастасия Валерьевна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт
Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.
Удалить материалВаша скидка на курсы
40%Курс профессиональной переподготовки
500/1000 ч.
Курс повышения квалификации
72 ч. — 180 ч.
Курс повышения квалификации
36 ч. — 180 ч.
Курс повышения квалификации
36 ч. — 180 ч.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.