Под третьим поколением (3GL) первоначально понимались все языки более
высокого уровня, чем ассемблер. Главной отличительной чертой языков
третьего поколения стала независимость от аппаратного обеспечения,
то есть выражение алгоритма в форме, не зависящей от конкретных
характеристик машины, на которой он будет исполняться. Код, написанный
на языке третьего поколения, перед исполнением транслируется либо
непосредственно в машинные команды, либо в код на ассемблере и затем уже
ассемблируется. При компиляции, в отличие от предыдущих поколений, уже
нет соответствия один-к-одному между инструкциями программы и
генерируемым кодом.
Стала широко использоваться интерпретация
программ — при этом инструкции программы не преобразуются в машинный
код, а исполняются непосредственно одна за другой. Независимость от
«железа» достигается за счёт использования интерпретатора,
скомпилированного под конкретную аппаратную платформу. Одним из ранних
интерпретируемых языков стал Лисп.
Var a,b,c: real;
begin
readln (a);
readln (b);
readln (c);
if (a mod 5)=0 then
writeln (a);
if (b mod 5)=0 then
writeln (b);
if (c mod 5)=0 then
writeln (c);
end.
Ответ в файле:vvvvvvvvvvv
# Код на ruby 2.2.3p173
def zadanie(line, time)
line = line.gsub(/[^MD]/, "")
time.times { |i|
k = 0
while k < line.size - 1 do
if line[k..k + 1] == "MD"
line[k], line[k + 1] = line[k + 1], line[k]
k+=1
end
k+=1
end
p [i,line]
}
return line
end
# # Примеры применения
p zadanie("MMDMDDDDDMMDDDMDDDMD", 10)
Вывод
[1, "MDMDMDDDDMDMDDDMDDDM"]
[2, "DMDMDMDDDDMDMDDDMDDM"]
[3, "DDMDMDMDDDDMDMDDDMDM"]
[4, "DDDMDMDMDDDDMDMDDDMM"]
[5, "DDDDMDMDMDDDDMDMDDMM"]
[6, "DDDDDMDMDMDDDDMDMDMM"]
[7, "DDDDDDMDMDMDDDDMDMMM"]
[8, "DDDDDDDMDMDMDDDDMMMM"]
[9, "DDDDDDDDMDMDMDDDMMMM"]
[10, "DDDDDDDDDMDMDMDDMMMM"]
"DDDDDDDDDMDMDMDDMMMM"
Pascal:
a: array [1..10000] of integer;
i, n, m: integer;
begin
readln(n);
for i := 1 to n do
read(a[i]);
m := 1;
for i := 2 to n do
if (a[i] > a[m])
then m := i;
writeln(a[m],' ',m);
end.