2. Предложенные ниже алгоритмы записаны разными способами. Определите, что делает каждый из предложенных алгоритмов, и реализуйте их на языке Pascal.
1. Алгоритмический язык.
Этот алгоритм склеивает первую букву и часть от 7 буквы до конца слова.
ввод а
n := Длина(а)
m := 1
b := Извлечь(а, m)
нц для i от 7 до n
с := Извлечь(а, i)
b := Склеить(b, с)
кц
вывод b
Реализация на Pascal:
var n, m: integer; st, b, c: string;
begin
write('Введите строку: ');
readln(st);
n := Length(st);
m := 1;
b := copy(st, m, 1);
for var i := 7 to n do
begin
c := copy(st, i, 1);
b := concat(b, c);
end;
writeln(b);
end.
2. Python.
Этот алгоритм высчитывает «гармонический ряд», т.е. с клавиатуры вводится, например, число 5 и высчитывается сумма дробей, знаменатель каждой следующей дроби увеличивается на единицу, пока не станет равным нашей введённой пятёрки: 1/1 + 1/2 + 1/3 + 1/4 + 1/5.
a = int(input())
k = 0
s = 1
while k < a:
k = k + 1
s = s + 1.0/k
print(s)
Реализация на Pascal:
var a, k: integer; s: real;
begin
write('Введите число: ');
readln(a);
k := 0;
s := 1;
while k < a do
begin
k := k + 1;
s := s + 1.0/k;
end;
writeln(s);
end.
3. Basic.
Алгоритм определяет, сколько раз введённое число делится с остатком на 3 и записывает это количество в переменную L
. А в переменную M
записывается количество целочисленных делений на 3 для введённого числа.
INPUT X
L = 0
M = 0
WHILE X > 0
M = M + 1
IF X MOD 3 <> 0 THEN
L = L + 1
END IF
X = X \ 3
WEND
PRINT L
PRINT M
Реализация на Pascal:
var m, l, x: integer;
begin
write('Введите число: ');
readln(x);
l := 0;
m := 0;
while x > 0 do
begin
m := m + 1;
if x mod 3 <> 0 then
l := l + 1;
x := x div 3;
end;
writeln(l);
write(m);
end.
4. С++.
int F(int x)
{
return x*x + 16*x + 15;
}
int main()
{
int a, b;
cin >> a >> b;
int M = 0;
for (int t = a; t <= b; t++)
if (F(t) > 0)
M = M + 1;
cout << M;
return 0;
}
Реализация на Pascal:
var a, b, m, t: integer;
begin
write('Введите числа: ');
readln(a);
readln(b);
m := 0;
t := a;
while t <= b do
begin
if t*t + 16*t + 15 > 0 then
m := m +1;
t:= t + 1;
end;
write(m);
end.