3.4. Цикли з лічильником
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);
взяти(А);
Р¬А; Мах¬А;
для
і¬2 до N повт
взяти(А);
Р¬Р*A;
якщо
Р>Max то Мах¬Р кр
кц;
показати(Мах)
ка.
3.44. Дано натуральне число n. Скласти
алгоритм обчислення факторіала y=n!, використовуючи
а) суцільний зростаючий; б)
суцільний спадний цикли з лічильником.
3.45. Скласти алгоритм обчислення подвійного
факторіала натурального числа n y=n!!.
Розв`язок. За означенням
В обох випадках ми маємо як
співмножники всі члени спадної арифметичної прогресії з різницею -2, які містяться між n та 1. Звідси
Алг
Факт2 це
змін
k,n :нат;
y:дійсн;
поч
взяти(n);
y¬1;
для
k¬n до 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)
ка.