Аплет виртуальной лабораторной работы по информатике позволяет задать переменные, необходимые для работы программы, написать код программы, выбрать стиль кодирования и использовать готовые конструкции выбранного стиля. Корректно написанные программы можно отлаживать в пошаговом режиме или выполнять с возможностью остановки. Внешний вид аплета приведен на рисунке 1.
В верхней части окна представлен список переменных и кнопка "Редактировать", позволяющая переходить к диалоговому окну "Список переменных" и изменять его содержимое. В центре окна представлена область для ввода кода программы с подсветкой синтаксиса на основе выбранного стиля кодирования. Справа представлен древовидный список операторов языка. При двойном щелчке на выбранном операторе произойдет вставка оператора в область ввода кода. Синтаксис будет соответствовать выбранному стилю кодирования. В нижней части окна расположена область сообщений, в которую выводятся ошибки компиляции, ошибки выполнения или статус при отладке. Список "Стиль кодирования" используется для смены стиля, что приводит к изменению списка подсвечиваемых ключевых слов и обновлению древовидного списка операторов. Стиль "Свободный" позволяет кодировать на произвольном языке без возможности вставки готовых конструкций в область ввода кода, отладки и выполнения программы.
Переменные, используемые в программе, должны быть определены до выполнения и отладки программы. Если в процессе компиляции будет обнаружена переменная, не указанная в списке, в область сообщений будет выдана ошибка компиляции. Пример поведения аплета при наличии ошибки приведен на рисунке 2.
Чтобы перейти к редактированию списка переменных следует нажать кнопку "Редактировать", при этом будет вызвано диалоговое окно "Список переменных". Его внешний вид представлен на рисунке 3.
Элементы управления в данном окне позволяют:
Каждая переменная может быть объявлена как входная (флажок выставлен в колонке "Входная"), выходная (флажок выставлен в колонке "Выходная") или внутренняя (флажки не выставлены ). Всего доступно пять типов переменных: целые числа, вещественные числа, массивы целых чисел, массивы вещественных чисел и массивы символов. Для массивов начальные значения задаются в диалоговом окне "Редактирование массива". Перейти к этому диалоговому окну можно с помощью кнопки . Внешний вид диалогового окна "Редактирование массива" представлен на рисунке 4.
Для добавления новой переменной простого типа надо нажать кнопку "Добавить" в окне "Список переменных". Это действие приведет к появлению диалогового окна "Имя переменной", как показано на рисунке 5.
В этом диалоговом окне задается имя и тип переменной. Имя должно быть уникальным и не содержать специальных символов (например: -, +, *, / и др.). При нажатии на кнопку "Далее", появляется диалоговое окно для указания начального значения переменной. Это значение должно соответствовать типу переменной. Диалоговое окно представлено на рисунке 6.
Чтобы завершить создание переменной простого типа следует нажать кнопку "Готово". Если значение не соответствует типу переменной, то будет выведено сообщение, представленное на рисунке 7.
Чтобы добавить переменную-массива в диалоговое окно "Имя переменной" следует выбрать один из типов массива, как представлено на рисунке 8.
Затем будет предложено указать размер массива в диалоговом окне, представленном на рисунке 9.
Далее следует указать начальные значения элементов массива в диалоговом окне, представленном на рисунке 10. Начальные значения должны соответствовать типу элементов массива.
На завершающем этапе создания переменной-массива должно происходить редактирование элементов в диалоговом окне "Редактирование массива", как показано на рисунке 11.
Чтобы завершить создание переменной следует нажать кнопку "Готово". При этом будет произведена проверка соответствия введенных значений типу массива.
На все переменные действуют следующие ограничения:
Внимание!
Входные и выходные переменные в ответе должны быть созданы в том же порядке, в котором они перечислены во входных и выходных данных в задании.
Код программы можно вводить с клавиатуры или использовать древовидный список операторов (за исключением свободного стиля кодирования). В процессе ввода ключевые слова будут подсвечены.
Для использования древовидного списка операторов требуется переместить каретку в области ввода кода в ту позицию, куда требуется добавить оператор и щелкнуть два раза на элементе в древовидном списке. Примерный результат этих действий представлен на рисунке 12.
Как видно из рисунка, в область ввода кода была добавлена конструкция repeat/until, что соответствует циклу с постусловием на языке Pascal. Инвариант цикла представлен в угловых скобках и подсвечен серым цветом. При вводе кода в область, отмеченную серым цветом, текст <условие> будет удален.
Для начала отладки требуется нажать кнопку (Отладка программы в пошаговом режиме). После этого действия аплет перейдет в режим пошаговой отладки. Режим отладки продемонстрирован на рисунке 13.
В этом режиме область ввода кода, список операторов, список стилей кодирования и кнопка "Редактировать" в области переменных заблокированы. Желтым цветом подсвечена строка, которая будет выполнена на следующем шаге. Перейти к следующему шагу можно с помощью кнопки (Выполнение программы до следующей строки). Для продолжения выполнения программы следует нажать кнопку (Продолжить выполнение). Остановить отладку и вернуться к режиму редактирования можно с помощью кнопки (Остановить отладку).
При каждом шаге в режиме отладки переменных в списках "Входные переменные", "Выходные переменные" и "Внутренние переменные" данные будут обновляться.
После завершения последнего оператора программы, аплет автоматически перейдет в режим редактирования кода.
Для перехода в режим выполнения требуется нажать кнопку (Выполнить программу). Элементы редактирования кода и переменных будут заблокированы, как и в режиме отладки. Внешний вид аплета в режиме выполнения представлен на рисунке 14.
Здесь представлен процесс выполнения программы с бесконечным циклом. Для остановки выполнения программы и перехода к режиму редактирования требуется нажать кнопку (Остановить выполнение).
Название в списке | Значение | Пример на языке C |
Библиотека/ Управляющие конструкции | Операторы, управляющие ходом выполнения программы | |
Если | Оператор условия | if( a == b ){ ... }; |
Если/ Иначе | Оператор условия (полный) | if( a == b ){ ... }; else{ ... }; |
Цикл с постусловием | Оператор цикла с постусловием | do{ ... }while( a < 15 ); |
Цикл с предусловием | Оператор цикла с предусловием | while( a < 15 ){ ... }; |
Библиотека/ Оператор присваивания | Оператор присваивания | |
:= | Оператор присваивания | a = 1 + 2*3; |
Библиотека/ Арифметические операторы | Арифметические операторы | |
+, -, *, / | Простые арифметические операции | a - b, a + b, a / b, a * b |
mod | Остаток от деления | 5 % 2 |
Библиотека/ Логические операторы | Логические операторы | |
И | (a == 1) && (b == 2) | |
ИЛИ | (a == 1) || (a == 2) | |
НЕ | (a == 1) && !(a == 2) | |
Библиотека/ Операторы сравнения | Операторы сравнения | |
= | Оператор проверки на равенство двух операндов | a == b |
<> | Оператор проверки на неравенство двух операндов | a != b |
<, <=, >, >= | a < b b >= c |
|
Библиотека/ Комментарии | Комментарии | |
Однострочные | Однострочные комментарии | //текст с пояснением |
Многострочные | Комментарии, занимающие более одной строки | /* Многострочный комментарий Цикл для сортировки массива main_array */ |
Библиотека/ Функции | Алгебраические функции | |
sqrt | Функция вычисления квадратного корня | a = sqrt( 9 ); |
sin, cos, tan | Триганометрические функции | a = sin( 1.57 ) + cos( 1.57 ) + tan( 3.14/4 ); |
asin, acos, atan | Обратные триганометрические функции | a = atan( 1 ) + acos( 1 ) + asin( 1 ); |
round | Функция округления до ближайшего целого | a = round(1.5); |