Лабораторная работа №3

 

Тема: Циклы. Реализация циклического процесса. Инструкции FOR, WHILE, DO WHILE

 

Циклы используют в случае, если некоторые действия надо выполнить многократно, каждый раз с новыми данными. Инструкции цикла определяют действия, которые надо выполнить многократно, и количество их повторений. К инструкциям цикла относят операторы FOR, WHILE и DO WHILE.

FOR - инструкция цикла, которая используется, если количество повторений тела цикла известно до начала его выполнения. Форма записи оператора такова:

 

for(Инициализация; УсловиеВыполнения; Изменение)

{инструкции цикла (тело цикла) - один или несколько операторов,

заключенных в операторные скобки}

 

Инициализация - инструкция инициализации счетчика циклов.

УсловиеВыполнения - выражение, значение которого определяет условие выполнения инструкций цикла. Инструкции цикла выполняются до тех пор, пока УсловиеВыполнения истинно.

Изменение - инструкция изменения параметра цикла. Как правило, эта инструкция изменяет значение переменной, которая входит В УсловиеВыполнения.

Например, переменная i изменяется от начального значения 1 до конечного 5 с шагом 1:

 

for(i=1;i<=5;i++) {}

 

Задача 3а

Вычислить сумму (произведение):

 

 

#include <stdio.h>

#include <conio>

#include <math.h>main ()

{x,y=1; int n;("x="); scanf("%f",&x); (n=2;n<=5;n++)// переменная I изменяется от 2 до 5 с шагом 1

y*=exp(-x)*log(x)*tan(x);("%5.10f",y);();

}


 

№ вар Задание № вар Задание
1 16    
2 17    
3 18    
4 19    
5 20    
6 21    
7 22    
8 23    
9 24    
10 25    
11 26    
12 27    
13 28    
14 29    
15 30    

 

Инструкция цикла WHILE носит название цикла с предусловием, так как анализ конца цикла производится до выполнения операторов тела цикла. Она используется, когда количество повторений операторов цикла заранее неизвестно и определяется в процессе выполнения цикла. При определенных условиях цикл не выполняется ни разу.

Синтаксис:


 

while(УсловиеВыполнения)

{Инструкции цикла (тело цикла)}

 

Сначала проверяется значение выражения УсловиеВылолнёния. Если. условие истинно, то выполняются инструкции цикла (тело цикла). Затем снова проверяется значение выражения УсловиеВыполнения, и если оно истинно, инструкции цикла выполняются еще раз. И так до тех пор, пока значение выражения УсловиеВылолнения не станет неверным.

 

Задача №3b

Вычислить таблицу значений функций для значений аргумента x, который изменяется от xn до xk с шагом dx

 

 

#include <stdio.h>

#include <conio.h>

#include <math.h>main()

{xn,xk,dx,x,y;("xn="); scanf("%f",&xn);("xk="); scanf("%f",&xk);("dx="); scanf("%f",&dx);=xn; //присваиваем переменной x начальное значение

while (x<=xk)

{=pow(tan(x/2),2)*exp(-2*x)*log(fabs(x));("x=%1.1f y=%f\n",x,y);+=dx; //значение x возрастает на величину шага

}();

}

 

№ вар Задание № вар Задание
1 16    
2 17    
3 18    
4 19    
5 20    
6 21    
7 22    
8 23    
9 24    
10 25    
11 26    
12 27    
13 28    
14 29    
15 30    

 

Цикл с постусловием do while имеет следующий синтаксис:

 

do{операторы цикла} while(e);


 

Цикл выполняется до тех пор, пока выражение e имеет значение "истина". В отличие от цикла while, в котором проверка условия окончания цикла делается до выполнения тела цикла, в цикле do такая проверка имеет место после выполнения тела цикла. Следовательно, тело цикла do будет выполнено хотя бы один раз, даже если выражение e имеет значение "ложь" c самого начала. Цикл do аналогичен циклу repeat в языке Паскаль, отличаясь от него лишь тем, что цикл repeat выполняется до тех пор, пока некоторое условие выхода из цикла не становится истинным, а цикл do выполняется все время, пока некоторое условие остается истинным!

 

Задача №3с

Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -100…100, конец серии - ввод числа вне диапазона). После окончания ввода программа должна вывести значение наибольшего по модулю числа.

 

#include <stdio.h>

#include <conio.h>

#include <math.h>main()

{x,max=0;

{ printf("x="); scanf("%d",&x);(x>=-100 && x<=100 && max<abs(x)) max=x;

}(x>=-100 && x<=100);("max=%d",max);

getch();

}

Еще один пример:

Обеспечить ввод с клавиатуры последовательности из целых чисел

(диапазон от -20 до 10, конец серии - ввод нуля). После окончания ввода программа должна вывести количество положительных и четных чисел

Для определения кратности числа можно воспользоваться операцией %, которая возвращает остаток от целочисленного деления. Эта операция применима только к переменным целого типа (int). Например, 5%2==1, 4%2== 0

 

#include <stdio.h>

#include <conio.h>

#include <math.h>main()

{x,k;

{ printf("x="); scanf("%d",&x);(x<=10 && x>0 && x%2==0) k++;

}(x!=0);("k=%d",k);();

}

 

№ вар Задание № вар Задание
1 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -8…18, конец серии - после ввода нуля). После окончания ввода программа должна вывести значение наименьшего положительного числа, кратного 3. 16 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -27…27, конец серии - ввод числа вне диапазона). После окончания ввода программа должна вывести количество отрицательных четных введенных чисел.
2 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -14…18, конец серии - после ввода нуля). После окончания ввода программа должна вывести среднее значение положительных чисел 17 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -24…24, конец серии - после ввода нуля). После окончания ввода программа должна вывести среднее значение отрицательных четных чисел
3 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -38…18, конец серии - ввод числа вне диапазона). После окончания ввода программа должна вывести количество положительных введенных чисел. 18 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -25…25, конец серии - после ввода нуля). После окончания ввода программа должна вывести значение наименьшего положительного четного числа.
4 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -21…21, конец серии - ввод числа вне диапазона). После окончания ввода программа должна вывести значение наименьшего положительного четного числа. 19 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -38…18, конец серии - ввод числа вне диапазона). После окончания ввода программа должна вывести среднее арифметическое положительных введенных чисел.
5 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -29…29, конец серии - ввод нуля). После окончания ввода программа должна вывести количество четных чисел. 20 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -12…12, конец серии - ввод числа вне диапазона). После окончания ввода программа должна вывести произведение положительных четных чисел.
6 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -25…25, конец серии - ввод нуля). После окончания ввода программа должна вывести значение наименьшего по модулю четного числа. 21 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -31…31, конец серии - ввод нуля). После окончания ввода программа должна вывести значение набольшего отрицательного кратного 3 числа.
7 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -30…30, конец серии - после ввода нуля). После окончания ввода программа должна вывести количество отрицательных, кратных 3 чисел 22 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -24…24, конец серии - ввод числа вне диапазона). После окончания ввода программа должна вывести сумму положительных нечетных чисел.
8 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -50…50, конец серии - ввод числа вне диапазона). После окончания ввода программа должна вывести значение наибольшего по модулю числа. 23 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -40…40, конец серии - ввод числа вне диапазона). После окончания ввода программа должна вывести среднее арифметическое всех чисел, кратных 5.
9 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -27…27, конец серии - ввод нуля). После окончания ввода программа должна вывести количество четных и кратных 3 чисел. 24 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -29…29, конец серии - ввод нуля). После окончания ввода программа должна вывести количество отрицательных кратных 3 чисел.
10 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -17…17, конец серии - ввод числа вне диапазона). После окончания ввода программа должна вывести среднее арифметическое модулей отрицательных чисел. 25 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -17…17, конец серии - ввод нуля). После окончания ввода программа должна вывести количество чисел кратных 3.
11 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -14…14, конец серии - ввод числа вне диапазона). После окончания ввода программа должна вывести сумму отрицательных четных чисел. 26 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -45…45, конец серии - ввод нуля). После окончания ввода программа должна вывести значение наибольшего по модулю числа, кратного 3.
12 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -55…55, конец серии - после ввод числа вне диапазона). После окончания ввода программа должна вывести среднее арифметическое чисел, кратных 4 27 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -18…8, конец серии - после ввода нуля). После окончания ввода программа должна вывести значение наибольшего отрицательного числа, кратного 3.
13 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -45…45, конец серии - после ввода нуля). После окончания ввода программа должна вывести значение наименьшего из отрицательных нечетных чисел 28 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -55…24, конец серии - после ввода нуля). После окончания ввода программа должна вывести значение наибольшего из отрицательных четных чисел
14 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -34…34, конец серии - ввод числа вне диапазона). После окончания ввода программа должна вывести наибольшее из отрицательных кратных 3 чисел. 29 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -27…27, конец серии - ввод числа вне диапазона). После окончания ввода программа должна вывести количество отрицательных кратных 4 введенных чисел.
15 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -19…19, конец серии - ввод нуля). После окончания ввода программа должна вывести произведение отрицательных кратных 3 чисел. 30 Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон -30…30, конец серии - после ввода нуля). После окончания ввода программа должна вывести сумму отрицательных, кратных 3 чисел

 





Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: