Як писати псевдокод

Псевдокод - це простий інструмент, який можна використовувати для планування роботи алгоритмів. Коли вам потрібно буде написати складний код, ви навряд чи зможете втримати всю програму в голові до початку роботи. Уявіть, що псевдокод - це послідовне вербальне опис, яке ви пізніше перетворите в мову програмування. Це поєднання людської мови і мови програмування: псевдокод використовує синтаксис комп`ютерного коду, але його основне завдання - бути читаним.

кроки

Метод 1 з 5:
розуміння псевдокоду
1. Дізнайтеся, що таке псевдокод. Псевдокод - це послідовне вербальне опис коду, яке можна поступово перенести в мову програмування. Багато програмістів використовують його для планування функції алгоритму до початку більш технічної роботи над кодом. Псевдокод - це нестрогий план, інструмент для обмірковування проблем програми і засіб спілкування, яке дозволяє передати ваші думки іншим людям.
  • 2. З`ясуйте, чому псевдокод корисний. Псевдокод використовується для демонстрації того, як комп`ютерний алгоритм може і повинен працювати. Інженери часто використовують псевдокод як проміжний етап у програмуванні - між стадією планування і стадією написання працюючого коду. Хороший псевдокод може перетворитися в коментарі до фінальної версії програми і буде допомагати програмісту виправляти помилки в майбутньому або коригувати код. Псевдокод також корисний:
  • Для опису того, як алгоритм повинен працювати. Псевдокод показує, як певна частина програми, механізм або прийом повинен відображатися в програмі. Досвідчені програмісти часто використовують псевдокод для пояснення своїх кроків у розробці молодшим програмістам.
  • Для пояснення процесу роботи програми людям, які погано розбираються в програмуванні. Щоб програма працювала, комп`ютерів потрібен дуже строгий код, проте людям, особливо тим, хто не пов`язаний з програмуванням, простіше розуміти більш простий і суб`єктивний мову, який чітко описує мету кожного рядка коду.
  • Для розробки коду в групі. Висококваліфіковані інженери часто включають псевдокод в свою роботу, щоб допомогти програмістам вирішити складну проблему, з якою ті ось-ось зіткнуться. Якщо ви працюєте в групі з іншими програмістами, псевдокод допоможе вам пояснити ваші дії іншим.
  • 3. Пам`ятайте, що псевдокод суб`єктивний і не стандартизований. У ньому немає чітко встановленого синтаксису - є тільки негласне правило використовувати стандартні конструкції, які інші програмісти могли б зрозуміти без особливих проблем. Якщо ви пишете код самостійно, псевдокод допоможе вам впорядкувати думки і розробити план. Якщо ви працюєте разом з іншими інженерами (і не має значення, на якому рівні володіння предметом), важливо використовувати як мінімум основні конструкції, щоб всі інші розуміли, що ви хотіли зробити.
  • Якщо ви вчитеся програмування в будь-якому закладі, швидше за все, вам запропонують тест на знання так званих стандартів псевдокоду. У різних викладачів і в різних навчальних закладах стандарт може бути різним.
  • Зрозумілість - основний критерій псевдокоду, тому псевдокод буде корисний, якщо ви застосовуєте в роботі стандартні конструкції. Вам потрібно буде перетворити псевдокод в мову програмування, і псевдокод дозволить вам впорядкувати в голові всю структуру.
  • 4. Навчіться розбиратися в алгоритмах. Алгоритм - це процедура длярешенія проблеми засобами, знайомими програмі, і порядок, в якому будуть виконуватися дії. Алгоритм - це просто набір кроків, які дозволяють вирішувати будь-яку задачу: послідовність дій, вибір, ітерація і тип звернення.
  • У мові програмування С оператори послідовності є завжди.
  • Вибір - це структура "if then else".
  • Ітерація виконується за допомогою набору звернень: "while", "do", "for."
  • Тип звернення вибирається за допомогою оператора "switch".
  • 5. Знайте, які три елементи керують алгоритмом. Якщо ви можете застосувати функцію "sequence" (послідовності), функцію "while" (зациклення) і "if-then-else" (якщо щось, функція вибору), у вас є всі основні елементи для написання працюючого алгоритму.
  • SEQUENCE (послідовність) - це лінійна прогресія, при якій одна задача виконується після інший в певній послідовності. наприклад:
  • READ (прочитати) висота прямокутника
  • READ (прочитати) ширина прямокутника
  • COMPUTE (запрограмувати) ділянку як висота x ширина
  • WHILE - це зациклення (повторення) перевірки на виконання умов на початку. Початок і кінець циклу позначаються словами WHILE (поки) і ENDWHILE (кінець дії поки). Цикл завершується тільки в тому випадку, якщо умова виконується. Наприклад:
  • WHILE населення < предел
  • Compute (запрограмувати) населення як населення + народження - смерті
  • ENDWHILE
  • IF-THEN-ELSE (якщо ... , то ... , інакше...) - це функція вибору, при якій робиться вибір між двома варіантами дій. Бінарний вибір визначається чотирма ключовими словами: IF, THEN, ELSE, and ENDIF. наприклад:
  • IF (якщо) робочі години> норм макс THEN (то)
  • Показати час переробки
  • ELSE (інакше)
  • Показати час роботи
  • ENDIF (кінець)
  • Метод 2 з 5:
    приклад псевдокоду
    1. Розберіть приклад простої програми. Уявіть, що програма повинна замінювати поєднання букв "foo" в текстовому файлі. Програма прочитає кожен рядок в цьому файлі, пошукає потрібне поєднання в кожному рядку і замінить його на інше. Повторювані кроки починаються з прогалин - в ідеалі так повинно бути і в сьогоденні коді. Первинний нарис псевдокоду може виглядати так:
    • відкрити файл
    • в кожному рядку файлу:
    • знайти поєднання
    • видалити поєднання
    • вставити інше поєднання
  • закрити файл
  • 2. Пишіть псевдокод ітераційно: напишіть його один раз, а потім міняйте в ньому дані. Один з плюсів псевдокоду полягає в тому, що ви можете накидати тільки основу, а все складне залишити на потім. Зверніть увагу на те, що в прикладі, наведеному вище, немає вказівок на те, яким має буде поєднання букв. Ви як програміст можете переписати псевдокод, щоб в ньому були присутні алгоритми для видалення окремих букв і заміни їх іншими. Другий малюнок може мати наступний вигляд:
  • відкрити файл
  • в кожному рядку файлу:
  • знайти слово в такий спосіб:
  • прочитати символ в рядку
  • якщо символ збігається, то:
  • якщо все з наступних символів збігаються
  • то це правильний вибір
  • видалити символи слова
  • вставити символи нового слова
  • закрити файл
  • 3. Використовуйте код для додавання нових функцій. Псевдокод допомагає програмістам продумати вирішення проблеми. Це можна порівняти з проміжними розрахунками в рівнянні. При правильному використанні псевдокод може зробити складну задачу простою. Можна допрацьовувати псевдокод потроху, по кроку за раз:
  • відкрити файл
  • запросити заменяемое слово
  • запросити заміняє слово
  • в кожному рядку файлу:
  • знайти слово в такий спосіб:
  • прочитати символ в рядку
  • якщо символ збігається, то:
  • якщо все з наступних символів збігаються
  • то це правильний вибір
  • порахувати кількість повторень слова
  • видалити символи слова
  • вставити символи нового слова
  • показати кількість повторень слова
  • закрити файл
  • Метод 3 з 5:
    Стандартний процес написання псевдокоду
    1. Пишіть тільки за одним зверненням в рядку. Кожне звернення в псевдокоді має задавати комп`ютера лише одну дію. Найчастіше при правильному описі завдання кожного завдання буде відповідати один рядок псевдокоду. Напишіть список завдань, потім перетворите його в псевдокод, а потім трансформуйте псевдокод в справжній здійсненний код.
    • Список задач:
    • Прочитати ім`я, вартість години, кількість годин
    • виконати розрахунки
    • сума до вирахування = вартість години * кількість годин
    • відрахування = сума до вирахування * коефіцієнт відрахування
    • сума після вирахування = сума до вирахування - відрахування
    • Записати ім`я, суму до вирахування, відрахування, сума після вирахування
  • псевдокод:
  • READ ім`я, стоімостьЧаса, колічествоЧасов, коеффіціентВичета
  • суммаДоВичета = стоімостьЧаса * колічествоЧасов
  • відрахування = суммаДоВичета * коеффіціентВичета
  • суммаПослеВичета = суммаДоВичета - відрахування
  • WRITE ім`я, суммаДоВичета, відрахування, суммаПослеВичета
  • 2. Пишіть великими літерами перше слово основної функції. У прикладі, наведеному вище, READ і WRITE виділені великими літерами, оскільки вони є основними функціями програми. Важливими ключовими словами можуть бути READ, WRITE, IF, ELSE, ENDIF, WHILE, ENDWHILE, REPEAT і UNTIL.
  • 3. Пишіть те, що маєте на увазі, а не програмуйте. Деякі програмісти пишуть псевдокод як програму - наприклад, "if a% 2 == 1 then". Однак тим, хто буде читати псевдокод, буде складно розібратися в абстрактних символах. Набагато простіше буде зрозуміти фразу на кшталт "якщо непарне число то". Чим зрозуміліше ви будете писати, тим простіше людям буде зрозуміти, що ви маєте на увазі.
  • 4. Прописуйте абсолютно все. Все, що відбувається в рамках одного процесу, має бути описано максимально докладно. Псевдокод нагадує прості інструкції. У псевдокоді рідко використовуються змінні - набагато частіше в ньому описується, що повинна робити програма з більш зрозумілими об`єктами: номерами рахунків, іменами, сумами транзакцій.
  • Наведемо приклад хорошого псевдокоду:
  • Якщо номер рахунку і пароль підходять, то показати основну інформацію рахунки.
  • Розрахувати загальну вартість пропорційно до суми в рахунку-фактурі за кожним відправленню.
  • Наведемо приклад невдалого псевдокоду:
  • нехай g = 54 / r (Не використовуйте змінні. Краще опишіть те, що під ними ховається.)
  • виконувати основний обробіток до тих пір, поки процес не завершиться (Потрібно уточнити, що таке основна обробка і що буде свідчити про закінчення процесу.)
  • 5. Використовуйте стандартні інструменти мов програмування. Навіть незважаючи на те що стандартів для псевдокоду не існує, іншим програмістам буде простіше розуміти ваші дії, якщо ви будете використовувати конструкції з існуючих мов програмування (з тих, де є послідовності). Використовуйте "if", "then", "while", "else" і "loop" або їх аналоги російською мовою так само, як ви робили б це на мові програмування. Зверніть увагу на такі конструкції:
  • if CONDITION then INSTRUCTION. Це означає, що окрема інструкція буде спрацьовувати лише в тому випадку, якщо буде виконуватися окрема умова. Інструкцією в даному випадку вважається крок, який програма повинна буде виконати. Умова означає, що дані повинні відповідати певному набору вимог, після перевірки яких програма зможе працювати.
  • while CONDITION do INSTRUCTION. Це означає, що інструкцію потрібно повторювати знову і знову, поки умова не перестане виконуватися.
  • do INSTRUCTION while CONDITION. Ця конструкція схожа на while CONDITION do INSTRUCTION. У першому випадку умова перевіряється до того, як починає діяти інструкція, проте в цьому випадку спочатку запускається інструкція, і завдання INSTRUCTION буде ініційована як мінімум один раз.
  • for a = NUMBER1 to NUMBER2 do INSTRUCTION. Це означає, що змінна "a" буде автоматично приймати значення NUMBER1. "A" буде збільшуватися на одиницю в кожному кроці, поки значення змінної не досягне NUMBER2. Для позначення змінної можна використовувати будь-яку іншу букву.
  • function NAME (ARGUMENTS): INSTRUCTION. Кожен раз, коли в коді використовується певне поєднання букв, воно служить назвою для будь-якої інструкції. Аргументи - це список змінних, які використовуються для уточнення інструкції.
  • 6. Відокремлюйте кроки блоками. Блоки - це елементи синтаксису, які пов`язують кілька інструкцій в одну. За допомогою блоків можна впорядковувати інформацію (наприклад, кроки з блоку 1 завжди виконуються перед кроками в блоці 2) або об`єднувати її (наприклад, інструкція1 і інструкція2 мають одну і ту ж тематику). В цілому, слід відокремлювати все запити, щоб показати їх залежність від інших. Є два способи зробити це.
  • За допомогою фігурних дужок:
  • {
  • INSTRUCTION1
  • INSTRUCTION2
  • ...}
  • За допомогою пробілів. При використанні прогалин кожна інструкція одного і того ж блоку повинна буде починатися на одному і тому ж відстані від лівого краю екрана. Блоки всередині блоків будуть розташовуватися далі. Інструкція блоку верхнього рівня закриває подблок, навіть якщо нижче є інструкція з такою ж кількістю прогалин на початку.
  • BLOCK1
  • BLOCK1
  • BLOCK2
  • BLOCK2
  • BLOCK3
  • BLOCK2
  • BLOCK3
  • BLOCK1
  • Метод 4 з 5:
    Тренування в написанні псевдокоду
    1. Спочатку опишіть мету процесу. Це допоможе вам зрозуміти, чи є ваш псевдокод завершеним. Якщо за допомогою псевдокоду можна вирішити задачу, він вважається завершеним. Опишіть процес. Якщо він простий, вам буде потрібно зовсім мало рядків. Перечитайте те, що написали, і подумайте:
    • Чи зрозуміє цей псевдокод хтось, хто хоча б мінімально знайомий з процесом?
    • Чи можна буде з легкістю перетворити псевдокод в справжній комп`ютерний код?
    • Описує чи псевдокод процес цілком і чи не були упущені якісь деталі?
    • Чи зможе цільова аудиторія зрозуміти кожну власну назву об`єкта в псевдокоді?
  • Write Pseudocode Step 1
    2. Напишіть перші кроки, які підготують вас до інструкцій. Зазвичай в першій частині коду визначаються змінні і інші елементи, які роблять алгоритм робочим.
  • Увімкніть величини змінних. Вкажіть в коді, як буде використовуватися кожна змінна і кожна одиниця даних.
  • Визначте засоби управління. Вам потрібно буде описати їх мовою псевдокоду (текст і зображення в мовах об`єктно-орієнтованого програмування і більш прості засоби в інших мовах) точно так же, як ви зробили б це при роботі з цим кодом.
  • Write Pseudocode Step 2
    3. Напишіть функціональний псевдокод. Спирайтеся на принципи псевдокоду, створюючи подієвий або об`єктно-орієнтована код після вказівки "налаштувань" програми. Кожен рядок коду повинна описувати функцію запиту, зациклення, вибору або будь-яку іншу функцію.
  • Write Pseudocode Step 4
    4. При необхідності додайте коментарі. У цьому комп`ютерному коді коментарі пояснюють читачеві роль задач і частин коду. У псевдокоді це повинно бути детально описано простим природним мовою, тому що ви не будете використовувати коментарі до тих пір, поки не перетворите псевдокод в справжній код.
  • Багато програмістів вважають за краще перетворювати псевдокод в звичайний код коментарями. Це дозволяє іншим програмістам, які також працюють над цим проектом, аналізують його або чогось вчаться, зрозуміти, що хотів зробити розробник кожної конкретної рядком.
  • Починайте коментарі з символів / /, щоб комп`ютер не зміг прочитати їх. Похилі риси повинні відділятися прогалиною. наприклад:
  • / / IF у робота немає попереду перешкоди THEN
  • / / Зрушити робота
  • / / Додати в історію команд команду зрушити
  • / / RETURN правдиво
  • / / ELSE
  • / / RETURN неправдиво не зрушується робота
  • / / END IF
  • Write Pseudocode Step 5
    5. Перечитайте готову роботу і пошукайте помилки в логіці і синтаксисі. Синтаксис не повинен бути ідеально правильним, однак псевдокод повинен виглядати логічно. Постарайтеся поставити себе на місце людини, який буде читати цей код, і подумайте, чи є ваші команди максимально зрозумілими.
  • Оцініть модулі коду відповідно до визначеними ними елементами. Наприклад, до ключових операцій комп`ютера відноситься читання і отримання інформації з файлу, запис в файл або висновок на екран, математичні обчислення, оцінка даних змінних, порівняння одного або декількох елементів. Для всіх цих процесів є своє місце в комп`ютерному коді, а також в псевдокоді, який ви створюєте для цієї програми.
  • Вбудуйте в псевдокод конкретні завдання. Коли відокремте пробілами кожну нову задачу, уявіть цю інформацію в псевдокоді, наслідуючи реальному мови програмування, але не дотримуючись чітких правил мови програмування.
  • Перевірте, чи всі потрібні елементи присутні в псевдокоді. Навіть якщо якісь з технічних подробиць на зразок пояснень змінних будуть не потрібні, кожна задача і кожен елемент повинні бути чітко прописані.
  • 6. перечитайте псевдокод. Коли ваш псевдокод опише процес без значних помилок, уважно перечитайте разом з будь-яким з учасників цього проекту. Попросіть колег вказати вам на те, які частини потребують доопрацювання. Часто програмісти недостатньо докладно описують процеси, тому на цьому етапі ви зможете додати все необхідне. Якщо ви працюєте над кодом самостійно, перечитайте написане і попросіть кого-небудь перевірити вашу роботу.
  • Якщо ваші колеги будуть незадоволені псевдокодом, перепишіть його більш зрозуміло. Запитайте у колег, з чим ви не впоралися: здаються кроки в цілому незрозумілими або ви забули включити в псевдокод який-небудь важливий фрагмент процесу?
  • 7. збережіть псевдокод. Коли перевірите код, а колеги схвалять вашу роботу, збережіть псевдокод в архів. Коли будете писати справжній код, включіть псевдокод коментарями до коду. Починайте коментарі з / /, щоб комп`ютер не спробував виконувати їх як програму.
  • Метод 5 з 5:
    Трансформація псевдокоду в код на мові програмування
    1. Виконайте трасування псевдокоду і розберіться в тому, як він працює. Псевдокод дає вам алгоритм. Наприклад, код може сортувати список в алфавітному порядку. Псевдокод допоможе вам зрозуміти, як побудувати алгоритм тією мовою програмування, з яким ви працюєте.
  • 2. Використовуйте елементи програмування, що відповідають вашому мови програмування. Ці елементи можуть включати в себе опис змінних, запити if і loop. Кожен рядок можна втілити в життя по-різному. Все буде залежати від рівня мови програмування, яким ви користуєтеся.
  • Наприклад, спробуйте вивести певні дані на екран. Для цього можна використовувати спеціальне вікно або існуючий графічний інтерфейс, з яким ви працюєте.
  • 3. Впровадити псевдокод. Якщо псевдокод буде написаний просто, грамотно і чітко, при запуску програми весь алгоритм буде працювати більш ефективно і без помилок.
  • 4. Виконайте трасування заново і порівняйте робочий код з псевдокодом. Перевірте, чи слід робочий код логіці псевдокоду. Наприклад, якщо в псевдокоді передбачено введення і виведення, перепробуйте всі можливі способи введення і порівняйте висновок від коду з висновком від псевдокоду. Можна попросити колегу виконати трасування або порекомендувати вам спосіб виправлення коду.
  • Поради

    • Постарайтеся зрозуміти принцип основних операцій, який виконує комп`ютер. Код повинен давати комп`ютеру команду виконувати операції. Розуміння принципів цих операцій допоможе вам написати псевдокод, який буде відслідковувати, що робить основний код.
    • Використовуйте пробіли якомога ефективніше. Прогалини можна застосовувати для поділу елементів коду, і особливо це важливо в псевдокоді - людям так буде легше читати. Уявіть, що пробіл - це окремий блок. Рядки, які починаються з одного й того ж кількості прогалин, знаходяться в одному і тому ж блоці, і вони мають приблизно однакову важливість для процесу в алгоритмі.
    Cхоже