Каждый компьютер имеет свой машинный язык, то есть свою совокупность машинных команд, которая отличается количеством адресов в команде, назначением информации, задаваемой в адресах, набором операций, которые может выполнить машина и др.
При программировании на машинном языке программист может держать под своим контролем каждую команду и каждую ячейку памяти, использовать все возможности имеющихся машинных операций. При этом можно составить такую компактную, маленькую программу, код которой может быть исполнен в любом самом примитивном микроконтроллере, чипе. В этом ценность программирования в кодах машины.
Но процесс написания программы на машинном языке очень трудоемкий и утомительный. Программа получается громоздкой, труднообозримой, ее трудно отлаживать, изменять и развивать.
Поэтому в случае, когда нужно иметь эффективную программу, в максимальной степени учитывающую специфику конкретного компьютера, вместо машинных языков используют близкие к ним машинно-ориентированные языки (ассемблеры).
Объяснение:
Достоинства и Недостатки сам найдешь.
Program ddd;
var tg, f:real;
x:integer;
begin
readln (x);
tg := sin(x)/cos(x);
if x<=-3.14 then f:=ln(cos(5*x)-2*x)+1;
if x>-3.14 then f:=0.35*tg*(0.1*x)-exp(ln(2*2.7)*(-0.1*x));
writeln (f);
end.
Обратите внимание, что вещественные числа указываются посредством точки, а не запятой (не "0,1", а "0.1"). Функция cos должна принимать какой-либо аргумент, ибо сама по себе она не представляет никакого значения (f:=ln(cos*(5*x)-2*x)+1; -- здесь вы cos * на выражение, что неверно). Приравнивать переменные одих типов к значению других -- ошибка (f:integer; - значение типа интеджер. ln(cos(5*x)-2*x)+1; - функция ln возвращает значение типа real. Следовательно, f не может присвоить возвращаемое значение функции ln).