Сообщения за сегодня
Активность на форуме
1 час назад
6 часов назад
7 часов назад
7 часов назад
8 часов назад
SkyWolf добавляет сообщение в теме NEW YEAR
Онлайн 3
Нет пользователей
Были за 24 часа
Статистика
Тем 5 064
Сообщений 168 152
Пользователей 2 438

Языки программирования или "моя твоя совсем не понимать" ...

Просмотров 3547 Сообщений 26
22 февраля 2011, вторник
Д Михельсон Д Михельсон
[SIZE=3]Языки программирования[/SIZE]

[SIZE=3]О языках программирования написаны огромные фолианты, сотни тысяч статей, миллионы строк инструкций, в общем, море информации. Зачем еще одно сочинение?[/SIZE]

[off][SIZE=3]Сочинение вот зачем. Автор попытается осветить одну специфическую тему – управление операционной системой Windows на уровне программного кода.[/SIZE]
[SIZE=3]Поэтому мы посмотрим на языки программирования не с той точки зрения, что на них можно сделать вообще, а что можно сделать, чтобы управлять системой. Собственно, когда пользователь или сисадмин работают с компьютером, то они им управляют. Сисадмин на одном уровне. Пользователь на другом, как правило, более высоком. Автор попытается показать, что есть еще один уровень управления, лежащий ниже двух упомянутых. То есть мы как бы спустимся в шахту. Но главное не в этом. Главное в том, что я покажу, что этот уровень управления компьютером зачастую не такой уж и сложный, его вполне можно освоить и с успехом использовать в повседневной работе. [/SIZE]
[SIZE=3]Как и положено, начнем от печки, то есть с истории.[/SIZE]
[SIZE=3]Различного рода счетные устройства человек использовал еще с глубокой древности. Мы это пропускаем. Вычислительная техника механического типа, так сказать, в промышленных масштабах известна со второй половины 19 века. Это мы тоже пропускаем. В 30-40-х годах 20 века объем вычислений, необходимых человеку, сильно возрастает (расчеты в ядерной физике, баллистика, шифрование и проч.). Это был вызов. В ответ на этот вызов появились первые немеханические вычислительные машины на электронных лампах. Первой была ламповая ЭВМ ENIAC, США 1946 год. Если кому интересно, спросите о ней у Википедии. Но мы на ней останавливаться не будем. [/SIZE]
[SIZE=3]Аналогичный компьютер с названием Colossus был создан примерно в то же время в Англии.[/SIZE]
[SIZE=3]Устройствами ввода и вывода информации в первых ЭВМ были перфокарты. В последующие несколько лет совершенствование ЭВМ шло следующим путями – Вместо ламп стали использоваться сначала транзисторы, а потом и микросхемы - непроводящие подложки, на которые напылялся проводящий состав, эквивалентный электрической схеме с транзисторами. В качестве устройств ввода и вывода информации появились сперва магнитные ленты и барабаны, а потом и диски – для записи данных на длительное хранение и экраны телевизоров для демонстрации результатов вычислений оператору в реальном времени. Кроме того, был изобретен принцип хранения программы вычислений в памяти машины. То есть появились первые программы. Сразу же после изобретения этого принципа программы разделились на две категории. Первая категория – это собственно те программы, которые решали практические задачи – в области математики, физики и т.д. Их стали называть прикладными. Второй тип программ это вспомогательные программы, которые позволяли считать с устройств ввода информацию, сохранить ее на устройстве вывода, на экране и т.п. Множество программ второго типа постепенно оформились в Операционную систему. Первые программы (как прикладные так и системные) писались в так называемом машинном коде. Машинный код, это программа, в виде нулей и единиц, понятная процессору, но очень трудно воспринимаемая человеком. Потом код разделили. Человек стал использовать код с другим основанием, например восьмеричный, а машине оставили ее двоичный код. Числовой код с основанием больше единицы, легче воспринимается человеком. [/SIZE]
[SIZE=3]Заметив, что код из себя всегда представлял смесь команд и данных для процессора, придумали буквенную кодификацию для команд, которая человеком воспринималось куда легче, чем числовая.[/SIZE]
[SIZE=3]Набор правил при помощи которых код с буквами переводился в двоичный код стали называть языком ассемблера. А программы перевода из текста в двоичный код стали называть трансляторами с языка ассемблера.[/SIZE]
[SIZE=3]Пишут ли сейчас программы на этом языке? И если пишут, то всегда ли будут писать? Какова, так сказать ценность и перспективы этого языка?[/SIZE]
[SIZE=3]Ответ такой. Важнейшей особенностью языка ассемблера является то, что 1 команда на языке ассемблера всегда отвечает одной команде в процессоре. Поскольку иногда возникает необходимость детализовать управление процессором последовательно команда за командой, а заточить компилятор с языка более высокого уровня под такое управление удается не всегда, то необходимость в языке ассемблера никогда не отпадет. Но поскольку он все же используется очень редко, то знать только ассемблер недостаточно, что бы, например, найти работу программиста. Обычно сейчас на ассемблере иногда пишут специалисты высокой квалификации, которые знают еще кучу языков, а ассемблер используют по необходимости. (Последние утверждения справедливы для России). Может быть, где-то в фирме Intel или AMD и есть узкие специалисты, пишущие исключительно на ассемблере, но автору это не известно. [/SIZE]
[SIZE=3]Язык ассемблера мы пропустим, потому, что если мы на нем остановимся, то дальше никуда не попадем. [/SIZE]
[SIZE=3]В последующем было подмечено, что зачастую для решения сходных задач приходится генерить один и тот же код. Например, в начале выполнения программы все время приходится писать один и тот же набор команд на языке ассемблера. А это подтолкнуло к мысли, что например, вместо этого не писать все время одни и те же команды, а написать в исходном тексте уже на другом каком-то языке слово begin и написать такую программу, которая из этого “begin” сделает десяток (или больше) команд машинного кода. Такие языки стали называть языками высокого уровня, а программы, переводящие их в машинный код стали называть не трансляторами, а компиляторами.[/SIZE]
[SIZE=3]Теперь посмотрим, кто и где всем этим занимался.[/SIZE]
[SIZE=3]В 50-60 годах XX века разработкой и производством компьютеров занимались множество фирм, но к началу 60-х годов лидерство захватила фирма IBM.[/SIZE]
[SIZE=3]Фирмой IBM была выпущена большая серия различных вычислительных машин и в 40-50-е годы, но настоящим триумфом была разработка фирмой ЭВМ System/360 с операционной системой OS/360, выпущенные в 1963 году. System 360 представляла собой машину, размерами с большой шкаф, имела оперативную память порядка нескольких мегабайт, оснащалась большим количеством дисков, которые, как правило, располагались в стойках, в помещениях величиной с небольшой спортивный зал и могла производить вычисления со скоростью нескольких миллионов операций в секунду. Поскольку дисковых стоек использовалось большое количество, то для отличия их от стойки, где располагался процессор и оперативная память, последнюю часто называли MainFrame – по английски – главная стойка. Это название закрепилось и за всей вычислительной машиной и вот уже около 50 лет весь мир знает, что мэйнфреймы – это большие вычислительные машины от IBM. Именно мэйнфреймы использовались американцами в проекте Аполлон при высадке на Луну. Из всей стоимости проекта в 25 миллиардов долларов 5 миллиардов достались фирме IBM. Мэйнфреймы заполонили банки, крупные фирмы, страховые компании, исследовательские лаборатории.[/SIZE]
[SIZE=3]Замечу, что тогда еще не было ни UNIX, ни Windows, ни Linux.[/SIZE]
[SIZE=3]В рамках своего проекта System/360 фирма IBM заложила те основы компьютерной культуры, из которых потом и произросло все остальное, что мы имеем сейчас. Поскольку автор волен использовать любые сравнения и гиперболы, я бы сказал так – создание OS/360 можно сравнить с трудами Коперника, Кеплера, Галилея и Ньютона в астрономии и механике.[/SIZE]
[SIZE=3]Итак, OS/360 это был набор из примерно 1000 больших и малых программ. Одни во время работы должны были непрерывно находиться в памяти (резидентные). Другие подгружались по мере необходимости. Было введено понятие работа процессора в режиме ядра (называлось в режиме расширенного управления или режиме супервизора) и работа в основном режиме. Все машинные команды были разбиты на 2 группы – В режиме расширенного управления (режиме супервизора) могли выполняться все команды. В режиме основного управления мог выполняться только ограниченный круг команд. Поскольку все это деление на основной и расширенный набор команд реализовать в языках типа COBOL было большой заморочкой, то управление операционной системой можно было осуществлять только из программ, написанных на языке ассемблера. (Ну, и, конечно, с консоли оператора, выдавая команды по одиночке, или группируя их в пакеты на языке управления заданиями JCL т.е. Job Control Language). При этом, даже если программа и была написана на ассемблере, то это еще не означало, что с ее помощью можно было управлять операционной системой. Для предоставления такой возможности она должна была запускаться с консоли оператора с особым статусом (в режиме супервизора). Никакого “графического” Не было и в помине.[/SIZE]

[SIZE=3]Итак, подведем некий итог[/SIZE]

[SIZE=3]Мэйнфреймы (1963 год) были первыми настоящими вычислительными машинами.[/SIZE]
[SIZE=3]Unixa не было.[/SIZE]
[SIZE=3]Linuxa не было.[/SIZE]
[SIZE=3]Писюх не было.[/SIZE]
[SIZE=3]Фирмы Intel не было.[/SIZE]
[SIZE=3]Фирмы Microsoft не было!!!!!.[/SIZE]
[SIZE=3]DOS’a не было[/SIZE]
[SIZE=3]Windows’a не было[/SIZE]
[SIZE=3]Языка СИ не было.[/SIZE]
[SIZE=3]Графического интерфейса не было.[/SIZE]
[SIZE=3]Internet’a не было[/SIZE]
[SIZE=3]Конференций не было[/SIZE]
[SIZE=3]Форумов не было[/SIZE]
[SIZE=3]Программа хранилась либо на перфокартах, либо уже на дисках (лентах)[/SIZE]
[SIZE=3]Телевизоров (консолей) у каждого мэйнфрейма было всего 1-2, ну или 3-4 исключительно для сисадминов и операторов.[/SIZE]
[SIZE=3]Запустить программу мог либо оператор с консоли, либо оператор перфорационного устройства.[/SIZE]
[SIZE=3]Простой пользователь доступ к этим устройствам не имел.[/SIZE]
[SIZE=3]Управлять операционной системой можно было или командами с консоли или из программ на языке ассемблера.[/SIZE]
[SIZE=3]Компьютерных вирусов не было.[/SIZE]
[SIZE=3]Безопасники может быть уже и были, но жили как в раю.[/SIZE]
[SIZE=3]Программисты писали программы на бумаге и отдавали “На перфорацию” перфораторщикам.[/SIZE]
[SIZE=3]Перфораторщики при набивке программ могли ошибаться.[/SIZE]
[SIZE=3]Ошибка при компиляции или трансляции программы могла стать известна программисту только через несколько дней![/SIZE]
[SIZE=3]Т.е. с одной стороны “Компьютер мечты” уже был, но работа с ним строилась на уровне каменного века.[/SIZE]
[SIZE=3]Что-то надо было менять…[/SIZE][/off]

