Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Введение в программирование на языке Visual C#

Сложный циклический процесс. Вложенные циклы

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

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

Рис. 78. Общий вид в алгоритме сложного циклического процесса Синтаксис операторов сложного цикла следующий:

for (і = N і ; і <= N2 ; і++) //внешний цикл

for (j = M, ; j <

{

Pi;

= М2 ; j++) //внутренний цикл

тело цикла

При первом вхождении в цикл параметр внешнего цикла i принимает значение, равное Nj. Управление передается во внутренний цикл, в котором параметр цикла j принимает значение, равное Mi, и выполняется оператор, операторы, которые записаны во внутреннем цикле. Затем параметр внутреннего цикла j увеличивается на 1, и вновь выполняется тело цикла. Операторы РЬ...РП будут выполняться до тех пор, пока результат выражения, записанного в заголовке цикла, будет равен true.

Затем параметр внешнего цикла i увеличивается на 1, и вновь начинает свою работу внутренний цикл, в котором параметр цикла j будет изменяться от Mj до Мг, и при каждом прохождении цикла будут выполняться операторы Pi,... Р„. Внешний цикл закончит свою работу, когда результат выражения, записанного в заголовке цикла, будет равен false.

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

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

В листинге 61 приведен код процедуры, отвечающий за решение задачи.

Листинг 61

namespace ConsoleApplicationl {

class Program {

static void Main(string[] args)

{

for (int i = 1; i <= 5; i++)

{

for (int j = 1; j <= 5; j++)

Console.WriteLine(i + + j + "=" + i * j);

Console.WriteLine();

}

Console.ReadLine();

}

}

}

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

Рис. 79. Вывод таблицы умножения

Упражнения к параграфу

Вопрос 1. Сколько раз будет выполнен оператор d = 5 в процессе выполнения фрагмента программы?

private void buttonl_Click(object sender, EventArgs e)

{

int d = 4; int r = 15;

for (int i = d+1; i <= r-1; i++) d = 5;

textBoxl.Text = d.ToString("n");

}

Ответ. Подставив значения переменных d и г, получаем, что параметр цикла i меняется от 5 до 14. При первом вхождении в цикл параметр цикла примет значение 5, а далее будет автоматически увеличиваться на +1, пока не достигнет величины верхней границы 14. Следовательно, оператор выполнится 10 раз.

Вопрос 2. Определите, какое значение будет в ячейке г после выполнения фрагмента программы?

private void buttonl_Click(object sender, EventArgs e)

{

int r = 50; int s = 0;

for (int i = 5; i >= 1; i--)

{

s = 1 ; r = r - s ;

}

textBoxl.Text = r.ToString("n");

}

Ответ. При первом вхождении в цикл параметр цикла примет значение 5. В программе используется цикл по убывающим значениям, следовательно, параметр цикла при каждом выполнении тела цикла будет уменьшаться на -1. При первом вхождении в цикл переменная s принимает значение, равное 1. Выполняется оператор г = г - s. После его выполнения в ячейке г будет значение 49. Затем параметр цикла уменьшается на 1 и будет равен 4. Вновь выполняются операторы s = 1 и г = г - s. Выполняя каждый раз операторы цикла и подсчитывая полученные значения, получим в ячейке г значение, равное 45.

Вопрос 3. Определите, какое значение находится в ячейке у после выполнения фрагмента программы?

private void buttonl_Click(object sender, EventArgs e)

{

int a = 7; int d = 5; int у — 0;

for (int i = 1; i <= 3; i++)

{

y = d;

у = a + 2 ;

}

textBoxl.Text = у.ToString("n");

}

Ответ. В цикле с оператором for параметр цикла будет меняться от 1 до 3. В цикле выполняются два оператора: у = йиу = у + 2. Операторы выполняются 3 раза. Каждый раз при прохождении цикла в ячейке у будет находиться значение 5 (у = d), а после выполнения оператора у = а + 2 значение ячейки у будет равно 9. Следовательно, после выполнения фрагмента программы в ячейке у будет находиться значение 9.

Вопрос 4. Определите, какое количество ошибок в следующем фрагменте программы:

private void buttonl_Click(object sender, EventArgs e)

{

int a, d; double y=0; a = 17.0; d = a;

for (int i = 3; i = 1; i--)

{

if (a != d) a = a + 1

else

У = a;

}

textBoxl.Text = у.ToString("n");

}

Ответ. Первая ошибка, которую должен устранить пользователь, — изменить описание переменной а, которая описана целочисленным типом данных. Исправив первую ошибку, придется изменить описание переменной d, так как изначально она описана типом int, и присваивать ей значение переменной а (тип double) недопустимо. Третья ошибка находится в заголовке цикла for (int i = 3; i = 1; i~), поскольку при такой записи результат выражения, записанного в скобках, будет целочисленного типа (должен быть логического), и цикл не выполнится. Четвертая ошибка — в записи условного оператора. Необходима точка с запятой перед оператором else.

Вопрос 5. Определите, какое значение находится в ячейке у после выполнения фрагмента программы?

private void buttonl_Click(object sender, EventArgs e)

{

int a = 1; int у — 1;

for (int i = 2; i < = 5; i++)

{

a = a + 10 ; у = a + 10 ;

}

textBoxl.Text = у.ToString("n");

}

Ответ. При первом вхождении в цикл параметр цикла примет значение нижней границы = 2. В цикле будут выполняться два оператора, таким образом, в ячейке а оказывается значение 11, а после выполнения оператора у = а + 10 ячейка у = 21. Параметр увеличивается на 1 и будет равен 3, выполняется оператор а = а + 10, ив ячейке а оказывается число 21, а в ячейке у находится число 31. Выполнив подобные действия еще 2 раза, получим в ячейке у значение, равное 51.

Вопрос 6. Определите, какое значение находится в ячейке у после выполнения фрагмента программы?

private void buttonl_Click(object sender, EventArgs e)

{

int a = 5; int d = 5; int у = 0;

for (int i = 7; i >= 2; i--)

{

a = d; у = a + 10 ;

}

textBoxl.Text = у.ToString("n");

}

Ответ. При первом вхождении в цикл параметр цикла примет значение = 7. В ячейке а оказывается значение = 5, а в ячейке у после выполнения оператора у = а + 10 будет значение = 15. В цикле по убывающим значениям параметра значение ячейки i уменьшится на 1 и будет равно 6, выполняется оператор а = d, и в ячейке а снова оказывается число 5. В ячейке у после выполнения оператора у = а + 10 будет значение 15. Эти действия будут повторяться до тех пор, пока параметр цикла не достигнет значения границы = 2. Происходит выход из цикла. В ячейке у находится значение, равное 15.

Вопрос 7. Определите, какое значение находится в ячейке у после выполнения цикла с оператором for?

private void buttonl_Click(object sender, EventArgs e)

int а = 5 ; int d = 5 ; int у — 0;

for (int i = 2; i <= 5; i++) у = d + 10; у = a + 10 ; у = а * d ;

textBoxl.Text = у.ToString("n");

}

