Var St: string; z:string[10]; x:string[2]; i,j,k,m: integer; //новые переменные Begin Write('введите строку текста - St'); Readln(St); k:=0; //обнуляем на всякий случай z:='0123456789'; i:=1; for j:=1 to length(St) do //начало begin; for m:=1 to 10 do if St[j]=z[m] then inc(k); end; if k=0 then begin; writeln('в тексте нет цифр'); exit; end; //конец while i<=length(st)-1 do begin x:=copy(st,I,2); if (x[1]=x[2]) and (pos(x[1],z)<>0) then begin delete(st,i,2); insert('две',st,i); i:=i+1; end; i:=i+1; end; writeln('преобразованная строка ', st); End.
function gcd(a: integer; b: integer): integer; {Нахождение НОД} var i: integer; begin while b <> 0 do begin a := a mod b; i := b; b := a; a := i end; result := a end;
function RedFrac(a: Frac): Frac; {Сокращение дроби} var igcd: integer; r: Frac; begin igcd := gcd(a.P, a.Q); r.P := a.P div igcd; r.Q := a.Q div igcd; RedFrac := r end;
function Add(a, b: Frac): Frac; {Сложение дробей} var r: Frac; begin r.P := a.P * b.Q + b.P * a.Q; r.Q := a.Q * b.Q; Add := RedFrac(r) end;
function Mult(a, b: Frac): Frac; {Умножение дробей} var r: Frac; begin r.P := a.P * b.P; r.Q := a.Q * b.Q; Mult := RedFrac(r) end;
var m, n, k: Frac;
begin m.P := 4; m.Q := 15; {4/15} n.P := 9; n.Q := 25; {9/25} k := Add(m, n); Writeln(k.P, '/', k.Q); k := Mult(m, n); Writeln(k.P, '/', k.Q); end.
Результат выполнения программы: 47/75 12/125
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку