PASCAL ---
У Тимура все члены семьи любят спортивный бег. Отец, мать и Тимур каждое утро делают пробежки. В первый день все дружно пробежали X километров. В последующие дни они увеличивают длину пробега на 7% каждый день. Через сколько дней утренний пробег семьи превысит y км?
var
s: string;
ms: array of string;
begin
Write('Введите три слова через пробел: ');
Readln(s);
ms := s.Split(' ');
Writeln(ms[0] + ' ' + ms[2] + ' ' + ms[1])
end.
Вторая программа реализуется в любой версии Pascal. Её недостаток в том, что она правильно работает только тогда, когда введена фраза из трех слов, разделенных пробелом. Это простейший линейный алгоритм.
var
s, s1, s2, s3: string;
n, p: integer;
begin
Write('Введите три слова через пробел: ');
Readln(s);
n := Length(s);
p := Pos(' ', s);
s1 := Copy(s, 1, p - 1);
s3 := Copy(s, p + 1, n - p);
p := Pos(' ', s3);
s2 := Copy(s3, 1, p - 1);
n := Length(s3);
s3 := Copy(s3, p + 1, n - p);
Writeln(s1 + ' ' + s3 + ' ' + s2)
end.
Третья программа также реализуема в любой версии Pascal и содержит "классический" работы со строкой, состоящий в последовательном анализе каждого символа. Имеет защиту на случай, если слов будет больше или меньше трех.
var
s: string;
ms: array[1..3] of string;
i, n, p, j: integer;
begin
Write('Введите три слова через пробел: ');
Readln(s);
{
Алгоритм: Просматриваем все символы строки начиная с позиции p
и при обнаружении пробела в позиции q заносим в массив очередное слово,
копируя q-p символов, начиная с p. Затем заносим в p значение q+1
и продолжаем просмотр. При старте принимаем p=1
}
p := 1; j := 0; n := Length(s);
for i := 1 to n do
if s[i] = ' ' then
begin
j := j + 1;
if j <= 3 then begin{ если введено больше двух пробелов }
ms[j] := Copy(s, p, i - p);
p := i + 1
end
end;
if j < 3 then ms[3] := Copy(s, p, n - p + 1);
Writeln(ms[1] + ' ' + ms[3] + ' ' + ms[2])
end.
Все три программы опробованы и результаты их работы одинаковы:
Введите три слова через пробел: Зебра полосатая лошадь
Зебра лошадь полосатая
1. + n 3 8 9 8
2 n 7 5 m
m 8 5 n 3
ясно, что основание искомой с/с > 10. Проверим и удостоверимся, что в 11c|c действия выполняются верно.
11 c|c M=6 n = 4
ответ: основание системы 11, m=6, n=4
2. m m 65 n
+2 n 4 4 m
5 5 4 2 4 очевидно, что основание искомой с/с > 6.
Проверим по действиям в 7 с/с, при сложении в столбик,
при m=3 и n=1
и удостоверимся, что всё верно.
ответ: осн. с\с = 7, m=3, n=1
3. пусть основание с\с будет X? тогда:
(4*X^2+X+5)*4 =2*X^3+2*X^2+6*X+6
раскрываем скобки, преобразуем и получаем уравнение:
(2*X - 14)*(X^2+1) = 0 ---> X=7
ответ:7