[SIZE=3]Продолжение следует….Или не следует, если забанят…[/SIZE]
22 февраля 2011, вторник
Д Михельсон Д Михельсон
1) Что-то не врублюсь как самому скрыть/открыть текст
2) Скрытый Вами текст после открытия идет в перемежку с тэгами HTML. Маленькие абзацы и список вообще, можно сказать, прочтению не поддаются. Сплошная каша текста и тэгов.
22 февраля 2011, вторник
Д Михельсон Д Михельсон
Если надо скрывать/открывать самому, то подскажите как это сделать

[off][SIZE=3]В дальнейшем, в течение ряда лет фирма IBM избавилась от написания программ на бумаге и их перфорации, превратила телевизор в основной инструмент работы как программиста так и пользователя, и он получил название монитор. Избавилась от пакетного режима выполнения программ, сделала свои компьютеры сперва 32-х разрядными, а потом и 64-разрядными (System/360 была 24 разрядной), наименование систем эволюционировало так OS/360, OS/370, OS/390, Z/OS. Z Значит 0 времени простоя за время эксплуатации, а не какие-то там 99,99999% готовности которые дают другие производители. Возникла монументальная картина – весь вычислительный мир – это мэйнфреймы, к ним подключены терминалы. Мэйнфреймы соединены между собой сетями архитектуры SNA (там не было TCP/IP, протокол был закрытый, никто ничего про его внутренности не знал). Вся эта сказка получила название идеологии (Архитектуры) Host-terminal. (Host – хозяин). Конкуренты, которые проиграли IBM в 1963 , создавая систему MULTIS (в противовес OS/360), оправились от поражения.[/SIZE]
[SIZE=3]Правда им пришлось довольствоваться более скромным процессорным парком от ряда менее значимых фирм, придумали язык СИ, что снижало производительность системы, так как часть машинного кода операционной системы создавалась не изощренным программистом на ассемблере, а компилятором языка СИ. Переименовали MULTICS в UNIX (1969 год), договорились о некоторых стандартах, чтобы можно было UNIX крутить на разных процессорах, Придумали протокол TCP/IP, чтобы соединять разные системы. НО!!!! Все их творения также были Host-terminalьными. То есть, терминалы – тупые, весь счет идет на центральном процессоре (или процессорах). [/SIZE]
[SIZE=3]Таким образом, миру была уготована следующая судьба – Кругом Мэйнфреймы и UNIX системы, в качестве конечных устройств – терминалы, терминалы, терминалы…. Миллионы, миллиарды тупых терминалов, соединенных с мощными центральными компьютерами.[/SIZE]
[SIZE=3]Но где-то там уже зародилась фирма Intel, стала делать ну просто дешевые процессоры (процессоры в мэйнфреймах были оччччень дорогющие). Сама же фирма IBM в качестве развлечения для своих клиентов придумала в 1981 году персональный компьютер. К тому времени другие уже делали втихомолку разные писюки, но фирма IBM, не опасаясь конкуренции, опубликовала спецификации своей персоналки и сделала ее архитектуру “открытой”. Типа клепайте эту игрушку по нашим “чертежам” кто хочет.[/SIZE]
[SIZE=3]Ну, народ и стал клепать. Билл Гейтс к тому времени уже создал Microsoft и 6 лет писал проги для Apple и других компаний.[/SIZE]
[SIZE=3]Для написания операционки для своей игрушки IBM как раз и выбрала Билла Гейтса. Так и родился DOS. [/SIZE]
[SIZE=3]В общем лет 7-8 писюки развивались в тени мэйнфреймов и UNIX систем, не помышляя ни о чем, кроме игр да несложных вычислений.[/SIZE]
[SIZE=3]Потом произошло следующее. С одной стороны, мэйнфреймы и UNIX системы все больше надрывались от вычислений (так как сложность задач опережает развитие вычислительных систем), терминалы им были не в силах помочь (ну, тупые, что возьмешь), а Intel тем временем делала процессоры все мощнее и мощнее. 86, 286, 386, 486, Pentium… И тут народ прочухал, что либо мэйнфреймы и UNIX’ы загнутся или надо как-то задействовать появившиеся откуда ни возьмись все более мощные PC. В общем, одной из первых это поняла фирма Microsoft. Более того, Microsoft поняла, что рост производительности процессоров Intel может и будет продолжаться и она может сравниться с мощью тех процессоров, которые стояли в Мэйнфреймах и UNIX системах. А потому может возникнуть совершенно новая архитектура. В центре которой мощный, но относительно дешевый компьютер архитектуры Intel, а на периферии не тупой терминал, а компьютер подешевле. Вторым моментом, который осознала фирма Microsoft было то, что вся эта конструкция будет задействована в корпоративной среде, где весьма важны вопросы безопасности. В этом случае надо было как ОС для центральной машины так и для клиентских ПК делать уже не по детски, а по-взрослому.[/SIZE]
[SIZE=3]Поэтому примерно в 1987-1988 году она, не оставляя работ по линии DOS-Windows 3.1, Windows 3.11 и т.д., которая закончилась в 1999 году выпуском Windows Me, начала разработку совершенно новой операционной системы, названной Windows NT (New Technology). Идеология получила название клиент-сервер в противовес идеологии Host-terminal. К тому времени фирма Microsoft была уже достаточно богата, чтобы под знамя разработки новой Windows собрать выдающихся программистов и архитекторов программного обеспечения.[/SIZE][/off]
23 февраля 2011, среда
Д Михельсон Д Михельсон
[SIZE=3]Надо отметить, что в период с 1963 по, скажем, 1990 год существовали не только мэйнфреймы и UNIX системы. Были системы закрытого типа вроде машин PDP или VAX фирмы DEC c операционными системами RSX-11 или VAX VMS, ставшие, кстати, прообразами советских клонов вроде СМ-4 или СМ-1700. Но если мы это будем рассматривать, то не достигнем поставленных перед собой целей. Пропускаем. Кстати, клоном мэйнфреймов IBM были советские ЕС ЭВМ, выпуск которых прекратился в начале 90-х годов.[/SIZE]

[off][SIZE=3]Итак, 1987 год, начало разработки линейки Windows NT – Windows 2000 – Windows Server 2003, Windows Server 2008 R2 и всем хорошо известных клиентских систем от Windows NT Workstation до Windows 7. [/SIZE]
[SIZE=3]Вот несколько отличий Windows NT от pre-NT систем – Windows 3.1, 3.11, 95 и т.д. [/SIZE]
[SIZE=3]Windows NT полностью 32 разрядная, а начиная с Windows Server 2008 64-ти разрядная операционная система, в то время как pre-NT системы имели смешанный 32 и 16 разрядный код.[/SIZE]
[SIZE=3]Windows NT поддерживает многопроцессорные системы, а pre-NT не поддерживали.[/SIZE]
[SIZE=3]Файловая система Windows NT поддерживает средства защиты посредством разделения прав доступа, а pre-NT нет.[/SIZE]
[SIZE=3]Windows NT полностью реентерабельная система, что позволяет организовывать истинную многозадачность, а pre-NT системы содержали как реентерабельные участки кода так и нет. Поэтому при выполнении нереентерабельных участков кода работал только один процесс, все остальные блокировались и ожидали. В этом смысле критики Windows со стороны Unix-Linux сообщества были правы, но, ребята, вы продолжаете критиковать то, что было 15 лет назад в pre-NT системах.[/SIZE]
[SIZE=3]Все процессы в Windows NT выполняются в выделенном адресном пространстве и изолированы друг от друга. и т.п. Но мы здесь собрались не для изучения архитектуры операционных систем, а для изучения администрирования систем при помощи программного кода. [/SIZE]
[SIZE=3]Отметим только, что ядро Windows (файл Ntoskrnl.exe), находящийся в папке WindowsSystem32 написано на языке программирования С и немного на ассемблере. Логически ядро представляет из себя набор функций, реализующих фундаментальные механизмы операционной системы типа планирования потоков и синхронизации, к функциям ядра приложения не могут обращаться напрямую. Между ядром и приложениями находится так называемая исполнительная система. Роль исполнительной системы заключается в следующем. Для обеспечения необходимой скорости функционирования ядра, оно реализовано в виде, грубо говоря, единственной программы, внутри которой не организуются объекты в смысле объектов языков программирования. Управление между участками кода ядра передаются при помощи goto или вызова подпрограмм (функций) без образования классов в исходном тексте ядра и объектов во время функционирования. (языки С и ассемблер, какие на фиг классы?) В исполнительной системе уже применяется объектно ориентированный подход. То есть на уровне исходников это классы, а во время исполнения это уже объекты. Поскольку приложения не видят ядра, а взаимодействуют с более высокими уровнями, то с точки зрения приложений Windows – объектно-ориентированная система. С точки зрения выполнения кода ядра Windows – объектно- ориентированной системой не является.[/SIZE]
[SIZE=3]Кстати, Вы можете заглянуть в папку System32 и посмотреть дату изменения Ntoskrnl.exe . Если система у Вас лицензионная, Вы пользуетесь Интернетом и Microsoft время от времени предлагает обновить систему, то дата изменения этого файла, скорее всего, будет одной из недавних, гораздо более поздней, чем дата приобретения и установки Вами системы. То есть время от времени Microsoft обновляет не только какие-то прибабахи, а ядро Вашей системы. Большой брат заботится о Вас.[/SIZE][/off]
23 февраля 2011, среда
Д Михельсон Д Михельсон
[SIZE=3]Кому я адресую это повествование? Следующим товарисчам – Программистам, которые умеют программировать, многое об этом знают, но писали программы никак не относящиеся к управлению ОС Windows и даже ничего об этом не слышали. Админам, которые пользуются графическим интерфейсом и командной строкой, но не сильны в программировании, ну и, наконец, новичкам, которые ни программировали, ни командной строкой не пользовались и в графическом интерфейсе не очень то разбираются. [/SIZE]

[off][SIZE=3]Преследуя интересы последних, спустимся с небес на землю и от высокопарных рассуждений о свойствах операционных систем перейдем к самым что ни наесть практическим вопросам. Дальше тон будет снисходительный (из самых добрых побуждений) пока мы с новичками не достигнем определенного уровня. Программисты и сисадмины могут это пропустить.[/SIZE]
[SIZE=3]А первый практический вопрос состоит в том, что многие наслышаны о том, что программирование – это сложная вещь, языки программирования мудреные и их надо долго изучать. А нет ли какого такого языка, который можно было бы изучить быстро и как можно быстрее приступить к практическим делам? [/SIZE]
[SIZE=3]И я Вам скажу. В Windows есть такой халявный язык, который можно изучить за пару часов, максимум за день!!!! И уже завтра писать программы. И этот язык называется VBScript. Программисты, конечно, улыбнутся, сисадмины пожмут плечами, а мы с новичками пойдем дальше.[/SIZE]
[SIZE=3]А вообще у нас конечная цель управлять Windows на 4-х языках (ну для разнообразия). Это VBScript, PowerShell, С# и С++.[/SIZE]
[SIZE=3]Да, у VBScript есть пара недостатков – это так называемый интерпретатор или язык написания скриптов – то есть работает относительно медленно. Но он работает медленно там, где скорость не нужна!!! Второй недостаток заключается в том, что если раньше Microsoft делала на него упор как на основной язык написания скриптов, то сейчас таковым является PowerShell.[/SIZE]
[SIZE=3]Зато два достоинства – Изучим быстро, и Microsoft еще не сняла с него функции действующего языка, так что сможем писать реальные программы. (ну, для начала скрипты, это оговорка для тех, кто скрипты программами называть не хочет). Потом займемся С# (читается СИ шарп), потом подтянем PowerShell и C++. Сразу скажу, что если VBScript встроен во все версии Windows, PowerShell есть только в последних, то C# и С++ надо подтягивать с сайта Microsoft. Бесплатно и законно. Под именами C# Express и С++ Express.[/SIZE]
[SIZE=3]Итак, начнем с VBScript. Программы в компьютере живут двойной жизнью. У них есть так называемый исходный текст, с которым работает программист. Это текст на формализованном английском, который называется языком программирования. Обладая исходным текстом сравнительно легко понять что программа делает и как она работает. Исходные тексты при помощи программ-компиляторов переводятся либо непосредственно в машинный код, который подается на вход процессора и исполняются либо готовят промежуточный так называемый байт-код, который перед подачей на выполнение проходит дополнительную обработку.[/SIZE]
[SIZE=3]В описанных двух случаях в компьютере есть и исходная программа, и отдельно создается и хранится исполняемый код. Язык программирования в таком случае называется компилируемым.[/SIZE]
[SIZE=3]В некоторых случаях исполняемый код не оформляется в виде загрузочного модуля, а генерируется непосредственно при обработке исходного текста так сказать “на лету”. В таком случае язык программирования называется интерпретируемым, а исходные тексты программ называются скриптами.[/SIZE]
[SIZE=3]Язык VBScript драматически прост. На самом деле его никто не изучает. Ему обучаются по ходу дела, изучая скрипты, написанные другими. И только если что непонятно, то обращаются к руководствам по VBScript.[/SIZE]
[SIZE=3]Тем не менее, для разогрева, так сказать, я сделаю несколько замечаний о программировании на VBScript.[/SIZE]
[SIZE=3]Для написания скрипта на VBScript подойдет любой редактор текстов. Программа на зыке VBScript это текстовой файл с расширением vbs. Если у Вас нет под рукой ни одного такого файла, чтобы взять его за основу, то можете текст программы набирать в текстовом редакторе в файле типа .txt, а потом сохранить в виде файла типа .vbs. В дальнейшем редактируйте программу прямо в файле vbs. Только имейте ввиду. Если Вы будете щелкать по файлу типа vbs, то он будет начинать выполняться. Чтобы его редактировать, надо по нему щелкнуть правой кнопкой мыши и в открывшемся списке выбрать “изменить”.[/SIZE]
[SIZE=3]Если у Вас расширения файлов не видны, то сделайте их видимыми, зайдя в панели управления в “оформление и темы”, далее в “свойства папки” и там “вид” и погасить галочку в строке “скрывать расширения для зарегистрированных типов файлов”.[/SIZE]
[SIZE=3]В программах на языке VBScript присутствуют как исполняемые команды (их иногда называют операторами) так и комментарии, предназначенные не для компьютера, а для программиста.[/SIZE]
[SIZE=3]Комментарии - это строчки или куски строчек после штриха ‘[/SIZE]
[SIZE=3]Как правило, на одной строке помещается один оператор[/SIZE]
[SIZE=3]Если оператор не помещается в одной строке, то его можно продлить на следующую строку при помощи знака подчеркивания _[/SIZE]
[SIZE=3]Переменные в языке VBScript можно не объявлять. Но это считается дурным тоном и, как правило, переменные объявляются при помощи ключевого слова Dim[/SIZE]
[SIZE=3]Чтобы запретить использование необъявленных переменных в начале программы пишут оператор [/SIZE]
[SIZE=3]Option Explicit[/SIZE]
[SIZE=3]Переменные в языке VBScript при объявлении не типизуются, но перед использованием переменную можно привести к определенному типу при помощи специальных функций, [/SIZE]
[SIZE=3]Так, если Вы где-либо напишете Dim x=5[/SIZE]
[SIZE=3]Затем Dim y=6, а затем попытаетесь x и y сложить, то пред сложением исполнительная среда VBScript преобразует 5 и 6 в символьный вид, начнет их рассматривать как строки и результат будет не 11, как можно было бы ожидать, а 56 – как сумма подстрок 5 и 6.[/SIZE]
[SIZE=3]Для того, чтобы переменные x и y трактовались как числа их надо привести к числовому виду при помощи встроенной функции Cint (Convert to Integer)[/SIZE]
[SIZE=3]И наоборот, для того, чтобы числа превратить в строки их надо конвертировать в строки при помощи функции Cstr (Convert to Str).[/SIZE]



