У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


Лабораторна робота

Тема:

 

ЦИКЛІЧНІ ПРОГРАМИ З РЕГУЛЯРНОЮ

ЗМІНОЮ АРГУМЕНТУ.

Мета роботи: оволодiння прийомами складання циклiчних алгорит-

мiв i програм, освоїння оператора циклу з рiвно-

мiрним приростом аргумента.

Завдання: знайти о якщо відомо що , dпоч.=3.6,

крок зміни – 4, кількість інтервалів 14, а = -8.6, b = 3.28.

Короткі теоретичні відомості:

Циклом називаїться обчислювальний процес, який багаторазово

повторюїться. Вiн характерний наявнiстю аргумента, iнакше - пара-

метра циклу. Це змiнна, яка перед циклом одержуї початкове зна-

чення, а в циклi нарощуїться i перевiряїться на досягнення кiнце-

вого значення, що ї умовою закiнчення циклу. Розрiзняють цикли з

рiвномiрним приростом аргумента, якi називають ще арифметичними

або типу арифметичноє прогресiє, та iтерацiйнi або перерахунку.

Цикл з рiвномiрним приростом аргумента ї найбiльш вживаним.

Число його виконань n можна обчислити за формулою:

n=----------- +1,

де Xп, Xк, h - вiдповiдно, початкове i кiнцеве значення та при-

рiст параметра циклу.

Для програмування циклу арифметичного типу служать оператори:

- циклу: FOR(Вираз1;Вираз2;Вираз3) оператор;

тут: Вираз1 - присвоїння параметру циклу початкового значення;

Вираз2 - умова, перевiрка на досягнення параметром циклу

кiнцевого значення;

Вираз3 - нарощення параметра циклу;

оператор - простий оператор або блок, тiло циклу.

- продовження: CONTINUE;

29

Останнiй оператор може знаходитися в тiлi циклу i його дiя по-

лягаї в переходi на кiнець циклу, тобто на нарощення параметра i

перевiрку умови закiнчення циклу.

В тiлi циклу може також знаходитися оператор break, його вико-

нання приводить до передчасного виходу з циклу.

Блок-схема матиме такий вигляд

Початок

а = -8.6, b = 3.28,

dпоч.=3.6, n=1.

друк

d,o

n ++, d+=4.

так

n ? 14

ні

 

Кінець

Ідентифікація змінних:

Змінна | Ідентифікатор

a | a

b | b

o | o

d | d

n | n

Програма:

Варіант №1

for |

Варіант №2

do while

#include <math.h>

main()

{

int n;

float a=-8.6,b=3.28,d=3.6,o;

clrscr();

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

{

o=(1+d+pow(d,4)/b)/pow(exp(d)+a,1/3);

printf("При d[%d]=%.1f:

o[%d]=%.2f\n",n,d,n,o);

d+=4;

}

getch();

} | #include <math.h>

main()

{

int n;

float a=-8.6,b=3.28,d=3.6,o;

clrscr();

n=1;

do

{

o=(1+d+pow(d,4)/b)/pow(exp(d)+a,1/3);

printf(" При d[%d]=%.1f: o[%d]=%.3f\n",n,d,n,o);

d+=4;

n++;

}

while(n<=14);

getch();

}

Варіант №3

if |

Варіант №4

while

#include <math.h>

main()

{

int n;

float a=-8.6,b=3.28,d=3.6,o;

clrscr();

n=1;

begin:o=(1+d+pow(d,4)/b)/pow(exp(d)+a,1/3);

printf("При d[%d]=%.1f: o[%d]=%.3f\n",n,d,n,o);

d+=4;

n++;

if(n<=14) {goto begin;}

else {goto end;}

end:getch();

} |

#include <math.h>

main()

{

int n;

float a=-8.6,b=3.28,d=3.6,o;

clrscr();

n=1;

while(n<=14)

{

o=(1+d+pow(d,4)/b)/pow(exp(d)+a,1/3);

printf("При d[%d]=%.1f: o[%d]=%.3f\n",n,d,n,o);

d+=4;

n++;

}

getch();

}

Результати:

При d[1] = 3,6 o[1]= 55.508

При d[2] = 7.6 o[2]= 1025.740

При d[3] = 11.6 o[3]= 5532.843

При d[4] = 15.6 o[4]= 18072.727

При d[5] = 19.6 o[5]= 45014.172

При d[6] = 23.6 o[6]= 94599.133

При d[7] = 27.6 o[7]= 176942.719

При d[8] = 31.6 o[8]= 304033.250

При d[9] = 35.6 o[9]= 489732.062

При d[10] = 39.6 o[10]= 749773.938

При d[11] = 43.6 o[11]= 1101766.750

При d[12] = 47.6 o[12]= 1565191.250

При d[13] = 51.6 o[13]= 2161401.750

При d[14] = 55.6 o[14]= 2913625.500

Висновок: Я оволодiв прийомами складання циклiчних алгорит-

мiв i програм, освоїв оператор циклу з рiвно-

мiрним приростом аргумента.

Циклічні програми, які містять розгалуження:

Завдання: Обчислити члени послідовності

які задовольняють умову 1.5<a<3.8; m=1,2,3,...,16.

Ідентифікація змінних:

Змінна | a | m

Ідентифікатор | а | m

Графічний алгоритм матиме вигляд:

ні

так

Програма:

#include<math.h>

main()

{

int m;

float a;

for(m=1;m<=16;m++)

{

a=log(pow(m,2)+sqrt(m));

if((a>1.5)&&(a<3.8))

{

printf("При m=%d: a=%f;\n",m,a);

}

}

getch();

}

Результати:

При m=2: a=1.689028;

При m=3: a=2.373235;

При m=4: a=2.890372;

При m=5: a=3.354542;

При m=6: a=3.649345;