Методические указания для выполнения лабораторных работ и курсовой работы содержание

Вид материалаМетодические указания

Содержание


4Лабораторная работа № 3. Циклические процессы
Первая программа
Вторая программа
Третья программа
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   12

4Лабораторная работа № 3. Циклические процессы


1. Цель работы


Целью работы является изучение форматов циклических операторов и отработка приемов и навыков их применения в программах на языке «С».

2.Циклы

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

Имеется три вида циклов /на самом деле два из них являются всего лишь разновидностями первого/, а именно: цикл while, цикл for и цикл do...while. Рассмотрим их по порядку.

Цикл while

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

Общий формат оператора while:

while (выражение)

оператор

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

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

Цикл for

Цикл for имеется практически во всех языках, включая и Си. Однако, версия этого цикла, используемая в языке Си, отличается большей гибкостью и предостав­ляет больше возможностей. Сущностью этого цикла является выполнение набора операторов некоторое определенное число раз, пока некоторая переменная /называемая индексной переменной/ не пройдет некоторый промежуток значений.

Общий формат цикла for следующий:

for (exp1;exp2,exp3)

оператор

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

- ехр1 обычно используется для присвоения значения индексной переменной;

ехр2 проверяет условие продолжения цикла;

ехр3 обычно модифицирует каким-либо образом индексную переменную. Любое из этих трех выражений может быть опущено, но точки с запятой обязательно должны стоять. Если пропущено выражение ехр2, считается, что оно имеет значение 1 /истинно/, и цикл никогда не заканчивается /бесконечный цикл/.С другой стороны, можно использовать запятую для вложения в каждое из этих трех выражений еще несколько выражений. Обратите внимание, первое и последнее выражения в цикле for состоят из двух выражений каждое, которые служат для инициализации и модификации индексной переменной. Эти выражения можно, конечно, усложнять до бесконеч­ности. Наверное, вам приходилось слышать рассказы об асах языка Си, которые загоняли все свои программы в три выражения оператора for, не счи­тая нескольких операторов, необходимых для выполнения самого цикла.

Цикл do...while

Последним мы рассмотрим цикл do...while: истинно, и выполнение цикла

повторится. Общий формат цикла do ...while:

do оператор while(exp);

Основным различием между циклами while и do...while является то, что оператор в цикле do...while выполняется по крайней мере один раз.

Цикл do...while выполняется, пока условие истинно. Ниже представлены три программы, в которых, используя три разных цикла, решается одна и та же задача - присвоение случайных значений элементам одномерного массива.

Первая программа

#include

#include

#include

#include //это нужно для датчика случайных чисел

#include

void main()

{int mas[30],i,n;

randomize();//инициализация датчика случайных чисел

printf(" Введите n");

scanf("%d",&n);

i=0;

while(i
mas[i]=random(299);// текущему элементу массива- //присваивается случайное значение в диапазоне 0..299.

i++;

}

}


Вторая программа

#include

#include

#include

#include //это нужно для датчика случайных чисел

#include

void main()

{int mas[30],i,n;

randomize();//инициализация датчика случайных чисел

printf(" Введите n");

scanf("%d",&n);

for(i=0;i
mas[i]=random(299);// текущему элементу массива- //присваивается случайное значение в диапазоне 0..299.

}

}

Третья программа

#include

#include

#include

#include //это нужно для датчика случайных чисел

#include

void main()

{int mas[30],i,n;

randomize();//инициализация датчика случайных чисел

printf(" Введите n");

scanf("%d",&n);

i=0;

do{

mas[i]=random(299);// текущему элементу массива- //присваивается случайное значение в диапазоне 0..299.

i++;

}

while(i
}

Если n>0, все три программы работают одинаково. Если n=0, то в первых двух программах вхождения в цикл не будет, а в последней программе цикл выполнится один раз.

3. Варианты заданий

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

1. В двухмерном массиве мас[5][7] найти сумму элементов, расположенных по главной диагонали и отнять от нее сумму элементов первой строки.

2. В двухмерном массиве мас[7][5] найти сумму элементов, расположенных по главной диагонали и отнять от нее сумму элементов третьей строки.

3. В двухмерном массиве мас[6][6] найти сумму элементов, расположенных по главной диагонали и отнять от нее сумму элементов последней строки.

4. В двухмерном массиве мас[5][7] найти сумму элементов, расположенных на побочной диагонале и отнять от нее сумму элементов второй строки.

5. В двухмерном массиве мас[5][5] найти сумму элементов, расположенных на побочной диагонали и отнять от нее сумму элементов четвертой строки.

6. В двухмерном массиве мас[6][7] найти сумму элементов, расположенных на побочной диагонали и отнять от нее сумму элементов последней строки.

7. В двухмерном массиве мас[5][7] найти сумму элементов, расположенных по главной диагонали и отнять от нее сумму элементов первого столбца.

8. В двухмерном массиве мас[7][5] найти сумму элементов, расположенных по главной диагонали и отнять от нее сумму элементов третьего столбца.

9. В двухмерном массиве мас[6][6] найти сумму элементов, расположенных по главной диагонали и отнять от нее сумму элементов последнего столбца.

10. В двухмерном массиве мас[5][7] найти сумму элементов, расположенных на побочной диагонали и отнять от нее сумму элементов второго столбца.

11. В двухмерном массиве мас[5][5] найти сумму элементов, расположенных на побочной диагонали и отнять от нее сумму элементов четвертого столбца.

12. В двухмерном массиве мас[6][7] найти сумму элементов, расположенных на побочной диагонали и отнять от нее сумму элементов последнего столбца.

13. В двухмерном массиве мас[7][7] найти сумму элементов, расположенных на побочной диагонали и отнять от нее разность сумм элементов первого и последнего столбца.

14. В двухмерном массиве мас[6][7] найти сумму элементов, расположенных под главной диагональю, и отнять от нее сумму элементов последнего столбца.

15. В двухмерном массиве мас[8][8] найти сумму элементов, расположенных под побочной диагональю и прибавить к ней сумму элементов третьего столбца.

16. В двухмерном массиве мас[6][7] найти сумму элементов, расположенных на побочной диагонали, и отнять от нее сумму элементов, расположенных на главной диагонали.

17. В двухмерном массиве мас[8][7] найти сумму элементов первой и последней строчки и отнять от нее сумму элементов первого и последнего столбца.

18. В двухмерном массиве мас[6][7] найти сумму нечетных элементов первой строки и отнять от нее сумму четных элементов последнего столбца.

19. В двухмерном массиве мас[6][7] найти сумму элементов, расположенных на побочной диагонали и отнять от нее сумму элементов последнего столбца.

20. В двухмерном массиве мас[6][7] найти сумму элементов, расположенных на побочной диагонали и отнять от нее сумму элементов последнего столбца.

21. В двухмерном массиве мас[6][7] найти сумму элементов, расположенных на побочной диагонали и отнять от нее сумму элементов последнего столбца.