- •Тема 2.5. Основные конструкции языков программирования
- •2.5.1.2. Средства программирования алгоритмов линейной структуры
- •Input [;] [подсказка { ; | , }] список_переменных
- •Input “Введите коэффициенты уравнения a, b, c “, a#, b#, c#
- •Input ;“Радиус круга”; r!
- •2.5.1.3. Средства программирования разветвляющихся структур
- •If выражение then оператор(ы) [else оператор(ы)]
- •2.5.1.4. Средства программирования регулярных циклических структур
- •2.5.1.5. Средства программирования итеративных циклических структур
- •2.5.1.6. Средства описания и работы с одномерными массивами данных
- •Dim v1([imin to] imax) as type [, . . . Vn([imin to] imax) [as type]
- •2.5.1.7. Средства описания и работы с двумерными массивами данных
- •2.5.1.8. Строковые данные и операции над строками
- •Val(строка)
- •2.5.1.9. Средства процедурного программирования в среде qb
- •Dim shared переменная [as тип][, переменная [as тип]]...
- •Intx,y;
- •Void main(void)
- •Int test_score;
- •Void main(void)
- •Void main (void)
- •Void main(void)
- •Void main(void)
- •2.5.2.2. Средства программирования алгоритмов линейной структуры и функций
- •Int main ()
- •Int main ()
- •Void main(void)
- •Voidmain(void)
- •Void main(void)
- •Void main(void) {
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •Void main (void)
- •Int rus (unsigned char r)
- •Int rus (unsignedcharr); или rus (unsignedchar);
- •2.5.2.3. Средства программирования разветвляющихся структур
- •If (выражение) оператор_1; [ else оператор_2;]
- •2.5.2.4. Средства программирования регулярных циклических структур
- •Int main ( )
- •If (br2) break;
- •2.5.2.5. Средства программирования итеративных циклических структур
- •2.5.2.6. Средства описания и работы с одномерными массивами данных
- •Int array[4]; /* array - массив из 4 элементов типа int */
- •Int minmaxel (float*mas, int n, int&min)
- •2.5.2.7. Средства описания и работы с двумерными массивами данных
- •Int w[2][3]; /* двумерный массив из двух строк и трех столбцов
- •Int minimum(int [][exams], int, int);
- •Int maximum(int [][exams], int, int);
- •Void printArray(int [][exams], int, int);
- •Int main()
- •Int minimum(int grades[][exams], int pupils, int tests)
- •Int maximum(int grades [][exams], int pupils, int tests)
- •Void printArray(int grades [][exams], int pupils, int tests)
- •2.5.2.8. Строковые данные и операции над строками
- •Int strlen(char s[])
- •Void testirovanie ()
- •Void testirovanie();
- •Void reshenie();
- •Void main (void)
- •2.5.3. Контрольные вопросы по теме «Основные конструкции языка программирования qb» (вставить из лаб.Работ!)
- •2.5.4. Тестовые задания по теме «Основные конструкции языка программирования qb»
- •End select
- •Тема 2.5. Основные конструкции языков программирования Страница 274
2.5.2.4. Средства программирования регулярных циклических структур
Алгоритмы регулярной циклической структурыхарактеризуются заданным (известным) числом повторений: иногда это число задается явно, иногда его предварительно вычисляют. К таким алгоритмам относятся: алгоритмы вычисления значений функций одной или нескольких переменных, у которых аргументы изменяются в известном диапазоне и с заданным шагом изменения; алгоритмы вычисления конечных сумм и произведений и многие другие. Программирование такой алгоритмической структуры на языкеС++производится при помощи оператораfor..., имеющего следующий формат:
for ( выражение_1 ; выражение_2 ; выражение_3 ) тело_цикла
Выражение_1используется для установления начального значения переменной, управляющей циклом.
Выражение_2это выражение, определяющее условие, при котором тело цикла будет выполняться.
Выражение_3определяет изменение переменных, управляющих циклом после каждого выполнения тела цикла.
В качестве тела_цикламожет быть использован любой оператор, в том числе пустой или составной.
Любое из выражений, а также все сразу, могут быть опущены, при этом разделяющие их символы « ; » пропускать нельзя.
Схема выполнения оператора for:
Вычисляется выражение_1.
Вычисляется выражение_2.
Если значения выражения_2отлично от нуля (истина), выполняется тело цикла, вычисляетсявыражение_3и осуществляется переход к пункту 2, есливыражение_2равно нулю (ложь), выполнение оператораforзавершается и управление передается на оператор, следующий за операторомfor.При отсутствиивыражения_2его значение равно истина.
Существенно то, что проверка условия всегда выполняется в начале цикла. Это значит, что тело цикла может ни разу не выполниться, если условие выполнения сразу будет ложным. Например,
Int main ( )
{
int i,b;
for ( i=1; i<10; i++) b=i*i;
return 0;
}
В этом примере вычисляются квадраты чисел от 1 до 9.
При организации вложенных циклов (цикл в цикле) используются пары операторов for… , которые не должны “пересекаться” друг с другом. Для преждевременного выхода из цикла по условию используется оператор break;.
Заметим, что оператор break нельзя использовать для выхода из нескольких вложенных циклов, а составной оператор, состоящий из двух операторов break, эквивалентен одному оператору break. Т .е. вследующем фрагменте
for (i=0; i<100; i++)
for (j=0; j<100; j++)
{ :
if (a[i][j]<0) { break; break; }
:
}
при выполнении условия a[i][j]<0 завершится выполнение только внутреннего цикла по переменной j, а выполнение внешнего цикла по переменной i продолжится, несмотря на то, что оператор break повторен дважды.
По своей сути оператор break является оператором перехода и операторы, записанные после него, выполняться не будут, если только им не будет передано управление с помощью других операторов перехода.
Для выхода из обоих циклов можно использовать дополнительную переменную, которая будет принимать значение отличное от нуля только при необходимости выхода из внешнего цикла. Например,
for (i=0; i<100; i++)
{ for (br2=j=0; j<100; j++)
{ :
if ( a[i][j]<0 ) { br2=1; break;}
:
}