задача 13 урок 15

задача 13 урок 15
Напишите функцию, которая принимает на вход целое число N и возвращается строку, содержащую арифметическое выражение вида:

a1 # a2 # ... # aN
Где:

a1, a2,....., aN -- случайные числа из диапазона от 1 до 100
# - один из случайных знаков (*, +, -)

Решение

program task_13_lesson_15;
type arr = array[1..3] of string;
function sub(n: integer) : string;
// буду использовать встроееную процедуру str();

// STR(X, S) - Процедура преобразует численное выражение X в его строковое представление и помещает результат в S.

var
  i,z: integer;
  numR: integer;
  b: string; // храним случайное число в строковом виде
  bL: arr; // храним строку '*+-'
  st: string; // строка с ответом
begin
  st := '';
  bL[1] := ' + ';
  bL[2] := ' - ';
  bL[3] := ' * ';
  randomize();
  for i := 1 to n do
    begin
      numR := 1 + random(100);
      z := 1 + random(3);
      str(numR,b);  // записываю число в строку
      if i < N then         // нужна проверка последней операции
        st := b + bL[z] + st   // чередую числа и знаки оперций
      else
        st := st + b;
    end;
  result := st;

end;

var n: integer;

begin
  readln(n);
  write(sub(n));
  readln
end.  

Консоль:

15
74 * 23 - 90 + 70 - 71 + 68 * 30 - 54 - 97 * 34 - 39 - 86 + 85 + 67 * 90
vedro-compota's picture

засчитано

_____________
матфак вгу и остальная классика =)