17098

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

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

Информатика, кибернетика и программирование

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

Украинкский

2013-06-29

127.5 KB

2 чел.


Лабораторна робота № 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 <stdio.h>

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 <stdlib.h>

#include <stdio.h>

#include <conio.h>

#include <math.h>

# define N 23

main()

{int t,b;

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

 char m;

 clrscr();

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

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

 for (t=0;t<N;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<N;t++) printf("%c ",string[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<b);

 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<stdio.h>

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<n)

{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<n);

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<n;i++)

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

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

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

}

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

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

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

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

}

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

for(i=0;i<n;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.  Поясните роботу операторів у прикладах.


 

А также другие работы, которые могут Вас заинтересовать

46600. BELARUSIAN CUISINE 21.5 KB
  Belarusian cuisines have influences from its neighboring countries like Russia, Lithuania, Ukrainian and Polfnd among others. A variety of dishes made of potato form an important part of most cuisines in Belarus. Some of the popular potato dishes in Belarusian cuisines include Belarusian Draniki, Belarusian Draniki with Pork, Kolduni, Babka and Belarusian Kartoflyaniki among others
46601. Кодификация советского права 1920-х годов 21.53 KB
  Гражданский кодекс РСФСР был принят четвертой сессией ВЦИК девятого созыва 31 октября 1922 г. Отличительными чертами ГК РСФСР 1922 г. ГК гарантировал всем гражданам РСФСР охрану гражданских прав независимо от пола расы национальности вероисповедания и происхождения но в то же время ограничивал свободу предпринимательской деятельности и частной инициативы если осуществление гражданских прав противоречит их социальнохозяйственному назначению наносит явный ущерб государству. Право на пользование землей для ведения сельского хозяйства при...
46602. Планирование учебно-воспитательной работы по изобразительному искусству 21.55 KB
  Проблемы психического развития личности в онтогенезе факторы движущие силы закономерности. Филогенез развития вида онтогенез развитие индивида.Декарт и ЖанЖак Руссо представители природного биологизаторского направления идея которого состоит в том что наибольшее значение для развития личности имеет наследственность генетические факторы влияние среды минимально.Непосредственными движущими силами психического развития ребенка являются противоречия которые возникают и преодолеваются в процессе обучения и воспитания.
46603. РОССИЙСКАЯ ФЕДЕРАЦИЯ. ЗАКОН ОБ АВТОРСКОМ ПРАВЕ И СМЕЖНЫХ ПРАВАХ 21.55 KB
  Основные понятия Для целей настоящего Закона указанные ниже термины имеют следующее значение: автор физическое лицо творческим трудом которого создано произведение; аудиовизуальное произведение произведение состоящее из зафиксированной серии связанных между собой кадров с сопровождением или без сопровождения их звуком предназначенное для зрительного и слухового в случае сопровождения звуком восприятия с помощью соответствующих технических устройств; аудиовизуальные произведения включают кинематографические произведения и все...
46604. Виды трения. Износ при сухом, граничном, полужидкостном и жидкостном трении. Роль смазки 21.6 KB
  Трение сопротивление возникающее при взаимном перемещении соприкасающихся поверхностей тел. В зависимости от кинематических признаков относительного перемещения тел чаще всего встречаются два вида трения: трение скольжения и трение качения. В зависимости от состояния трущихся поверхностей различают: трение без смазки трение двух твердых тел при отсутствии на поверхности трения введенного смазочного материала всех видов; граничное трение трение двух твердых тел при наличии на поверхности трения слоя жидкости обладающего...
46605. Понятие государственной региональной политики 21.61 KB
  Применительно к системе государственного управления сформировалось следующее понимание государственной региональной политики. Под государственной региональной политикой можно понимать систему целей и задач органов центральной и местной государственной власти а также систему мер предпринимаемых ими в сфере управления политическим экономическим и социальным развитием регионов которая направлена на реализацию стратегии территориального развития государства. Региональной политикой можно считать лишь такую систему намерений и действий которая...
46606. Понятие и система источников экологического права 21.75 KB
  Применение пестицидов и агрохимикатов связано прежде всего с экономическими интересами получения высоких урожаев. Мерами по охране окружающей среды при обращении с этими веществами служат: регистрационные испытания пестицидов и агрохимикатов; экспертиза результатов регистрационных испытаний пестицидов и агрохимикатов; государственная регистрация пестицидов и агрохимикатов; лицензирование деятельности в области безопасного обращения с пестицидами и агрохимикатами; стандартизация и сертификация пестицидов и агрохимикатов; ...
46607. Методика анализа художественного произведения на уроке изобразительного искусства 21.77 KB
  Методика анализа художественного произведения на уроке изобразительного искусства.анализ живописного произведения Методика анализа худ. предполагает постановку учителем целей задач содержания выбор средствметодов форм обучения. 20Какую роль играет в картине колорит подчинён рисунку и объёму или наоборот подчиняет себе рисунок и сам выстраивает композицию 22В картине преобладают локальные цвета или тональный колорит 24Художник оперирует большими массами цвета или маленькими пятнамимазками 25Как написаны теплые и холодные цвета...
46608. Доходный подход к оценке недвижимости 21.93 KB
  Доходный подход Доходный подход основан на том что стоимость недвижимости в которую вложен капитал должна соответствовать текущей оценке качества и количества дохода который эта недвижимость способна принести.5: или где С V стоимость недвижимости; ЧД I ожидаемый доход от оцениваемой недвижимости. Оценка потерь от неполной загрузки сдачи в аренду и невзысканных арендных платежей производится на основе анализа рынка характера его динамики применительно к оцениваемой недвижимости.