Ответ. В данном фрагменте программы при выполнении цикла отсутствуют фигурные скобки, обознающие выполнение блока операторов. Следовательно, в цикле будет выполняться один оператор у = d + 10; При первом прохождении цикла в ячейке у оказывается значение, равное 15. Параметр цикла увеличивается на 1. Вновь выполняется оператор у = d + 10, и так как значение ячейки d не изменялось, то значение ячейки у вновь оказывается равным 15. Эти действия будут повторяться до тех пор, пока параметр не достигнет значения верхней границы = = 5. Происходит выход из цикла, и в ячейке у находится значение = 15. Поставив вопрос к данному упражнению по-другому: «Какое значение находится в ячейке у после выполнения фрагмента программы?» — следует проанализировать еще два оператора, где изменяется значение у, и получить значение, равное 25.

Вопрос 8. Определите, какое количество ошибок в следующем фрагменте программы:

private void buttonl_Click(object sender, EventArgs e)

{

int a; double d; a = 5,1 ; d = 5.1 ;

for (int i = 2; i <= 5; i++) у = d + 10; у = a + 10 ;

textBoxl.Text = у.ToString("n");

}

Ответ. Первая ошибка заключаются в отсутствии описания переменной i, вторая в отсутствии описания и инициализации переменной у. Третья ошибка в операторе а = 5,1; Здесь в дробном числе в качестве разделителя находится запятая. Исправив ситуацию, пользователь вновь получит сообщение об ошибке, на этот раз связанной с неправильным описанием переменной а. Она должна быть вещественного типа. Таким образом, в данном фрагменте программы допущено 4 ошибки.

