на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Оператор цикла

Оператор цикла

Оператор цикла

Оборудование: Персональный компьютер, компилятор языка С#.

Цель работы: Ознакомиться с операторами цикла и научиться применять их в С#-программах.

Циклическая управляющая структура применяется для организации многократного выполнения некоторого оператора. Оператор цикла включает <заголовок цикла> и <тело цикла>. Заголовок определяет количество повторений цикла, а тело - повторяемые операторы.

В C реализовано три вида оператора цикла.

(1) Цикл while

while <условие>

<тело цикла>

Условие - это логическое выражение булевского типа.

Тело цикла - это оператор, или последовательность операторов, заключенная в операторные скобки { }. Алгоритм выполнения цикла while

1. Вычисляется значение условия.

2. Если условие истинно, то выполняются операторы тела цикла и повторяется шаг 1.

3. Если условие ложно, то цикл завершается и происходит переход к следующему за while оператору.

(2) Цикл do while

do{

<тело цикла>

}

while (<условие>);

Условие - это выражение булевского типа.

Тело цикла - это оператор, или последовательность операторов, разделенная символом ";".

Алгоритм выполнения цикла do while

1. Выполняются операторы тела цикла.

2. Вычисляется значение условия.

3. Если условие ложно, то повторяется шаг 1.

4. Если условие
ложно, то цикл завершается и происходит переход к следующему за do оператору.

Замечания.

1. Оператор do while , в отличии от оператора while, обязательно выполнится по крайней мере один раз.

2. Выйти из цикла можно минуя вычисление условия с помощью оператора go, однако это не соответствует принципам структурного программирования.

3. Если операторы тела цикла не влияют на значение условия и условие истинно перед выполнением цикла while и после выполнения цикла do while, то цикл будет выполняться бесконечно (эффект "зацикливания").

(3) Оператор for

Оператор for - это наиболее общий способ организации цикла. Он имеет следующий формат:

for ( выражение 1 ; выражение 2 ; выражение 3 ) тело

Выражение 1 обычно используется для установления начального значения переменных, управляющих циклом. Выражение 2 - это выражение, определяющее условие, при котором тело цикла будет выполняться. Выражение 3 определяет изменение переменных, управляющих циклом после каждого выполнения тела цикла.

Схема выполнения оператора for:

1. Вычисляется выражение 1.

2. Вычисляется выражение 2.

3. Если значения выражения 2 отлично от нуля (истина), выполняется тело цикла, вычисляется выражение 3 и осуществляется переход к пункту 2, если выражение 2 равно нулю (ложь), то управление передается на оператор, следующий за оператором for.

Существенно то, что проверка условия всегда выполняется в начале цикла. Это значит, что тело цикла может ни разу не выполниться, если условие выполнения сразу будет ложным.

Пример:

int main()

{ int i,b;

for (i=1; i<10; i++)

b=i*i;

return 0;

}

В этом примере вычисляются квадраты чисел от 1 до 9.

Другим вариантом использования оператора for является бесконечный цикл. Для организации такого цикла можно использовать пустое условное выражение, а для выхода из цикла обычно используют дополнительное условие и оператор break.

Пример:

for (;;)

{ ...

... break;

... }

Так как согласно синтаксису языка С# оператор может быть пустым, тело оператора for также может быть пустым. Такая форма оператора может быть использована для организации поиска.

Пример:

for (i=0; t[i]<10 ; i++) ;

В данном примере переменная цикла i принимает значение номера первого элемента массива t, значение которого больше 10. Типы параметра цикла, начального и конечного значений должны быть совместимы. Допускается любой скалярной тип кроме вещественного, т.е. любой порядковый тип. Порядок, установленный на множестве значений таких типов, позволяет для любого значения определить следующее за ним и предыдущее.

Тело цикла - это оператор, или последовательность операторов, заключенная в операторные скобки { }.

Замечания

1. Цикл for целесообразно использовать в тех случаях, когда заранее известно количество повторений цикла.

2. Значение параметра цикла нельзя изменять внутри тела цикла и следует считать это значение неопределенным при выходе из цикла.

3. Выйти из цикла можно преждевременно с помощью оператора goto, однако это не соответствует принципам структурного программирования.

Лабораторная работа 3 включает 4 задания.

1. Обработка последовательностей значений.

При обработке последовательности ее элементы не запоминаются, а обрабатываются непосредственно после ввода.

