Тема: Розробка програм з циклічними обчислювальними процесами




Скачати 161.25 Kb.
НазваТема: Розробка програм з циклічними обчислювальними процесами
Дата конвертації06.05.2013
Розмір161.25 Kb.
ТипДокументы
uchni.com.ua > Інформатика > Документы
Лабораторна робота № 10

Тема: Розробка програм з циклічними обчислювальними процесами

Ціль роботи: Вивчити написання програм мовою С, використовуючи ітераційні (циклічні) методи, освоїти основні оператори, що підтримують роботу з циклами (for, while, do... while). Навчитися писати програми, використовуючи дані оператори.

Обладнання: ПК,ПО Borland C++

Теоретичні відомості

Кожен оператор С закінчується оператором (;), що є порожнім оператором. Цикли, ітераційні процедури дозволяють виконувати окремі чи оператори блоки операторів (складені оператори {…})... Число повторів визначається вираженням у дужках, значення якого порівнюється з (-припинення циклу). Цикли бувають з перевіркою значення вираження перед початком виконання тіла циклу (із предусловием), по закінченню виконання тіла (з постумовою) чи усередині тіла циклу. У С визначено три види операторів циклу: оператор циклу з предумовою - while, оператор циклу з постумовою do... while і оператор циклу for. Розглянемо ці операторы детально:

Цикл while має наступний формат:

while (<вираження>) <оператор>

Умова виконання ітерації в циклі while попередньо перевіряється й у випадку істинності вираження (не дорівнює ) виконуються ті оператори, що описані в тілі циклу. У противному випадку цикл закінчується, і програма продовжує своє виконання з того місця, де закінчилося тіло циклу. Якщо тіло циклу містить трохи операторів, воно обмежується операторними дужками: "{" і "}" і є складеним оператором.

Перервати виконання циклу можна, використовуючи оператори break, goto, return. Нижче продемонстровано два приклади роботи з циклом while у виді фрагментів програм.

Перший приклад демонструє застосування операторів while і break, що перекриває цикл. Другий приклад показує використання циклу while для перевірки відповіді, що вводиться з клавіатури.

Приклад 1

Приклад 2



int i=10,k,s =;

printf ("увести крок збільшення до: "); scanf("%i",&k );

while (i) //виконувати цикл, поки i не

// дорівнює

{ s+=k; // збільшити s на k

i- - ; // зменшити i на 1

if (i=k) break; //вийти, якщо виконається

// умова: i=k

}...

...

char ch =’a’;

do // почати цикл do while