[SIZE=3]Все сказанное проиллюстрировано в программе сумматор[/SIZE]
[SIZE=3]Начиная со строки ======= можно скопировать к себе в файл все до строки eeeeeeeeeeee. И если я где-нить не ошибся, то это будет действующий скрипт.[/SIZE]
[SIZE=3]' ======= Начало программы сумматор=[/SIZE]
[SIZE=3]' Это язык программирования VBScript[/SIZE]
[SIZE=3]' Программа принимает с экрана одно число[/SIZE]
[SIZE=3]' Потом принимает другое число[/SIZE]
[SIZE=3]' Складывает их и показывает, что получится, если введенные числа[/SIZE]
[SIZE=3]' перед сложением не преобразовать к числовому виду[/SIZE]
[SIZE=3]' Затем программа преобразует введенные числа к числовому виду, складывает числа[/SIZE]
[SIZE=3]' и выводит на экран правильный арифметический результат.[/SIZE]

[SIZE=3]' Со штриха начинаются комментарии (то есть строчки, которые в процессе[/SIZE]
[SIZE=3]' выполнения программы не обрабатываются компьютером,[/SIZE]
[SIZE=3]' а предназначаются для программистов[/SIZE]
[SIZE=3]' и предназначены для объяснения логики работы программы. Или наоборот,[/SIZE]
[SIZE=3]' для запутывания и заметания следов).[/SIZE]

[SIZE=3]Option Explicit ' комментарии можно писать после выполняемой команды[/SIZE]

[SIZE=3]' Option Explicit означает, что объявление переменных ( у нас это x1, x и т.д.) в этой[/SIZE]
[SIZE=3]' программе обязательно[/SIZE]
[SIZE=3]' Переменные объявляются написанием перед переменной слова Dim[/SIZE]
[SIZE=3]' Такие слова в языке программирования называются ключевыми[/SIZE]
[SIZE=3]' Если бы мы не вызвали команду Option Explicit, то переменные можно было бы не объявлять[/SIZE]
[SIZE=3]' Но это считается дурным стилем[/SIZE]
[SIZE=3]'[/SIZE]
[SIZE=3]' Программа запрашивает с экрана одно число[/SIZE]
[SIZE=3]' Потом запрашивает второе число[/SIZE]
[SIZE=3]'Потом показывает, что получится, если эти числа складывать без преобразования[/SIZE]
[SIZE=3]' Потом эти символьные числа преобразует в арифметические целые[/SIZE]
[SIZE=3]' при помощи функции Cint[/SIZE]
[SIZE=3]' Складывает целые числа [/SIZE]
[SIZE=3]Dim x1, x2, x3, c1, c2,c3,c4, s1, s2[/SIZE]
[SIZE=3]Wscript.echo "Summator -- Start"[/SIZE]
[SIZE=3]c1=InputBox(s1, "Введите первое число")[/SIZE]
[SIZE=3]c2=InputBox(s2, "Введите второе число")[/SIZE]
[SIZE=3]c4=c1+c2 ' Это будет "Сложение символов"[/SIZE]
[SIZE=3]MsgBox "Результат сложения введенных с экрана строк " & c4[/SIZE]
[SIZE=3]c1=Cint(c1) 'преобразование символа в арифметическое число типа Integer[/SIZE]
[SIZE=3]c2=Cint(c2) 'Преобразование символа в арифметическое число типа Integer[/SIZE]
[SIZE=3]c3=c1+c2 'А это уже сложение чисел[/SIZE]
[SIZE=3]c3=Cstr(c3) 'Преобразование Ineger в string для вывода результата[/SIZE]
[SIZE=3]MsgBox "Получите арифметический результат " & c3[/SIZE]
[SIZE=3]Wscript.echo "Summator -- End"[/SIZE]
[SIZE=3]Wscript.Quit[/SIZE]
[SIZE=3]' Eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee – конец программы Summator[/SIZE]
[SIZE=3]Дальше не копировать!!!!![/SIZE]
[SIZE=3]Для того чтобы использовать эту программу надо строки с ‘ =======начало до[/SIZE]
[SIZE=3]Строки ‘Eeeeeeeeeee[/SIZE]
[SIZE=3]Переписать в файл типа vbs, щелкнуть по нему и он запустится на выполнение.[/SIZE]

[SIZE=3]Если Вы теперь в одной из строк комментария замените штрих скажем на вопросительный знак, то Вы увидите, что программа выполняться не станет. Это говорит, о том, что интерпретатор VBScript не так уж и прост. Он не просто тупо начинает выполнять программу, он сперва проверяет синтаксис всех операторов программы, а потом уже пускает ее на вход процессора. Также Вы можете во время ввода ввести не цифры, а буквы. Вы также увидите, что программа до конца не сработает, а при попытке перевести букву в число выдаст ошибку. Ошибки первого типа называются ошибками времени трансляции. Обычно они безобидны и легко отыскиваются. Ошибки второго типа называются ошибками времени выполнения и борьба с ними намного сложнее. [/SIZE]
[SIZE=3]Если внимательно посмотреть на нашу первую программу Summator, то легко увидеть, что собственно команд в программе всего две. В первом случае складываются символы c4=c1+c2 , во втором случае складываются числа c3=c1+c2 [/SIZE]
[SIZE=3]Все остальное – это либо комментарии, либо оператор Option Explicit, либо объявление переменных, либо системная функция вывода на экран, либо системная функция чтения с экрана, либо преобразование строк в числа и наоборот.[/SIZE][/off]