Даны натуральное число n и целые числа A1,A2,...,An. Выяснить, какое число встретится в последовательности раньше положительное или отрицательное. Если все члены равны нулю, то сообщить об этом.

Рассмотрим код процедуры Main()

string N, A;

int n, a, i;

Console.WriteLine("Введите n");

N = Console.ReadLine();

n = Convert.ToInt32(N);

i = 0; a = 0;

while ((a == 0) && (i < n))

{

Console.WriteLine("Введите a");

A = Console.ReadLine();

a = Convert.ToInt32(A);

i++;

}

if (a == 0)

Console.WriteLine("Все элементы равны 0");

else

if (a < 0)

Console.WriteLine("Первый не нулевой элемент отрицательный");

else

Console.WriteLine("Первый не нулевой элемент положительный");

Console.ReadLine();

2. Распечатка в виде таблицы значения заданной функции.

Вычислить значения функции: для а=1,1.1,1.2,...,1+0.1n и распечатать в виде таблицы значений с 2 знаками после десятичной точки.

Рассмотрим код процедуры Main():

string N;

double a, f;

int i, n;

Console.WriteLine("Введите количество элементов");

N = Console.ReadLine();

n = Convert.ToInt32(N);

a = 1;

Console.WriteLine("********************************");

f = ((a - 3) * a + 2) / Math.Sqrt(2 * a * a * a - 1);

Console.WriteLine("* {0} * {1} ", a, f);

a = a + 0.1;

for (i = 1; i < n + 1; i++)

{

f = ((a - 3) * a + 2) / Math.Sqrt(2 * a * a * a - 1);

Console.WriteLine("* {0} * {1} ", a, f);

a = a + 0.1;

}

Console.WriteLine("********************************");

Console.ReadLine();

3. Вычисление суммы (произведения) заданного числа слагаемых (сомножителей), каждое из которых есть функция от своего индекса (номера).

Для заданных действительного x и целого n (n>0) вычислить

S = x-

Рассмотрим код процедуры Main():

string N, X;

double x, s, h, f;

int n, i;

Console.WriteLine("Введите количество элементов");

N = Console.ReadLine();

n = Convert.ToInt32(N);

Console.WriteLine("Введите значение x");

X = Console.ReadLine();

x = Convert.ToDouble(X);

s = x;

h = 1;

f = 1;

for(i = 0; i < n; i++)

{

h = -h*x*x;

f = f*(2*n)*(2*n+1);

s = s + h /f;

}

Console.WriteLine("Summa = {0}",s);

Console.ReadLine();

Обратите внимание, что на каждом шаге очередное слагаемое вычисляется с использованием значения предыдущего слагаемого. Это полезный прием при вычислении значений типа xn,(-1)n, (sin x)n, sin xn и т.д.

4. Задание на итерационный цикл с заранее неизвестным количеством шагов. Реализовать метод Ньютона нахождения приближения к корню степени k из действительного неотрицательного x.

Пусть y0 - начальное приближение к корню. Будем последовательно получать значения:

y1=y0-(y0k - x)/(k*y0k-1),

y2=y1-(y1k - x)/(k*y1k-1),

y3=y2-(y2k - x)/(k*y2k-1) и т.д.

Процесс будем продолжать до тех пор, пока модуль разности двух последовательных приближений больше некоторого заданного e. Полученное значение будет приближением к корню степени k из x с точностью e. Заметим, что на каждом шаге нам нужны только два последних приближения. Рассмотрим код функции Main():

string K, X, EPS;

double x, d = 1, y, eps;

int k;

Console.WriteLine("Введите степень");

K = Console.ReadLine();

k = Convert.ToInt32(K);

Console.WriteLine("Введите значение первого элемента");

X = Console.ReadLine();

x = Convert.ToDouble(X);

Console.WriteLine("Введите значение эпсилент");

EPS = Console.ReadLine();

eps = Convert.ToDouble(EPS);

y = x;

while (Math.Abs(d)>eps)

{

d=(x/Math.Exp((k-1)*Math.Log10(y))-y)/k;

y=y+d;

}

Console.WriteLine("Приближение к корню равно {0}", d);

Console.ReadLine();

Упражнения для контрольной работы № 2

Вариант 1

1. Даны целые числа а1,...,аn,an+1,...;а1>0, среди а2,а3,... есть хотя бы одно отрицательное. Пусть а1,...,аn члены предшествующие первому отрицательному. Получить min(a1+a2,a2+a3,...,an-1+an).