{ printf("\n Відповідайте yes чи no (y/n):");

scanf(ch!=’у' &&ch!= 'n'); // виконувати

цикл доти, поки не буде натиснута

// буква ‘у' чи ‘n’


Оператор циклу do while() є циклом з постумовою. У цьому випадку тіло циклу завжди виконається хоча б один раз.

Формат оператора циклу наступний:

do <оператор>

while(<вираження>);

Тілом циклу може бути один чи трохи операторів (складений оператор). Нижче приведені аналогічні приклади реалізації циклу з постумовою.


Приклад 1

Приклад 2




int i=10, k, s=;

printf ("увести крок збільшення до: "); scanf("%i", &k);

do // почати цикл do while

{ s+=k; //збільшити s на k

i-- ; //зменшити i

if (i=k) break; //вийти, якщо
// виконається умова: i= =k

while (i); // виконувати цикл, поки i
//
не дорівнює

char ch;

do //почати цикл do while

printf ("\n Відповідайте yes чи no (y/n):");

scanf("%c",&ch);

while (ch!='у' && ch!='n'); // виконувати //цикл доти, поки не буде натиснута //буква 'у' чи 'n'


Оператор циклу for є найбільш зручним і могутнім засобом організації циклічних обчислень у ^ С.

Формат циклу for:

for([<вираження1>];[<вираження2>];[<вираження3>]) <оператор>

де : <вираження1> - робить ініціалізацію тих перемінних, котрі будуть безпосередньо змінюватися в циклі, зокрема, задається початкове значення перемінн-лічильника

<вираження2> - визначає умову виходу з циклу. При рівності його значення цикл переривається;

<вираження3> - це вираження задає зміну на кожнім кроці перемінних, ініціалізованих у <вираженні1>. Можна задавати також зміна інших перемінних, не зв'язаних з <вираженням1>.

Кожне з описаних виражень може не бути присутнім. Оператор циклу for, заданий як for(;;){<тіло_циклу>}, є нескінченним циклом.

Алгоритм роботи оператора циклу for ():

  1. Обчислюється перше вираження (якщо воно присутнє).

  2. Обчислюється друге вираження (якщо воно присутнє), перевіряється умова закінчення циклу:(<вираження 2>= = “ Ложно ”) тобто Якщо воно не дорівнює  (“Істинно”) – відбувається перехід до пункту 3, інакше вихід з циклу.

  3. Виповнюється тіло циклу.

  4. Обчислюється третє вираження, якщо воно присутнє.

  5. Перехід до пункту 2.

Поява в будь-якім місці тіла циклу оператора continue - приводить до припинення виконання операторів у тілі циклу 4 негайному переходу до кроку 2.

Вихід з циклу можливий аналогічно while за допомогою операторів break, goto, return.

Приклад 1 (варіант 1) (варіант 2)

#include

void main (void)

{// Програма виводить парні числа

//у діапазоні від 100 до 0, у порядку
// убування.

^ For (int i=100;i>=0;i-=2) printf("\n%d",i);

} i - =2

f r (i=100; i>=0; i--)

if (i%2= =1) continue; o // оператор

// continue перериває поточну

// ітерацію

else printf("\n%d",i);

Для демонстрації гнучкості оператора for перепишемо приклад у наступному виді (варіант 3):

for(int i=100;i>=0; printf("\n%d",i), i - =2);

Приклад

/* ЗАНЯТТЯ N 4

Розробив ...........

Рядок символів записується в зворотному порядку з

застосуванням різних операторів організації циклів */

#include

#include

#include

#include

# define N 23

main()

{int t,b;

char string[]="\"Ініціалізація рядка\"";

char m;

clrscr();

// Цикл for -із предумовою

printf("виведення вихідного рядка\n");

for (t=0;t
printf("%c ",string[t]);

for (t=0,b=N-2;t<(N-1)/2;t++,b--)

{m=string[t];

string[t]=string[b];

string[b]=m;

}

printf("\nВывод рядка в зворотному порядку\n");

for (t=0;t
printf("\nВвод нового рядка -y, немає-n:\t");

m=getche();

if(m!='n')

new_str: scanf("%s",string);

else printf("\n");

// Цикл while -із предумовою

t=0;

while(string[t]!='\0')

{printf("%c",string[t]);

t++;

}

printf("\nКоличество символів =%2d\n",t);

// Цикл d0...while -з постумовою

printf("виведення рядка в зворотному порядку\n");

b=t-1;t=0;

do

{m=string[t];

string[t]=string[b];

string[b]=m;

t++;b--;

}while(t
printf("%s ",string);

printf("\nВвод нового рядка -y, немає-n:\t");

m=getche();

if(m=='у') goto new_str; //new_str -мітка

else getch();

}

/* виведення вихідного рядка

" И н и ц и а л и з а ц и я с т р о к і "

виведення рядка в зворотному порядку

" і к о р т с я и ц а з и л а и ц и н И "

Уведення нового рядка -y, немає-n: n

"икортс яицазилаицини"

Кількість символів =22

виведення рядка в зворотному порядку

"Ініціалізація рядка"

Уведення нового рядка -y, немає-n: y

qwert12345

Кількість символів =10

виведення рядка в зворотному порядку

54331trewq

Уведення нового рядка -y, немає-n: n */

^ Приклад програми на С++

Скласти програму для збереження й обробки інформації яка включає різні типи даних. Індивідуальне завдання приведене в таблиці 3.2.

Варіант

Номер і зміст даних




1

2

3

4

5

6

7

6

Назва магазина

Вид товару

Адреса

Час роботи

Кількість продавців

Номер магазина



#include

void main()

{char namem[20][20];

char namet[20][20];

char adres[20][20];

char time[20][20];

int nump[20];

int numm[20];

int i,n;

printf("Введите число магазинов (не больше 20): ");

scanf("%d", &n);

i=0;

while(i
{printf("Магазин %d\n", i+1);

printf("Название магазина: ");

scanf("%20s", namem[i]);

i++;

}

i=0;

do

{printf("Магазин %d\n", i+1);

printf("Вид товара: ");

scanf("%20s", namet[i]);

i++;

} while(i
for(i=0;;i++)

{printf("Магазин %d\n", i+1);

if(i>=n) break;

printf("Адрес: ");

scanf("%20s", adres[i]);

}

for(i=0;;i++)

{printf("Магазин %d\n", i+1);

if(i>=n) goto l;

printf("Времьа работы: ");

scanf("%20s", time[i]);

}

l:

for(i=0;i
{printf("Магазин %d\n", i+1);

printf("Количество продавцов: ");

scanf("%d", &nump[i]);

}

for(i=0;i
{printf("Магазин %d\n", i+1);

printf("Номер магазина: ");

scanf("%d", &numm[i]);

}

printf("-------------------------\n");

for(i=0;i
{printf(" Магазин %d\n", i+1);

printf("Название магазина: ");

printf("%s\n", namem[i]);

printf("Вид товара: ");

printf("%s\n", namet[i]);

printf("Адрес: ");

printf("%s\n", adres[i]);

printf("Времйа работы: ");

printf("%s\n", time[i]);

printf("Количество продавцов: ");

printf("%d\n", nump[i]);

printf("Номер магазина: ");

printf("%d\n", numm[i]);

}

}

^ Хід роботи

  1. За індивідуальним завданням викладача скласти програму з різними варіантами застосування операторів циклу: while, do…while,for... Передбачити додаткові можливості виходу з циклів (оператори break, goto).

  2. Набрати програму на комп'ютері, виявити й усунути помилки.

  3. Ознайомитися з роботою операторів циклу в мові С.

  4. Одержати результати роботи програми.

  5. Оформити звіт і зробити Захист роботи про пророблену роботу, вивчивши контрольні питання по темі.

Вимоги до змісту звіту приведені в лабораторній роботі№1.

Індивідуальне завдання до лабораторної роботи №4

Знайти суму ряду

y = , де a x b, x = c.

Варіанти завдань приведені в таблиці 4.1.

Таблиця 4.1 - індивідуальне завдання

Вар.

f1

f2

A

b

c

1

3x-1

e-1/x+x/(x+1)

3

5

0,5

2

X3-3x2

x4+2x2+3

1

3

0,2

3

e-x+4x



0,6

4,2

0,3

4

Sin2(x+4x3)

(x+2x3)

0,5

4,8

0,2

5

Xsinx3-ln2x

arctgx/4+e-x+2

2

6,3

0,4

6

X4-cosx

tgx+2x

1

5

0,5

7

2x+sin2x



5

8

0,3

8

ln(4x+8)

e-x+sin2x

1

4

0,2

9

x3ln(2x)

4x2+6x3-2

0,5

6

0,3

10

x2+sin3x

cos3x+e-2x

-2

3

0,4

11

xe-x

sin4x+x3

1,5

5

0,3

12



arctgx/5+2x

0,6

4

0,2

13

x2/(3x+2)

sin2( x+1)

0,5

5,2

0,3

14



3x/(x-2)

1,2

6,3

0,4

15

x3x+1+8x

|x-8|+sinx

4

7,5

0,3

16

x4+ex+3

xarctg(x/3)

2

6,4

0,2

17

ln2(x+4)

sin3(x/5)

1

6,8

0,3

18

ex-2+x3

x-ln|x-1|

0

4

0,4

19

2cos(x+3)

4x2/(3+x3)

2

5

0,3

20

)

tg2(x+4)-e-x

1

6

0,4

21

3+2sin2(x-3)

4+x/10

2

7

0,5

22

ln(1(1+2x)

sin2(4x+1)

1,5

6,8

0,4

23

+e-x

5arctg(4x)

2

7

0,5

24

arcsin(x+2)

3(x-4)/(x2+1)

3

8

0,2

25

e|x+2|

ln2(x+4)

-2

6

0,3

26

(4-x)cos2x

+e-3x

1

7

0,4

27



sinx4-4

-2

5

0,2

28

2x+4+cos2x

ln|x+8|

-4

2

0,5

29

(x+2)/sin3x



1

4

0,3

30

ex+3+4x2

arcsinx3

2

5

0,2

Контрольні запитання

  1. За допомогою яких операторів можна достроково завершувати виконання операторів циклу?

  2. Які вираження можна використовувати в операторі циклу?

  3. Як інтерпретуються значення виражень операторів циклу? Якого типу можуть бути ці вираження?

  4. Чи можна записати наступні оператори: for (; ;); while (); do while(i--); for (; i && j ; i++, j- -); for (int i, k ; ; i+=2) j++ ; k-=5;?: Поясните, чому чи можна не можна ?

  5. Поясните результат роботи приведених операторів.

  6. У чому різниця в роботі операторів із предумовою і з постумовою?

  7. Яке призначення виражень в операторі for?

  8. Навіщо використовуються складені оператори (операторні дужки)?

  9. За допомогою якого оператора можна припинити виконання поточної ітерації в циклі?

  10. Назвіть порядок обчислення й інтерпретації виражень в операторі for.

  11. Поясните роботу операторів у прикладах.

Схожі:

Тема: Розробка програм з циклічними обчислювальними процесами iconТема: Розробка програм зі складеними типами даних
Ціль: виробити практичні навички в написанні програм з використанням комбінованих типів даних
Тема: Розробка програм з циклічними обчислювальними процесами iconТема: Розробка програм з функціями. Оголошення, визначення І виклик функцій
Ціль роботи: виробити практичні навички в написанні програм з виділенням функцій, їхнім оголошенням, визначенням І використанням
Тема: Розробка програм з циклічними обчислювальними процесами iconТема: Використаня інформаційних та комп`ютерних технологій для автоматизації виробництва
Технічні процеси, спеціальним чином організовані для виробниц­тва продукції, називаються технологічними процесами. Техно­логічними...
Тема: Розробка програм з циклічними обчислювальними процесами iconТема: Розробка програм зі скалярними типами даних
Ціль роботи: Розглянути І вивчити скалярні типи даних С++ (int, char, float І ін.) І їхнє використання
Тема: Розробка програм з циклічними обчислювальними процесами iconТема: Розробка програм зі скалярними типами даних
Ціль роботи: Розглянути І вивчити скалярні типи даних С++ (int, char, float І ін.) І їхнє використання
Тема: Розробка програм з циклічними обчислювальними процесами iconТема: Розробка програм з покажчиками
Самим могутнім інструментом у С, безумовно, є покажчики І для того, щоб опанувати програмуванням у З, необхідно опанувати умінням...
Тема: Розробка програм з циклічними обчислювальними процесами iconТема: Розробка програм з використанням класів
Ціль роботи: вивчити синтаксичні конструкції для оголошення, визначення І використання класів. Розібратися з особливостями використання...
Тема: Розробка програм з циклічними обчислювальними процесами iconТема. Підтримання температури тіла. Теплопродукція. Тепловіддача
Визначити роль шкіри в терморегуляції. Визначити якими процесами, та як забезпечується тепловіддача. Визначити якими процесами, та...
Тема: Розробка програм з циклічними обчислювальними процесами iconУрок №12. Тема
Тема: Встановлення та видалення програм. Встановлення та видалення програм за допомогою Панелі керування. Встановлення та видалення...
Тема: Розробка програм з циклічними обчислювальними процесами iconТема: Розробка програм із багатофайлової структурою. Заголовні файли....
Ціль роботи: ознайомитися з написанням програм із багатофайлової структурою, заголовними файлами, вивчити класи пам'яті перемінних...
Додайте кнопку на своєму сайті:
Школьные материалы


База даних захищена авторським правом © 2014
звернутися до адміністрації
uchni.com.ua
Головна сторінка