Online Pascal Compiler IDE

Online Pascal Compiler IDE

Execute Mode, Version, Inputs & Arguments

Know Your JDoodle

  • JDoodle supports 76+ languages with multiple versions — see all.
  • With JDoodle APIs, you can execute programs just by making a REST call.
  • With JDoodle Plugins, you can embed an IDE to your website with just 3 lines of code.
  • Fullscreen — side-by-side code and output is available. click the «» icon near execute button to switch.
  • Dark Theme available. Click on «» icon near execute button and select dark theme.

JDoodle For Your Organisation

  • Do you have any specific compiler requirements?
  • Do you want to integrate compilers with your website, webapp, mobile app, courses?
  • Are you looking more features in
    JDoodle Plugin and
    JDoodle API ?
  • Looking for Multiple Files, Connecting to DB, Debugging, etc.?
  • Are you building any innovative solution for your students or recruitment?
  • Want to run JDoodle in-house?
  • Custom Domain, White-labelled pages for your institute?

Thanks for using our

Online Pascal Compiler
IDE

to execute your program

Online Pascal Compiler IDE

Your valuable input will help us improve this site please give your comments. Thanks.

Which language would you like to see next in JDoodle?

Поиск и исправление ошибок

При поиске ошибок большим подспорьем является возможность () программы с параллельным отслеживанием того, как меняются в ходе неё значения переменных. В среде Turbo Pascal для этого имеются следующие инструменты:

  • Нажатие клавиши F4 выполнит программу до той строки, на которой установлен курсор, затем приостановит выполнение.
  • Нажатие клавиши F7 или F8 позволяет выполнять программу пошагово: по одному оператору (различие между этими функциями состоит в том, производится или нет текстов подпрограмм).

Более подробно эти возможности описаны в руководствe по среде Turbo Pascal.

Можно дать несколько полезных советов, касающихся локализации ошибок в программе.

Совет 16. Пользуйтесь всеми доступными инструментами .

Совет 17. На всех ключевых участках, а также на границах логически самостоятельных блоков вставляйте в программу печати, которые позволят вам проследить изменение состояния основных переменных. Эта процедура не всегда может быть заменена просмотром изменений, который можно осуществить с помощью окна Watch. Зачастую бывает необходимо иметь перед собой для сравнения результаты нескольких последовательных итераций, либо нужно видеть одновременно первые и последние результаты, либо в процессе прогонки возвращаться по списку выдачи назад, к предыдущим результатам. Ничего этого параллельный просмотр в Watch сделать не позволяет.

Если отладочная выдача настолько объёмна, что не помещается целиком на экран, её приходится производить в файл.

Совет 18. Следите за тем, чтобы отладочная печать выдавала именно то, что нужно. Совершенно невозможно отловить ошибку в программе, если под именем проверяемой переменной вам выдаётся значение другой переменной!

Самый легкий случай, — когда из–за опечатки полностью меняется вид вывода. Например, правильный оператор (a + 1) должен выдать число, если же вместо числа на экране вдруг появляется слово FALSE, то это явный признак того, что произошла опечатка и выдаётся результат сравнения переменной а с единицей: (a = 1).

Однако не всегда удаётся так легко отделаться, поэтому обязательно удостоверьтесь в том, что правильной является и конечная печать результата: выдаётся значение нужной переменной, значение выводится в правильном формате и т. п. Такие ошибки возникают только из–за невнимательности и бывают подчас трудноуловимыми.

Совет 19. Если вы уже локализовали небольшой участок программы, в котором находится ошибка, удалите операторы отладочной печати из остальных частей программы, а в отлаживаемом участке, наоборот, увеличьте их количество.

Совет 20. Пишите «» для ещё не отлаженных процедур и функций. Это значит, что вместо того, чтобы мучиться одновременно с несколькими подпрограммами, вы вынуждаете большую их часть возвращать не тот результат, какой они реально вырабатывают, а тот, который они должны были бы возвращать при правильной работе.

Совет 21. За один раз исправляйте ровно одну ошибку. Нет ничего хуже, чем гадать, которое из внесённых исправлений оказало решающее влияние на поведение программы.

Правила составления тестов

Для того, чтобы отладить программу, нужно проверить её работоспособность на каких–то входных данных. Следовательно, эти входные данные нужно каким–то образом подобрать. Затем, после выполнения программы на этих входных данных, нужно сравнить полученный результат с тем, который должен получиться, если программа работает правильно. Этот процесс и называется тестированием.

Заметим, что если полученный результат отличается от эталонного, то считается удачным (!), потому что он помог обнаружить ошибку. А если полученный ответ совпал с правильным — радоваться рано. Один не может полностью проверить всю программу, ошибка вполне могла затаиться в той части, которая осталась на сей раз невыполненной. Для того, чтобы протестировать всю программу, проверить все возможные частные случаи, составляют не один , а набор .

И здесь существуют следующие правила.

Правило 1. Любой должен состоять не только из входных, но и из соответствующих им выходных данных. Ведь для того, чтобы понять, верный или неверный результат выдала вам программа, необходимо самому знать правильный ответ.

Проверяйте вручную результаты , с помощью которых вы отлаживаете программу. Немногого можно добиться, если выдаваемый программой правильный ответ вы считаете неверным и продолжаете поиск несуществующей ошибки. Хуже того — если вы всё–таки добьётесь, чтобы программа выдавала ожидаемый вами неверный результат, объяснить её неправильное поведение на других вам будет ещё сложнее.

Из двух предыдущих абзацев вытекает очень важный вывод: нельзя строить тесты при помощи генератора случайных чисел. Конечно, вы можете случайным образом составить входные данные, но как быть с правильным ответом? Откуда его взять, если вы сами понятия не имеете, что там подаётся на вход?

Правило 2. После того, как программа начала правильно работать на одном или нескольких простых , усложните задания, введите на граничные условия или , содержащий значения, выходящие за рамки формата входных данных. Иногда ошибка может скрываться в тех частях программы, которые кажутся самыми прозрачными. Например, в проверке нескольких переменных на равенство между собой. Если до сих пор все переменные в были разными, попробуйте прогнать программу через , в которых сравниваемые значения будут совпадать — все сразу или только некоторые из них в разных комбинациях.

Правило 3. Не ограничивайтесь только похожими .

Все можно разделить на три группы: регулярные, граничные и критические. Например, при заданных ограничениях на параметр 0 <= x <= 100 регулярными будут все , где 1 <= x <= 99; граничными, где и х = 100; остальные — критическими. Если ваша программа правильно работает для пяти–шести из какой–либо группы, можно предположить, что она выдаст правильный результат и для всех остальных из этой группы.

В , составленном для проверки программ, обязательно должны присутствовать первых двух групп, а для проверки работоспособности «защиты от дурака» (см. ) — и третьей тоже. Если входных параметров несколько — комбинируйте! Пусть в одном и том же первый параметр будет граничным, второй — регулярным, а третий — критическим. Всегда интересно посмотреть, достаточно ли надёжна ваша программа, справится ли она с таким заданием.

В хорошей, надёжной программе всегда нужно писать проверку того, что файл ввода существует, не пуст и содержит данные в правильном формате, что считываемые из входного файла данные попадают в определённые условием задачи диапазоны.

Правило 4. Исправления, вносимые в программу, могут повлиять на результаты нескольких .

После того, как вы нашли и исправили ошибку, вновь выполните программу на всех тех , которые раньше не были успешными (то есть, выдавали правильные ответы) — а вдруг найдётся новая ошибка?

Вообще же, составление исчерпывающих для тестирования любой программы — задача очень нетривиальная, зачастую требующая математического доказательства полноты.

Процесс уже написанной программы начинается только после того, как вы убедились, что ваша программа работает правильно. Стараться неправильную программу бессмысленно, правильнее она от этого не станет, поскольку — это замена некоторых программных кусков эквивалентными им с точки зрения результата, но более экономичными с точки зрения выполнения.

Основная часть процесса приходится на этап выбора наилучшего алгоритма. Однако даже при правильном неграмотное кодирование может привести к неэффективно работающему результату. Чтобы такого не происходило, внимательнее относитесь к тому, что и как вы пишете, реализуя выбранный вами алгоритм. Не всегда те действия, которые кажутся оптимальными с точки зрения логики алгоритма, стоит пытаться запрограммировать «в лоб».

Если же алгоритм выбран и запрограммирован «почти» правильно, можно попытаться улучшить его, внося изменения, сокращающие его работу.

В первую очередь стоит оптимизировать часто повторяющиеся куски программы, то есть циклы. Старайтесь не допускать ситуаций, когда в теле цикла раз за разом производятся одни и те же вычисления, никак не изменяющие состояние переменных. И вообще, избегайте вносить в повторяющиеся участки «тяжёлые» операции.

Например, ясно, что из двух эквивалентных кусков

k i b   k k i b (b )

a b (b )k i b   k k i a

второй является и более быстрым (особенно если b = 10000), и более компактным, чем первый.

Лишние вычисления, лишние действия с файлами или структурами, лишние пересылки элементов из одной ячейки памяти в другую (и список этот далеко не полон!) — всё это снижает эффективность программы. Старайтесь помнить о том, что лаконичность приветствуется всегда и везде, а особенно в программировании.

Успехов вам в написании красивых и полезных программ!

Отладка программы

Online Pascal Compiler IDE

Текст ошибки высвечивается вверху редактора кода на красном фоне, а текстовый курсор автоматически перемещается в ту позицию кода, где допущена ошибка.

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

Закройте исходный код программы, с которым мы работали ранее и создайте новый файл. Наберите в нем следующую программу:

Calc CRT Year BY Age   ClrScr   (‘Год вашего рождения: ‘)  ReanLn (BY)   BY Year      Age BY Year     (‘Ваш возраст: ‘ Age)   ()

Программа заведомо содержит ошибку, которая будет обнаружена компилятором. Устраните эту ошибку и добейтесь того, что бы программа запустилась на выполнения.

Введите год своего рождения. Программа вычислит возраст. Текущий год содержится в константе «Year», если он не соответствует сегодняшнему году, измените его соответствующим образом.

Запустите программу и проанализируйте результат ее работы. Не смотря на то, что мы уже исправили две очевидные ошибки и программа выглядит вполне корректно, она почему-то выдает возраст в виде отрицательного, а не положительного числа.

Для того, чтобы найти строку программы, в которой содержатся ошибочные инструкции, можно воспользоваться отладочным режимом TBP7.0.

В нашей программе всего 2 переменные: «BY» и «Age». Добавьте их в список Наблюдений. Чтобы отобразить список Наблюдений на экране, необходимо выбрать пункт меню «Наблюдения» меню «Отладка».

Online Pascal Compiler IDE

Запустим программу в режиме трассировки. В режиме трассировки программа выполняется по шагам, при этом можно наблюдать изменения значений переменных программы.

Найдите ту строку программы, после выполнения которой в переменной «Age» появляется отрицательное значение. Именно эта строка и содержит ошибку в коде, в результате которой мы получаем неверный результат.

Online Pascal Compiler IDE

Исправьте найденную ошибку и добейтесь того, что бы программа выдавала правильные ответы.

Если во время пошагового выполнения требуется приостановить работы программы, то нужно выбрать пункт меню «Сбросить программу» меню «Пуск» или нажать клавиши «Ctrl + F2».

Пошаговое выполнение программы неудобно в том случае, если программа очень большая. Нужно сделать много шагов, прежде чем выполнение программы дойдет то нужной точки. В таком случае отладчик TBP7.0 позволяет устанавливать точки останова, начиная с которых программа перейдет в режим трассировки (т.е. пошагового исполнения).

Online Pascal Compiler IDE

После установки всех необходимых точек останова, программа запускается в обычном режиме (клавишами «Ctrl + F9»).

Как только выполнение программы доходит до точки останова, программа прерывается и переходит в режим пошагового исполнения. К следующему шагу можно перейти, нажав клавишу «F7». Также можно вывести окно Наблюдений для просмотра значений переменных.

Что бы перейти из режима трассировки в режим обычного исполнения программы, необходимо нажать клавиши «Ctrl + F9». Программа продолжит выполнения до момента встречи новой точки останова или до своего окончания.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *