Создание и исполнение программного кода. Исходный код программы

  • 23.06.2019

(Руководство разработчика по микроконтроллерам семейства HCS08)

В Примере 12.1 мы рассмотрим программный код, который позволяет записать и стереть собственные данные во флэш-памяти. Такие действия бывают необходимы, если пользователь какого-либо устройства производит дополнительную настройку этого устройства и желает, чтобы выбранная конфигурация сохранилась после отключения питания.

Ранее нами было отмечено, что МК семейства HCS08 не позволяют выполнять операции стирания и программирования флэш-памяти, исполняя программу управления этими режимами также из флэш-памяти. Обязательно следует сначала переписать программный код, отвечающий за операции стирания и программирования, в оперативную память, а затем запустить этот код на исполнение. В процессе стирания и программирования к модулю флэш-памяти будет приложено повышенное напряжение. Однако это не приведет к срыву работы программы, поскольку в данный момент времени она будет исполняться из ОЗУ.

Компания NXP разработала набор утилит на ассемблере, который упрощает создание собственного программного кода для программирования флэш-памяти под управлением рабочей программы устройства. Эти утилиты размещены в файле doonstack.asm . Этот файл следует включить в проект, как показано на Рис. 12.3 .

Рис. 12.3. Окно проекта с включенным файлом doonstack.asm .

Содержимое файла doonstack.asm представлено ниже. Приведен оригинальный текст используемого программного кода, поэтому комментарии переводу не подлежат.


;* This stationery is meant to serve as the framework for a *
;* user application. For a more comprehensive program that *
;* demonstrates the more advanced functionality of this *
;* processor, please see the demonstration applications *
;* located in the examples subdirectory of the *
;* Metrowerks Codewarrior for the HC08 Program directory *
;**************************************************************
; export symbols
XDEF DoOnStack
XDEF FlashErase
XDEF FlashProg
; we use export "Entry" as symbol. This allows us to
; reference "Entry" either in the linker .prm file
; or from C/C++ later on

; include derivative specific macros
Include "MC9S08GB60.inc"

Две следующие строки следует раскомментировать и назначить желаемые значения.

;mPageErase equ $40
;mByteProg equ $20
mFACCERR equ $10
mFPVIOL equ $20
mFCBEF equ $80
; variable/data section
MY_ZEROPAGE: SECTION SHORT
; Insert here your data definition. For demonstration, temp_byte is used.
; temp_byte ds.b 1
; code section
MyCode: SECTION
;**************************************************************
; this assembly routine is called the C/C++ application
DoOnStack: pshx
pshh ;save pointer to flash
psha ;save command on stack
ldhx #SpSubEnd ;point at last byte to move to stack;
SpMoveLoop: lda ,x ;read from flash
psha ;move onto stack
aix #-1 ;next byte to move
cphx #SpSub-1 ;past end?
bne SpMoveLoop ;loop till whole sub on stack
tsx ;point to sub on stack
tpa ;move CCR to A for testing
and #$08 ;check the I mask
bne I_set ;skip if I already set
sei ;block interrupts while FLASH busy
lda SpSubSize+6,sp ;preload data for command
cli ;ok to clear I mask now
bra I_cont ;continue to stack de-allocation
I_set: lda SpSubSize+6,sp ;preload data for command
jsr ,x ;execute the sub on the stack
I_cont: ais #SpSubSize+3 ;deallocate sub body + H:X + command
;H:X flash pointer OK from SpSub
lsla ;A=00 & Z=1 unless PVIOL or ACCERR
rts ;to flash where DoOnStack was called
;**************************************************************
SpSub: ldhx LOW(SpSubSize+4),sp ;get flash address from stack
sta 0,x ;write to flash; latch addr and data
lda SpSubSize+3,sp ;get flash command
sta FCMD ;write the flash command
lda #mFCBEF ;mask to initiate command
sta FSTAT ; register command
nop ;[p] want min 4~ from w cycle to r
ChkDone: lda FSTAT ; so FCCF is valid
lsla ;FCCF now in MSB
bpl ChkDone ;loop if FCCF = 0
SpSubEnd: rts ;back into DoOnStack in flash
SpSubSize: equ (*-SpSub)
;**************************************************************
FlashErase: psha ;adjust sp for DoOnStack entry

lda #mPageErase ;mask pattern for page erase command
bsr DoOnStack ;finish command from stack-based sub
rts
;**************************************************************
FlashProg: psha ;temporarily save entry data
lda #(mFPVIOL+mFACCERR) ;mask
sta FSTAT ;abort any command and clear errors
lda #mByteProg ;mask pattern for byte prog command
bsr DoOnStack ;execute prog code from stack RAM
ais #1 ;deallocate data location from stack
rts
;**************************************************************

Также в тексте программного кода на С необходимо директивой #include подключить файл doonstack.h , текст которого представлен ниже.


/* */
/* Project Name: doonstack.h */
/* Last modified: 04/11/2004 */
/* By: r60817 */
/* */
/* */
/**********************************************************************/
/* */
/* Description: MC9S08GB60_FLASH_DOONSTACK - demo */
/* */
/* */
/* Documentation: MC9S08GB60/D Rev. 2.2 */
/* HCS08RMv1/D Rev. 1(4.8FLASH Application Examples) */
/* */
/* This software is classified as Engineering Sample Software. */
/* */
/**********************************************************************/
/* */
/* Services performed by FREESCALE in this matter are performed AS IS */
/* and without any warranty. CUSTOMER retains the final decision */
/* relative to the total design and functionality of the end product. */
/* FREESCALE neither guarantees nor will be held liable by CUSTOMER */
/* for the success of this project. FREESCALE DISCLAIMS ALL */
/* WARRANTIES, EXPRESSED, IMPLIED OR STATUTORY INCLUDING, BUT NOT */
/* LIMITED TO, IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A */
/* PARTICULAR PURPOSE ON ANY HARDWARE, SOFTWARE ORE ADVISE SUPPLIED */
/* TO THE PROJECT BY FREESCALE, AND OR NAY PRODUCT RESULTING FROM */
/* FREESCALE SERVICES . IN NO EVENT SHALL FREESCALE BE LIABLE FOR */
/* INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT. */
/* */
/* CUSTOMER agrees to hold FREESCALE harmless against any and all */
/* claims demands or actions by anyone on account of any damage, or */
/* injury, whether commercial, contractual, or tortuous, rising */
/* directly or indirectly as a result of the advise or assistance */
/* supplied CUSTOMER in connection with product, services or goods */
/* supplied under this Agreement. */
/* */
/**********************************************************************/
/*
- this file API between main.c and doonstack.asm
*/
#ifndef _doonstack
#define _doonstack
#ifdef __cplusplus
extern "C" { /* our assembly functions have C calling convention */
#endif
void DoOnStack(void); /* prototype for DoOnStack routine */
void FlashErase(unsigned char *); /* prototype for FlashErase routine */
/* Page Erase command */
void FlashProg(unsigned char *, unsigned char); /* prototype for FlashProg routine */
/* Byte Program command */
#ifdef __cplusplus
}
#endif

#endif /* _doonstack */
/**********************************************************************/

В нашем примере для записи энергонезависимых данных резервируется блок в 512 байт. Такой размер блока выбран потому, что это минимально разрешенный для стирания объем ячеек флэш-памяти в микроконтроллере MC9S08QG8. Выбранный блок будет располагаться в начале адресного пространства резидентной флэш-памяти МК: от 0xE000 до 0xE1FF. Программный код будет начинаться с адреса 0xE200 и может занимать адресное пространство вплоть до 0xFFFF.

Для того чтобы реализовать задуманное размещение кодов данных и программы, следует изменить установки компоновщика в файле project.prm .

В стандартном проекте была запись:


ROM = READ_ONLY 0xE000 TO 0xFFAD;

Ее следует заменить:

SEGMENTS /* Here all RAM/ROM areas of the device are listed */
ROM = READ_ONLY 0xE200 TO 0xFFAD;

В нашем примере также использован режим защиты от записи области программного кода, т.е. адресного пространства от 0xF200 до 0xFFFF. На Рис. 12. 4 показан процесс формирования кода для регистра FPROT, который обеспечивает защиту адресного пространства 0xF200...0xFFFF от случайного стирания/записи. Семь старших битов последнего адреса 0xF1FF незащищенного адресного пространства должны быть записаны в регистр FPROT.

Адрес A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0xE1FF 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1
FPROT FPS7 FPS6 FPS5 FPS4 FPS3 FPS2 FPS1 FPDIS
0xE0 1 1 1 0 0 0 0 0

Рис. 12.4. Формирование записи кода зашиты для регистра FPROT.

Пример 12.1. Операции с энергонезависимыми данными во флэш-памяти

// Демонстрационная плата DEMO9S08QG8
// стирание/запись/чтение резидентной флэш-памяти
#include /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
#include "hcs08.h" /* Это наш файл с объявлениями! */
#include "doonstack.h"
#define BUSCLK 8000000
#define vFCDIV (BUSCLK/200000-1)
char fdata, operation;
unsigned int faddress;
// Назначается область защищенных от записи адресов: от 0xE200 до 0xFFFF
const byte NVPROT_INIT @0x0000FFBD = 0xE0;
// Инициализация МК
void mcu_init(void)
{
SOPT1 = bBKGDPE; // Разрешение функции линии отладки BKGD
ICSSC = NV_FTRIM; // Записать значение подстройки FTRIM
ICSTRM = NV_ICSTRM; // Записать значение подстройки TRIM
ICSC2 = 0; // ICSOUT = DCOOUT / 1
// BUSCLK = 8 МГц
FCDIV = vFCDIV; // Записать значение кода делителя для частоты FCLK
// (FCLK = 200 кГц)
}
#pragma inline
// Функция чтения байта из ячейки памяти с заданным адресом
char flash_read(unsigned int address)
{
unsigned char *pointer;
pointer = (char*) address;
return (*pointer);
}
// Функция записи байта в ячейку памяти с заданным адресом
char flash_write(unsigned int address, unsigned char data)
{
unsigned char *pointer;
pointer = (char*) address;
FlashProg(pointer,data); // Вызов функции программирования флэш-памяти
if (FSTAT_FACCERR) data=1; else data=0;
if (FSTAT_FPVIOL) data|=2;
return(data);
}
// Функция стирания заданного блока в области флэш-памяти
unsigned char flash_sector_erase(unsigned int address)
{
unsigned char *pointer, res;
pointer = (char*) address;
FlashErase(pointer);
if (FSTAT_FACCERR) res=1; else res=0;
if (FSTAT_FPVIOL) res|=2;
return(res);
}
void main(void)
{
mcu_init();
fdata = 0;
faddress = 0xE000;
operation = 0;
while (1)
{
switch (operation)
{
case 1: // Стирание блока
fdata = flash_sector_erase(faddress);
operation = 0;
break;
case 2: // Запись байта
fdata = flash_write(faddress,fdata);
operation = 0;
break;
case 3: // Чтение байта
fdata = flash_read(faddress);
operation = 0;
break;
}
}
}