[SIZE=3]Такова судьба большинства программ на VBScript. На них, как правило, не пишут сложных алгоритмов, а организуют доступ к тем или иным функциям системы.[/SIZE]
23 февраля 2011, среда
RR RR
1) Что-то не врублюсь как самому скрыть/открыть текст
Тэги [оff].... [/оff]
2) Скрытый Вами текст после открытия идет в перемежку с тэгами HTML. Маленькие абзацы и список вообще, можно сказать, прочтению не поддаются. Сплошная каша текста и тэгов.
Это я вам хотел задать вопрос, откуда у вас такая страсть к тэгам. И главное, что тэги вами установлены чуть ли не на каждую строчку, хотя весь текст идёт под одним тэгом?
И так практически во всех ваших сообщениях. Вы, батенька совсем не профан, раз умеете пользоваться тэгами, но слегка напрягает один момент, а зачем это делать с каждой строчкой. Вы что, получаете от этого наслаждение?

И так, от себя лично. Вы не заметили, что на нашем форуме нет никакого упоминания о языках программирования, то есть убран стандартный раздел присутствующий на многих других форумах, а именно программирование на VBScript, PowerShell, C# и С++ и прочие узко специализированные вещи.
Может быть вам лучше поговорить своими словами о чём нибудь более насущном и более понятном для всех?
23 февраля 2011, среда
BobNet BobNet
[CENTER]OFF

[off]Ставить одни и теже теги на каждый абзац текста - говорит о полной компьютерной безграмотности пишущего.
Зачем это делать ? Ведь в данном случае достаточно открыть тег в начале текста и закрыть в конце.
Дружеский совет пишущему - если не знать таких простых прописных компьютерных истин то наверное не стоит заводить темы и писать о языках программирования, серверах, юниксах, протоколах и т.д. - т.к. выглядишь очень глупо, одним словом "Нуб" ...[/off][/CENTER]
23 февраля 2011, среда
Д Михельсон Д Михельсон
RR

[SIZE=3]Уважаемый RR ![/SIZE]
[SIZE=3]Как Вы могли заметить, мой последний пост отправлен на форум поздней ночью. Бессонница. Но потом заснул. Щас вот встал, туго соображаю, так что не ругайте, если что не так.[/SIZE]

[SIZE=3]Да, мне, пожалуй, пора завязывать с писаниной, если я так до сих пор не могу понять как достичь правильного результата в вопросах форматирования текстов в постах на форуме.[/SIZE]

[SIZE=3]Дело в том, что я ж не пишу прямо в предоставляемое Вами окно ввода текста. Мне так не очень удобно. Даже совсем неудобно. Я писал текст в Ворде, который настроен у меня так как мне нужно, а потом просто тупо копировал текст в Окно ввода поста. Откуда там эта толпа тэгов понятия не имею. Клянусь, я самолично ни одного не вставлял. Это, как я понимаю, результат взаимодействия Ворда с php. До Вашего скрыть/раскрыть я ж деталей форматирования не вижу. Для меня это просто сплошной текст, но с абзацами. Я так догадываюсь, что если бы я абзацев не использовал, то все было бы нормально. Но тогда у меня в Ворде это был бы сплошной текст, а это неудобно и неправильно.[/SIZE]

[SIZE=3]Что касается того, что я знаю слово “тэг”. Ну просто я года 3 принимал участие в ведении корпоративного сайта организации, где я работаю. Щас я этим не занимаюсь. Вот у меня и есть остатки знаний по HTML, тока упаси Боже, я их никак не задействовал. Тока у нас, как можно догадаться из моей писанины, все в среде Windows – IIS, ASP.NET, C# и т.д. без всяких php.[/SIZE]

[SIZE=3]Теперь насчет распространенности и специфичности вещей вроде PowerShell. Вы меня заставили задуматься о том, что вот в нашей организации его знает каждый информатик, работающий с виндами, но, действительно, не знает ни один из пользователей, сидящих за компьютером в профильных отделах. И у них бы волосы дыбом встали, если бы вместо привычных и удобных программ их бы заставили писать что-нить типа скриптов на PowerShell. Они бы все разом разбежались бы, несмотря на безработицу за окном…[/SIZE]

[SIZE=3]Ну собственно, у Вас та же история. 100% админов Вашего форума знают php и, возможно, очень небольшое число пользователей форума. Вот я, например, тоже не знаю. [/SIZE]
[SIZE=3]Так что, ладно, не буду никого напрягать. Лучше время от времени пульну анекдот или картинку из космоса… [/SIZE]
23 февраля 2011, среда
Фрида Крюгер Фрида Крюгер За Питерские репортажи За фоторепортаж За проявленный героизм! За Белгород!
Доктор Михельсон;101263:
[SIZE=3]Я не просто перехожу на русский. Я завязываю с тусовкой.[/SIZE]
- 16.02.11
Доктор Михельсон;102991:

[SIZE=3]Да, мне, пожалуй, пора завязывать с писаниной, [/SIZE]
- 23.02.11
Пацан сказал, пацан сделал! m/
23 февраля 2011, среда
Д Михельсон Д Михельсон
RR !

