ВИРТУАЛЬНАЯ ЛАБОРАТОРИЯ ПО ИНФОРМАТИКЕ

Обзор интерфейса

Аплет виртуальной лабораторной работы по информатике позволяет задать переменные, необходимые для работы программы, написать код программы, выбрать стиль кодирования и использовать готовые конструкции выбранного стиля. Корректно написанные программы можно отлаживать в пошаговом режиме или выполнять с возможностью остановки. Внешний вид аплета приведен на рисунке 1.

Интерфейс виртуальной лаборатории

Рисунок 1 - Интерфейс виртуальной лаборатории

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

Разработка программ

Задание переменных

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

Ошибка компиляции

Рисунок 2 - Ошибка компиляции

Чтобы перейти к редактированию списка переменных следует нажать кнопку "Редактировать", при этом будет вызвано диалоговое окно "Список переменных". Его внешний вид представлен на рисунке 3.

Редактирование переменных

Рисунок 3 - Редактирование переменных

Элементы управления в данном окне позволяют:

Каждая переменная может быть объявлена как входная (флажок выставлен в колонке "Входная"), выходная (флажок выставлен в колонке "Выходная") или внутренняя (флажки не выставлены ). Всего доступно пять типов переменных: целые числа, вещественные числа, массивы целых чисел, массивы вещественных чисел и массивы символов. Для массивов начальные значения задаются в диалоговом окне "Редактирование массива". Перейти к этому диалоговому окну можно с помощью кнопки . Внешний вид диалогового окна "Редактирование массива" представлен на рисунке 4.

Редактирование элементов массива

Рисунок 4 - Редактирование элементов массива

Для добавления новой переменной простого типа надо нажать кнопку "Добавить" в окне "Список переменных". Это действие приведет к появлению диалогового окна "Имя переменной", как показано на рисунке 5.

Cоздание новой переменной

Рисунок 5 - Создание новой переменной

В этом диалоговом окне задается имя и тип переменной. Имя должно быть уникальным и не содержать специальных символов (например: -, +, *, / и др.). При нажатии на кнопку "Далее", появляется диалоговое окно для указания начального значения переменной. Это значение должно соответствовать типу переменной. Диалоговое окно представлено на рисунке 6.

Задание начального значения

Рисунок 6 - Задание начального значения

Чтобы завершить создание переменной простого типа следует нажать кнопку "Готово". Если значение не соответствует типу переменной, то будет выведено сообщение, представленное на рисунке 7.

Ошибка несоответствия типа начального значения

Рисунок 7 - Ошибка несоответствия типа начального значения

Чтобы добавить переменную-массива в диалоговое окно "Имя переменной" следует выбрать один из типов массива, как представлено на рисунке 8.

Создание переменной-массива

Рисунок 8 - Создание переменной-массива

Затем будет предложено указать размер массива в диалоговом окне, представленном на рисунке 9.

Задание размера массива

Рисунок 9 - Задание размера массива

Далее следует указать начальные значения элементов массива в диалоговом окне, представленном на рисунке 10. Начальные значения должны соответствовать типу элементов массива.

Задание начального значения для элементов массива

Рисунок 10 - Задание начального значения для элементов массива

На завершающем этапе создания переменной-массива должно происходить редактирование элементов в диалоговом окне "Редактирование массива", как показано на рисунке 11.

Редактирование начальных значений элементов массива

Рисунок 11 - Редактирование начальных значений элементов массива

Чтобы завершить создание переменной следует нажать кнопку "Готово". При этом будет произведена проверка соответствия введенных значений типу массива.

На все переменные действуют следующие ограничения:

Внимание!
Входные и выходные переменные в ответе должны быть созданы в том же порядке, в котором они перечислены во входных и выходных данных в задании.

Ввод кода программы

Код программы можно вводить с клавиатуры или использовать древовидный список операторов (за исключением свободного стиля кодирования). В процессе ввода ключевые слова будут подсвечены.

Для использования древовидного списка операторов требуется переместить каретку в области ввода кода в ту позицию, куда требуется добавить оператор и щелкнуть два раза на элементе в древовидном списке. Примерный результат этих действий представлен на рисунке 12.

Работа со списком операторов

Рисунок 12 - Работа со списком операторов

Как видно из рисунка, в область ввода кода была добавлена конструкция repeat/until, что соответствует циклу с постусловием на языке Pascal. Инвариант цикла представлен в угловых скобках и подсвечен серым цветом. При вводе кода в область, отмеченную серым цветом, текст <условие> будет удален.

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

Для начала отладки требуется нажать кнопку (Отладка программы в пошаговом режиме). После этого действия аплет перейдет в режим пошаговой отладки. Режим отладки продемонстрирован на рисунке 13.

Режим отладки

Рисунок 13 - Режим отладки

В этом режиме область ввода кода, список операторов, список стилей кодирования и кнопка "Редактировать" в области переменных заблокированы. Желтым цветом подсвечена строка, которая будет выполнена на следующем шаге. Перейти к следующему шагу можно с помощью кнопки (Выполнение программы до следующей строки). Для продолжения выполнения программы следует нажать кнопку (Продолжить выполнение). Остановить отладку и вернуться к режиму редактирования можно с помощью кнопки (Остановить отладку).

При каждом шаге в режиме отладки переменных в списках "Входные переменные", "Выходные переменные" и "Внутренние переменные" данные будут обновляться.

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

Выполнение программ

Для перехода в режим выполнения требуется нажать кнопку (Выполнить программу). Элементы редактирования кода и переменных будут заблокированы, как и в режиме отладки. Внешний вид аплета в режиме выполнения представлен на рисунке 14.

Режим выполнения программы

Рисунок 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);