WEBVTT

00:00.320 --> 00:07.080
У цьому відео я розповім про алгоритм, псевдокод та програму.

00:07.080 --> 00:08.460
Давайте дізнаємося про нього більше.

00:08.790 --> 00:10.820
Перш за все алгоритм.

00:10.830 --> 00:12.900
Що це?

00:12.900 --> 00:21.510
За визначенням алгоритм - це покрокова процедура для вирішення обчислювальної задачі.

00:22.560 --> 00:23.920
Тоді в чому полягає програма.

00:24.240 --> 00:31.890
Програма - це та ж сама покрокова машинна інструкція для вирішення будь-якої проблеми, яка є обчислювальною

00:31.920 --> 00:37.230
задачею, то в чому ж тоді різниця між алгоритмом і програмою.

00:37.240 --> 00:46.120
Розумієте, ми почали писати програми нещодавно, але алгоритми існують століттями. люди розробляли процедури для розв'язання

00:46.120 --> 00:51.190
обчислювальних задач.

00:51.280 --> 00:57.100
Це звичайна практика, якою займаються переважно математики або науковці.

00:57.100 --> 01:02.650
Тому ті, хто працює над якимись проблемами, вивчаючи проблему і знаходячи рішення, вони давали

01:02.650 --> 01:04.670
рішення у вигляді алгоритму.

01:04.720 --> 01:07.870
Це процедура крок за кроком.

01:07.870 --> 01:12.740
Тепер ми хочемо, щоб таку ж процедуру пройшли і наші машини.

01:12.760 --> 01:14.050
Отже, ми пишемо програму.

01:14.410 --> 01:14.770
ГАРАЗД.

01:14.810 --> 01:15.550
Так, саме так.

01:15.820 --> 01:19.460
Це означає, що спочатку ми маємо правильний алгоритм.

01:19.480 --> 01:24.390
Спочатку ми маємо алгоритм, а потім перетворюємо його на програму.

01:24.420 --> 01:27.840
Так, саме так.

01:27.880 --> 01:34.800
Тоді як студент, якщо ти будеш вчитися, чого ти тут навчишся? ви дізнаєтеся, як вирішити проблему.

01:34.810 --> 01:39.200
Це зовсім інше, як правильно вирішити проблему.

01:39.250 --> 01:42.060
Тож чи здатні ви вирішити будь-яку проблему.

01:42.070 --> 01:44.400
Почати вирішувати проблеми непросто.

01:44.440 --> 01:50.270
Спочатку ви вивчаєте кілька процедур, а потім з цього випливає якась нова ідея.

01:50.380 --> 01:53.600
Тоді ви можете почати вирішувати проблему самостійно.

01:53.650 --> 01:59.920
Вам потрібні певні навички, ви повинні розвинути певні навички, аналітичні навички або навички вирішення проблем,

01:59.920 --> 02:04.850
і ви повинні отримати їх здебільшого з різних інших предметів, а також з математики, це не

02:04.870 --> 02:09.650
суто математика, це інші предмети, і це також залежить від вашого рівня IQ.

02:10.140 --> 02:11.500
Як вирішити проблему.

02:11.500 --> 02:16.040
Отже, якщо ви знаєте, як вирішити проблему, ви можете записати її у вигляді алгоритму.

02:16.240 --> 02:20.800
Це так само, як якщо б ви знали, як приготувати страву.

02:20.800 --> 02:25.200
Якщо ви шеф-кухар, то приготуєте рецепт правильно.

02:25.220 --> 02:31.520
Якщо ти хімік, то підготуєш хімічну формулу і проведеш експеримент для хімічної

02:32.150 --> 02:33.190
формули.

02:33.200 --> 02:35.410
Отримання правильного хімічного результату.

02:35.780 --> 02:42.380
Якщо ви музикант, ви будете писати музику, якщо ви математик, ви напишете

02:42.680 --> 02:45.890
алгоритм, тобто процедуру, і все.

02:45.910 --> 02:48.810
Тож для цього потрібні зовсім інші навички.

02:48.850 --> 02:53.760
Тож головне - це знання математики та вміння розв'язувати задачі.

02:53.860 --> 03:00.340
Якщо у вас є алгоритм, то ми хочемо, щоб наша машина виконала цей алгоритм і отримала результат, напишіть його

03:00.360 --> 03:01.800
у вигляді програми.

03:01.870 --> 03:04.620
Тобто перетворення алгоритму в програму.

03:04.980 --> 03:07.400
Ось для чого потрібно знати мову.

03:07.420 --> 03:11.770
Отже, якщо ви знаєте мову програмування, ви можете взяти цю мову і написати

03:11.770 --> 03:12.490
програму.

03:12.550 --> 03:16.200
Перетворіть це в це, тоді як ви пишете, якою мовою ви пишете це?

03:16.200 --> 03:19.370
ми можемо використовувати будь-яку мову.

03:19.420 --> 03:21.780
Англійська як мова або безпосередньо англійська

03:21.820 --> 03:28.780
також може використовуватися тут, але люди використовують формальну нотацію, яка більше схожа на математичну або на програмування,

03:28.780 --> 03:34.920
тому такий тип коду ми називаємо псевдокодом. Так.

03:34.930 --> 03:39.170
Отже, псевдокод не визначений стандартом, все, що ви пишете, є псевдокодом.

03:40.170 --> 03:40.900
Гаразд.

03:41.010 --> 03:46.960
Іноді ми визначаємо, що наша команда буде визначати і слідувати цьому, в іншому випадку, якщо зрозуміло, що цього

03:46.960 --> 03:52.600
достатньо, ви можете писати так, як вам подобається, але ви повинні суворо дотримуватися програми.

03:52.600 --> 04:02.300
Якщо ви використовуєте C++, то ви повинні суворо дотримуватися синтаксису, тобто граматики цієї мови.

04:02.340 --> 04:08.080
Не існує граматики, якщо людина вміє читати, принаймні, якщо вона пише, вона повинна розуміти,

04:08.080 --> 04:09.240
що вона пише.

04:09.340 --> 04:11.250
Досить. це псевдокод.

04:12.310 --> 04:17.960
Отже, аналітики або математики, які знають, як вирішити проблему, напишуть алгоритм, а програміст

04:18.000 --> 04:19.420
напише програму.

04:19.420 --> 04:25.900
Тож тепер, як студент чи людина, що вивчає комп'ютерні науки, ви маєте розробити алгоритм і написати

04:25.900 --> 04:26.860
програму.

04:27.580 --> 04:33.010
Але вже існує так багато алгоритмів, що нам важко вивчати їх, тому достатньо знати

04:33.300 --> 04:38.650
всі існуючі алгоритми і вміти перетворювати їх у програму, що є достатнім.

04:38.650 --> 04:42.840
Вам не потрібно вигадувати нічого нового, доки вам це не знадобиться.

04:42.850 --> 04:44.570
А якщо його не існує.

04:45.160 --> 04:45.460
Гаразд.

04:45.700 --> 04:46.850
Ось така загальна ідея.

04:46.870 --> 04:52.180
Про алгоритм дивіться у цій програмі, а також у псевдокоді, який я давав вам для вивчення програмування.

04:52.180 --> 04:56.830
Люди спочатку розроблять правильний алгоритм, а потім перетворять його на програму, так

04:56.830 --> 05:01.630
що якщо у вас є практика, а потім вам доведеться розробити свій власний алгоритм, ви повинні бути

05:01.630 --> 05:02.840
в змозі це зробити.

05:02.890 --> 05:05.850
Ви не повинні бути новачком в алгоритмах.

05:05.880 --> 05:10.140
Тепер давайте я напишу приклад алгоритму, і для цього я також напишу програму на C++.

05:10.290 --> 05:15.920
Але я не збираюся пояснювати вам, як написана ця програма, і все це лише приклад для ознайомлення.

05:16.540 --> 05:17.170
Дозвольте мені записати це.

05:17.560 --> 05:24.010
Отже, тут у мене є приклад алгоритму, а також програма на C++, яка не є повноцінною програмою,

05:24.010 --> 05:25.690
а лише функцією.

05:25.690 --> 05:27.110
Давайте вивчимо це.

05:27.300 --> 05:33.100
Дивіться це для знаходження середнього значення списку елементів, який я маю в колекції елементів, для яких я хочу знайти

05:33.170 --> 05:34.100
середнє значення.

05:34.550 --> 05:36.600
Прочитайте, що сума дорівнює 0.

05:36.690 --> 05:38.610
ОК, сума дорівнює нулю.

05:38.620 --> 05:41.260
Це означає покласти нуль у внутрішню суму.

05:41.650 --> 05:49.030
Так, це означає, що стрілка показує напрямок для кожного елемента x у списку, тому ми будемо називати

05:49.030 --> 05:54.030
кожен елемент як X у списку, а потім почнемо присвоювати суму sum+ x.

05:54.040 --> 06:00.080
Тож продовжуйте додавати елемент у сумі, щоб ця частина була схожа на додавання всіх елементів.

06:00.100 --> 06:06.520
Потім після цього усереднює присвоєну суму за кількістю елементів, хоча я отримую середнє число, повертає середнє значення, тому,

06:07.500 --> 06:12.480
якщо ви читали, ви можете зрозуміти, що це для знаходження середнього значення списку елементів.

06:12.530 --> 06:14.940
Додайте їх усі і розділіть на кількість елементів.

06:15.820 --> 06:20.650
Це все. як це пишеться англійською, а не зовсім англійською.

06:21.070 --> 06:23.880
Схожа на англійську, як це робить програма C C++.

06:23.890 --> 06:26.340
Якщо ви коли-небудь бачили його, то він виглядає саме так.

06:26.370 --> 06:28.330
Ні, але чи читається.

06:28.330 --> 06:28.920
Так.

06:28.920 --> 06:30.990
Тоді що це за код? псевдокод.

06:31.380 --> 06:32.220
Це псевдокод.

06:33.490 --> 06:36.730
Тож давайте внесемо деякі зміни, якщо я перестану писати це.

06:36.760 --> 06:38.830
Можна я скажу "товста кишка"?

06:38.870 --> 06:44.260
присвоювати, дорівнює, двокрапка дорівнює. Це також показує напрямок.

06:44.270 --> 06:46.850
Тоді тут також двокрапка теж дорівнює.

06:46.890 --> 06:54.410
Так, ви можете писати, ви можете писати, ви можете читати, так що якщо ви хочете змінити символ,

06:55.750 --> 06:59.610
змініть символ для кожного елемента x у списку.

06:59.750 --> 07:03.330
здебільшого ми знаходимо ось так.

07:03.370 --> 07:04.070
Гаразд, додавай.

07:04.110 --> 07:05.100
Це теж має значення.

07:05.700 --> 07:07.440
Тож замість початку і кінця.

07:07.670 --> 07:12.790
Я скажу, що кронштейн для квітів - так.

07:12.820 --> 07:14.690
Це також показує початок і кінець.

07:14.770 --> 07:16.350
Ні, я думаю, це була квадратна дужка.

07:16.510 --> 07:16.920
ГАРАЗД.

07:16.930 --> 07:17.470
Використай його.

07:17.890 --> 07:20.010
Тож зараз цього достатньо.

07:20.020 --> 07:23.270
Ідея полягає в тому, що все, що ви пишете, має бути актуальним.

07:24.680 --> 07:25.360
Гаразд.

07:25.390 --> 07:26.280
Не повинно.

07:26.290 --> 07:29.850
Не варто плутатися хоча б у тому, для кого ви пишете.

07:29.850 --> 07:31.920
Це не слід плутати.

07:31.920 --> 07:36.040
Так ми пишемо або алгоритмуємо за допомогою псевдокоду.

07:36.070 --> 07:42.370
Тепер те ж саме для знаходження середнього значення списку елементів, це програма на C++.

07:42.370 --> 07:47.460
Це функція, це не повна програма, а лише функція всередині цього.

07:47.710 --> 07:56.080
Якщо я не отримую крапку з комою - це помилка, якщо замість присвоєння я пишу менше дефіса - це неправильно,

07:56.080 --> 07:59.100
компілятори кажуть, що це таке.

07:59.350 --> 08:01.690
Якщо ви хочете зберегти значення тут, ось так.

08:01.690 --> 08:07.030
Якщо ви хочете зберегти значення, ви повинні використовувати символ дорівнює, і це називається присвоюванням.

08:07.090 --> 08:11.240
Ви повинні писати так, де б ви не писали крапку з комою.

08:11.260 --> 08:12.430
Це не спрацює.

08:12.670 --> 08:16.460
Це означає, що ви повинні дотримуватися правильного синтаксису мови.

08:16.470 --> 08:19.540
Тому що це не для вас.

08:19.540 --> 08:25.000
Ви пишете її для того, щоб компілятор зрозумів її і перетворив у машинний код, тобто ви пишете

08:25.000 --> 08:29.810
програму на C++, а вона перетворюється в машинний код або машинну мову.

08:29.920 --> 08:32.500
Хто конвертує, той і компілятор конвертує.

08:32.510 --> 08:35.360
Отже, ви розмовляєте з компілятором.

08:35.530 --> 08:40.900
Тому ви повинні говорити так, щоб він легко розумів, якщо він не розуміє, він не може перетворити його

08:40.900 --> 08:41.960
в машинний код.

08:42.940 --> 08:45.490
Отже, ця мова є мовою компілятора.

08:45.760 --> 08:48.280
Тому ви повинні дотримуватися синтаксису бездоганно.

08:48.340 --> 08:53.760
Саме тому вам доведеться докласти трохи більше зусиль для вивчення програмування, адже на початковому етапі ви будете робити

08:53.770 --> 08:54.390
помилки.

08:54.400 --> 08:59.770
Ви не напишете речі правильно, ви пропустите кілька речей, ви не знаєте, які помилки у вас виникають.

08:59.770 --> 09:02.520
Як тільки ви почнете отримувати помилки, ми почнемо розуміти, що все гаразд.

09:02.530 --> 09:08.910
Це помилки, які я роблю, тому на помилках ви навчитеся програмувати, от і все про порівняння

09:09.090 --> 09:12.420
алгоритмів, псевдокоду та програми.

09:13.140 --> 09:16.980
Отже, я дав вам достатньо основ, щоб ви зрозуміли все, що в цьому відео.

09:17.460 --> 09:19.290
Отже, наступна тема - блок-схема.