PS Я, кажется, допер. После вставки из ворда, я менял размер шрифта средствами окна... То то там все с <size начинается....
23 февраля 2011, среда
RR RR
После вставки из ворда, я менял размер шрифта средствами окна... То то там все с <size начинается....
Может быть, так как я сейчас пробовал вставить текст из ворда и при этом никакие тэги не проявились.
23 февраля 2011, среда
Д Михельсон Д Михельсон
[SIZE=3]Уважаемый RR ![/SIZE]
[off][SIZE=3]Дык, у меня тоже не проявлялись, пока Вы не вставляли скрытие текста.[/SIZE]
[SIZE=3]В общем, получалось так. Я писал в ворде с абзацами,[/SIZE]
[SIZE=3]Потом копировал в окно ввода, потом выделял весь текст, помещенный в окно, менял шрифт с 2 на 3, затем делал просмотр (все нормально), затем публиковал.[/SIZE]
[SIZE=3]Текст выглядел нормально. Потом спустя какое-то время вы делали скрыть/раскрыть и все разваливалось.[/SIZE]
[SIZE=3]Не связано ли это с тем, что я использую самую последнюю версию ворда, в котором уже идут не .doc, а .docx документы.[/SIZE]
[SIZE=3]У меня есть предложение. Щас я скопирую этот текст в окно ввода (тут тоже есть абзацы), поменяю шрифт, в общем, сделаю все как делал, а Вы сделаете, то что Вы делали. [/SIZE]

[SIZE=3]Потом я сохраню этот же текст в формате .html и повторю все, взяв за основу текст из html документа. И посмотрим, что получится.[/SIZE]
[SIZE=3]Я это не для того делаю, чтобы еще мегабайты текста сюда нагнать, а просто из любопытства. (Если, конечно, у Вас есть время).[/SIZE][/off]
23 февраля 2011, среда
Д Михельсон Д Михельсон
Уважаемый RR !
[off]Дык, у меня тоже не проявлялись, пока Вы не вставляли скрытие текста.
В общем, получалось так. Я писал в ворде с абзацами,
Потом копировал в окно ввода, потом выделял весь текст, помещенный в окно, менял шрифт с 2 на 3, затем делал просмотр (все нормально), затем публиковал.
Текст выглядел нормально. Потом спустя какое-то время вы делали скрыть/раскрыть и все разваливалось.
Не связано ли это с тем, что я использую самую последнюю версию ворда, в котором уже идут не .doc, а .docx документы.
У меня есть предложение. Щас я скопирую этот текст в окно ввода (тут тоже есть абзацы), поменяю шрифт, в общем, сделаю все как делал, а Вы сделаете, то что Вы делали.

Потом я сохраню этот же текст в формате .html и повторю все, взяв за основу текст из html документа. И посмотрим, что получится.
Тока Вы не боитесь, это не для того, чтобы еще мегабайты текста сюда нагнать, а просто из любопытства. (Если, конечно, у Вас есть время).[/off]
23 февраля 2011, среда
Д Михельсон Д Михельсон
[SIZE=3]Уважаемый RR ![/SIZE]
[off][SIZE=3]Дык, у меня тоже не проявлялись, пока Вы не вставляли скрытие текста.[/SIZE]
[SIZE=3]В общем, получалось так. Я писал в ворде с абзацами,[/SIZE]
[SIZE=3]Потом копировал в окно ввода, потом выделял весь текст, помещенный в окно, менял шрифт с 2 на 3, затем делал просмотр (все нормально), затем публиковал.[/SIZE]
[SIZE=3]Текст выглядел нормально. Потом спустя какое-то время вы делали скрыть/раскрыть и все разваливалось.[/SIZE]
[SIZE=3]Не связано ли это с тем, что я использую самую последнюю версию ворда, в котором уже идут не .doc, а .docx документы.[/SIZE]
[SIZE=3]У меня есть предложение. Щас я скопирую этот текст в окно ввода (тут тоже есть абзацы), поменяю шрифт, в общем, сделаю все как делал, а Вы сделаете, то что Вы делали. [/SIZE]

[SIZE=3]Потом я сохраню этот же текст в формате .html и повторю все, взяв за основу текст из html документа. И посмотрим, что получится.[/SIZE]
[SIZE=3]Тока Вы не боитесь, это не для того, чтобы еще мегабайты текста сюда нагнать, а просто из любопытства.[/off] (Если, конечно, у Вас есть время).[/SIZE]
23 февраля 2011, среда
Д Михельсон Д Михельсон
Уважаемый RR !
[off]Дык, у меня тоже не проявлялись, пока Вы не вставляли скрытие текста.
В общем, получалось так. Я писал в ворде с абзацами,
Потом копировал в окно ввода, потом выделял весь текст, помещенный в окно, менял шрифт с 2 на 3, затем делал просмотр (все нормально), затем публиковал.
Текст выглядел нормально. Потом спустя какое-то время вы делали скрыть/раскрыть и все разваливалось.
Не связано ли это с тем, что я использую самую последнюю версию ворда, в котором уже идут не .doc, а .docx документы.
У меня есть предложение. Щас я скопирую этот текст в окно ввода (тут тоже есть абзацы), поменяю шрифт, в общем, сделаю все как делал, а Вы сделаете, то что Вы делали.

Потом я сохраню этот же текст в формате .html и повторю все, взяв за основу текст из html документа. И посмотрим, что получится.
Тока Вы не боитесь, это не для того, чтобы еще мегабайты текста сюда нагнать, а просто из любопытства. [/off](Если, конечно, у Вас есть время).
Есть 2 новых сообщения
У вас нет прав, чтобы писать на форуме, .