SECs20w1 - Basic programming course Lesson #1 Introduction to programming

in #devjr-s20w13 months ago (edited)

я просто не зміг втриматися від того щоб не написати цей допис.

image.png
Pixabay & Canva

Алгоритм. Що ж таке алгоритм? Нас напевне добре вчили в школі(а бо я сам так хотів вчитися) що багато деякі речі закарбувалися у пам'яті
Алгоритм це послідовність дій зрозуміла виконавцю.
Тобто якщо я наприклад шестикласнику напишу в алгоритмі пункт розв'язати квадратне рівняння, чи побудувати параболу. Алгоритм буде вірним, але чи зробить його виконавець-шестикласник?
От наприклад алгоритм розв'язку того ж квадратного рівняння для десятикласника складатиметься лиш з одного пункту - розв'язати квадратне рівняння.
Та якщо скласти дуже довгий та детальний алгоритм то і першокласник теж його розв'яже.
Ще слід додати що ця послідовність дії має бути скінченною - скінченність алгоритму
Та результативною, тобто привести до бажаного результату - результативність алгоритму
А кожна інструкція(команда) має бути зрозумілою та однозначно трактованою - детермінованість(визначеність) алгоритму

Завдання 1. Опишіть своїми словами алгоритм якоїсь діяльності, якою ви займаєтеся щодня.

Сплю
Вимикаю будильник, бо дзвонить)
Сплю ще трохи
Вимикаю будильник, бо дзвонить)
Сплю ще трохи
Вимикаю будильник, бо дзвонить) 
Прокидаюся
Ранковий туалет
П'ю склянку води
Готую собі каву
Читаю новини
Готую собі сніданок
Ще раз готую каву
Йду працювати(далі все день від дня відрізняється)

Завдання 2. Яке значення мов програмування у світі? Як вони нам допомагають?

Про те яка мова краща сперечалися, сперечаються і завжди будуть сперечатися. Хоча кажуть що через розвиток ШІ програмісти скоро вже зовсім не писатимуть код, сподіваюся що я цього не застану
Взагалі то є лиш одна мова зрозуміла комп'ютеру - машинний код. Але навіть коли виникла перша мова асемблер людям не стало програмувати набагато краще. Для кожної команди - її коду - був відповідний символічний запис.
(Код відповідав команді - а команда коду, тобто такі команди лиш за формою відрізнялися від коду)
А символи людині пам'ятати(читати) набагато краще ніж числа, числа, числа. Програмування на асемблері схоже ніби бутерброд до чаю збирали не з трьох шматків, а з самих молекул - занадто детально треба було все описувати. Наприклад вивід числа на екран записалося б не однією командою - а десятком, якщо не сотнею команд. Тому виникли мови більш грубі, більш неповороткі, в порівнянні з асемблером, але в цілому код ними стало писати набагато швидше і зручніше. Код міг стати набагато меншим за довжиною.
В сучасному світі просто гори інформації лине щосекунди яку треба зберігати та обробляти швидкими темпами. І хто тут винен? Замкнене коло - кількість інформації веде до збільшення комп'ютерів, а збільшення кількості комп'ютерів веде до збільшення інформації. Та з комп'ютерами треба якось спілкуватися. Наші звичайні мови для цього не підходять. Бо кожне слово (команда) не однозначні, а речення можна побудувати так, що буває виникають парадокси. А ще мови поділяються за спеціалізацією як наприклад мови для бази даних і мови для системних програм - такі мови будуть дуже сильно відрізнятися.
Я памятаю як сильно відрязналася мова С від BASIC що я вчив ще у школі, і як сильно зараз відрізняється Python від С. У дуже коротко, однією командою, в одному рядку можна описати те що на тому ж С треба опистаи десятком рядків коду. я трохи-трохи пробував вивчати Python важко, адже думаю я мовою С і потім прекладаю подумки це на мову Python, а так виходить не ефективно. Так як Python може це зробити завдяки своїй особливості вдесятеро меншим кодом. Так виходить якщо Python такий молодець, то чому тоді не зник дідусь С/С++ - просто у кожної мови своя ніша. Не доводилося стикатися але здається є мова де програмують не командами, а станами. Тобто інструкція описує стан, і перехід з одного стану в інший, а команд як таких нема.

Завдання 3. Що потрібно під час програмування?

Як я не перекладав це речення і з оригіналу іспанської і з перекладу на англійську не дуже його зрозумів. Скажу як думаю.
Мені потрібен спокій і.. музика, улюблені старі мелодії. Щоправда коли зайшов при вирішенні задачі у тупик і шукаєш проблему - хочеться цілковитої тиші.
Та гадаю тут слід відповісти про таке:
По перше код програми це текст, тому треба десь цей текст набрати, у будь-якому текстовому редакторі - навіть у блокноті.

Мені доводилося писати код навіть олівцем на папері, бо перші роки коли я працював(чи навчався) я не мав комп'ютера - а ідеї виникали часто не в той момент коли ти за комп'ютером, то так писати код можна і на папері. А в сучасному світі у кожного є принаймні смартфон чи планшет, якщо комп'ютера чи ноутбука нема під рукою.

Але звичайний текстовий редактор не підкаже про синтаксичну помилку, не висвітлить продовження команди... для цього є спеціалізовані текстові редактори для програмістів. Серед їх основних переваг підсвітка синтаксису - де команда, знаки, цифри підсвічуються різним кольором. Такі редактори зараз навіть контролюють написаний код на помилки, можуть авто продовжувати решту команди. Але з допомогою чи ні, з комфортом чи без - це все лиш текст. Треба його запустити на виконання.
Для цього є компілятори/інтерпретатори - вони перетворюють текстовий код у дії, у команди комп'ютера який може виконуватися на комп'ютері.
В давні часи так і було( і навіть зараз, особливо в середовищі Linux живуть окремо текстовий редактор і компілятор, як старі добрі часи)
Та є й програми монстри - IDE інтегровані середовища розробки. Там все в одному, і розумний текстовий редактор і компілятор. Ще й відладчик який дозволяє зупиняти програму в певній команді, покроково виконувати і контролювати- спостерігати за ходом виконання в пошуках помилок.

Завдання 4. Напишіть своє перше "Hello world!" Використання псевдокоду.

Початок програми
    Вивести "Hello, World!"
Кінець програми

Як же тут все просто? Є наприклад два великих питання - А куди буде виводити команда 'вивести'? Коли вона буде це виводити? Як, яким кольором, шрифтом і т.д.
В дуже простому випадку все і так ясно. Клавіатура і екран є в кожному комп'ютері. А хто говорив про те що це комп'ютер, можливо це принтер чи смарт-годинник. Зазвичай всі параметри вже заздалегідь налаштовані - система просто чекає зрозумілої для себе команди - 'вивести', а як, коли, куди вона вже знає. Часто бува що іншими командами все це можна змінити.
Колись у старі часи був наприклад прямий доступ до відеопам'яті.
Тоді псевдокод виглядав би так

Початок програми
    Налаштувати запис на початок ділянки відеопам'яті 
    записати символ 'H'
    через один байт записати 'e'
    через один байт записати 'l'
    через один байт записати 'l'
    через один байт записати 'o'
    через один байт записати ','
    через один байт записати ' '
    через один байт записати 'w'
    через один байт записати 'o'
    через один байт записати 'r'
    через один байт записати 'd'
    через один байт записати '!'
Кінець програми

Записувати через один байт, тобто в кожний перший у парі, треба було тому що в одному байті було зображення символа(його код), а в іншому слід за ним код його кольорів.

А взагалі радий бачити тут тих хто цікавиться програмуванням, сподіваюся тут таких буде все більше та більше і завдання будуть від цього складніші та цікавіші.

Sort:  
Loading...

TEAM 4

Congratulations! Your post has been upvoted through steemcurator06.
Good post here should be . . .

Curated by : @𝗁𝖾𝗋𝗂𝖺𝖽𝗂

@sergeyk - will you be able to start reviewing and grading all the assignment posts for your own programming course now?

So I periodically read the answers, and it was during this sleepless night that I gave my grades. One of the questions was not revealed by anyone, so I did not comment on it, so as not to make hints. At the moment, the maximum rating is 8.1/10. And I will ask this question with clarifications in the next lesson as an additional one.

Сплю
Вимикаю будильник, бо дзвонить)
Сплю ще трохи
Вимикаю будильник, бо дзвонить)
Сплю ще трохи
Вимикаю будильник, бо дзвонить)
Прокидаюся

Який знайомий алгоритм 😂
Команда вимкнути будильник, сплю ще трохи, відтворюється навіть у несвідомому стані.

Для людей не посвячених в містерії програмування, такі приклади є кращим варіантом подачі інформації 👍🏻
Коли на життєвих прикладах показують аналогічну роботу. 😆

А символи людині пам'ятати(читати) набагато краще ніж числа, числа, числа.

👍🏻

останнім часом з корисного "прокидатися і вставати з ліжка відразу" і "пити склянку води" був вже увійшов у русло....та зліз у стару колію....треба вибиратися))))

"прокидатися і вставати з ліжка відразу"

Це гарна звичка, дуже корисна з якого боку не глянути. Саме так і треба робити.

Так, дійсно - для чого витрачати час!! Вже не наспишся... було таке, ну я трішки з гуморком завжди дописи намагаюся писати.....

Я колись слухала одним вухом розумну передачу за те, що саме так треба робити і ставити 10 будильників погано, з купою аргументів, але в мене ця звичка була культивована і діяла на протязі дуже великого відрізку часу, мені здається в цьому випадку вже нічого не виправиш.

Ідеально - коли сам встаєш рано, і хочеш це робити, тому що на тебе чекає прекрасний день і ти хочеш, щоб він почався раніше. 🤩

ну я трішки з гуморком завжди дописи намагаюся писати.....

Я вважаю, що якщо щось таке приходить в голову треба додавати 😆
Гумор одна з дуже цінних штук. Без яких світ був би іншим …
набагато гіршим )

у мене кілька причин чому пізно йду до сну....відповідно і прокидаюся теж пізно, о 10й на ногах, все хочу здвинути графік...не виходить і субє'ктивні причини і об'єктивні