В данной статье мы рассмотрим, как создать программу на языке программирования Pascal, которая считывает строку чисел, разделенных пробелами, и загружает их в массив. Это может быть полезно в различных ситуациях, например, при вводе данных пользователем в программе или при обработке текстового файла с числами.
Проблематика
Пользователь столкнулся с задачей создания программы, которая должна считывать строку чисел, разделенных пробелами, и сохранять их в массив. Пример входных данных: в первой строке вводится количество чисел, а во второй — сами числа, разделенные пробелами, например, "1 2 3 4 5 6". Попытка использовать функцию Val не увенчалась успехом, так как в строке присутствуют пробелы, и числа могут быть многозначными, вплоть до 10^9.
Решение
Для решения данной задачи мы можем использовать следующий алгоритм:
Удаляем начальные пробелы в строке.
Находим первую позицию пробела в оставшейся части строки.
Копируем часть строки без пробелов в отдельную строку t и удаляем эту часть из исходной строки s.
Преобразуем строку t в число и сохраняем его в массив.
Важно добавить проверки на пустоту строки s после выполнения операций, а также обработать возможные ошибки при преобразовании строки в число.
Пример кода на Object Pascal (Delphi)
program ReadNumbersFromString;
var
S: string;
T: string;
P, I: integer;
Element: array of int64;
Count: integer;
begin
// Ввод количества чисел
Count := StrToIntDef(ReadLn, 0);
// Ввод строки чисел
S := ReadLn;
SetLength(Element, Count);
I := 0;
while (Length(S) > 0) and (Pos(' ', S) > 0) do
begin
P := Pos(' ', S);
T := Copy(S, 1, P - 1);
Delete(S, 1, P);
// Удаляем начальные пробелы
while (Length(T) > 0) and (T[1] = ' ') do
Delete(T, 1, 1);
// Преобразование строки в число
Element[I] := StrToInt64Def(T, 0);
Inc(I);
end;
// Дополнительная обработка оставшейся части строки, если она не пуста
if Length(S) > 0 then
begin
// Преобразование оставшейся части строки в последнее число массива
Element[I] := StrToInt64Def(S, 0);
Inc(I);
end;
// Проверка и вывод элементов массива
for I := 0 to High(Element) do
Writeln(Element[I]);
end.
Этот код демонстрирует базовый принцип чтения чисел из строки, разделенной пробелами, и их сохранения в массив. Обратите внимание на обработку возможных ошибок и пустых строк, что делает программу более надежной.
Следуя diesem принципу, вы сможете создать эффективную программу на Pascal для решения поставленной задачи.
Программа на Pascal для чтения строки чисел и загрузки их в массив.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS