-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCpp2021.tex
7176 lines (5786 loc) · 547 KB
/
Cpp2021.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\documentclass[]{article}
\usepackage{lmodern}
\usepackage{amssymb,amsmath}
\usepackage{ifxetex,ifluatex}
\usepackage[utf8]{inputenc}
\usepackage[english,russian,ukrainian]{babel}
\usepackage{fixltx2e} % provides \textsubscript
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\else % if luatex or xelatex
\ifxetex
\usepackage{mathspec}
\else
\usepackage{fontspec}
\fi
\defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
\fi
% use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
% use microtype if available
\IfFileExists{microtype.sty}{%
\usepackage{microtype}
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\usepackage[unicode=true]{hyperref}
\hypersetup{
pdfborder={0 0 0},
breaklinks=true}
\urlstyle{same} % don't use monospace font for urls
\usepackage{graphicx,grffile}
\makeatletter
\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
\makeatother
% Scale images if necessary, so that they will not overflow the page
% margins by default, and it is still possible to overwrite the defaults
% using explicit options in \includegraphics[width, height, ...]{}
\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}
\IfFileExists{parskip.sty}{%
\usepackage{parskip}
}{% else
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
}
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{0}
% Redefines (sub)paragraphs to behave more like sections
\ifx\paragraph\undefined\else
\let\oldparagraph\paragraph
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
\fi
\ifx\subparagraph\undefined\else
\let\oldsubparagraph\subparagraph
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
\fi
\date{}
\usepackage{multicol}
\usepackage{enumitem}
\makeatletter
\newcommand{\xslalph}[1]{\expandafter\@xslalph\csname c@#1\endcsname}
\newcommand{\@xslalph}[1]{%
\ifcase#1\or а\or б\or в\or г\or д\or e\or є\or ж\or з\or i%
\or й\or к\or л\or м\or н\or о\or п\or р\or с\or т%
\or у\or ф\or х\or ц\or ч\or ш\or ю\or я\or аа\or бб\or вв %
\else\@ctrerr\fi%
}
\AddEnumerateCounter{\xslalph}{\@xslalph}{m}
\makeatother
\begin{document}
Збірник задач для вивчення мов С та С++
План
\begin{enumerate}
\item
Компіляція програм та прості програми на Сі++/Сі:
\item
Прості розрахунки та виведення (дійсні числа)
\item
Введення (дійсні числа)
\item
(Локалізація)
\item
Введення/виведення на Сі та прості функції дійсних аргументів.
\item
Математичні функції.
\item
Використання математичних функцій
\item
Створення власних простих функцій
\item
Цілі числа та умовні конструкції
\item
Цілі числа та їх типи
\item
Прості умовні конструкції
\item
Цикли (дійсні та цілі числа)
\item
Цикли з лічильником
\item
Цикли з перед- та післяумовами
\item
(Комплексні числа)
\item
Рекурсія?
\item
Бітові операції
\item
Масиви на Сі. Одновимірні масиви
\item
Двовимірні та багатовимірні масиви
\item
Вказівники та виділення пам'яті
\item
Робота з рядками Сі
Тип рядку --- рядок з символом кінця рядку
\item
Символьний тип
\item
(Широкі символи та юнікод)
\item
Символьні файли на Сі
\item
Текстові файли на Сі
\item
Структури на Сі
\item
(Бітові поля)
\item
(Об'єднання)
\item
(Перерахування)
\item
Бінарні файли на Сі
\item
(Командний рядок)
\item
(Змінні оточення)
\item
(Статичні та глобальні змінні)
\item
(вказівники на функції)
\item
(Функції зі змінною кількістю аргументів)
\item
(Макроси?)
\item
(Дати та час?)
\item
(Багатопоточність?)
\item
Потоки вводу/виводу Сі++
\item
Текстові файли Сі++
\item
Робота з класом string
\item
Створення власних класів на Сі++
\item
Наслідування та віртуальні методи
\item
Шаблони функцій та шаблон пари
\item
Класи-шаблони
\item
Стандартна бібліотека STL:
\item
Контейнери адаптори
\item
Послідовні контейнери
\item
Асоціативні контейнери
\item
Алгоритми
\item
Розумні вказівники
\item
Багатопоточні застосування
\item
Клієнт-серверні системи??
\item
Робота з різними форматами файлів???
\end{enumerate}
\section{Компіляція програм та прості програми на Сі++/Сі. Форматоване виведення.
Прості розрахунки та виведення (дійсні числа)}
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\item
Обчисліть наступні математичні вирази та виведіть результати:
2+31; 45*54-11; 15/4; 15.0/4; 67\%5; (2*45.1 +3.2)/2;
\item
Ініціалізуйте наступні числа як дійсні, подвійні дійсні та довгі
дійсні:\(10^{- 4}\), 2.33E5, \(\pi\) , \(e\), \(\sqrt{5}\), \(ln(100)\)
\item
Задайте в програмі довільні 5 цілих та 5 дійсних чисел. Вивести на екран таблицю
з цих значень у вигляді, слідкуючі за "красою" виводу:
\begin{verbatim}
x | 1 | 2 | 3 | 4 | 5 |
- | - - | - - | - - | - - | - - |
y | 3.0 | 1.0 | 5.0 | 4.0 | 2.1 |
\end{verbatim}
\item
Зобразити на екрані декартову систему координат у вигляді
\^{} y
\textbar{} x
-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\textgreater{}
\textbar{} 1
\textbar{}
\item
Вивести на екран текст:
-\/ a -\/ a -\/ a
a \textbar{} a \textbar{} a
-\/ a -\/ a -\/ a,
де a -- введена з клавіатури цифра.
\item
Ініціалізувати два довільні рядки та вивести їх в одному рядку та
поставивши між ними кому та пробіл, а перед та після три окличних знаки.
Приклад:
\begin{verbatim}
!!! Hello , World! !!!
\end{verbatim}
\item
Обчислити силу притягання $F$ в науковому (екоспоненційному) форматі між двома тілами,
що мають маси $m_{1},m_{2}$ на відстані $r$.
\emph{\emph{Вказівка}}. Шукана силa визначається за формулою
$ F=\gamma \frac{m_{1}*m_{2}}{r^{2}}$,
де $\gamma = 6.673*10^{-11}$ Н*м\textsuperscript{2}/кг\textsuperscript{2}. Всі потрібні змінні
присвоюються всередині програми. Результат вивести в окремому рядку
вигляду «F=*** », де замість зірок представлення в науковому
(експоненційному) вигляді.
\item
Наближено визначити період обертання Землі навколо Сонця, використовуючи
ланцюговий дріб
\[T = \mathrm{365} + \frac{1}{4 + \frac{1}{7 + \frac{1}{1 + \frac{1}{3}}}}\]
Результат вивести в форматі плаваючої крапки.
\item
Обчислити значення функції десяткового логарифму для даного числа --
вивести результат з точністю до 3 знаків.
\item
Дано дійсне число x. Користуючись лише операцією множення, отримати:
\begin{multicols}{2}
\begin{enumerate}[label=\xslalph*)]
\item \(x^{4}\) за дві операції;
\item \(x^{6}\) за три операції;
\item \(x^{9}\) за чотири операції;
\item \(x^{15}\) за п'ять операцій;
\item \(x^{28}\) за шість операцій;
\item \(x^{64}\) за шість операцій.
\end{enumerate}
\end{multicols}
\item
Тіло починає рухатися без початкової швидкості з прискоренням a.
Обчислити:
а) відстань, яку воно пройде за час t від початку руху;
б) час, за який тіло досягне швидкості v.
\item
Обчислити кінетичну енергію тіла масою m, що рухається зі швидкістю v
відносно поверхні Землі.
\item
Вивести на екран таблицю:
\begin{verbatim}
x | 1 | 2 | 3 | 4 | 5 |
------|-------|------|------|------|------|
F(x)| y | y | y | y | y |
\end{verbatim}
де замість символу $y$ - значення у форматі з плаваючої крапкою з точністю
до двох знаків після крапки або ціле, вирівняне по центру, функцій:
а) $F(x) = exp^{-x^{2}}$; б) $F(x)= \sqrt{x}$.
\end{enumerate}
\section{ Введення (дійсні числа)}
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\item
Ввести дійсне число градусів Цельсія C (на екрані повинна бути підказка,
що ввести) та обчислити й вивести число F в дійсному форматі -- та сама
температура в градусах Фаренгейта за формулою \(F = \frac{9C}{5} + 32\).
Результат вивести в окремому рядку вигляду «F=*** », де замість зірок
представлення числа в найкоротшому вигляді з можливих.
\item
Ввести дійсне число x та підрахуйте без та за допомогою математичних
функцій Сі її цілу та дробову частину, найменше ціле число, що більше x
та найбільше ціле, що менше x, а також його округлене значення.
Перевірте результат роботи для від'ємного числа.
\item
Ввести в двох різних рядках послідовно два дійсних числа та обчислити
значення їх різниці та добутку. Результат вивести в десятковому
представленні (з фіксованою крапкою).
\item
Ввести два дійсних числа записаних через пробіли в одному рядку та
обчислити значення їх середнього арифметичного та середнього
гармонічного. Результат вивести в науковому та десятковому
представленні.
\item
Три дійсні числа вводяться як рядок вигляду
А=ххх.ххх, B=xxExxx C=xxx.xxxx , де ``A='',''B='', ``C='' символи, що
повинні бути присутніми та ігноруються при введенні (Бажано не
використовувати рядковий тип при введенні).
\item
Обчисліть їх середнє арифметичне та середнє гармонічне та виведіть у
науковому та форматі з фіксованою крапкою.
\item
Ввести дійсне число від 0 до 10000 та вивести його 8 ступінь з точністю
до 20 знаків до десяткової коми та 4 значками після десяткової коми.
\item
На терміналі вводяться 20 цифр. Перші 10 цифр -- це перше ціле число,
останні 10 цифр -- друге. Введіть їх (не використовуючі рядковий тип) та
обчисліть і виведіть їх суму.
\item
Вивести на екран текст:
а) б)
a a a a-\/-\/-\/-\/-\/-\/-\/-\/-\/-a
a a а \textbar{} a \textbar{}
a a a a-\/-\/-\/-\/-\/-\/-\/-\/-\/-a
де a -- введене з клавіатури дійсне число менше 100 (прослідкуйте, щоб
воно а) мало не більше 5 значущих цифр, б) мало рівно 5 значущих цифр).
\item
Позиція у грі «Хрестики-нулики» представлена в програмі за допомогою 9 символів виду ' ','O','X'.
Показати на екрані позицію у грі «Хрестики-нулики».
Наприклад, для позицій \{ 'O','X',' ', ' ', 'X', 'O','X', 'O', ' '\} вона буде:\\
O | X | \hspace*{7pt} \\
\hspace*{7pt} | X | O \\
X | O | \hspace*{7pt} \\
\item
Ввести користуючись лише однією функцією вводу ціле число записане в
шістнадцятковому вигляді та вивести його зменшене на одиницю в
шістнадцятковому та десятковому вигляді.
\item
Дійсне число записано в рядку, при цьому перед ним може стояти будь-яка
послідовність з пробілів та символів `*'. Ввести його користуючись лише
одним викликом функції вводу та виведіть значення його кубу.
\item
Введіть два цілих числа n, m та виведіть числа \(m,m^{2}\) в різних
рядках на відстанях від лівого краю консолі рівних \(n\) та \(2n\)
відповідно.
\end{enumerate}
\section{Використання стандартних математичних функцій}
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\item
Ввести дійсне число х та обчислити значення функції тригонометричного
косинуса для нього.
\item
Обчислити гіпотенузу c прямокутного трикутника за катетами a та b.
\item
Обчислити площу трикутника S за трьома сторонами a, b, c.
\item
Обчислити площу еліпса за координатами його радіусів.
\item
В трикутнику відомо довжини всіх сторін. Обчислити довжини його:
\begin{enumerate}[label=\xslalph*)]
\item
медіан,
\item
бісектрис,
\item
висот.
\end{enumerate}
\item
Трикутник заданий величинами своїх кутів та радіусом вписаного кола.
Обчисліть його площу.
\item
Трикутник заданий довжиною своїх сторін. Знайти та вивести величину
кутів трикутника у радіанах та градусах.
\item
Обчислити відстань від точки \((x_{0},y_{0})\) до:
\begin{enumerate}[label=\xslalph*)]
\item заданої точки \((x,y)\);
\item заданої прямої \(ax + by + c = 0\);
\item точки перетину прямих \(x + by + c = 0\) і
\(ax + y + c = 0,\ \) де
\(ab \neq 1\).
\end{enumerate}
\item
Знайти об'єм циліндра, якщо відомо його радіус основи та висоту.
\item
Знайти об'єм конуса, якщо відомо його радіус основи та висоту.
\item
Знайти об'єм тора з внутрішнім радіусом $r$ і зовнішнім радіусом $R$.
\item
Знайти корені квадратного рівняння з коефіцієнтами a,b,c, якщо відомо,
що обидва корені в ньому існують. Перевірте ваш розв'язок на
коефіцієнтах рівняння a=3,b=100,c=2.
\end{enumerate}
\section{Декларація та використання функцій}
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\item
Напишіть функцію, яка за найменшу кількість арифметичних операцій,
обчислює значення многочлена для введеного з клавіатури значення
$x$:
\begin{enumerate}[label=\xslalph*)]
\item \(y = x^{4} + 2x^{2} + 1\);
\item \(y = x^{4} + x^{3} + x^{2} + x + 1\);
\item \(y = x^{5} + 5x^{4} + 10x^{3} + 10x^{2} + 5x + 1\);
\item \(y = x^{9} + x^{3} + 1\);
\item \(y = 16x^{4} + 8x^{3} + 4x^{2} + 2x + 1\);
\item \(y = x^{5} + x^{3} + x\).
\end{enumerate}
\item
Скласти функцію для обчислення значення многочлена від двох змінних
для введеної з клавіатури пари чисел \((x,y)\):
\begin{enumerate}[label=\xslalph*)]
\item
\(f(x,y) = x^{3} + 3x^{2}y + 3xy^{2} + y^{3};\)
\item
\(f(x,y) = x^{2}y^{2} + x^{3}y^{3} + x^{4}y^{4};\)
\item
\(f(x,y) = x + y + x^{2} + y^{2} + x^{3} + y^{3} + x^{4} + y^{4}\).
\end{enumerate}
\item
Напишіть функцію $ Rosenbrock2d(x,y) = 100(x^{2} - y)^{2} + (x - 1)^{2}$
та перевірте її результат на довільних трьох парах дійсних чисел.
\item
Трикутник заданий довжинами своїх сторін. Знайти периметр та площу цього
трикутника. Перевірте для значень сторін
\(a = 3,b = c = 3.5 + 3*2^{- 111}\)
\item
Трикутник вводиться координатами своїх вершин, які вводяться так: в
першому рядку через пробіл два дійсних числа --- координати точки А,
пропускається рядок, в третьому рядку через пробіл два дійсних числа ---
координати Б, пропускається рядок, через пробіл --- координати точки С.
Підрахувати площу трикутника. (Вказівка: напишіть функції підрахунку
довжини відрізка та функції обчислення площі трикутника за довжинами
сторін)
\item
Напишіть власні функції, що обчислюють наступні вирази та відповідні
власні функції, що будуть рахувати похідні даних функцій(Приклад,
функція \(f(x) = identity(x) = x\), її похідна
\(g(x) = \textrm{identity\_derivative}(x) = 1\)) :
\begin{enumerate}[label=\xslalph*)]
\item \(f(x) = th(x) = \frac{(e^{x} - e^{-x})}{(e^{x} + e^{-x})}\);
\item \(f(x) = bent(x) = \frac{\sqrt{x^{2} + 1} - 1}{2} + x\);
\item \(f(x) = softSign(x) = \frac{x}{1 + |x|}\);
\item \(f(x) = arctg(x) = tg^{-1}(x)\);
\item\(f(x) = gauss(x) = e^{-x^{2}}\);
\item \(f(x) = softPlus(x) = \ln(1 + e^{x})\);
\item \(f(x) = sigmoid(x) = {(1 + e^{-x})}^{-1}\);
\item \(f(x) = invsqrt(x,\alpha) = \frac{x}{\sqrt{1 + \alpha x^{2}}}\);
\item\(f(x) = sigmweight(x) = x*{(1 + e^{-x})}^{-1}\).
\end{enumerate}
\end{enumerate}
\section{Локалізація}
\begin{enumerate}
\item
Обчислить результати наступних виразів та вивести на екран напис
українською мовою «Результат дорівнює:»:
2+3; 4.5*56; 2/3.0.
\item
Виведіть напис : «Введить ім``я:»
Введіть з нового рядка ваше ім'я (наприклад, «Вася» ) та виведіть
привітання вигляду «Привіт, Вася!»
\item
Введіть два цілих числа, що позначають грошовий тип --- гривні та
копійки та виведіть значення як грошовий тип в англійських,
американських та українських локалізаціях.
\item
Введіть два дійсних числа, які записані за допомогою десяткової коми та
виведіть їх середнє геометричне в такому ж форматі
\item
Введіть дату (число, місяць, рік) та виведіть її значення в німецький,
американський та українських локалізаціях.
\end{enumerate}
\section{Локалізація 2}
\begin{enumerate}
\item
Скласти програму виведення на друк в алфавітному порядку усіх різних
маленьких українських літер, які входять до даного рядка.
\item
Як показують численні експерименти, розбиття українського слова на
частини для переносу з одного рядки на іншу з великою ймовірністю
виконується правильно, якщо користуватися наступними простими прийомами:
\begin{itemize}
\item
Дві підряд голосні можна розділити, якщо першій з них передує
приголосна, а за другою йде хоча б одна буква (буква
''i'' при цьому розглядається разом з попередньою голосною як
єдине ціле).
\item
Дві приголосні можна розділити, якщо першій з них передує
голосна, а в тій частині слова, яка йде за другою приголосною, є хоча б
одна голосна (літера `ь' разом з попередньою приголосною розглядаються
як єдине ціле).
\item
Якщо не вдається застосувати перші 2 пункти, то слід спробувати розбити
слово так, щоб перша частина містила більш ніж одну букву і
закінчувалася б на голосну, а друга містила хоча б одну голосну.
\item
Імовірність правильного розбиття збільшується, якщо попередньо
скористатись хоча б неповним списком приставок з голосними літерами, і
спробувати перш за все виділити слова з такими приставками.
\end{itemize}
Дано текст, який є українським словом. Виконати поділ його на частини
для переносу.
\item
Для більшості російських іменників, які закінчуються на -онок і -енок,
множина утворюється від іншої основи. Як правило, це відбувається за
зразком: цыпленок- цыплята, мышонок - мышата і т. д. (в новій основі
перед останньою буквою \(\text{m\ }\) пишеться \(a\ \ abo\ \ ia\ \ \) в
залежності від попередньої літери: якщо це шипляча, то \(\ a\), в іншому
випадку \(- ia)\). Є слова-винятки, з яких вкажемо наступні: ребенок
(дети), бесенок (бесенята), опенок (опята), звонок (звонки), позвонок
(позвонки), подонок (подонки), колонок (колонки), жаворонок (жаворонки),
бочонок(бочонки). Є ще ряд маловживаних слів-винятків, які ми не
розглядаємо. Дано текст, серед символів якого є пробіли. Група символів,
що передує першому пробілу -- є російським словом, закінчується на
\(- onok\ \ \)або \(- enok\). Отримати це слово у множині.
\end{enumerate}
\section{Цілі числа та умовні конструкції}
\subsection {Цілі числа та їх типи}
\begin{enumerate}
\item
Дано натуральне тризначне число. Знайти:
\begin{enumerate}[label=\xslalph*)]
\item кількість одиниць, десятків і сотень цього числа;
\item суму цифр цього числа;
\item число, утворене при читанні заданого числа справа наліво.
\end{enumerate}
\item
Ввести натуральне тризначне число. Якщо в ньому всі 3 цифри різні, то
вивести всі числа, які утворюються при перестановці цифр заданого числа.
\item
Введіть три цілих числа, записаних через кому в одному рядку та
підрахуйте їх добуток якщо всі ці числа гарантовано по модулю менші а)
\(2^{10}\) б) \(2^{21}\)
\item
Напишіть програму, що з'ясовує скільки байтів на цілий та довгий цілий
тип виділяє компілятор, а також чи підтримує він довгий тип та скільки
на нього виділяється байтів.
\item
Напишіть функцію, що гарантовано приймає у якості аргументів 8-бітні
натуральні числа та обчислює їх добуток як гарантовано 16-бітне
натуральне число.
\item
Введіть два натуральних 32-бітних числа та виведіть їх суму як
32-бітне число, якщо немає переповнення типу. В противному випадку
виведіть про це повідомлення. Аналогічно підрахуйте добуток двох цілих
32-бітних чисел.
\item
На терміналі вводяться 30 цифр. Перші 15 цифр -- це перше ціле число,
останні 15 цифр -- друге. Введіть їх та обчисліть і виведіть їх добуток
за допомогою двох чисел.
\item
З'ясуйте максимальну кількість 8-бітних цілих на вашому компіляторі С, яку
можна перемножити між собою та користуючись лише стандартними типами
С-бібліотеки отримати коректний результат.
\end{enumerate}
\subsection {Прості умовні конструкції}
Спробуйте розв'язати наступні задачи з допомогою тернарного оператору.
\begin{enumerate}
\item
Визначити більше та менше з двох чисел, введених з клавіатури.
\item
Дано три дійсних числа. Скласти програму для знаходження числа:
а) найбільшого за модулем;
б) найменшого за модулем.
\item
Дано три дійсних числа $x$, $y$ і $z$. Скласти програму для
обчислення:
\begin{enumerate}[label=\xslalph*)]
\item
\(max(x + y + z,xy- xz + yz,xyz)\);
\item
\(max(xy,xz,yz)\).
\end{enumerate}
\item
Дано три дійсних числа $x$, $y$ і $z$. Визначити кількість:
\begin{enumerate}[label=\xslalph*)]
\item різних серед них;
\item однакових серед них;
\item чисел, що є більшими за їхнє середнє арифметичне значення;
\item чисел, що є більшими за введене з клавіатури число \(a\).
\end{enumerate}
\item
Обчислити значення функцій:
\begin{multicols}{2}
\begin{enumerate}[label=\xslalph*)]
\item \(f(x) = |x|;\) \item \(f(x) = ||x| - 1| - 1;\)
\item \(f(x) = sign(x)\) \item \(f(x) = sin(|x|);\)
\end{enumerate}
\end{multicols}
\end{enumerate}
\begin{enumerate}
\item
Перевірити, чи існує трикутник із заданими сторонами $a,b,c$.
Якщо так, то визначити, який він: гострокутний, прямокутний чи
тупокутний.
\item
Визначити, скільки розв'язків має система рівнянь і розв'язати її:
\begin{multicols}{2}
\begin{enumerate}[label=\xslalph*)]
\item \(\left\{ \begin{matrix}
a_{1}x + b_{1}y + c_{1} = 0 \\
a_{2}x + b_{2}y + c_{2} = 0; \\
\end{matrix} \right.\ \)
\item \(\left\{ \begin{matrix}
\left| x + y \right| = 1 \\
ax + by + c = 0 \\
\end{matrix} \right.\ \)
\end{enumerate}
\end{multicols}
\item
Знайти число точок пеpетину кола \(x^{2} + y^{2} = r^{2}\) з відpізком
\(x = a,\ b \leq y \leq b + c^{2}\) .
\item
Скласти програму, яка по колу
\({(x - v)}^{2} + ({y - u)}^{2} = r^{2}\) та пpямій
\(ax + by + c = 0\) встановлює, який випадок має місце:
\begin{itemize}
\item дві точки пеpетину;
\item одна точка дотику;
\item жодної спільної точки.
\end{itemize}
\item
З'ясувати, чи пеpетинаються два кола на площині.
\item
Задано два квадрати, сторони яких паралельні координатним осям.
З'ясувати, чи перетинаються вони. Якщо так, то знайти координати
лівого нижнього та правого верхнього кутів прямокутника, що є їхнім
перетином.
\item
Дано два прямокутники, сторони яких паралельні координатним осям.
Відомо координати лівого нижнього та правого верхнього кутів кожного з
прямокутників. Знайти координати лівого нижнього та правого верхнього
кутів мінімального прямокутника, що містить задані прямокутники.
\item
Записати функції, що повертають значення 1 тоді й тільки тоді, коли:
\begin{enumerate}[label=\xslalph*)]
\item натуральне число n -- непарне;
\item остання цифра числа n -- 5;
\item ціле число n кратне натуральному числу m;
\item натуральні числа n і k одночасно кратні натуральному числу m
\item сума першої і другої цифри двозначного натурального числа - двозначне
число;
\item число x більше за число y не менше, ніж на 7;
\item принаймні одне з чисел x, y або z більше за 99;
\item тільки одне з чисел x, y або z менше за 1001.
\end{enumerate}
\item
Реалізувати функцію, яка перевіряє, чи належить дана своїми координатами
точка трикутнику, що заданий координатами своїх вершин.
\item
Точка простору задана декартовими координатами $(x, y, z)$. Перевірити,
чи належить вона кулі з радіусом $R$ i центром у початку координат.
\item
Точка простору задана декартовими координатами $(x, y, z)$. Перевірити,
чи належить вона циліндру, вісь якого збігається з віссю Oz. Висота
дорівнює $h$, а нижня основа лежить у площині Oxy та має радіус $r$.
\item
Реалізуйте функції та напишіть відповідну до кожної з них функцію, що
буде рахувати їх похідні (за нескінченість прийміть найбільше можливе
число типу double):
\begin{enumerate}[label=\xslalph*)]
\item onestep(x) = \(\left\{ \begin{matrix}
1,x \geq 0 \\
0,x < 0 \\
\end{matrix} \right.\ \)
\item
ReLu(x) =\(max(0,x)\)
\item
leakyReLu(x,a)= \(\left\{ \begin{matrix}
ax,\ x < 0 \\
0,\ x \geq 0 \\
\end{matrix} \right.\ \)
\item
eReLu(a,x) =\(\left\{ \begin{matrix}
a(e^{x} - 1),x < 0 \\
0,\ x \geq 0 \\
\end{matrix} \right.\ \)
\item
sReLu(tl,tr,al,ar,x)=\(\left\{ \begin{matrix}
tl + al\left( x - tl \right),x \leq tl \\
0,tl < x < tr \\
tr + ar\left( x - tr \right),x \geq tr \\
\end{matrix} \right.\ \)
\item
isReLu(a,x)= \(\left\{ \begin{matrix}
\frac{x}{\sqrt{1 + ax^{2}}},x < 0 \\
x,\ x \geq 0 \\
\end{matrix} \right.\ \)
\item
softExponential(a,x) = \(\left\{ \begin{matrix}
- \frac{ln(1 - a(x + a)}{a},a < 0 \\
x,a = 0 \\
\frac{e^{\text{ax}} - 1}{a} + a,a > 0 \\
\end{matrix} \right.\ \)
\item
sinc(x)= \(\left\{ \begin{matrix}
1,\ x = 0 \\
\frac{\sin x}{x},x \neq 0 \\
\end{matrix} \right.\ \)
\end{enumerate}
\end{enumerate}
Розв'яжіть задачі за допомогою команди вибору (альтернативи)
\begin{enumerate}
\item
Вводиться натуральне число, що означає кількість днів, що пройшли з
початку поточного року. Виведіть день тижня, на який припадає цей день.
\item
Ввести натуральне число менше 10 (цифру) та вивести назву цієї цифри
рядком
\item
За даним натуральним числом $k$ ($k \le 100$) вивести в лінгвістично коректній
формі фразу «Йому k рок(ів, и, рік)»
\end{enumerate}
\subsection {Цикли}
\begin{enumerate}
\def\labelenumi{\arabic{enumi})}
\item
Скласти функцію обчислення за даним дійсним x та натуральним n число
\(y = \sin(\sin(\ldots\sin(x)\ldots))\) ($n$ разів).
\item
Скласти функції для обчислення значень многочленів і виконати їх при
заданих значеннях аргументів:
\begin{enumerate}[label=\xslalph*)]
\item \(y = x^{2^{n}} + x^{2^{n - 1}} + \ldots + x^{4} + x^{2} + 1;\)
\item \(y = x^{3^{n}} + x^{3^{n - 1}} + \ldots + x^{9} + x^{3} + 1;\)
\item \(y = x^{1^{2}} + x^{2^{2}} + \ldots + x^{n^{2}}.\)
\end{enumerate}
\item
Вивести на екран такий рядок:
n! = 1*2*3*4*5*...*n,
де n -- введене з клавіатури натуральне число, використовуючи
\begin{itemize}
\item цикл по діапазону із зростанням;
\item цикл по діапазону зі спаданням.
\end{itemize}
\item
Дано натуральне число \(n\). Написати програми обчислення
значення виразу при заданому значенні \(x\):
\begin{enumerate}[label=\xslalph*)]
\item
\(y = x^{n} + x^{n - 1} + \ldots + x^{2} + x + 1, \ \ n = 3,x = 2\);
\item
\(y = x^{2^{n}}y^{n} + x^{2^{n - 1}}y^{n - 1} + \ldots + x^{2}y + 1, \ \ n = 4,x = 1,y = 2;\).
\item
$ y = x + 2x^{2} + \ldots + (n - 1)x^{n - 1} + nx^{n}$.
\end{enumerate}
\item
Скласти функцію обчислення подвійного факторіала \(y = n!!\) натурального числа
\(n\).
\emph{\emph{Вказівка}}. За означенням
\[n!! = \left\{ \begin{matrix}
1 \cdot 3 \cdot 5 \cdot \ldots \cdot n,\textup{при n непарному}, \\
2 \cdot 4 \cdot 6 \cdot \ldots \cdot n,\textup{при n парному} \\
\end{matrix} \right.\ \]
\item
Скласти програму обчислення
\begin{enumerate}[label=\xslalph*)]
\item
\(\sqrt{2 + \sqrt{2 + \ldots + \sqrt{2}}}\) ($n$ коренів),
\item
\(\sqrt{3 + \sqrt{6 + \ldots + \sqrt{3(n - 1) + \sqrt{3n}}}}.\)
\end{enumerate}
\item
Скласти програми обчислення значень многочлену для
\(x \in \bf{R}\), що по модулю менше за одиницю та
\( n \geq 0\):
\(y = 1 + \frac{x}{1!} + \frac{x^{2}}{2!} + \frac{x^{3}}{3!} + \ldots + \frac{x^{n}}{n!} \).
\item
Для довільного цілого числа \(m \geq 1\)знайти найбільше ціле \(k\),
при якому \(4^{k} \leq m\).
\item
Для заданого натурального числа \(n\)одержати найменше число вигляду
\(2^{r}\), яке перевищує \(n\) .
\item
Знайдіть машинний нуль для вашого компілятора, тобто таке дійсне число
\(a > 0,\) що \(1 + a = 1\ \) буде істиною.
\emph{Вказівка:} в циклі ділить значення \(a\)на 2 доки не виконується
вказана вище рівність.
\item
Ввести послідовність наступним чином: користувачу виводиться напис
``a{[}**{]}= '', де замість ** стоїть номер числа, що вводиться. Тобто
там виводяться написи ``a{[}0{]}= '', і після знаку рівності
користувач вводить число, ``a{[}1{]}= '', і після знаку рівності
користувач вводить число і так далі доки користувач не введе число 0.
Після цього потрібно вивести суму введених чисел (масив чисел заводити
необов'язково). Введіть послідовність цілих ненульових чисел (тобто введення
закінчується коли ми вводимо 0) та виведіть середнє арифметичне
введених чисел та середнє геометричне..
\item
Дано натуральне число \(n\). Написати програми обчислення
значень виразів при заданому значенні \(x\):
\begin{enumerate}[label=\xslalph*)]
\item
\(1 + (x - 1) + (x - 1)^{2} + \ldots + (x - 1)^{n}\);
\item
\(1 + \frac{1}{x^{2} + 1} + \frac{1}{(x^{2} + 1)^{2}} + \ldots + \frac{1}{(x^{2} + 1)^{n}}\);
\item
\(1 + \sin{x} + \sin^2{x} + \ldots + \sin^{n}{x}\);
\item
\(y = nx^{n - 1} + (n - 1)x^{n - 2} + \ldots + 2x + 1\);
\item
\(y = \sum\limits_{k = 0}^{n}{kx^{k}(1 - x)^{n - k}}\), за умови \(0 < x < 1,n \geq 0)\).
\end{enumerate}
\item
Введіть послідовність цілих ненульових чисел (тобто введення
закінчується коли ми вводимо 0) та виведіть середнє арифметичне введених
чисел та середнє геометричне.
\item
Введіть послідовність цілих ненульових чисел (тобто введення
закінчується коли ми вводимо 0). Визначити кількість змін знаку в цій
послідовності. Наприклад, у послідовності $1, -34, 8, 14, -5, 0$ знак
змінюється три рази.
\item
Введіть послідовність натуральних ненульових чисел (тобто введення
закінчується коли ми вводимо 0). Визначити порядковий номер найменшого з
них.
\item
Введіть послідовність дійсних ненульових чисел (тобто введення
закінчується коли ми вводимо 0). Визначити величину найбільшого серед
від`ємних членів цієї послідовності. Якщо від'ємних чисел немає вивести
найменший серед додатних членів.
\item
Банк пропонує річну ставку по депозиту A та 15\% по вкладу додаються до
основної суми депозиту кожен рік. Ви кладете в цей банк D гривень.
Скільки років потрібно чекати, щоб сума вкладу зросла до очікуваної суми
P?
\item
Скласти програми для обчислення елементів послідовностей. Операцію
піднесення до степені та функцію обчислення факторіалу не
використовувати.
\begin{enumerate}[label=\xslalph*)]
\item
\(x_{k} = \frac{x^{k}}{k}\ (k \geq 1)\)
\item
\(x_{k} = \frac{x^{2k}}{(2k)!}\ (k \geq 0)\);
\item \(x_{k} = \frac{( - 1)^{k}x^{k}}{k}\ (k \geq 1)\);
\item
\(x_{k} = \frac{x^{2k + 1}}{(2k + 1)!}\ (k \geq 0)\);
\item \(x_{k} = \frac{x^{k}}{k!}\ (k \geq 0)\) ;
\item \(x_{k} = \frac{(-1)^{k}x^{2k}}{(2k)!}\ (k \geq 0)\);
\item \(x_{k} = \frac{(-1)^{k}x^{k}}{k!}\ (k \geq 0)\);
\item \(x_{k} = \frac{(-1)^{k}x^{2k + 1}}{(2k + 1)!}\ (k \geq 0)\).
\end{enumerate}
\item
Задане натуральне число \(n\). Скласти програми обчислення добутків:
а)
\(p = \left( 1 + \frac{1}{1^{2}} \right)\left( 1 + \frac{1}{2^{2}} \right)\ldots\left( 1 + \frac{1}{n^{2}} \right),\mathrm{\ \ \ \ n > 2};\)
б)
\(p = \left( 1 - \frac{1}{2^{2}} \right)\left( 1 - \frac{1}{3^{2}} \right)\ldots\left( 1 + \frac{1}{n^{2}} \right),\mathrm{\ \ \ \ n > 2.}\)
\item
Скласти програму друку таблиці значень функції \(y = \sin x\) на
відрізку {[}0,1{]} з кроком \(h = 0.1\).
\item
Скласти програму визначення кількості тризначних натуральних чисел, сума
цифр яких дорівнює \(n\ (n > 1).\) Операцію ділення не використовувати.
\item
Дано n цілих чисел. Скласти програму, що визначає, скільки з них більші
за своїх "сусідів", тобто попереднього та наступного чисел.
\item
Задані натуральне число \emph{n}, дійсні числа
\(y_{1},\ldots y_{n}.\)Скласти програму визначення
\begin{enumerate}[label=\xslalph*)]
\item \(\max(\left| z_{1} \right|,\ldots,\left| z_{n} \right|),\) де
\(z_{i} = \left\{ \begin{matrix}
y_{i},\textup{ при }\left| y_{i} \right| \leq 2, \\
0.5,\textup{у інших випадках} \\
\end{matrix} \right.\ \);
\item \(\min(\left| z_{1} \right|,\ldots,\left| z_{n} \right|),\) де
\(z_{i} = \left\{ \begin{matrix}
y_{i},\textup{ при}\ \left| y_{i} \right| \geq 1, \\
2,\textup{у інших випадках} \\
\end{matrix} \right.\ \);
\item \(z_{1} + z_{2} + \ldots + z_{n},\) де
\(z_{i} = \left\{ \begin{matrix}
y_{i},\textup{ при } {y}_{i} < 10, \\
1,\textup{у інших випадках} \\
\end{matrix} \right.\ \)
\end{enumerate}
\item
Дано натуральне число n. Викинути із запису числа n цифри 0 і 5,
залишивши порядок інших цифр. Наприклад, з числа 59015509 повинно вийти
919.