2. Дано натуральное число n.Вычислить сумму и распечатать

S=

3. Даны действительные числа а и b (a<b), натуральное n, функция y=x+cos x, определенная на отрезке [a,b]. Для значений аргумента xi=a+ih (i=0,1,...,n), h=(b-a)/n Вычислить значение функции yi=xi+cos xi. Вывести xi,yi в виде колонки для значений (a=-р ,b=р, n=50). n 1

4. Вычислить сумму ряда и распечатать. Вычисления прекращаются при условии

Вариант 2

1. Даны натуральные числа n, a1, ..., an.Определить количество членов ак последовательности а1, ..., аn, являющихся квадратами четных чисел.

2. Даны натуральное число n , действительное - х. Вычислить:

3. Получить значения функции Z и распечатать в виде колонки Xi , Zi

Z=A sin2X + cos(Ax)2; A=ex + 2,5*10-3

Х изменяется в интервале [X0,Xn] с шагом h=0,05

X0=- р

Xn=

4. Вычислить значение суммы и распечатать :

,где (i=1,...,n)

Вычисления прекращаются при Ui<=E, E=10-5

Вариант 3

1. Даны целые числа а1,...,а50.Получить сумму тех чисел данной последовательности, которые удовлетворяют условию

2. Даны натуральное n, действительное х. Вычислить сумму и распечатать:

3. Вычислить значения функции и распечатать в виде таблицы:

Вычисления выполнить для 11 значений Х, равноотстоящих друг от друга

(i=1,...,11)

x1=2

4. Дано положительное число е, последовательность {an} задана формулой общего вида:

An=)

Написать программу, определяющую первый член последовательности, для которого выполняется неравенство

Вариант 4

1. Дано натуральное число n. Вычислить произведение первых n сомножителей и распечатать:

2.Вычислить сумму и распечатать для данного натурального n:

S=

3. Написать программу вычисления функции. Распечатать в виде таблицы xi, yi.

Y= arctg(e-x)

для х изменяющегося в интервале [-3,-2], если xi+1-xi=0,1 (i=1,2,...)

4. Вычислить значение суммы и распечатать для действительного х

S=

Значение n определяется по условию e=10-4

Вариант 5.

1. Даны целые числа a,n,x1,...,xn (n>0). Определить каким по счету в последовательности x1,...,x член равный а. Если такого члена нет, то ответом должно быть число 0.

2. Вычислить сумму и распечатать для данного натурального n

S=

3. Вычислить значение функции и распечатать в виде таблицы xi, yi:

Y=e-x(cos x+1)

значения аргумента принадлежит интервалу [0,1]xi+1-xi=0,1

4. Вычислить значение суммы и распечатать S и n

значение n определяется из условия un<=0,0001

Вариант 6

1. Даны натуральное число n, действительные числа a1,...,an. Найти длину наименьшего отрезка числовой оси, содержащего числа а1,...,аn.

2. Вычислить для известного натурального n и распечатать

S=

3. Вычислить значение функции Z и распечатать в виде таблицы xi, yi, zi:

Значения функции Z вычисляются для точек x, принадлежащих интервалу [-1,5; 1,5], лежащих на прямой x=y. Вычисления выполняются для точек x, равноотстоящих друг от друга на 0,25.

4. Вычислить сумму для действительного x и распечатать:

S=

n определяется по условию

Вариант 7

1. Рассматривается последовательность a1,...,a300

a1=0,01

ak=sin(k+ak-1)

k=2,...,300

Требуется определить сколько членов последовательности с номерами 1,3,9,27,... имеет значение меньше 0,5.

2. Вычислить сумму и распечатать для данного натурального n:

3. Вычислить сумму значений функции yi и распечатать

yi=0,723xi2-Vxi2+V7 cosxi

для х1=5,234

х2=1,92

х3=0,367

х4=1,00

4. Вычислить сумму ряда

Y=sh

Считать, что требуемая точность достигнута, если очередное слагаемое по модулю меньше E. E=10-3

Вариант 8

1. Даны целые числа a1,a2,... Известно, что а1>0 и что среди а2,а3,... есть хотя бы одно отрицательное число. Пусть а1,...,аn члены одной последовательности, предшествующие первому отрицательному члену. Получить количество четных среди а1,...,аn.

2. Вычислить сумму и распечатать для натурального n и действительного x:

S=