Вопрос 9. Сколько раз будет выполнен цикл в следующем фрагменте программы?

private void buttonl_Click(object sender, EventArgs e)

{

int n= 2; int s = 13; int у = 0;

for (int i =s + 2; i >= n+4; i--)

У - У + 1;

textBoxl.Text = у.ToString("n");

}

Ответ. Подставив исходные значения переменных в заголовок цикла, видим, что параметр цикла і в цикле по убывающим значениям будет меняться от 15 до 6, изменяясь при этом с шагом -1. При первом вхождении в цикл параметр цикла примет значение, равное 15, затем он будет равен 14, 13, 12 и т.д. Цикл будет выполняться до тех пор, пока параметр не станет = 6. Таким образом, цикл выполнится 10 раз.

Примеры решения задач

Задача 1. Последовательно вводятся 6 чисел. Определите, каких среди них больше: положительных или отрицательных.

Разработка алгоритма решения задачи представлена на рис. 80.

Комментарий: ячейки рої и о!г выполняют роль счетчиков. Счетчики в цикле будут увеличиваться на единицу операторами оіг = оіг + 1 и рої = рої + 1, поэтому для того чтобы конечный результат не был искажен, ячейки предварительно обнуляются операторами ро! = 0 и о!г = 0.

Рис. 80. Алгоритм решения задачи

В листинге 62 приведен код процедуры, отвечающий за решение задачи. Листинг 62

namespace WindowsApplicationl

public partial class Forml : Form

{

public Forml()

{

InitializeComponent();

}

private void Forml_Load(object sender, EventArgs e)

{

int pol = 0 ; //Счетчик положительных чисел предварительно обнуляется

int otr = 0 ; //Счетчик отрицательных чисел предварительно обнуляется

for (int i = 1; i <= 6; i++)

{

string a = Microsoft.VisualBasic.Interaction.InputBox ("Введите число", "Заголовок окна", -1, -1);

int chislo = Convert.ToIntl6(a);

if (chislo < 0)

otr = otr + 1;//Счетчик отрицательных чисел увеличивается на единицу

else

pol = pol + 1 ; //Счетчик положительных чисел увеличивается на единицу

}

if (pol > otr)

MessageBox.Show("Положительных чисел больше", "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

if (pol < otr)

MessageBox.Show("Отрицательных чисел больше",

"Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

if (pol == otr)

MessageBox.Show("Количество чисел одинаково",

"Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

Application.Exit();

}

}

}

Задача 2. Последовательно вводятся 5 вещественных чисел. Найдите минимальное из положительных чисел.

Разработка алгоритма решения задачи представлена на рис. 81.

Комментарий: для реализации алгоритма поиска минимального числа мы отводим ячейку min, в которую предварительно заносим любое большое значение, например, в данной программе +32767, оператором min = 32767 (тип short). С помощью метода Convert.ToDouble() преобразовываем строковое представление переменной в числовое значение. В цикле введенное пользователем число сравнивается с хранящимся в ячейке min, и если оно меньше, то введенное число заносится в ячейку min оператором min = chislo. Таким образом, к моменту завершения цикла в ячейке min будет находиться минимальный элемент.

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

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

В листинге 63 приведен код процедуры, отвечающий за решение задачи.

Листинг 63

namespace WindowsApplicationl

{

public partial class Forml : Form

{

public Forml()

{

InitializeComponent();

}

private void Forml_Load(object sender, EventArgs e)

{

double min = 32767 ;

for (int i = 1; i <= 5; i++)

{

string a =

Microsoft.VisualBasic.Interaction.InputBox("Введите число", "Заголовок

окна", "", -1, -1);

double chislo = Convert.ToDouble(a); if (chislo > 0) //Проверка на положительность очередного введенного числа

if (chislo < min) //Поиск минимального элемента min = chislo;

}

MessageBox.Show("Минимальное число =" + min.ToString("n"), "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

Application.Exit();

}

}

Задача 3. Последовательно вводятся N целых чисел. Найдите максимальное из отрицательных значений.

Разработка алгоритма решения задачи представлена на рис. 82.

Рис. 82. Алгоритм решения задачи

Комментарий: алгоритм поиска максимального элемента обратен алгоритму поиска минимального числа. Для реализации алгоритма поиска максимального числа отводим ячейку шах, в которую предварительно заносим любое малое значение, например, в данной программе отрицательное число -32768 (тип short) оператором max = -32768. В цикле введенное пользователем число сравнивается с хранящимся в ячейке шах, и если оно больше, то введенное число заносится в ячейку шах оператором max = chislo. Таким образом, к моменту завершения цикла в ячейке шах будет находиться максимальный элемент.

В листинге 64 приведен код процедуры, отвечающий за решение задачи.

Листинг 64

namespace WindowsApplicationl {

public partial class Forml : Form {

public Forml()

{

InitializeComponent();

}

private void Forml_Load(object sender, EventArgs e)

{

int max = -32768 ;

//Ввод количества чисел, которые будут обрабатываться в

цикле

string п_ =

Microsoft.VisualBasic.Interaction.InputBox("Введите количество чисел", "Заголовок окна", -1, -1);

int n = Convert.ToIntl6(n_);

for (int i = 1; i <= n; i++)

{

string chislo_ =

Microsoft.VisualBasic.Interaction.InputBox("Введите число", "Заголовок

окна", -1, -1);

int chislo = Convert.Tolntl?(chislo_); if (chislo < 0) //Проверка на положительность очередного введенного числа

if (chislo > max) //Поиск максимального

элемента

max = chislo;

}

+

чисел

MessageBox.Show("Максимальное из отрицательных max.ToString("n"), "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

Application.Exit();

}

}

}

Задача 4. Последовательно вводятся 5 вещественных чисел. Найдите количество отрицательных чисел и минимальное из отрицательных.

Рис. 83. Алгоритм решения задачи

В листинге 65 приведен код процедуры, отвечающий за решение задачи.

Листинг 65

namespace WindowsApplicationl

{

public partial class Forml : Form

{

public Forml()

{

InitializeComponent();

}

private void Forml_Load(object sender, EventArgs e)

{

int kolotr = 0 ;

double min = 32767 ;

for (int i = 1; i <= 5; i++)

{

string chislo_ =

Microsoft.VisualBasic.Interaction.InputBox("Введите число", "Заголовок окна", -1, -lb-

double chislo = Convert.ToDouble(chislo_); if (chislo < 0)

kolotr = kolotr + 1 ; //Ячейка kolotr накапливает количество отрицательных чисел

if (chislo < min)

min = chislo;

}

if (kolotr == 0)

MessageBox.Show("Нет отрицательных чисел");

else

{

MessageBox.Show("Количество отрицательных чисел = " + kolotr.ToString("n"), "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

MessageBox.Show("Минимальное из них = " + min.ToString("n"), "Заголовок окна", MessageBoxButtons.OK,

MessageBoxIcon.Information);

}

Application.Exit();

}

}

}

Задача 5. Последовательно вводятся N целых чисел. Найдите количество положительных чисел и максимальное из них.

Разработка алгоритма решения задачи представлена на рис. 84.

Рис. 84. Алгоритм решения задачи

В листинге 66 приведен код процедуры, отвечающий за решение задачи.

Листинг 66

namespace WindowsApplicationl

{

public partial class Forml : Form

{

public Forml()

{

InitializeComponent();

}

private void Forml_Load(object sender, EventArgs e)

{

int max = -32768; int kolpol = 0;

//Ввод количества чисел, которые будут обрабатываться в

цикле

string п_ =

Microsoft.VisuaiBasic.Interaction.InputBox("Введите количество чисел "Заголовок окна", -1, -1);

int n = Convert.Tolntl?(n_); for (int i = 1; i <= n; i++)

{

string chislo_ =

Microsoft.VisualBasic.Interaction.InputBox("Введите число", "Заголовок

окна ", "", -1, -1);

int chislo = Convert.Tolntl?(chislo_);

if (chislo > 0) //Проверка: положительно число или нет?

kolpol = kolpol + 1 ;

if (chislo > max) //Поиск максимального числа max = chislo ;

}

if (kolpol == 0)

MessageBox.Show("Нет положительных чисел");

else

{

MessageBox.Show("Количество положительных чисел = " + kolpol.ToString("n"), "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

MessageBox.Show("Максимальное из них = " + max.ToString("n"), "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

Application.Exit();

}

}

}

Задача 6. Последовательно вводятся 5 целых чисел. Найдите количество положительных чисел и их среднее арифметическое.

Разработка алгоритма решения задачи представлена на рис. 85.

Комментарий: поиск среднего арифметического положительных значений заключается в нахождении суммы чисел (ячейка sum), нахождения их количества (ячейка kolpol) и вычисления среднего арифметического по формуле

srarifm = sum / kolpol.

В листинге 67 приведен код процедуры, отвечающий за решение задачи.

Листинг 67

namespace WindowsApplicationl

{

public partial class Forml : Form

{

public Forml()

{

InitializeComponent();

}

private void Forml_Load(object sender, EventArgs e)

{

int kolpol = 0 ; int sum = 0 ;

for (int i = 1; i <= 5; i++)

{

string chislo_ =

Microsoft.VisualBasic.Interaction.InputBox("Введите число", "Заголовок

окна", -1, -1);

int chislo = Convert.Tolntl?(chislo_); if (chislo > 0)

{

kolpol = kolpol + 1 ; //Увеличение счетчика на единицу в случае истинности условия

sum = sum + chislo ; //Накапливание суммы

}

}

if (kolpol == 0)

MessageBox.Show("Нет положительных чисел");

else

{

double srarifm = sum / kolpol ;

MessageBox.Show("Среднее арифметическое положительных чисел =" + srarifm.ToString("n"), "Заголовок окна",

MessageBoxButtons.OK, MessageBoxIcon.Information);

MessageBox.Show("Количество положительных чисел =" + kolpol.ToString("n"), "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

Application.Exit();

}

}

}

Задача 7. Вводится последовательность из N целых чисел. Найдите, сколько в ней чисел, равных числу 100, и количество отрицательных чисел.

Разработка алгоритма решения задачи представлена на рис. 86.

Рис. 86. Алгоритм решения задачи

В листинге 68 приведен код процедуры, отвечающий за решение задачи.

Листинг 68

namespace WindowsApplicationl

{

public partial class Forml : Form

{

public Forml()

{

InitializeComponent();

}

private void Forml_Load(object sender, EventArgs e)

{

int kolotr = 0 ; //Счетчик для подсчета количества отрицательных чисел

int к = 0 ; //Счетчик для подсчета количества чисел,

равных числу 100

//Ввод количества чисел, которые будут обрабатываться в

цикле

string п_ =

Microsoft.VisuaiBasic.Interaction.InputBox("Введите количество чисел", "Заголовок окна", -1, -1);

int n = Convert.Tolntl?(n_); for (int i = 1; i <= n; i++)

{

string chislo_ =

Microsoft.VisualBasic.Interaction.InputBox("Введите число", "Заголовок

окна", -1, -1);

int chislo = Convert.Tolntl?(chislo_);

if (chislo == 100) //Проверка: введенное число равно

числу 100

к = к + 1 ; //Увеличение счетчика на единицу в

случае истинности условия

if (chislo < 0)

//Проверка: Введено отрицательное

число?

kolotr = kolotr + 1 ; //Увеличение счетчика на единицу в случае истинности условия

}

MessageBox.Show("Количество отрицательных чисел = " + kolotr.ToString("n"), "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

MessageBox.Show("Количество чисел равных 100 = " + k.ToString("n"), "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

Application.Exit();

}

}

}

Задача 8. Последовательно вводятся 10 вещественных чисел. Определите, сколько из них совпадают с первым числом.

Разработка алгоритма решения задачи представлена на рис. 87.

Комментарий: в ячейку сішіоі заносим первое число. Все последующие введенные числа будем сравнивать в цикле с тем числом, которое находится в ячейке сМ$1о1. В случае совпадения будем увеличивать значение ячейки ко1, которая выполняет роль счетчика, на единицу.

Рис. 87. Алгоритм решения задачи

В листинге 69 приведен код процедуры, отвечающий за решение задачи.

Листинг 69

namespace WindowsApplicationl

{

public partial class Forml : Form

{

public Forml()

{

InitializeComponent();

}

private void Forml_Load(object sender, EventArgs e)

{

int kol = 0 ; string chislol_ =

Microsoft.VisualBasic.Interaction.InputBox("Введите первое число", "Заголовок окна", -1, -1);

double chislol = Convert.ToDouble(chislol_); for (int i = 2; i <= 10; i++) //цикл начинется с 2, т.к. первое число уже введено

{

string chislo_ =

Microsoft.VisuaiBasic.Interaction.InputBox("Введите число", "Заголовок

окна", -1, -lb-

double chislo = Convert.ToDouble(chislo_); if (chislo == chislol) //Проверка: равно ли очередное введенное число первому числу

kol = kol + 1 ; //Увеличение счетчика на единицу в случае истинности условия

}

if (kol == 0)

MessageBox.Show("У вас нет совпадений чисел ", "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

else

MessageBox.Show("С первым числом совпало = " + kol.ToString("n"), "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

Application.Exit();

}

}

}

Задача 9. Последовательно вводятся 10 целых чисел. Найдите разность между максимальным и минимальным из них.

Разработка алгоритма решения задачи представлена на рис. 88.

Комментарий: в задаче реализуются алгоритмы поиска минимального и максимального элементов, описанные выше. По окончании цикла в ячейке шах будет находиться максимальный элемент, а в ячейке min — минимальный элемент. Оператором raznost = max — min находится разность чисел.

В листинге 70 приведен код процедуры, отвечающий за решение задачи.

Листинг 70

namespace WindowsApplicationl

{

public partial class Forml : Form

{

public Forml()

{

}

private void Forml_Load(object sender, EventArgs e)

{

int max = -32768 ;

int min = 32767 ;

for (int і = 1; і <= 10; i++)

{

string chislo_ =

Microsoft.VisualBasic.Interaction.InputBox("Введите число", "Заголовок окна", "", -1, -1);

int chislo = Convert.Tolntl?(chislo_); if (chislo > max) //Реализация алгоритма поиска максимального элемента

max = chislo ;

if (chislo < min) //Реализация алгоритма поиска минимального элемента

min = chislo ;

}

int raznost = max - min ; //Нахождение разности MessageBox.Show("Разность между максимальным и минимальным числом = " + raznost.ToString("n"), "Заголовок окна",

MessageBoxButtons.OK, MessageBoxIcon.Information);

Application.Exit();

}

}

}

Задача 10. Последовательно вводятся 10 целых чисел. Найдите произведение всех положительных и всех отрицательных чисел, предварительно вычислив их сумму.

В листинге 71 приведен код процедуры, отвечающий за решение задачи.

Листинг 71 namespace WindowsApplicationl

{

public partial class Forml : Form

{

public Forml()

{

InitializeComponent();

}

private void Forml_Load(object sender, EventArgs e)

{

int sumotr = 0 ; int sumpol = 0 ; for (int i = 1; i <= 10; i++)

{

string chislo_ =

Microsoft.VisualBasic.Interaction.InputBox("Введите число", "Заголовок

окна", "", -1, -1);

int chislo = Convert.ToIntl6(chislo_);

if (chislo > 0) //Проверка: Положительное число или

нет?

sumpol = sumpol + chislo; //Нахождение суммы

положительных чисел

else

sumotr = sumotr + chislo; //Нахождение суммы

отрицательных чисел

}

чисел

MessageBox.Show("Произведение всех положительных и всех отрицательных чисел = " + proiz.ToString("n"), "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

Application.Exit();

}

}

}

Контрольные вопросы к параграфу

1. Дайте определение циклическому алгоритму.

2. Расскажите о работе оператора цикла for, нарисовав общий вид в алгоритме и общий вид в программе этого оператора.

3. Расскажите о работе цикла с оператором for по убывающим значениям параметра цикла.

4. Расскажите о работе сложного циклического процесса, нарисовав общий вид в алгоритме и общий вид в программе этого оператора.

5. Какой цикл называется внешним, какой внутренним?

Задачи для самостоятельного решения

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

2. Разработайте алгоритм и программу решения следующей задачи: имеется N значений температур, найдите среднюю температуру.

3. Разработайте алгоритм и программу решения следующей задачи: имеется N значений температур, определите среднее значение отрицательных температур.

4. Разработайте алгоритм и программу решения следующей задачи: имеется N значений температур, определите максимальную температуру.

5. Разработайте алгоритм и программу решения следующей задачи: имеется N значений температур, найдите максимальное и минимальное значения температуры.

6. Разработайте алгоритм и программу решения следующей задачи: сумма денег помещена в банк под процент, определите величину вклада в конце каждого года.

 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
 
Популярные страницы