Псевдокод-це простий інструмент, який можна використовувати для планування роботи алгоритмів. Коли вам потрібно буде написати складний код, ви навряд чи зможете утримати всю програму в голові до початку роботи. Уявіть, що псевдокод-це послідовний вербальний опис, який ви пізніше перетворите в мову програмування. Це поєднання людської мови та мови програмування: псевдокод використовує синтаксис комп'ютерного коду, але його основне завдання-бути читаним.
Кроки
Метод1З 5:
Розуміння псевдокоду
Метод1З 5:
- Дізнайтеся, що таке псевдокод.Псевдокод-це послідовний вербальний опис коду, який можна поступово перенести в мову програмування. Багато програмістів використовують його для планування функції алгоритму до початку більш технічної роботи над кодом. Псевдокод - це нестрогий план, інструмент для обмірковування проблем програми і засіб спілкування, яке дозволяє передати ваші думки іншим людям.
- З'ясуйте, чому псевдокод корисний. Псевдокод використовується для демонстрації того, як комп'ютерний алгоритм може і повинен працювати. Інженери часто використовують псевдокод в якості проміжного етапу в програмуванні-між стадією планування і стадією написання працюючого коду. Хороший псевдокод може перетворитися в коментарі до фінальної версії програми і буде допомагати програмісту виправляти помилки в майбутньому або коригувати код. Псевдокод також корисний:
- Для опису того, як алгоритм повинен працювати. Псевдокод показує, як певна частина програми, механізм або прийом повинен відображатися в програмі. Досвідчені програмісти часто використовують псевдокод для пояснення своїх кроків у розробці молодшим програмістам.
- Для пояснення процесу роботи програми людям, які погано розбираються в програмуванні. Щоб програма працювала, комп'ютерам потрібен дуже строгий код, однак людям, особливо тим, хто не пов'язаний з програмуванням, простіше розуміти більш простий і суб'єктивний мову, який чітко описує мету кожного рядка коду.
- Для розробки коду в групі. Висококваліфіковані інженери часто включають псевдокод в свою роботу, щоб допомогти програмістам вирішити складну проблему, з якою ті ось-ось зіткнуться. Якщо ви працюєте в групі з іншими програмістами, псевдокод допоможе вам пояснити ваші дії іншим.
- Пам'ятайте, що псевдокод суб'єктивний і не стандартизований.у ньому немає чітко встановленого синтаксису-є тільки негласне правило використовувати стандартні конструкції, які інші програмісти могли б зрозуміти без особливих проблем. Якщо ви пишете код самостійно, псевдокод допоможе вам упорядкувати думки і розробити план. Якщо ви працюєте разом з іншими інженерами (і не має значення, який їх рівень володіння предметом), важливо використовувати як мінімум основні конструкції, щоб всі інші розуміли, що ви хотіли зробити.
- Якщо ви вчитеся програмуванню в будь-якій установі, швидше за все, вам запропонують тест на знання так званих стандартів псевдокода. У різних викладачів і в різних навчальних закладах стандарт може бути різним.
- Зрозумілість-основний критерій псевдокода, тому псевдокод буде корисний, якщо ви застосовуєте в роботі стандартні конструкції. Вам потрібно буде перетворити псевдокод в мову програмування, і псевдокод дозволить вам упорядкувати в голові всю структуру.
- Навчіться розбиратися в алгоритмах. Алгоритм-це процедура для вирішення проблеми засобами, знайомими програмі, і порядок, в якому будуть виконуватися дії. Алгоритм - це просто набір кроків, які дозволяють вирішувати будь-яку задачу: послідовність дій, вибір, ітерація і тип звернення.
- В мові програмування з оператори послідовності є завжди.
- Вибір-це структура "if then else".
- Ітерація виконується за допомогою набору звернень:" while"," do", " for."
- Тип звернення вибирається за допомогою оператора "switch".
- Знайте, які три елементи керують алгоритмом. якщо ви можете застосувати функцію " sequence "(послідовності), функцію "while" (зациклення) і "if-then-else" (якщо-то, функція вибору), у вас є всі основні елементи для написання працюючого алгоритму.[1]
- SEQUENCE ( послідовність) - це лінійна прогресія, при якій одне завдання виконується після іншого в певній послідовності. Наприклад:
- READ (прочитати) висота прямокутника
- READ (прочитати) ширина прямокутника
- COMPUTE (запрограмувати) ділянку як висота x ширина
- WHILE-це зациклення (повторення) перевірки на виконання умов на початку. Початок і кінець циклу позначаються словами WHILE (поки) і ENDWHILE (кінець дії поки). Цикл завершується тільки в тому випадку, якщо умова виконується. Приміром:
- WHILE населення Lt; межа
- Compute (запрограмувати) населення як населення + народження-смерті
- ENDWHILE
- WHILE населення Lt; межа
- IF-THEN-ELSE (якщо ... , те ... , не інакше як...)- це функція вибору, при якій робиться вибір між двома варіантами дій. Бінарний вибір визначається чотирма ключовими словами: IF, THEN, ELSE, and ENDIF. Наприклад:
- IF (якщо) робочі години gt; норм макс THEN (то)
- Показати час переробки
- ELSE (інакше)
- Показати час роботи
- ENDIF (кінець)
- IF (якщо) робочі години gt; норм макс THEN (то)
- SEQUENCE ( послідовність) - це лінійна прогресія, при якій одне завдання виконується після іншого в певній послідовності. Наприклад:
Метод2З 5:
Приклад псевдокоду
Метод2З 5:
- Розберіть приклад простої програми.уявіть, що програма повинна замінювати поєднання букв " foo " в текстовому файлі. Програма прочитає кожен рядок в цьому файлі, пошукає потрібне поєднання в кожному рядку і замінить його на інше. Повторювані кроки починаються з прогалин - в ідеалі так повинно бути і в цьому коді. Початковий начерк псевдокода може виглядати так:
- Відкрити файл
- У кожному рядку файлу:
- Знайти поєднання
- Видалити поєднання
- Вставити інше поєднання
- Закрити файл
- Пишіть псевдокод ітераційно:Напишіть його один раз, а потім міняйте в ньому дані. Один з плюсів псевдокода полягає в тому, що ви можете накидати тільки основу, а все складне залишити на потім. Зверніть увагу на те, що в прикладі, наведеному вище, немає вказівок на те, яким повинно буде поєднання букв. Ви як програміст можете переписати псевдокод, щоб в ньому були присутні алгоритми для видалення окремих букв і заміни їх іншими. Другий начерк може мати наступний вигляд:
- Відкрити файл
- У кожному рядку файлу:
- Знайти слово наступним чином:
- Прочитати символ у рядку
- Якщо символ збігається, то:
- Якщо всі з наступних символів збігаються
- То це правильний вибір
- Видалити символи слова
- Вставити символи нового слова
- Знайти слово наступним чином:
- Закрити файл
- Використовуйте код для додавання нових функцій.Псевдокод допомагає програмістам продумати рішення проблеми. Це можна порівняти з проміжними розрахунками в рівнянні. При правильному використанні псевдокод може зробити складне завдання простим. Можна допрацьовувати псевдокод потроху, по кроку за раз:
- Відкрити файл
- Запросити замінюване слово
- Запитати замінююче слово
- У кожному рядку файлу:
- Знайти слово наступним чином:
- Прочитати символ у рядку
- Якщо символ збігається, то:
- Якщо всі з наступних символів збігаються
- То це правильний вибір
- Порахувати кількість повторень слова
- Видалити символи слова
- Вставити символи нового слова
- Показати кількість повторень слова
- Знайти слово наступним чином:
- Закрити файл
Метод3З 5:
Стандартний процес написання псевдокоду
Метод3З 5:
- Пишіть тільки по одному зверненню в рядку.кожне звернення в псевдокоді має задавати комп'ютеру лише одну дію. Найчастіше при правильному описі завдання кожній задачі буде відповідати один рядок псевдокода. Напишіть список завдань, потім перетворіть його в псевдокод, а потім трансформуйте псевдокод в справжній здійсненний код.[2]
- Список завдань:
- Прочитати ім'я, вартість години, Кількість годин
- Виконати розрахунки
- Сума до вирахування = вартість години * Кількість годин
- Відрахування = сума до вирахування * коефіцієнт вирахування
- Сума після вирахування = сума до вирахування-відрахування
- Записати ім'я, суму до вирахування, відрахування, сума після вирахування
- Псевдокод:
- READ ім'я, стоимостьЧаса, количествоЧасов, коэффициентВычета
- СуммаДоВычета = стоимостьЧаса * количествоЧасов
- Відрахування = суммадовичета * коефіцієнтвичета
- Суммапослевичета = суммадовичета-відрахування
- WRITE ім'я, суммадовичета, відрахування, сумапослевичета
- Список завдань:
- Пишіть великими літерами перше слово основної функції. у прикладі, наведеному вище, READ І WRITE виділені великими літерами, оскільки вони є основними функціями програми. Важливими ключовими словами можуть бути READ, WRITE, IF, ELSE, ENDIF, WHILE, ENDWHILE, REPEAT і UNTIL.
- Пишіть те, що маєте на увазі, а не програмуйте.деякі програмісти пишуть псевдокод як програму-наприклад, "if a % 2 == 1 then". Однак тим, хто буде читати псевдокод, буде складно розібратися в абстрактних символах. Набагато простіше буде зрозуміти фразу на кшталт"якщо непарне число то". Чим зрозуміліше ви будете писати, тим простіше людям буде зрозуміти, що Ви маєте на увазі.[3]
- Прописуйте абсолютно все.все, що відбувається в рамках одного процесу, має бути описано максимально докладно. Псевдокод нагадує прості інструкції. У псевдокоді рідко використовуються змінні-набагато частіше в ньому описується, що повинна робити програма з більш зрозумілими об'єктами: номерами рахунків, іменами, сумами транзакцій.[4]
- Наведемо приклад хорошого псевдокода:
- Якщо номер рахунку і пароль підходять, то показати основну інформацію рахунку.
- Розрахувати загальну вартість пропорційно до суми в рахунок-фактурі по кожному відправленню.
- Наведемо приклад невдалого псевдокода:
- Нехай g=54/r(не використовуйте змінні. Краще опишіть те, що під ними ховається.)
- Виконувати основну обробку до тих пір, поки процес не завершиться(потрібно уточнити, що таке основна обробка і що буде свідчити про закінчення процесу.)
- Наведемо приклад хорошого псевдокода:
- Використовуйте стандартні інструменти мов програмування.навіть незважаючи на те що стандартів для псевдокода не існує, іншим програмістам буде простіше розуміти ваші дії, якщо ви будете використовувати конструкції з існуючих мов програмування (з тих, де є послідовності). Використовуйте "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. Кожен раз, коли в коді використовується певне поєднання букв, воно служить назвою для будь-якої інструкції. Аргументи-це список змінних, які використовуються для уточнення інструкції.
- Відокремлюйте кроки блоками. Блоки - це елементи синтаксису, які пов'язують кілька інструкцій в одну. За допомогою блоків можна впорядковувати інформацію (наприклад, кроки з блоку 1 завжди виконуються перед кроками в блоці 2) або об'єднувати її (наприклад, інструкція1 і інструкція2 мають одну і ту ж тематику). В цілому, слід відокремлювати всі запити, щоб показати їх залежність від інших.[5] є два способи зробити це.
- За допомогою фігурних дужок:
- {
- INSTRUCTION1
- INSTRUCTION2
- ...}
- За допомогою пробілів. При використанні пробілів кожна інструкція одного і того ж блоку повинна буде починатися на одній і тій же відстані від лівого краю екрану. Блоки всередині блоків будуть розташовуватися далі. Інструкція блоку верхнього рівня закриває підблок, навіть якщо нижче є інструкція з такою ж кількістю пробілів на початку.
- BLOCK1
- BLOCK1
- BLOCK2
- BLOCK2
- BLOCK3
- BLOCK2
- BLOCK3
- BLOCK1
- За допомогою фігурних дужок:
Метод4З 5:
Тренування в написанні псевдокода
Метод4З 5:
- Спочатку опишіть мету процесу.це допоможе вам зрозуміти, чи є ваш псевдокод завершеним. Якщо за допомогою псевдокода можна вирішити задачу, він вважається завершеним. Опишіть процес. Якщо він простий, вам буде потрібно зовсім мало рядків. Перечитайте те, що написали, і подумайте:
- Чи зрозуміє цей псевдокод хто-небудь, хто хоча б мінімально знайомий з процесом?
- Чи можна буде з легкістю перетворити псевдокод в справжній комп'ютерний код?
- Чи описує псевдокод процес цілком і чи не були упущені будь-які деталі?
- Чи зможе цільова аудиторія зрозуміти кожну назву об'єкта в псевдокоді?
- Напишіть перші кроки, які підготують вас до інструкцій.зазвичай в першій частині коду визначаються змінні та інші елементи, які роблять алгоритм робочим.
- Увімкніть величини змінних. Вкажіть в коді, як буде використовуватися кожна змінна і кожна одиниця даних.[6]
- Визначте засоби управління. Вам потрібно буде описати їх мовою псевдокоду (текст і зображення в мовах об'єктно-орієнтованого програмування і простіші засоби в інших мовах) точно так же, як ви зробили б це при роботі з цим кодом.[7]
- Напишіть функціональний псевдокод. спирайтеся на принципи псевдокоду, створюючи подієвий або об'єктно-орієнтований код після вказівки "налаштувань" програми. Кожен рядок коду повинен описувати функцію запиту, зациклення, вибору або будь-яку іншу функцію.
- При необхідності додайте коментарі.у цьому комп'ютерному коді коментарі пояснюють читачеві роль завдань і частин коду. У псевдокоді це повинно бути детально описано простою природною мовою, тому що ви не будете використовувати коментарі до тих пір, поки не перетворите псевдокод в справжній код.
- Багато програмістів вважають за краще перетворювати псевдокод в звичайний код. Це дозволяє іншим програмістам, які також працюють над цим проектом, аналізують його або чогось вчаться, зрозуміти, що хотів зробити Розробник кожної конкретної рядком.
- Починайте коментарі з символів//, щоб комп'ютер не зміг прочитати їх. Похилі риси повинні відділятися пропуском. Наприклад:
- / / IF у робота немає попереду перешкоди THEN
- / / зрушити робота
- / / додати в історію команд команду зрушити
- / / RETURN правдиво
- / / ELSE
- / / RETURN неправдиво не зрушувати робота
- / / END IF
- / / IF у робота немає попереду перешкоди THEN
- Перечитайте готову роботу і пошукайте помилки в логіці і синтаксисі. Синтаксис не повинен бути ідеально правильним, проте псевдокод повинен виглядати логічно. Постарайтеся поставити себе на місце людини, яка буде читати цей код, і подумайте, чи є ваші команди максимально зрозумілими.
- Оцініть модулі коду відповідно до охоплюваних ними елементами. Наприклад, до ключових операцій комп'ютера відноситься читання та отримання інформації з файлу, запис у файл або висновок на екран, математичні обчислення, оцінка даних змінних, порівняння одного або декількох елементів. Для всіх цих процесів є своє місце в комп'ютерному коді, а також в псевдокоді, який ви створюєте для цієї програми.
- Вбудуйте в псевдокод конкретні завдання. Коли відокремте пробілами кожне нове завдання, уявіть цю інформацію в псевдокоді, наслідуючи реальної мови програмування, але не дотримуючись чітких правил мови програмування.
- Перевірте, чи всі потрібні елементи присутні в псевдокоді. Навіть якщо якісь з технічних подробиць на зразок пояснень змінних будуть не потрібні, кожна задача і кожен елемент повинні бути чітко прописані.
- Перечитайте псевдокод.коли ваш псевдокод опише процес без значних помилок, перечитайте його разом з будь-яким з учасників цього проекту. Попросіть колег вказати вам на те, які частини вимагають доопрацювання. Часто програмісти недостатньо детально описують процеси, тому на цьому етапі ви зможете додати все необхідне. Якщо ви працюєте над кодом самостійно, перечитайте написане і попросіть кого-небудь перевірити вашу роботу.
- Якщо ваші колеги будуть незадоволені псевдокодом, перепишіть його більш зрозуміло. Запитайте у колег, з чим ви не впоралися: чи здаються кроки в цілому незрозумілими або ви забули включити в псевдокод який-небудь важливий фрагмент процесу?
- Збережіть псевдокод.коли перевірите код, а колеги схвалять вашу роботу, збережіть псевдокод в архів. Коли будете писати справжній код, включіть псевдокод коментарями до коду. Починайте коментарі з//, щоб комп'ютер не спробував виконувати їх як програму.
Метод5З 5:
Трансформація псевдокода в код на мові програмування
Метод5З 5:
- Виконайте трасування псевдокода і розберіться в тому, як він працює. Псевдокод дає вам алгоритм. Наприклад, код може сортувати список в алфавітному порядку. Псевдокод допоможе вам зрозуміти, як побудувати алгоритм на тій мові програмування, з яким ви працюєте.
- Використовуйте елементи програмування, що відповідають вашій мові програмування.ці елементи можуть включати в себе опис змінних, запити if і loop. Кожен рядок можна втілити в життя по-різному. Все буде залежати від рівня мови програмування, яким Ви користуєтеся.
- Наприклад, спробуйте вивести певні дані на екран. Для цього можна використовувати спеціальне вікно або існуючий графічний інтерфейс, з яким ви працюєте.
- Впровадьте псевдокод.якщо псевдокод буде написаний просто, грамотно і чітко, при запуску програми весь алгоритм буде працювати більш ефективно і без помилок.
- Виконайте трасування заново і порівняйте робочий код з псевдокодом. перевірте, чи слід робочий код логіці псевдокода. Наприклад, якщо в псевдокоді передбачений введення і висновок, перепробуйте всі можливі способи введення і порівняйте висновок від коду з висновком від псевдокода. Можна попросити колегу виконати трасування або порекомендувати вам спосіб виправлення коду.
Поради
- Постарайтеся зрозуміти принцип основних операцій, який виконує комп'ютер. Код повинен давати комп'ютеру команду виконувати операції. Розуміння принципів цих операцій допоможе вам написати псевдокод, який буде відстежувати, що робить основний код.
- Використовуйте пробіли якомога ефективніше. Прогалини можна застосовувати для поділу елементів коду, і особливо це важливо в псевдокоді - людям так буде легше читати. Уявіть, що пробіл-це окремий блок. Рядки, які починаються з однієї і тієї ж кількості пробілів, знаходяться в одному і тому ж блоці, і вони мають приблизно однакову важливість для процесу в алгоритмі.
Джерела
- ↑ Http://users.csc.calpoly.edu/~jdalbey/SWE/pdl_std.html
- ↑ Http://faculty.ccri.edu/mkelly/COMI1150/PseudocodeBasics.pdf
- ↑ Http://www.bfoit.org/itp/Pseudocode.html
- ↑ Https://www.khanacademy.org/computing/computer-programming/programming/good-practices/p/pseudo-code#
- ↑ Http://www.unf.edu/~broggio/cop2221/2221pseu.htm
- ↑ Http://www.g-wlearning.com/cad/9781605251615/student/resourceCenter/PDF/DimVar.pdf
- ↑ Http://searchsoa.techtarget.com/definition/object-oriented-programming