By Dr.Who 2005-2007(c)
E-mail: dr_who@mail.by |
![]() |
|||||
---|---|---|---|---|---|---|
|
Новость пока одна - сайт в конце концов открылся :).
Паскаль - начало Поскольку я не супер-программист,поэтому могут быть (не только здесь) недочёты и ошибки. Но!! Как сказал один хороший человек с CrackL@B.ru :"Кому, как не чайнику, лучше знать о проблемах чайника!".И я с ним полностью согласен! Когда я только начинал заниматься гейм крекингом облазил кучу разных туторов и статей... В терминологию, в логику и т.п. приходилось вникать, а так хотелось на простом "русском-матерном". Поэтому, в своих статейках буду стараться излагать всё попроще и с помарками :). Не волнуйтесь, еггог"ов постараюсь не делать... Итак, начнём-с. Паскаль - один из высших языков(*) программирования, таких как: C,C++,C# и т.п.. Большинство учили его в школе. Из компиляторов(**) паскаля я знаю только два - Turbo Pascal и Delphi. Первый может делать только консольные (***) приложения, зато второй полноценные проги, которыми мы сейчас с вами пользуемся... Но язык программирования у них один - ПАСКАЛЬ. В этой статье я опишу лишь основные его свойства и правила. (*) До сих пор не различаю высшие и низшие, из низших знаю Ассемблер - крекеры пользуются им больше... (**) Компилятор - это такая програмулина, которая переводит текст программы в байт-коды т.е. создаёт программу по вашему коду. (***) Запустите командную стоку и будет вам консольное приложение... Разберём код приведенный ниже (для Турбо Паскаля) Program calc; Program - зарезервированное(очень уж заковыристое слово я называю проще - зарезанное:))слово паскаля после которого идёт название программы (B Delphi вместо слова "Program" может быть "Unit" или "Projekt", во всяком случае в паскале такого я не встречал). В названии можно использовать ТОЛЬКО ЛАТИНСКИЕ буквы, цыфарки от 0 до 9 НЕ через пробел, А через "_". Var - тоже зарезанное слово, означает что дальше будут идти переменные. Кстати! Чуть не забыл -паскалю абсолютно наплевать прописные или заглавные буквы вы пишите, за исключением строковых констант (об этом позже). С переносом тоже самое, в качестве разделителя команд компилятор использует пробел и после каждой команды обязательно должно стоять ";", иначе при запуске нашей проги выскочит что-то вроде:"Error 85: ";" expected". Оно вам надо? У переменных есть имя и тип. Имя пишется с теми же условиями, что и слово после "program" т.е. название типа "I love мой комп" - будет неверным, зато "I_love_my_cpu333" вполне прокатит. Тип переменной - для начала нам хватит четырёх: integer,extended,string,boolean. Integer,extended - числовые переменные. Разница между этими типами не только в диапазоне: у первого -32768...+32767 только целые - порядковый тип, а у второго -4951. . .+4932 с точкой - вещественный... String - строковый тип. В Турбо Паскале широко используется для обработки текстов. Количество символов в строке - переменной может меняться от 0 до N, где N - максимальное количество символов в строке. Значение N определяется объявлением типа STRING [N] и может быть любой константой порядкового (вроде Integer"а) типа, но не больше 255. Турбо Паскаль разрешает не указывать N, в этом случае длина строки принимается максимально возможной, а именно N=255. Boolean - логический тип. Тут всё просто как апельсин: либо да, либо нет; True и False - правда и лож, другого вы туда не запишите (True, False). Так, ещё одно зарезанное слово "Begin" которое означает что началась программа\процедура\функция. ReadLn(a); - считывает введённую строку в переменную "а" т.е. ввели число, нажали интер и в переменную попало наше число. c:=a+b; - собсна калькулятор. := осначает что в переменную "С" положат А+В. WriteLn(с); - покажет на экране "С". End. - это означает что программа\процедура\функция закончилась. В данном случае закончилась программа т.к. после енд"а стоит точка, а если бы стояла ";" то программа выполнялась бы дальше, до енд"а с точкой. Ну вот. С этой программкой справились. Я рассказал лишь ничтожную часть о Паскале, зато на этом сайте есть учебник и по Turbo Pascal'ю, и по Delphi. Чуть ниже представлена программа которая копирует файлы. Правда написана она на Delphi. program Project2; {$APPTYPE CONSOLE} uses SysUtils, classes; var input,output : string; Procedure FileCopy(Const SourceFileName, TargetFileName: String); Var S,T : TFileStream; Begin S := TFileStream.Create(sourcefilename, fmOpenRead ); try T := TFileStream.Create(targetfilename, fmOpenWrite or fmCreate); try T.CopyFrom(S, S.Size ) ; FileSetDate(T.Handle, FileGetDate(S.Handle)); finally T.Free; end; finally S.Free; end; end; begin writeln(''); Writeln(' By Dr.Who ---------- Copyringt 2005-2007'+#13#10+ ' File Copy 1.0 ---- 03.07.2007'+#13#10+ ' Written in --------- Borland Delphi 7'+#13#10+#13#10+ ' This programm copy your files if you need :)'+#13#10+ ' Please set INput File:'); write(' '); readln(input); writeln(#13#10+' OK! Now set OUTput file:'); write(' '); readln(output); writeln(#13#10+' Check your IN & OUTput...'+#13#10+#13#10+ ' INput file:'+input+#13#10+ ' OUTput file:'+output+#13#10+#13#10+ ' Good? If your data is correct, we will begin.'); readln; writeln(#13#10+' Please wait, Copyng...'); filecopy(input,output); writeln(#13#10+' The End'+#13+#13#10+' P.S. Sorry for my bad English :)...'); readln; end. Спасибо за внимание! Dr.Who - 07.08.2007г. |