Добавление и удаление чисел в списке - PascalABC.NET
Формулировка задачи:
Напишите программу, которая управляет списком чисел по командам, записанным в файл input.txt . Сначала список пустой. Существует две команды: '+' – добавление числа в список, и '-' – удаление числа из списка. Попытка удалить число, которого нет в списке, считается ошибкой.
Входные данные
В файле input.txt записаны строки с командами, последняя строка файла – пустая. Первый символ любой рабочей строки – это команда ('+' или '-'), далее без пробела записывается число, которое добавляется или удаляется.
Выходные данные
В файл output.txt нужно вывести все числа, которые остались в списке, разделив их пробелами. Если в списке не осталось ни одного числа, нужно вывести слово 'EMPTY'. В случае ошибки нужно вывести слово 'ERROR'.
Примеры
входные данные
+34
+12
-34
+5
+13
-5
выходные данные
12 13
Решение задачи: «Добавление и удаление чисел в списке»
textual
Листинг программы
begin var L := New List<integer>; foreach var v in ReadAllLines('input.txt') do case sign(strtoint(v)) of -1 : if L.IndexOf(-strtoint(v)) < 0 then begin WriteAllText('output.txt', 'ERROR'); Halt; end else L.Remove(-strtoint(v)); +1 : L.Add(strtoint(v)); end; WriteAllText('output.txt', L.Count = 0 ? 'EMPTY' : L.JoinIntoString); end.
Объяснение кода листинга программы
В этом коде используется язык программирования PascalABC.Net. Вот список действий, которые выполняются в этом коде:
- Создается новый список целых чисел с помощью команды
var L := New List<integer>
. - Запускается цикл
foreach
, который проходит по каждой строке в файле 'input.txt'. - Для каждой строки выполняется операция
strtoint(v)
, чтобы преобразовать строку в целое число. - Затем проверяется знак числа с помощью функции
sign(strtoint(v))
. - Если число отрицательное, то проверяется, есть ли оно уже в списке с помощью метода
IndexOf(-strtoint(v))
. - Если число не найдено в списке, то записывается сообщение об ошибке в файл 'output.txt' и выполнение программы останавливается с помощью команды
Halt;
. - Если число положительное, то оно добавляется в список с помощью метода
Add(strtoint(v))
. - После прохождения цикла, в файл 'output.txt' записывается количество элементов в списке, а затем сам список с помощью метода
JoinIntoString
. - Если список пуст, то записывается сообщение
EMPTY
, иначе записывается список.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д