Вычислить результат каждого сложения и подставить его в строку вместо знака вопроса - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Требования к выполнению задания: нельзя использовать циклы; нельзя использовать оператор IF; из всего множества подпрограмм языка Паскаль надо использовать только функции и процедуры для работы со строками. при выполнении работы использовать средства отладки Free Pascal. Задание: Заданная строка состоит из последовательности следующихконструкций: a1 + b1 = ?; a2 + b2 = ?;..., где ai и bi – целые числа. Вычислить результат каждого сложения и подставить его в строку вместо знака вопроса.

Решение задачи: «Вычислить результат каждого сложения и подставить его в строку вместо знака вопроса»

textual
Листинг программы
program Jesuit;
 
label
  Ethernal, Finish;
var
  s: string;
  Result, TempStr: string;
  i: integer;
  a, b: integer;
  ValResult: integer;
begin
  s := '1 + 2 = ?; 11 + 22 = ?; 111 + 222 = ?; -111 + 222 = ?';
  writeln(s);
  Result := '';
Ethernal:
  case length(s) of
    0: goto Finish;
  end;
  Result := Result + copy(s, 1, pos('?', s) - 1);
  i := pos(' ', s);
  val(copy(s, 1, i - 1), a, ValResult);
  Delete(s, 1, i + 2);
  i := pos(' ', s);
  val(copy(s, 1, i - 1), b, ValResult);
  Delete(s, 1, i + 2 + 1); {удаление ' = ?'}
  a := a + b;
  Str(a, TempStr);
  Result := Result + TempStr;
  {если существует, то копирование и удаление разделителя выражений '; '}
  Result := Result + copy(s, 1, 2);
  Delete(s, 1, 2);
  goto Ethernal;
Finish:
  writeln(Result);
end.

Объяснение кода листинга программы

Список действий в коде:

  1. Создание переменной s типа строка со значением 1 + 2 = ?; 11 + 22 = ?; 111 + 222 = ?; -111 + 222 = ?.
  2. Вывод значения переменной s в консоль.
  3. Инициализация переменной Result как пустой строки.
  4. Проверка длины строки s. Если длина равна 0, то переход к метке Finish.
  5. Копирование части строки s с первого символа до символа '?' в переменную Result.
  6. Определение позиции пробела в строке s.
  7. Преобразование и сохранение в переменную a значения первых символов до пробела в переменной s.
  8. Удаление символов с первого места до места, следующего за пробелом в строке s.
  9. Определение позиции пробела в строке s.
  10. Преобразование и сохранение в переменную b значения символов с первого места до пробела в переменной s.
  11. Удаление символов с первого места до места, следующего за пробелом и знаком = ? в строке s.
  12. Вычисление суммы значений переменных a и b и сохранение результата в переменной a.
  13. Преобразование значения переменной a в строку и сохранение в переменной TempStr.
  14. Добавление значения переменной TempStr к переменной Result.
  15. Если длина строки s больше 2, то копирование и удаление символов ; из строки s.
  16. Вывод значения переменной Result в консоль.
  17. Вход в цикл Ethernal, начиная с шага 4.
  18. Если длина строки s равна 0, то переход к метке Finish.
  19. Копирование части строки s с первого символа до символа '?' в переменную Result.
  20. Определение позиции пробела в строке s.
  21. Преобразование и сохранение в переменную a значения первых символов до пробела в переменной s.
  22. Удаление символов с первого места до места, следующего за пробелом в строке s.
  23. Определение позиции пробела в строке s.
  24. Преобразование и сохранение в переменную b значения символов с первого места до пробела в переменной s.
  25. Удаление символов с первого места до места, следующего за пробесом и знаком = ? в строке s.
  26. Вычисление суммы значений переменных a и b и сохранение результата в переменной a.
  27. Преобразование значения переменной a в строку и сохранение в переменной TempStr.
  28. Добавление значения переменной TempStr к переменной Result.
  29. Если длина строки s больше 2, то копирование и удаление символов ; из строки s.
  30. Вывод значения переменной Result в консоль.
  31. Вход в цикл Ethernal, начиная с шага 4.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5
Похожие ответы