3. Вычислить значения функции и распечатать в виде таблицы xi,yi, вычислить значение суммы и распечатать:

значение xi вычисляется из условия, что x1=-0,01 h=0,15

4. Вычислить сумму ряда и распечатать:

y=cos x=1-

Считать, что требуемая точность достигнута, если

Вариант 9

1. Даны натуральное число n, действительные числа y1,...,yn; z = yi при

z = 2 в противном случае

Найти min()

2. Дано натуральное n и действительное x, вычислить сумму и распечатать:

S=

3. Даны действительные числа a и b (a<b), натуральное n. Вычислить значение функции y и распечатать в виде таблицы xi yi. y=sinx +cos2x, область определения функции [a,b].

xi=a+ih

(i=0,1,...,n)

h=(b-a)/n

(a=-р,b= р,n=50)

4. Вычислить сумму ряда и распечатать. Действительное х задано (x >)

S=lnx=

n определяется по условию

Вариант 10

1. Даны целые числа с1,...,с45. Имеется ли в последовательности два идущих подряд нулевых члена. Распечатать их номера или ответ "не имеются".

2. Дано натуральное N. Вычислить произведение первых p сомножителей:

3. Даны действительные числа а и b (a<b), натуральное n. Вычислить функцию и распечатать в виде таблицы xi, yi. Функция определена на [a,b];

xi=a+ih; (a=0, b=2р, n=50);

4. Вычислить сумму ряда S=

Значение n определяется по условию . Вычисления выполнить для действительного х и.

Вариант 11

1. Даны натуральное число n, действительные числа x1,...,xn. В последовательности x1,...,xn все члены меньшие двух заменить нулями. Получить сумму членов принадлежащих отрезку [3,7], а также число таких членов.

2. Дано натуральное n и действительное x. Вычислить произведение и распечатать

3. Вычислить значения функции и распечатать в виде таблицы xi, yi, zi; Z=X+4Y.

Вычислить для Х принадлежащего интервалу [2,8]xi+1=xi+x

x=0,5

4. Вычислить сумму ряда и распечатать

Считать, что требуемая точность достигнута, если

Вариант 12

1. Даны натуральное число n, действительные числа a1,...,an. Получить и и распечатать.

2. Дано натуральное n и действительное х, вычислить сумму ряда и распечатать

3.Вычислить значения функции и распечатать в виде таблицы xi, yi 1

x1=-1

xi+1-xi=0,05

i=0,1,...,7

4. Вычислить сумму ряда и распечатать для x=0,4

n определяется по условию

Вариант 13

1.Даны целые числа a1,a2,... Известно, что а1 > 0 и что среди а2,а3,... есть хотя бы одно отрицательное число. Пусть а1,...,аn, предшествующие отрицательному числу. Получить max(a12,...,an2) и распечатать.

2. Вычислить сумму ряда для вещественного х и распечатать

3. Вычислить значения функции и распечатать в виде таблицы xi, yi:

для равноотстоящих значений х в интервале [0 ; 1,5]x=0,1

4.Вычислить сумму ряда и распечатать

n определяется из условия

Вариант 14

1. Дано натуральное число n и числа b0=1, b1=1, bk=k2 bk-1 + bk-2 k=2,3,...,n. Вычислить bn и распечатать.

2. Даны натуральное n и действительное х. Вычислить сумму и распечатать:

3. Вычислить значения функции и распечатать в виде таблицы xi, yi:

x принадлежит отрезку [-3 , -2] и xi+1 - xi = 0,1

4. Вычислить сумму ряда и распечатать S с точностью e (e=10-5).

Заданная точность считается достигнутой при условии

Вариант 15

1. Дано натуральное число n и числа

a0=1,

Вычислить произведение и распечатать .

2. Вычислить сумму и распечатать для данного натурального n.

3. Вычислить значение функции и распечатать в виде таблицы xi, yi:

если x>1

x*ln x если x<=1

аргумент х изменяется от значения х0= 0,3 хi+1 - xi = 0,2 i=0,1,...,6 Вычислить у для семи значений аргумента и распечатать

4. Вычислить произведение с точностью e = 10-5 и распечатать P и n

точность считается достигнутой, когда

Вопросы

Приведите конструкцию и алгоритм работы оператора while

Приведите конструкцию и алгоритм работы оператора do while

Приведите конструкцию и алгоритм работы оператора for

Чем отличие циклов с постусловием от циклов с предусловием. Приведите примеры.



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.