Решение №11 из главы 15.Напишите функцию, которая принимает на вход целое число N и возвращается строку, содержащую арифметическ
Primary tabs
Напишите функцию, которая принимает на вход целое число N и возвращается строку, содержащую арифметическое выражение вида:
a1 # a2 # ..... # aNГде:
a1, a2,....., aN -- случайные числа из диапазона от 1 до 100
# - один из случайных знаков (*, +, -)
program def_input_number_out_string_expression;
function str_expression( number : integer ): string;
var i : integer;
s, sign, str_value : string;
begin // начало тела функции
randomize;
s := '';
sign := '*+-';
for i := 1 to ( number + number - 1 ) do
if( i mod 2 = 0 ) then
s += sign[random( 3 ) + 1 ] // добавление знака к строке
else
begin
str( random( 100 ) + 1, str_value );
s += str_value; // добавление числа к строке
end;
str_expression := s;
end; // завершение тела функции
begin // основная программа
var s: string;
s := str_expression( 20 ); // вызов процедуры
writeln( s );
readln();
end. // завершение основной программы
- Log in to post comments
- 3845 reads
vedro-compota
Wed, 08/12/2020 - 19:28
Permalink
можно вполне сделать без if и
можно вполне сделать без if и с числом операций N (а не N + N - 1)
_____________
матфак вгу и остальная классика =)
sergio
Thu, 08/13/2020 - 19:34
Permalink
исправил
program def_input_number_out_string_expression; function str_expression( number : integer ): string; var i : integer; s, sign, str_value : string; begin // начало тела функции randomize; s := ''; sign := '*+-'; for i := 1 to ( number ) do begin str( random( 100 ) + 1, str_value ); s += str_value; // добавление числа к строке if( i <> number ) then s += sign[random( 3 ) + 1 ] // добавление знака к строке end; str_expression := s; // возврат функции end; // завершение тела функции var s: string; begin // основная программа s := str_expression( 20 ); // вызов процедуры writeln( s ); readln(); end.