Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2-ОСНОВЫ ПРОГРАММИРОВАНИЯ.doc
Скачиваний:
88
Добавлен:
10.04.2015
Размер:
650.24 Кб
Скачать
      1. Контрольные вопросы к лабораторной работе «Вычисление значения функции»

  1. Назначение директивы #define.

  2. Оператор условия в Си. Формы записи.

  3. Оператор цикла в Си. Виды циклов в Си.

  4. Ввод нескольких переменных в Си. Способы записи.

  5. Математические функции в Си.

  6. Функция очистки экрана. Особенности её применения.

      1. Вложенные циклы.

Когда один цикл находится внутри другого, то говорят, что это вложенный цикл. Например, рассмотрим программу печати таблицы умножения целых чисел от 2 до 9.

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

ПРИМЕР 22:

Задание

Составить программу, позволяющую вывести на экран таблицу умножения чисел от 2 до 9

Решение

Программа

Блок-схема

#include <stdio.h>

void main ( )

{ int i, j;

for(i=2; i<10; i++) /*внешний цикл*/

{ printf(“\n”);

for(j=2; j<10; j++) /*внутренний цикл*/

printf(“%d * %d = %2d “, i , j , i*j);

}

}

Рассмотрим еще один пример, в котором используется сложный цикл. Приведенная далее программа позволяет найти в заданном интервале все совершенные числа. Напомним, что натуральное число называют совершенным, если оно равно сумме всех своих делителей, не считая его самого. Известно, что все совершенные числа - четные и что первое совершенное число из натурального ряда равно 6. Этим объясняется начальное значение параметра внешнего цикла. Так как все натуральные числа имеют своим делителем единицу , полагаем начальное значение суммы делителей числа S=1. Во внутреннем цикле организуется перебор всех множителей текущего значения N. Из теории чисел известно, что такому испытанию имеет смысл подвергать числа от 2 до N/2, либо даже. Это очень не совершенный алгоритм и если вы захотите выполнить его на ЭВМ, имейте в виду, что программа работает слишком долго. Более эффективный алгоритм можете реализован самостоятельно.

      1. Использование оператора break в циклах

Оператор передачи управления break служит для немедленного завершения цикла, не связанного с проверкой обычного условия окончания цикла. Когда оператор break встречается внутри оператора цикла, то происходит немедленный выход из цикла и переход к выполнению оператора, следующего за оператором цикла. Необходимость в использовании оператора break в теле цикла возникает, когда условие продолжения цикла нужно проверять не в начале итерации (циклы for, while), не в конце итерации (циклы do - while), а в середине тела цикла. В этом случае тело цикла может иметь вид:

{ операторы

if (условие) break;

операторы

}

ПРИМЕР 23:

Задание

Для чисел i и j , причём i<j, определить наименьшее целое, не меньшее их среднего арифметического. Цикл может быть следующим:

Решение

while (i<j)

{ i++;

if (i == j) break;

j--;

}

/*1*/ /*2*/ /*3*/ /*4*/ /*5*/

Так, для начального i=1 и j=6 с помощью оператора break достигается результат, равный 4.

ПРИМЕР 24:

Задание. Вычислить и напечатать в столбик кубы натуральных чисел, начиная с 1. Вычисления прекратить, когда очередное значение будет больше 10000.

Решение

#include <stdio.h>

void main( )

{ int i;

for(i=1; i<500; i++)

{ printf(“\n %d - %d \n", i, i*i*i);

if (i*i*i>= 10000) break;

}

}

/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/

Пояснение. Конечное значение переменной i , равное 500, взято заведомо большее, чем будет получено самое большое натуральное число, чтобы цикл закончился не по условию i<500 , а с помощью оператора break.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]