четвер, 4 лютого 2016 р.

Цикли з лічильником

 3.42. Задані натуральне число n, дійсні числа . Скласти алгоритм для знаходження:
а)       max();      б) min();
в)       max();             г) min();
д)      min()+max();
е)       max);      ж) max(;
з)       .
          Розв`язок а) Позначивши через А чергове число, яке ми вводимо, а через Min min(), складемо слідуючий алгоритм:
          Алг Мінімум це
                   змін   i,N:нат;
                             A,Min:дійсн;
          поч
                   взяти(N); взяти(A); Min¬A;
                   для i¬1 до N повт
                             взяти(A);
                             якщо A<Min то Min¬A  кр
                   кц;
                   показати(Min)
          ка.

          3.43. Дано натуральне число n, цілі числа . Скласти алгоритм знаходження
а)       min();
б)      min();
в)       max();
г)       кількості парних серед ;
д)      кількості повних квадратів серед ;
е)       кількості квадратів непарних чисел серед .
          Розв`язок. в). Позначимо через А - чергове число, що вводиться, Р - добуток введених чисел , що передують А, включаючи саме це число, Max - шуканий максимум. Складемо алгоритм у вигляді:
          Алг Max_P це
                   змін   N,i :нат;
                             А,Р,Мах :ціл;
          поч
                   взяти(N);
                   взяти(А);
                   Р¬А; Мах¬А;
                   для і¬до N повт
                             взяти(А); Р¬Р*A;
                             якщо Р>Max то Мах¬Р кр
                   кц;
                   показати(Мах)
          ка.

          3.44. Дано натуральне число n. Скласти алгоритм обчислення факторіала y=n!, використовуючи
а)       суцільний зростаючий; б) суцільний спадний цикли з лічильником.

          3.45. Скласти алгоритм обчислення подвійного факторіала натурального числа n  y=n!!.
          Розв`язок. За означенням
                   

          В обох випадках ми маємо як співмножники всі члени спадної арифметичної прогресії з різницею -2, які містяться між n та 1. Звідси

          Алг Факт2 це
                   змін k,n :нат;
                             y:дійсн;
          поч
                   взяти(n);
                   y¬1;
                   для k¬до 1 через -2 повт
                             y¬y*k
                   кц;
                   показати(y)
          ка.
розв`язує дану задачу. Зауважимо, що при непарному n останнім значенням k буде 1, а при парному - 2. Приклад виконання алгоритму наведений в табл. 3.2

Таблиця 3.2. Трасувальна таблиця до завдання 3.45.

n
y
k
взяти(n)
5


y¬1

1

для k¬5 до 1 через -2 повт



k=5


5
y¬yk

5

k=3


3
y¬yk

15

k=1


1
y¬yk

15

кц



показати(y)

15


          3.46. Скласти алгоритми обчислення факторіалів:
а)       y=(2n)!!;               б) y=(2n+1)!!;               в) y=n!n!!(n+1)!!

          3.47. Задане натуральне число n. Скласти алгоритми обчислення добутків

а)       P=;  б)P=n>2

          3.48. Скласти алгоритм друку таблиці значень функції y=sin(x) на відрізку [0,1] з кроком h=0.1.

          3.49. Скласти алгоритм визначення кількості тризначних натуральних чисел, сума цифр яких дорівнює n (n>=1). Операцію ділення не використовувати.

          3.50. Дано n цілих чисел. Скласти алгоритм, що визначає, скільки з них більші за своїх "сусідів", тобто попереднього та наступного чисел.

          3.51. Задані натуральне число n, дійсні числа . Скласти алгоритм визначення

а)       max(),          де ;

б)      min(), де ;

в)       , де .

          Розв`язок в). Позначивши через S шукану суму, а через y значення чергового введеного числа, подамо алгоритм розв`язку задачи в наступному вигляді:

          Алг Сума_Z це
                   змін i,n :нат;
                             y,z,S :дійсн;
          поч
                   взяти(n); S¬0;
                   для i¬1 до n повт
                             взяти(y);
                             якщо (y<10) & (y>0то z¬y
                             інакше  z¬1
                             кр;
                   S¬S+z
                   кц;
                   показати(S)
          ка.

Немає коментарів:

Дописати коментар