Const k = 50; var s, si, sf: string; powm, n10i: longint; i, j, m, ls, err, ni, nf: integer; a: double; begin write('введите основание системы счисления (2..9): '); readln(m); if not (m in [2..9]) then writeln('ну-') else begin write('введите положительное число в этой системе счисления: '); readln(s); ls : = length(trim(s)); i : = pos('.', s); if i > 0 then begin ni : = i - 1; si : = copy(s, 1, ni); nf : = ls - i; sf : = copy(s, i + 1, nf) end else begin si : = s; ni : = ls; sf : = ''; nf : = 0 end; powm : = 1; n10i : = 0; for i : = ni downto 1 do begin val(si[i], j, err); n10i : = n10i + j * powm; powm : = powm * m end; powm : = m; a : = 0; for i : = 1 to nf do begin val(sf[i], j, err); a : = a + j / powm; powm : = powm * m end; a : = a + n10i; writeln(s, '(', m, ')=', a, '(10)') end; end. тестовое решение: введите основание системы счисления (2..9): 8 введите положительное число в этой системе счисления: 23532.5034 23532.5034(8)=10074.6318359375(10)
mihalevskayat
21.12.2020
Считаем, что слова разделяются ровно одним пробелом. тогда слов будет на единицу больше, чем пробелов. var i, n, p, k: integer; s: string; begin write('введите предложение и закончите его точкой: '); readln(s); s : = trim(s); p : = pos('.', s) - 1; k : = 0; for i : = 1 to p do if s[i] = ' ' then k : = k + 1; writeln('введено слов- ', k + 1) end. тестовое решение: введите предложение и закончите его точкой: карл у клары украл кораллы. введено слов- 5