Презентация, доклад по программированию Си .Циклы.

Содержание

Проверка знаний.Зачем используется директива #include в начале программы? примет истинное значение.2. Зачем используется функция getch() в конце каждой программы?3. Найдите ошибки в программе(5).4*. Что выведет программа в каждом из вариантов?#include#includeint main(){ int a = 5; if( a

Слайд 1Занятие 2
Операторы

Оператор цикла – while.
Сокращенные операции, операции инкремента и декремента.
Операторы

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

Слайд 2Проверка знаний.
Зачем используется директива #include в начале программы?
примет истинное значение.
2.

Зачем используется функция getch() в конце каждой программы?
3. Найдите ошибки в программе(5).








4*. Что выведет программа в каждом из вариантов?









#include
#include
int main()
{
int a = 5;
if( a )
printf( “1” );
else
printf( “2” );
getch();
return 0;
}

#include
#include
int main()
{
int a = 0;
if( a )
printf( “1” );
else
printf( “2” );
getch();
return 0;
}

#include
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 значения и определяет - сущетсвует ли триугольник с такими сторонами.

Проверка знаний.Предположим, что i = 1, j = 2, k = 3, m = 2. Что будет

Слайд 4Оператор цикла – while.
Формат оператора:
while( )



Оператор while

обеспечивает многократное повторение одного оператора, следующего за ним. Повторение происходит до тех пор, пока условие, находящееся в круглых скобках истинно.
Для повторения более чем одного оператора, следует воспользоваться операторными скобками:

while( <условие> )
{
<оператор 1>
<оператор 2>
...
<оператор n>
}

Оператор цикла – while.Формат оператора:while( )   	Оператор while обеспечивает многократное повторение одного оператора, следующего за

Слайд 5Оператор цикла while называется циклом с предусловием и имеет следующий формат:
while

(выражение) тело ;
В качестве выражения допускается использовать любое выражение языка Си, а в качестве тела любой оператор, в том числе пустой или составной. Схема выполнения оператора while следующая:
1. Вычисляется выражение.
2. Если выражение ложно, то выполнение оператора while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполняется тело оператора while.
3. Процесс повторяется с пункта 1.
Оператор цикла вида
for (выражение-1; выражение-2; выражение-3) тело ;
может быть заменен оператором while следующим образом:
выражение-1;
while (выражение-2)
{ тело выражение-3; }
Так же как и при выполнении оператора for, в операторе while вначале происходит проверка условия. Поэтому оператор while удобно использовать в ситуациях, когда тело оператора не всегда нужно выполнять.
Оператор цикла while называется циклом с предусловием и имеет следующий формат:while (выражение) тело ;В качестве выражения допускается

Слайд 7Оператор цикла – while.
Пример 1 – вывести числа от 1 до

10.

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

Оператор цикла – while.Пример 1 – вывести числа от 1 до 10.#include#includeint main(){	int nom = 1;							//Переменная цикла	while(

Слайд 8Напишите программу вывода на экран пользователя целых положительных чисел с помощью

оператора while. Начальное и последнее число должно задаваться пользователем с клавиатуры.
Напишите программу вывода на экран пользователя целых положительных чисел с помощью оператора while. Начальное и последнее число

Слайд 9В программе применено инкрементирование переменных, принятое в языке С, а именно

++i или ++j означает, что переменные увеличиваются на единицу. При этом знаки "++" могут располагаться перед именем переменной или после. Отличие в том, что ++i – это значение переменной после увеличения, а i++ – сначала переменная имеет заданное значение, а потом происходит ее увеличение. Для переменных цикла обе формы равнозначны.
Условием цикла является то, что пока переменная i меньше или равна переменной n (предполагается, что n больше начального значения i), то будут выполняться действия (печать и увеличение переменной j), заложенные в теле цикла. Расчет выражения, заключенного в круглые скобки оператора, предназначен для проверки нестрогого неравенства переменной i по отношению к переменной n. Если это неравенство выполняется, то в теле цикла происходят печать и увеличение (инкрементирование) переменных i, j.

В программе применено инкрементирование переменных, принятое в языке С, а именно ++i или ++j означает, что переменные

Слайд 10 Напишите программу посимвольного ввода предложения "Hello, world" и подсчитать число

символов в нем (включая запятую и пробел).

В программе ввод символьных данных должен завершиться комбинацией клавиш Ctrl+Z, что будет соответствовать окончанию ввода (файла), т.е. EOF. Оператор цикла while будет выполняться до тех пор, пока не встретится так называемый конец файла EOF. В предложении \"Hello, world\" два обратных слэша включены для вывода на консоль двойных кавычек.
Функции printf("\t") осуществляют табуляцию вводимых символов. Подсчет числа вводимых символов выполняется с помощью переменной цикла (счетчика) i, которая инкрементируется в теле цикла.
Заголовочный файл #include служит для поддержания консольного ввода-вывода для функции _getch(). Без него при компиляции программы могут выводиться предупреждения, хотя программа с предупреждениями работает.

Напишите программу посимвольного ввода предложения

Слайд 12Оператор цикла – while.
Пример 2 – В группе учится 10 человек.

Каждый из них получил баллы за тест от 0 до 100. Необходимо вычислить среднее арифметическое 10 введенных отметок.

Объявить необходимые переменные.
Установить счетчик в 0.
Установить сумму в 0.

Пока счетчик меньше 10:
4.1. Ввести следующую оценку
4.2. Прибавить оценку к сумме.
4.3. Увеличить счетчик на 1.

Полученную сумму разделить на 10.
Вывести результат.

Оператор цикла – while.Пример 2 – В группе учится 10 человек. Каждый из них получил баллы за

Слайд 13Оператор цикла – while.
Пример 2 – В группе учится 10 человек.

Каждый из них получил баллы за тест от 0 до 100. Необходимо вычислить среднее арифметическое 10 введенных отметок.

#include
#include
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;
}

Оператор цикла – while.Пример 2 – В группе учится 10 человек. Каждый из них получил баллы за

Слайд 14Оператор цикла – while.
Объявить необходимые переменные.
Установить счетчик в 0.
Установить сумму в

0.

Пока счетчик меньше 10:
4.1. Ввести следующую оценку
4.1.1. Если отметка выходит за допустимые границы – вывеси сообщение и предложить ввести ещё раз.
4.2. Прибавить оценку к сумме.
4.3. Увеличить счетчик на 1.

Полученную сумму разделить на 10.
Вывести результат.

Пример 2 – Модифицируем код для достижения лучшего результата и защиты от введения неверных данных.

Оператор цикла – while.Объявить необходимые переменные.Установить счетчик в 0.Установить сумму в 0.Пока счетчик меньше 10:4.1. Ввести следующую

Слайд 15Оператор цикла – while.
Пример 2 – Модифицируем код для достижения лучшего

результата – защиты от введения неверных данных.

#include
#include
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. Вывести результат.

Оператор цикла – while.Пример 3 – В группе учится произвольное количество человек. Каждый из них получил баллы

Слайд 17Оператор цикла – 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 ) //Цикл, пока не введем -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 += 5 a = a + 5
-= a -= 7 a =

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

Слайд 19Операции инкремента и декремента.
++ a++ a = a + 1 (Выполняется после выполнения основноего

действия)
++a a = a + 1 (Выполняется до выполнения основноего действия)

-- a-- a = a – 1 (Выполняется после выполнения основноего действия)
--a 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;
}

Операции инкремента и декремента.++			a++		a = a + 1	(Выполняется после выполнения основноего действия) 			++a		a = a + 1	(Выполняется

Слайд 20Максимальное упрощение кода.
#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.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 );

Последовательность срабатывания выражений следующая:
инициализация > условие > оператор(если условие истинно) > выражения

Оператор цикла – for.for(; ; )   for(; ; ){

Слайд 22Оператор цикла – for.
Пример 1 – вывести числа от 0 до

10. Альтернативой циклу while является цикл for.

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

#include
#include
int main()
{
int nom; //Переменная цикла
for( nom = 1; nom <= 10; nom++ ) //Цикл for от 1 до 10 с шагом 1
printf( "%d \n", nom ); //Вывести её значение
getch();
return 0;
}

#include
#include
int main()
{
for( int nom = 1; nom <= 10; nom++ ) //Цикл for от 1 до 10 с шагом 1
printf( "%d \n", nom ); //Вывести её значение
getch();
return 0;
}

Или ещё короче:

Оператор цикла – for.Пример 1 – вывести числа от 0 до 10. Альтернативой циклу while является цикл

Слайд 23Оператор цикла – for.
Пример 2 – вычислить сумму всех четных чисел

от 2 до 100.

#include
#include
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
#include
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;
}

Оператор цикла – for.Пример 2 – вычислить сумму всех четных чисел от 2 до 100.#include#includeint main(){	int i;							//Переменная

Слайд 24Оператор множественного выбора – switch.
switch( )
{
case :

break;
case <значение2>:
<операторы>
break;
...
case <значениеN>:
<операторы>
break;
default:
<операторы>
break;
}

<переменная> - переменная, с которой осуществляется сравнение.
<значение1>, <значение2>,… <значениеN> - значения, с которыми сравнивается переменная. Должны быть того же типа, что и переменная, и являться константами.
<операторы> - действия, которые выполняются в случае, если значение переменной равно значению соответсвующего case.

Оператор множественного выбора – switch.switch( ){case :			     break;case :

Слайд 25Оператор множественного выбора – 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.Пример 1 – Написать простейший калькулятор с четырьмя действиями(+,-,*,/).#include#includeint main(){	double a, b;	char c;	scanf(

Слайд 26Упражнение – Модифицировать калькулятор так, чтобы он считал столько выражений, сколько

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

Слайд 27Оператор цикла – do - while.
Формат оператора:
do
{

}
while( );
#include
#include
int

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

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

Пример – вывести числа от 1 до 10.

while() :

do - while():

do
<оператор>
while( <условие> );

Оператор цикла – do - while.Формат оператора:do{  }while( );#include#includeint main(){	int nom = 1;							//Переменная цикла	while( nom

Слайд 28Использование операторов break и continue
в циклах for и while.
Операторы break

и continue применяются в циклах for и while.

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

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

Слайд 29Использование операторов break и continue
в циклах for и while.
#include
#include
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
#include
int main()
{
int counter; //Счетчик цикла
for( counter = 1; counter <= 10; counter++ ) //Выполняем проход от 1 до 10
{
if( counter == 5 ) //Если счетчик равен 5
countinue; //Переходим к следующей итерации
printf( "%d \n", counter ); //Печатаем значение счетчика
}
getch();
return 0;
}

Что выведет каждая из программ?

Использование операторов break и continue в циклах for и while.#include#includeint main(){	int counter;								//Счетчик цикла	for( counter = 1; counter

Слайд 30Операторов return – мгновенной завершение функции.

В случае использования оператора в функции

main() получается автоматическое завершение программы.

P.S. Полное назначение оператора return будет рассмотрено на дальнейших занятиях.

#include
#include
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;
}

Операторов return – мгновенной завершение функции.В случае использования оператора в функции main() получается автоматическое завершение программы.P.S. Полное

Слайд 31Упражнения.
Напишите программу, которая вводит 2 целых числа – X и Y,

и вычисляет выражение X.
Напишите программу, которая бы считала факториал введенного числа.
Модифицируйте предыдущую программу так, чтобы она считала количество нулей в конце вычисленного факториала.
Напишите программу, которая бы переводила двоичное число в десятичное.
Пример: При вводе числа 100101 ответ должен быть – 32 + 4 + 1 = 37
Напишите программу, вычисляющую число:

либо

Для справки: e = 2,71828182845905
Написать программу, которая бы проверяла быстродействие компьютера: Программа считает от 0 до 4 000 000 с шагом 1. Каждые 1 000 000 операций программа выводит надпись на экран.
Напишите программу, которая вводит целое число – размер стороны квадрата и рисует его на экране. Для числа равного 4 – рисунок принимает вид:
****
****
****
****
Модифицировать программу, чтобы она выводила квадрат в виде: (введенное число - 5)
*****
* *
* *
* *
*****

Y

Упражнения.Напишите программу, которая вводит 2 целых числа – X и Y, и вычисляет выражение X.Напишите программу, которая

Слайд 32Упражнения.
Напишите программу, которая бы считывали некоторое количество значений и определяла наименьшее

среди них. Для завершения ввода необходимо ввести зарезервированное значение.
Напишите программу, которая выводит один под другим следующие рисунки. Для вывода использовать только 3 оператора – printf(“*”);, printf(“ ”); и printf(“\n”);
* ****** ****** *
** ***** ***** **
*** **** **** ***
**** *** *** ****
***** ** ** *****
****** * * ******
11. Напишите программу, вычисляющую число Пи по формуле:

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

Что такое shareslide.ru?

Это сайт презентаций, где можно хранить и обмениваться своими презентациями, докладами, проектами, шаблонами в формате PowerPoint с другими пользователями. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами.


Для правообладателей

Яндекс.Метрика

Обратная связь

Email: Нажмите что бы посмотреть