Рассмотрим методику тестирования программного кода Примера 12.1. Для этого в окно отладчика Data добавим три переменные: faddress , fdata , operation . Также установим для окна режим периодического обновления, например, через 200 мс.

Перед запуском на исполнение программного кода запишите в переменную faddress адрес для записи, а в переменную fdata — байт данных для записи. Далее в переменную operation запишите код 0x02. После запуска программного кода примера начнется запись байта данных в выбранную ячейку флэш-памяти. Обратите внимание, что выбранная ячейка должна находиться в стертом состоянии, т.е. в ней должен быть код 0xFF.

Для того чтобы стереть блок памяти 0xE00...0xE1FF, запишите в faddress любой адрес из указанного диапазона и установите переменную operation в 1. Далее запустите код снова на исполнение.

Прочитать данные из флэш-памяти тоже просто. Для этого запишите в переменную faddress код адреса, в переменную operation — код 0x03. Содержимое выбранной ячейки флэш-памяти отобразится в переменной fdata после исполнения программного кода.

Обратите внимание, что функции flash_write() и flash_sector_erase() возвращают переменную типа chare с кодом ошибки при выполнении действия: 0 — не было ошибки, 0x02 — была ошибка доступа, 0x04 — была попытка стирания/записи защищенного адресного пространства. Обе упомянутые функции требуют для своего исполнения около 35 байт стековой памяти. Если реальная область стека окажется меньше, то произойдет фатальная ошибка. Восстановить работоспособность программы можно будет только сбросом МК.

Для того чтобы посмотреть в отладчике изменения флэш-памяти, необходимо внести некоторые изменения в конфигурацию отладчика. Следуя установкам по умолчанию, отладчик считывает область флэш-памяти МК только один раз после запуска сессии отладки. Для изменения конфигурации выберите в главном меню отладчика опцию MultilinkCyclonPro > Debug Memory Map . Откроется окно, показанное на Рис. 12.5 , а . Выберите в этом окне memory block 3 и нажмите кнопку Modify/Details . В новом окне, показанном на Рис. 12.5 , б , выберите отмеченную опцию. Она позволит отладчику периодически обновлять окно памяти.

Рис. 12.5. Изменение конфигурации отладчика для периодического обновления содержимого окна памяти.

Исходный код (обычно просто текст программы , англ. source code ) - любой набор инструкций или объявлений, написанных в компьютерном языке программирования и в форме, которую может прочитать человек. Исходный код позволяет программисту общаться с компьютером с помощью ограниченного набора инструкций.

Исходный код, написанный на HTML, с использованием JavaScript

Исходный код, представляющий собой программу, как правило, содержится в одном или более текстовых файлах, иногда сохраняется в базах данных, как хранимые процедуры, а также может появиться, как фрагменты кода, напечатанные в книгах или других средствах печати. Большая коллекция файлов исходноко кода может быть организована в дерево каталогов, и, в этом случае, оно может быть также известно как дерево исходных кодов (англ. source tree ) или дерево кода дерево исходного кода и т.д.

Исходный код программы - это набор файлов, необходимых для преобразования из формы, доступной для чтения человеку, на некоторые виды компьютерного исполняемого кода. Возможны два направления выполнения кода: транслируется в машинный код с помощью компилятора, предназначенного для определенной компьютерной архитектуры , или выполняется непосредственно по тексту с помощью интерпретатора.

Цели

Исходный код в основном используется в качестве входных данных для процесса, который производит исполняемые программы (то есть, его компилируют или интерпретируют). Его также используют в качестве средства передачи алгоритмов между людьми (например, фрагменты кода в книжках). Портирование программы на другие компьютерные платформы без сырцового кода, как правило, является достаточно сложным. Хотя возможны варианты портирование и без исходных кодов, напр., двоичная трансляция илиэмуляция оригинальной платформы.

Лицензирование

Программные средства, и исходный код, что их сопровождает, как правило, относятся к одной из двух парадигм лицензий: открытое программное обеспечение и несвободное программное обеспечение (или проприетарное). В целом, программное обеспечение является открытым , если исходный код может свободно использоваться, распространяться, модифицироваться и анализироваться, и проприетарным , если исходный код держится в секрете, или находится в частной собственности и доступ к нему ограничен. Для обеспечения закрытости используются преимущественно положения различных законов об авторском праве, но часто используются также коммерческая тайна и патенты. Кроме того, дистрибутив программы, как правило, приходит с лицензионным соглашением (EULA), которое, главным образом, запрещает декомпиляцию, реинжениринг, анализ, редактирование, или обход защиты от копирования. Виды защиты исходного кода (кроме традиционного компилирования в объектный код включают шифрование кода, запутывания кода (англ. code obfuscation ) или морфинг кода.

Качество

То, как написано программу, может иметь очень важные последствия для ее сопровождения. Многие учебники по стилю программирования настаивают на важности читабельности, и многие рекомендации направлены на поддержку исходного кода программы, которое включает в себя отладочную и обновления. Другие приоритеты, как например, скорость выполнения программы и возможности компилирования программы для нескольких архитектур, часто делают читабельность кода менее важным фактором, поскольку качество кода полностью зависит от его назначения.

Поскольку программирование уже десятки лет существует в промышленных масштабах, были разработаны соответствующие стандарт оформления кода. Некоторые стандарты оформлены официально, а некоторые являются негласными правилами. Например, Венгерская нотация регламентирует наименование идентификаторов в программе (часто это решается выпуском конвенции по именованию в масштабах предприятия), другие стандарты определяют правила расстановки элементов синтаксиса.

Необходимость иметь собственный сайт на сегодня испытывают многие компании, а также частные лица, поэтому так востребована информация на тему разработки и продвижения интернет-проектов. Многих интересует вопрос — как самостоятельно создать сайт, программный код для которого является подобием фундамента для дома? Попробуем разобраться в этом вопросе, углубившись в тему веб-разработки.

Веб-сайт — это не просто объединение текста, ссылок, картинок и красочных баннеров, это еще и программный код, выполняющийся на компьютере пользователя или на стороне сервера. И если создать изображения требуемого формата в нужном разрешении и качестве сегодня может практически каждый, используя готовые изображения из Интернета или любой популярный графический редактор, то создать программный код сайта для неспециалиста чревато немалыми трудностями.

Качество приложений и интернет-проекта в целом сильно зависит от мастерства программиста, разрабатывающего сайт, программный код которого может содержать ошибки, сильно влияющие на скорость загрузки веб-страниц и на многие другие аспекты работы всего сайта, в том числе связанные с безопасностью. Поэтому обнаружение и устранение ошибок в коде — обязательная составляющая при создании любого веб-сайта. Доверить разработку сложного корпоративного сайта лучше всего специалистам (если вы таковым не являетесь), ведь некоторые ошибки трудно обнаружить, а многие из них могут в дальнейшем приводить к замедлению загрузки и неправильному отображению веб-страниц в браузерах компьютеров интернет-пользователей. Слишком долгая загрузка может вызвать отток посетителей с сайта и снижение качества трафика, что снижает прибыль и эффективность от использования коммерческих интернет-проектов.

Сперва HTML и CSS

Основой веб-документа является код, написанный на языке разметки HTML. Язык разметки не стоит путать с языком программирования, а в чем собственно заключается разница подробно написано . В принципе, с помощью набора команд, который предлагает для разработчика сайта HTML, можно задавать все необходимые параметры статичного веб-документа — расположение элементов (блочная разметка), заголовки, абзацы, таблицы, изображения и т.д. А с помощью CSS, специальной надстройки для HTML, можно позиционировать все перечисленные объекты разметки, менять их стиль — цвет, размер, формат и т.п.

Потом JavaScript

Интерактивные и анимированные элементы, например — баннеры, бегущая строка, форма обратной связи, на веб-страницах работают благодаря присутствию сценариев и кода, написанного на серверных или клиентских языках программирования. Очень популярны сценарии, разрабатываемые при помощи языка программирования JavaScript. Такие клиентские сценарии в своей работе не используют возможности сервера и исполняются на стороне компьютера пользователя, то-есть в браузере. Благодаря этому приложения JavaScript отличаются простотой и высокой скоростью работы.

И наконец PHP

В случае, когда требуется написание сложных и объемных кодов, например для форумов или гостевых книг, программисты обращаются за помощью к серверным языкам программирования, и в частности к . Коды PHP выполняются на стороне сервера, поэтому их работа может быть несколько замедлена, поскольку зависит от скорости соединения с удаленным компьютером и степени его загруженности. С помощью PHP и команд SQL (специальный язык запросов к реляционной базе данных) можно организовать взаимодействие сайта с базами данных и создавать интерактивные интернет-проекты – форумы, интернет-магазины, доски объявлений, различные каталоги и т.д.

Основа сайта — программный код was last modified: Март 3rd, 2016 by Admin

Инструкция

Просмотрите исходный код при помощи ее исходника. Исходный файл содержит в себе код, написанный программистом при создании программного обеспечения, после этого он компилируется при помощи специальных иснструментов и превращается в файл установки.

Если вами был утерян файл исходного кода , или он недоступен вам по другим причинам, воспользуйтесь специальными программами-декомпиляторами. Также имеются программы-дизассемблеры. Обратите внимание, что просмотр исходного кода зачастую может стать невозможным в случаях, когда вам не известно, какой язык программирования использовался при его разработке.

Если вы хотите найти код свободной программы, выполните поиск в интернете с соответствующим запросом. Также попробуйте скачать данную программу и в ее меню найти пункт «Просмотр исходного кода ». Обычно это доступно для распространяемых программ.

Будьте осторожны при их использовании, в частности это относится к программам, скачанных не с сайта разработчика, поскольку в исходник может быть заложен вредоносный код, который при установке на ваш компьютер также инсталлирует трояны, клавиатурные шпионы и так далее.

Будьте внимательны при использовании программ-декомпиляторов, поскольку многие разработчики программного обеспечения пользуются специальными программами, которые затрудняют процесс воссоздания исходного кода . Если программа была написана на ассемблере, также принимаются специальные программы.

Средств обратной программной разработки достаточно немало, не используйте их в мошеннических целях или для внесения изменений в программы с закрытым кодом, поскольку зачастую за данные действия предусмотрена определенная ответственность в соответствии с законодательством.

Полезный совет

Не просматривайте код закрытых программ и тем более не вносите в него изменения.

Код программы может быть разным в плане приватности – многие разработчики не выкладывают в его в открытый доступ и условиями лицензионного соглашения накладывают на пользователей ограничения, связанные с его использованием и просмотром. Также имеются программы с открытым кодом, который можно просматривать, редактировать и так далее.

Вам понадобится

  • - программа для открытия исходного кода.

Инструкция

Убедитесь в том, что исходный код программного обеспечения, который вы хотите просмотреть, предназначен для открытого доступа. Для этого зайдите на официальный сайт разработчика программного обеспечения и просмотрите тип лицензии. В случае если исходный код программы закрытый, вы не можете просмотреть его. Это неудобно, однако при такой системе достаточно редко встречаются копии программы с содержанием троянских и других вредоносных программ. В этом и заключается основной минус свободного программного обеспечения.

В случае если у вас свободное программное обеспечение, найдите в меню программы «Исходный код», если такой пункт предусмотрен разработчиком, что бывает крайне редко. Для его просмотра в остальных случаях воспользуйтесь ассемблером или другим сторонним программным обеспечением.

Зачастую для открытия исходника необходимо знать, каким языком программирования пользовались создатели программы при разработке, что определить зачастую очень трудно. Здесь вы можете установить на свой компьютер набор различных программ для открытия исходников, написанных на разных языках.

При использовании свободного программного обеспечения, если у вас имеется такая возможность, просматривайте исходный код перед процессом инсталляции, в особенности, если программа загружалась из неофициального источника. Это поможет защитить ваш компьютер от вредоносных программ, которые устанавливаются вместе с основной.

Также не прибегайте к различным методам внесения изменений в закрытый исходный код программы, зачастую в таких случаях предусмотрена определенная ответственность за нарушение правил лицензионного соглашение между пользователем и разработчиком. Тем более не выкладывайте отредактированные подобные программы в интернет.

Видео по теме

Полезный совет

Проверяйте исходники свободного ПО.

Возможность просмотра исходного кода различных сайтов бывает очень полезна при самостоятельном создании сайта . Вы можете увидеть HTML-код, используя специальные настройки и дополнительные расширения браузера, а также программы для просмотра текстовых файлов.

Вам понадобится

  • - программа браузер;
  • - программа-блокнот.

Инструкция

Найдите в браузере пункт меню "Исходный код сайта". К примеру, в программе Mozilla Firefox его можно найти в разделе «Веб-разработка», который находится в пункте «Инструменты» главного меню, а в браузере Internet Explorer вызов просмотра html-кода осуществляется из пункта «Вид» главного меню. Зайдите на сайт, код которого вы хотели бы изучить. После загрузки страницы выберите инструмент «Исходный код сайта». Программа выдаст специальное окно, в котором вы увидите код. Если содержание страницы отображается некорректно, попробуйте сменить кодировку.

Стандартные функции браузера можно расширить с помощью плагина. Нередко на сайте разработчика программы можно найти расширение, позволяющее просматривать код сайта. К примеру, плагин для Mozilla Firefox называется Firebug, для браузера Opera – DragonFly. Скачайте и установите плагин. Вполне возможно, потребуется перезагрузка браузера. Далее зайдите на нужный сайт. Нажмите на кнопку вызова консоли плагина - она может располагаться на одной из рабочих панелей программы, - после чего появится дополнительное окно, в котором будет отображен исходный код открытой страницы.

Сохраните необходимые страницы сайта с помощью соответствующей функции браузера. Для этого нажмите на пункт главного меню «Файл» и выберите надпись «Сохранить как». Выберите место на компьютере, в котором вы сохраните копию страницы. Затем в выпадающем меню с названием «Тип файла» выберите вариант «Веб-страница, полностью» или «Веб-страница, только HTML». Нажмите на «Сохранить». Повторите процедуру со всеми необходимыми страницами интернет-ресурса. Откройте папку, в которой были сохранены файлы. Выберите одну из страниц и запустите ее с помощью программы блокнота. Вы можете использовать установленную в операционной системе Windows утилиту «Блокнот», но лучше скачайте более удобную программу Notepad++. В ней имеется функция разделения разных типов html-тегов по цветам.

IMEI – это идентификационный код мобильного телефона . В случае кражи или потери мобильника вы сможете попытаться его найти по этому код у, если обратитесь за помощью к сотрудникам органов внутренних дел.

Инструкция

Узнайте IMEI вашего телефона , набрав комбинацию *#06#. Через мгновение на экране вашего мобильника будет отображен этот код . Таким образом можно узнать IMEI абсолютно любой модели сотового телефона .

Возьмите коробку от вашего телефона и осмотрите ее со всех сторон. IMEI мобильника обычно указан недалеко от штрих-код а и имеет вид ряда цифр или тоже штрих-код а. Если есть вероятность того, что эта коробочка может попасть в руки непорядочных людей, спрячьте ее подальше, чтобы они не смогли воспользоваться вашей беспечностью.

Ознакомьтесь с документами на мобильное устройство. В них также обычно указан IMEI. Просмотрите договор, который вы оформляли в салоне связи при покупке телефона . IMEI указан в той же строке, что и «Наименование модели».

Отключите телефон, откройте его заднюю крышку и осторожно выньте аккумулятор. Внутри корпуса вы увидите наклейку с информацией о производителе телефона , модели, а также идентификационный код . Однако на некоторых моделях телефонов IMEI может быть указан не в виде длинного ряда цифр, а только в виде штрих-код а.

Если вы решили купить телефон с рук, попросите продавца предоставить вам все документы на мобильное устройство и сверьте IMEI, набрав*#06# или открыв телефон.

Если у вас похитили телефон или вы его потеряли, позвоните сначала своему оператору связи и заблокируйте номер. После этого обратитесь в полицию и предоставьте сотрудникам внутренних дел всю имеющуюся у вас информацию о времени и месте похищения или пропажи. Но самое главное, что вы должны им сообщить – это идентификационный код вашего мобильного устройства.

Если вы по каким-то причинам так и не смогли узнать IMEI телефона , не обращайтесь на интернет-сайты, предлагающие разнообразные программы и сервисы, которые якобы могут помочь вам не только узнать код мобильника, но и разблокировать старую сим-карту без PIN и PUK. Без доступа к базам данных операторов связи это сделать невозможно. А операторы связи заботятся о безопасности по высшему уровню.

Ключ, которым вы активировали ваше программное обеспечение, вы не можете просмотреть обычным способом, как, например, лицензионный код программы, что хранится в реестре и может быть доступен при его запуске либо с использованием других программ. На основании лицензионного кода вы можете просмотреть код активации на официальном сайте разработчика программы.

Вам понадобится

  • - программа для просмотра лицензионного кода.

Инструкция

Скачайте программу Everest 2006 на ваш компьютер. Установите ее и запустите. В главном окне выберите интересующее вас программное обеспечение, лицензионный код которого вы хотите узнать. В правой части окна при этом должна появиться нужная вам информация. Вы также можете сохранить ее в файл или распечатать. В любом случае, подобную информации лучше всего хранить не в электронном виде либо на съемном носителе, который не собираетесь форматировать.

Просмотрите лицензионный код программы на диске, если вы покупали ее отдельным от компьютера товаром, на коробке от него и так далее. Также информация о коде программного продукта содержится в реестре операционной системы. Для его запуска откройте «Выполнить» в меню «Пуск» и введите regedit в поле появившегося окна.

Найдите в директориях слева пункт, отвечающий за программное обеспечение. Выберите нужную вам программу, просмотрите папки на наличие информации о лицензии. Скопируйте его.

Перепишите лицензионный код, полученный одним из вышеуказанных способов. Зайдите на сайт разработчика программного обеспечения, активационной код которой вас интересует. Найдите пункт активации и регистрации программ, если таковой имеется на сайте. Введите лицензионный код вашего программного продукта и посмотрите доступный для него код активации. Этот способ удобен зачастую в тех случаях, когда активация программного продукта доступна на сайте.

Если для вашей программы недоступен такой способ активации, узнайте код при переустановке. Удалите ее полностью через пункт меню панели управления «Установка и удаление программ» и удалите запись об активации, предварительно убедившись в наличии у вас лицензионного а. После установки выполните активацию, просмотрев ключ, подходящий для вашего лицензионного кода. Перепишите его.

Полезный совет

Всегда сохраняйте информацию, необходимую для активации программы в дальнейшем, чтобы не проходить процедуру получения ключа заново.

Рассмотрим, как определить исходный код страницы , ведь этот параметр очень важен при работе в интернете. Если вам нужна какая-либо новость, теги или картинка, но как ее прописать вы не знаете, всегда можно скопировать информацию с другого сайта, узнав исходный код страницы , если он не закод ирован разработчиками сайта. Важен исходный код в постраничных файлах, которые не являются программами, с помощью исходного код а можно работать со страницами и редактировать их.

Вам понадобится

  • Инструкция по просмотру исходного кода страницы.

Инструкция

Чтобы была видима, она прописывается с исходным код ом. Залить ее с код ом можно, если вы владелец ресурса, либо изменить с помощью блокнота, редактора, используя для этого специальные расширения. Пользователь так же может изменить страницу, отредактировав файл и внося в страницу свои . В - браузерах просмотр исходного код а осуществляется с помощью различных команд, рассмотрим их подробнее.

Для Internet Explorer выбирайте вкладку «вид», затем «исходный код страницы » либо пункт можно выбрать, нажав на правую кнопку мыши. Чтобы зашифрованный разработчиками код в этом заходим в меню «сервис», потом «средства разработчика», нажимаем стрелочку, выделяем нужный элемент на и код становиться . Далее жмем на значок и код в текстовом формате и копируем из его составляющих в html.

Браузер Mozilla Firefox предоставляет возможность просмотра с помощью простой команды «Ctrl+U» или в меню «инструменты» выбрать подстроку «посмотреть исходный код ». Просмотреть зашифрованную информацию в Mozilla Firefox можно установив специальное Web Developer, выбираем в меню «код » строку «сгенерираванный код » и внизу страницы появляется значение исходного код а. Копируем файл в буфер обмена или сохраняем с расширением page.htm.

При использовании Google Chrome в основном меню «инструменты» выбирайте подстроку «посмотреть исходный код », далее с помощью правой кнопки мыши открываете пункт «просмотр код а страницы » либо с помощью клавиш "Ctrl + U".

Для браузера Safari в меню находим «посмотреть html-код », так же нажав правую кнопку мыши, открываем подстроку «посмотреть источник» или воспользуемся сочетанием клавиш "Ctrl + Alt + U".

Обратите внимание

Возможность просмотра зашифрованной информации об исходном коде осуществляется с помощью двух браузеров.

Полезный совет

Если вы не являетесь разработчиком сайта, изменить страницу вы сможете только для своего пользования.

Программы является его лицензионный код, на основе которого генерируется код активации. Делается это посредством связи через интернет-под ение или по телефону, также для некоторых разработчиков предусмотрены и другие способы активации.

Для того, чтобы программа выполняла предписанные ей действия, например, вычисляла, выводила результат, реагировала на действия пользователя, например, на нажатие кнопок, выбор строк из списка, необходим программный код.

Программный код - это набор слов и символов языка программирования.

Алфавит - это полный набор букв, цифр и символов, принятых в языке для обозначения данных и действий над ними.

Алфавит языка Visual Basic включает следующий набор символов :

Прописные (A - Z) и строчные (а - z) буквы латинского алфавита;

Цифры от 0 до 9;

Знаки арифметических операций (в порядке возрастания приоритета): +, -, *, /, |, ^;

Знаки операций отношения: =, <, >.

Знаки препинания и разделители: ,  . : ; ();

В алфавит языка входят также зарезервированные слова, которые не могут быть использованы в качестве имен переменных или процедур. Примеры зарезервированных слов: Dim, Sub, Integer и т.д. По умолчанию для выделения ключевых слов в окне редактирования кода Visual Basic используют шрифт синего цвета.

Слова и символы должны быть записаны строго по правилам языка, без орфографических и пунктуационных ошибок. Именно точное написание позволит компьютеру однозначно понять и выполнить программу.

Окно программного кода

Программный код записывается в окне кода. Такое окно имеется у каждой формы.

Открыть окно кода:

1 способ - в окне Проводник Проекта щелкнуть правой кнопкой по нужной форме и в открывшемся меню выбрать Показать код.

Примечание : окно кода может быть и не связано с формой. Отдельное окно кода называется Модуль . Модули в окне Проводник проекта сгруппированы в группу Модули . Для открытия окна с кодом модуля нужно в окне Проводник проекта дважды щелкнуть по имени модуля.

2 способ - дважды щелкнуть по элементу управления на форме или по самой форме в окне формы.

Примечание : при этом не только открывается окно кода, но и создается процедура обработки события (см. ниже).

Структура окна кода:

Рис. 7. Окно программного кода.

    Список элементов управления

    Список событий элементов управления

    Процедура (код)

Процедуры

Поскольку при открытии холодильника загорается лампа, а при открытии крана - вытекает вода, то можно сказать, что при возникновении события открытие холодильника выполняется одна процедура, а событие открытие крана вызывает другую процедуру. Аналогично и программный код состоит из отдельных процедур, каждая из которых выполняет свои определенные для нее действия, например, одна процедура зажигает лампу, другая включает (накачивает) воду.

Visual Basic - процедурный программирования язык. Это означает, что в нем можно создавать блоки программного кода, на которые затем можно ссылаться по имени. После того как блок кода получит имя, он может быть вызван и выполнен. Это похоже на программу в программе. Маленькие программы, "живущие" в больших программах, называются функциями, если они возвращают какое-либо зна­чение, и подпрограммами, если они значений не возвращают.

Подпрограммы и функции делают процесс программирования более простым и быстрым, а создаваемый код - более надежным. Создание собственных подпрограмм и функций - первый шаг к разработке инкапсулированного и повторно используемого кода. Под инкапсуляцией следует понимать сокрытие реализации свойств и мето­дов объекта за его внешним интерфейсом.

Процедура (подпрограмма) - это обособленный фрагмент программного кода, с помощью которого решается обычно небольшая задача, это логически построенный, небольшойпрограммный блок, на которые делится вся программа.

Если процедура может выполняться только внутри данного программного блока (например, только в этой форме), и её нельзя вызвать из другого программного блока, то такая процедура является локальной. Локальная процедура задается с помощью ключевого слова Private Sub.

Если процедуру можно вызвать из других программных блоков (например из другой формы), то такая процедура является глобальной. Глобальная процедура задается с помощью ключевого слова Public Sub.

По умолчанию, если перед ключевым словом Sub, отсутствует ключевое слово, то эта глобальная процедура.

Процедуры бывают:

    Процедуры обработки событий . Выполняются при возникновении какого-либо события в каком-либо элементе управления (или форме). Событийная процедура всегда связана с каким-то объектом. Чтобы вызвать событийную процедуру объекта, достаточно по этому объекту сделать двойной левый щелчок.

    Произвольные процедуры . Она не связаны с событиями и могут быть вызваны из любой другой процедуры и выполнены в любое время. Если в программе во всех формах встречается один и тот же программный блок, то его можно записать только один раз и в одном месте, в виде глобальной общей программы. Запуск общей программы не связана с объектом и с событием, а происходит, когда к нему обращаются из других программных блоков. Вызов общей процедуры из той же формы: ИмяПроцедуры (СписокПараметров) . Вызов общей процедуры из другой формы: ОБЪЕКТ. ИмяПроцедуры (СписокПараметров) . Общая процедура бывает и локальной Private и глобальной Public

Структура процедуры

Процедура состоит из следующих элементов:

    Заголовок процедуры - отмечает начало процедуры, ее тип, назначение (событие).

Пример заголовка процедуры, которая выполняется при щелчке мышью по кнопке с именем Command1.

    Слово Private означает - закрытая, то есть процедура принадлежит только данной форме или модулю и не может быть использована другими контейнерами (формами, модулями). Если это слово опустить, то процедура будет открыта для других контейнеров.

    Sub - процедура.

Примечание : кроме процедур бывают функции - function. Функции не связаны с событиями и дополнительно могут возвращать результат своей работы (вычислений).

    Элемент управления (или имя формы): здесь указывается точное имя элемента, хранящееся в свойстве Name.

    Событие - наименование события. Вот некоторые события:

    Click - щелчок мышью;

    DblClick - двойной щелчок мышью;

    KeyPress - нажатие клавиши;

    UnLoad - выгрузка формы (при закрытии формы, завершении программы);

    Activate - активизация формы (при щелчке по форме, когда ее заголовок подсвечивается);

    Deactivate - деактивизация формы (при щелчке по другой форме).

    Initialize - при создании объекта типа форма.

    Resize - при изменении размера формы

    Terminate - в момент удаления формы

    Аргументы - это исходные данные, передаваемые процедуре для обработки.

У произвольных процедур заголовок следующий:

Имя процедуры должно быть уникально , должно начинаться с буквы, не должно содержать пробелов и других знаков, кроме знака подчеркивания. По имени происходит вызов процедуры, когда необходимо ее выполнить.

    Окончание процедуры - заканчивает программный код процедуры: End Sub

Примечание : у функций: End Function

    Тело процедуры - это строки между заголовком и окончанием. Их количество неограниченно. Строки содержат предписания, которые должны выполниться при вызове процедуры (возникновении события).

Подпрограмма (Sub ) - представляет собой процедуру, выполняющую про­граммный код в пределах своего блока и не возвращающую значения. Синтаксис про­стой подпрограммы таков:

( Private | Public ) Sub SubMain ()

..строки кода End Sub

Область видимости подпрограммы;

Sub -тип процедуры (а именно - подпрограмма);

subMain имя, присваиваемое подпрограмме;

End Sub -окончание блока кода подпрограммы.

Создание процедуры

Для создания процедуры выполните следующее:

    1 способ - дважды щелкните по нужному элементу управления или форме. Откроется окно кода, а в нем появится заголовок и окончание процедуры. Если необходимо другое событие, то его выбирают с помощью списка в верхнем правом углу окна кода.

    2 способ - откройте окно кода, выполните Инструменты → Добавить процедуру → укажите имя и параметры процедуры → Ok.

    3 способ - откройте окно кода и введите нужные строки с клавиатуры.

В результате должно получиться:

Private Sub Command1_Click()

Вызов процедур на исполнение

    Чтобы выполнилась процедура обработки события, это событие должно произойти.

    Для выполнения произвольной процедуры в теле другой процедуры указывают имя этой процедуры.

Private Sub Command1_Click()

Здесь при нажатии на кнопку Command1 возникает событие Click (щелчок мышью) и вызывается и выполняется процедура Kvadrat.

Код процедуры выполняется построчно и сверху вниз.

Функция (Function ) - это процедура, которая выполняет строки своего кода и возвращает некоторое значение. Синтаксис простой функции таков:

Function FunctionName() As Datatype

... строки кода

FunctionName = ReturnValue End Function

Область ви­димости функции;

Function - ключевое слово Visual Basic, указывающее на то, что это именно функция;

FunctionName () - имя, присваиваемое функции;

AS - ключевое слово Visual Basic, предваряющее назначение типа данных;

DataType тип данных возвращаемого значения;

ReturnValue значение, которое должно быть при­своено имени функции (это очень важный момент!);

End Function -конец данного блока кода.