Program begin_20; var r1,r2,r3,r0:real; begin writeln('введите сопротивление R1'); readln(r1); writeln('введите сопротивление R2'); readln(r2); writeln('введите сопротивление R3'); readln(r3); r0:=1/(1/r1+1/r2+1/r3); writeln('общее сопротивление R0',r0:4:4); Readln; End.
Язык программирования имеет какой-то официальный стандарт. От которого можно в той или иной степени отклоняться. А иногда и нужно, чтобы язык не умер, перестав удовлетворять современным технологиям программирования.
Посмотрим на примере такого распространенного языка, как Паскаль.
Никлаус Вирт описал Паскаль в 1970 году. Будучи соавтором разработки языка Algol-68, он взял за основу алголоподобный синтаксис, в то время считавшийся наиболее удачным.
Первая реализация паскаля была сделана под конкретную машину и носила отпечаток требований её операционной системы. Сюда, например, относится требование, чтобы программа начиналась с оператора Program, содержащего указания на файлы ввода и вывода. С распространением паскаля на другие машины нужда в этих указаниях отпала, но некоторые школьные учителя, даже не зная о причинах, до сих пор уверяют учеников, что программа должна начинаться именно с program!
Шло время, программирование не стояло на месте. Возникали новые языки, создавались новые технологии, компьютеры проникали во все новые области. Появились персональные компьютеры. С этого момента Паскаль получил вторую жизнь. Понятный, быстро изучаемый и компилируемый в компактный код, это был отличный язык для "персоналок" с объемом памяти в 640 Кбайт. Но это был уже не тот, прежний Паскаль. Для работы с персоналками понадобилось его существенно дополнить. так возникла интегрированная система (среда) программирования Turbo Pascal. Именно система, потому что она включала компилятор с диалекта (т.е. с некоторой конкретной реализации) языка Паскаль, текстовый редактор, систему отладки, систему справок и поддержку выполнения программы.
Впоследствии возникли другие диалекты Паскаля, такие как входной язык системы Borland Delphi, язык Free Pascal, язык системы Pascal ABC и наконец, среда программирования PascalABC.NET, которая очень далеко ушла от Паскаля Никлауса Вирта, вобрав в себя лучшие черты и средства языков C#, Python и Haskell.
// PascalABC.NET 3.3, сборка 1625 от 17.01.2018 // Внимание! Если программа не работает, обновите версию!
begin var x:=ReadReal('x='); var n:=ReadInteger('n='); // для сборок, начиная с 30.12.2017 Writeln('(Sin(',x,'))^',n,' = ',Sin(x)**n); // для более ранних версий PascalABC.NET 3.3 Writeln('(Sin(',x,'))^',n,' = ',Power(Sin(x),n));
Для всех прочих паскалей
var x,t:real; n,z:integer;
begin Write('x= '); Readln(x); Write('n= '); Readln(n); t:=Sin(x); if t=0 then Writeln('(Sin(',x,'))^',n,' = 0') else begin if n mod 2=0 then z:=1 else z:=Sign(t); t:=Abs(t); Writeln('(Sin(',x,'))^',n,' = ',z*Exp(n*Ln(t))) end; Readln end.
var r1,r2,r3,r0:real;
begin writeln('введите сопротивление R1');
readln(r1);
writeln('введите сопротивление R2');
readln(r2);
writeln('введите сопротивление R3');
readln(r3);
r0:=1/(1/r1+1/r2+1/r3);
writeln('общее сопротивление R0',r0:4:4);
Readln;
End.