Урок 15. Задача 14.
Primary tabs
Напишите функцию, которая принимает на вход целое число N и возвращается строку, содержащую арифметическое выражение вида:
a1 # a2 # ..... # aNГде:
a1, a2,....., aN -- случайные числа из диапазона от 1 до 100
# - один из случайных знаков (*, +, -)
var N :integer;
function change_str(n_1 :integer) :string;
var i, j, num_a :integer;
s, st :string; // s - строка, st - отображение числа
Arr_ch :array[1..3] of char = ('*', '+', '-');
begin
randomize;
for i := 1 to n_1 do // длина строки
begin
j := 1 + random(3); // случайный знак
num_a := 1 + random(100); // случайное число
str(num_a, st); // перевод числового значения в строковый
if(i < n_1) then
s := st + ' ' + Arr_ch[j] + ' ' + s
else
s := s + st;
end;
result:= s;
end;
begin
writeln('Enter an integer : ');
readln(N);
write(change_str(N));
readln();
end.
- Log in to post comments
- 2017 reads
vedro-compota
Sat, 07/02/2022 - 19:53
Permalink
1)
1)
лучше добавлять в конец строки
2)
Оптимальнее сделать цикл до предпоследнего символа, а уже после цикла разобраться с последним
_____________
матфак вгу и остальная классика =)
Dennis80
Wed, 07/13/2022 - 18:58
Permalink
var N :integer;
var N :integer; function change_str(n_1 :integer) :string; var i, j, num_a :integer; s, st :string; // s - строка, st - отображение числа Arr_ch :array[1..3] of char = ('*', '+', '-'); begin randomize; for i := 1 to n_1 do // длина строки begin j := 1 + random(3); // случайный знак num_a := 1 + random(100); // случайное число str(num_a, st); // перевод числового значения в строковый s := st + ' ' + Arr_ch[j] + ' ' + s end; result:= s + st; end; begin writeln('Enter an integer : '); readln(N); write(change_str(N)); readln(); end.vedro-compota
Wed, 07/13/2022 - 20:23
Permalink
решение видимо рабочее, но
решение видимо рабочее, но для тренировки перепишем альтернативно по комментариям выше
_____________
матфак вгу и остальная классика =)
Dennis80
Tue, 07/19/2022 - 18:29
Permalink
var N :integer;
var N :integer; function change_str(n_1 :integer) :string; var i, j, num_a :integer; s_integer, st :string; // st - строка, s_integer - отображение числа Arr_ch :array[1..3] of char = ('*', '+', '-'); begin randomize; for i := 1 to n_1 - 1 do // длина строки до предпоследнего элемента begin j := 1 + random(3); // случайный знак num_a := 1 + random(100); // случайное число str(num_a, s_integer); // перевод числового значения в строковый st := st + s_integer + ' ' + Arr_ch[j] + ' ' end; num_a := 1 + random(50); // случайное число str(num_a, s_integer); // change_str := st + s_integer ; end; begin writeln('Enter an integer : '); readln(N); write(change_str(N)); readln(); end.vedro-compota
Wed, 07/20/2022 - 19:59
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)