Пример программы с метками

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

Для работы с метками используются следующие функции:

//Создает новую метку, и устанавливает ее текст в значение str GtkWidget *gtk_label_new( char *str ); //Меняет установленный при создании текст void gtk_label_set_text( GtkLabel *label, char *str ); //Получить текст, отображаемый меткой void gtk_label_get( GtkLabel *label, char **str ); /*. например: char* text; gtk_label_get(label1, но не освобождайте память, занятую возвращенной строкой. */ //Установить выравнивание текста внутри метки: void gtk_label_set_justify( GtkLabel *label, GtkJustification jtype ); /* может принимать значения: GTK_JUSTIFY_LEFT GTK_JUSTIFY_RIGHT GTK_JUSTIFY_CENTER (the default) GTK_JUSTIFY_FILL */ //Устанавливает автоматический перенос текста, если // он не умещается в строку (wrap = TRUE|FALSE): void gtk_label_set_line_wrap (GtkLabel *label, gboolean wrap); //Устанавливает, для каких символов в метке установлено подчеркивание void gtk_label_set_pattern (GtkLabel *label, const gchar *pattern); //Аргумент pattern состоит из символов подчеркивания и пробелов. //Там, где находится символ «_», соответствующий позици символ будет подчеркнут. //Например, маска «__ _ _ » подчеркнет первый, второй, четвертый, шестой символы

Подробно? По-моему, нормально. Виджет легкий, поэтому пример программы приводить не будем.

Что такое UTM метки Как сделать UTM метку и как отслеживать конверсии

Источник: firststeps.ru

Метки и операторы перехода

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

Оператор переходаимеет вид:

Здесь GOTO – зарезервированное слово (перейти на метку).

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

Читайте также:
Программа которая меняет слова местами

label 222, a1, met;

Описанной меткойдолжен быть помечен ровноодин операторпрограммы.

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

Пусть программа содержит последовательность операторов:

x :+ 2; a := b; goto 99;

14 : a := 0; x := b; 99 : y := x; write(x)

В этом случае сначала выполняются операторы x := 2 и a := b, затем следует переход к оператору, помеченному меткой 99, то есть к оператору y := x. После оператора y := x будет выполнен оператор write(x).

NFC метки. Запись, чтение и применение в нашей работе

Задача. Выяснить, имеются или не имеются среди чисел cos(i 3 )sin(in), i = 1, . n, меньшие 0.0001. Если имеются, то выводится “есть”, если нет – “нет” (рис. 7).

var i, n : integer;

for i := 1 to n do

Если оказывается, что некоторое число меньше 0.0001, то следующие числа уже не рассматриваются, следует вывод “есть” и переход на конец программы. Перед end расположен помеченный меткой m1 пустой оператор. Основное назначение пустого оператора – дать возможность выхода из середины программы или составного оператора.

Рис. 7. Пример блок-схемы алгоритма

Программу можно написать с двумя операторами перехода:

var i, n : integer;

for i := 1 to n do

write(‘нет’); goto m2;

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

Работа с массивами

При описании массива необходимо указать общее число входящих в массив элементов и тип этих элементов. Например:

a : array [1..10] of real;

b : array [0..50] of char;

c : array [–3..4] of boolean;

Читайте также:
Программа обеспечения качества пример оформления

При описании массива используются зарезервированные слова ARRAY и OF (массив из). За словом ARRAY в квадратных скобках указывается тип-диапазон, с помощью которого компилятор определяет общее число элементов массива. Тип-диапазон задается левой и правой границами изменения индекса массива, так что массив а состоит из 10 элементов, массив b – из 51, а массив с – из 8.

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

for k := 1 to 10 do a[k] := 0;

В правильно составленной программе индекс не должен выходить за пределы, определенные типом диапазоном. Например, можно использовать элементы a[1], b[38], c[0], но нельзя a[0] или с[38]. Паскаль может контролировать использование индексов в программе на этапе компиляции и на этапе счета.

Проиллюстрируем работу с массивами на примерах.

Задача. Определить количество курсантов в группе, имеющих рост выше среднего.

i, n, k : integer; s : real;

r : array [1..m] of real;

Источник: studfile.net

Инструкции с метками

Метки используются для передачи управления программой непосредственно указанному оператору.

Синтаксис

labeled-statement :
identifier : statement
case constant-expression : statement
default : statement

Область метки — это вся функция, в которой она объявлена.

Комментарии

Существует три типа операторов с метками. Все они используют двоеточие ( : ) для отделения определенного типа метки от оператора . Метки case и default относятся к операторам case.

#include using namespace std; void test_label(int x) < if (x == 1)< goto label1; >goto label2; label1: cout int main() < test_label(1); // in label1 test_label(2); // in label2 >

Читайте также:
Что такое программа в машине

Метки и goto оператор

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

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

Метка имеет функцию область и не может быть повторно объявлена в функции. Однако одно и то же имя может использоваться как метка в разных функциях.

// labels_with_goto.cpp // compile with: /EHsc #include int main() < using namespace std; goto Test2; cout //Output: At Test2 label.

Метки в инструкции case

Метки, отображаемые case после ключевое слово, также не могут отображаться за пределами switch оператора . (Это ограничение также применяется к default ключевое слово.) В следующем фрагменте кода показано правильное case использование меток:

// Sample Microsoft Windows message processing loop. switch( msg ) < case WM_TIMER: // Process timer event. SetClassWord( hWnd, GCW_HICON, ahIcon[nIcon++] ); ShowWindow( hWnd, SW_SHOWNA ); nIcon %= 14; Yield(); break; case WM_PAINT: memset( hDC = BeginPaint( hWnd, EndPaint( hWnd, break; case WM_CLOSE: KillTimer( hWnd, TIMER1 ); DestroyWindow( hWnd ); if ( hWnd == hWndMain ) PostQuitMessage( 0 ); // Quit the application. break; default: // This choice is taken for all messages not specifically // covered by a case statement. return DefWindowProc( hWnd, Message, wParam, lParam ); break; >

Источник: learn.microsoft.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru