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

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

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

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

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

textual
Листинг программы
  1. program Jesuit;
  2.  
  3. label
  4.   Ethernal, Finish;
  5. var
  6.   s: string;
  7.   Result, TempStr: string;
  8.   i: integer;
  9.   a, b: integer;
  10.   ValResult: integer;
  11. begin
  12.   s := '1 + 2 = ?; 11 + 22 = ?; 111 + 222 = ?; -111 + 222 = ?';
  13.   writeln(s);
  14.   Result := '';
  15. Ethernal:
  16.   case length(s) of
  17.     0: goto Finish;
  18.   end;
  19.   Result := Result + copy(s, 1, pos('?', s) - 1);
  20.   i := pos(' ', s);
  21.   val(copy(s, 1, i - 1), a, ValResult);
  22.   Delete(s, 1, i + 2);
  23.   i := pos(' ', s);
  24.   val(copy(s, 1, i - 1), b, ValResult);
  25.   Delete(s, 1, i + 2 + 1); {удаление ' = ?'}
  26.   a := a + b;
  27.   Str(a, TempStr);
  28.   Result := Result + TempStr;
  29.   {если существует, то копирование и удаление разделителя выражений '; '}
  30.   Result := Result + copy(s, 1, 2);
  31.   Delete(s, 1, 2);
  32.   goto Ethernal;
  33. Finish:
  34.   writeln(Result);
  35. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы