Сторінка 13 з 29
Обчислення суми натуральних чисел
Другий приклад складніше. Ми обчислимо суму натуральних чисел від 1 до 20. Читач, знайомий з математикою, знає, що суму перших п натуральних чисел можна знайти за формулою Sn = n (n + 1) / 2. Використовуючи цю формулу, ми зможемо перевірити, чи правильно працює програма і чи не допущені під час її набору помилки. При розробці програм їх налагодження, а також перевірка правильності роботи є обов'язковою складовою частиною роботи програміста. Адже навіть якщо всі оператори програми написані правильно з точки зору формальних правил мови, помилка може бути допущена в самому алгоритмі або в його записи на мові програмування. Програму можна вважати готовим продуктом, тільки якщо програміст переконався сам і переконав замовника в тому, що програма працює правильно, дає правильний результат. Для тестування програми використовуються такі набори значень вхідних параметрів або такі граничні випадки її роботи, для яких відомий точний результат. Результат роботи програми в цьому випадку порівнюється з точними значеннями.
Лістинг 1.2. Обчислення суми натуральних чисел
У цій програмі в порівнянні з першим прикладом з'явилися нові елементи. Це опис двох змінних, використовуваних в програмі:
Потім йде цикл з лічильником. У нашому прикладі тіло циклу виконується 20 раз, і кожного разу до значення змінної s додається значення змінної - лічильника i.
Наступні два рядки реалізують висновок результату на екран. Для цього в програмах на мові Паскаль використовуються оператори виведення Write і WriteLn. Вони містяться в бібліотечному модулі System і під час компіляції автоматично включаються в виконуваний код. Спочатку виводиться символьний рядок. Текст, що виводиться на екран, полягає в поодинокі лапки '. '. Потім виводиться чисельне значення - summa.
Останні дві букви в імені процедури WriteLn означають, що після того, як висновок закінчений, курсор переходить на початок наступного рядка. Наступний оператор пропонує користувачеві натиснути клавішу Enter, а оператор ReadLn без параметрів очікує натискання цієї клавіші. Після натискання клавіші Enter виконання програми завершується.
УВАГА У Паскалі не розрізняються великі та маленькі букви, тобто Sum, sum, SUM і т. Д. Є один і той же ідентифікатор.
ПРИМІТКА Звернемо увагу на знаки пунктуації в цій програмі. Крапка з комою (;) не тільки завершує опису, але і розділяє оператори в виконуваної частини програми. Кома (,) завжди використовується для того, щоб розділити елементи списку, - в даному випадку в розділі var і при виклику процедури WriteLn. Двокрапка (:) відокремлює список описуваних змінних від назви їх типу Word. Програми, як і звичайні пропозиції, закінчуються крапкою.
ПРИМІТКА У даній програмі є два оператора присвоювання: =. У Паскалі одиночний знак рівності для присвоювання ніколи не використовується. він має інше призначення.
В арифметичних виразах використовуються символи арифметичних операцій. Ці символи наведені в табл. 1.2. Так, наприклад, в творах між співмножники повинен знаходитися символ операції множення *.
Математичне вираження ах2 в програмі па Паскалі записується як а * х * х. Слід зауважити, що особливістю мови Паскаль є відсутність стандартної вбудованої функції обчислення довільного ступеня числа, крім другої. • Це, звичайно ж, незручно при програмуванні складних обчислень. При програмуванні арифметичних виразів слід пам'ятати про пріоритети операцій, тобто про порядок їх виконання. Першими виконуються арифметичні операції множення і ділення, вони вважаються равнопріорітетнимі операціями. Потім виконуються операції додавання і віднімання, теж равнопріорітетние. Якщо поспіль йдуть кілька равпопрп-пріоритетних операцій, вони виконуються зліва направо. Порядок виконання операцій може бути змінений за допомогою круглих дужок. При наявності в арифметичному виразі круглих дужок першими будуть виконуватися операції в круглих дужках, починаючи з самих внутрішніх.