Слайд 1Лекция 5.
РВП
дисциплина «Программирование»
Козьминых Н.М.
Слайд 2Разветвляющиеся вычислительные процессы (РВП)
Козьминых Н.М.
Вычислительный процесс называется ветвящимся, если для
его реализации предусмотрено несколько направлений (ветвей).
Направление ветвления выбирается логической
проверкой, в результате которой возможны два ответа: «да» — условие выполнено и «нет» — условие не выполнено.
Слайд 3Средства организации РВП
Козьминых Н.М.
операция условия ?:
условный оператор if. Три формы:
полная
форма;
неполная форма;
с несколькими условиями.
оператор множественного выбора switch
Слайд 4Условный оператор if
Полная форма оператора
Козьминых Н.М.
if (выражение)
оператор1;
else
оператор2;
выражение — это
некоторое условие, содержащее операции отношения и логические операции
Слайд 5Условный оператор if
Неполная форма оператора
Козьминых Н.М.
if (выражение)
оператор;
Слайд 6Условный оператор if
С несколькими условиями
Козьминых Н.М.
if (выражение1)
оператор1;
else if(выражение2)
оператор2;
else
оператор3;
Слайд 7Условный оператор if
Пример использования №1
Козьминых Н.М.
Нахождение большего значения из двух
переменных а и b
Слайд 8Условный оператор if
Пример использования №2.1
Козьминых Н.М.
Алгоритм с полными вложенными ветвлениями
if(х
0;
else
y = -l;
else
y = l;
Слайд 9Условный оператор if
Пример использования №2.2
Козьминых Н.М.
Алгоритм с неполным ветвлением
у =
1;
if( x
else
y=-l;
Слайд 10Условный оператор if
Пример использования №2.3
Козьминых Н.М.
Алгоритм с несколькими условиями
if(x
у = -1;
else if(x==0)
y = 0;
else
y
= l;
Слайд 11Условный оператор if
Пример использования №3
Козьминых Н.М.
Упорядочить по возрастанию значения в
двух переменных а,b
if(a > b){
с = а;
a = b;
b = c;
}
Слайд 12Условный оператор if
Пример использования №4
Козьминых Н.М.
Вычислить площадь треугольника по длинам
трех сторон
Слайд 13Условный оператор if
Пример использования №4
Козьминых Н.М.
private void btnDecide_Click(object sender,
EventArgs e)
{
double a, b, c,
p, s;
a = Convert.ToDouble(txtA.Text);
b = Convert.ToDouble(txtB.Text);
c = Convert.ToDouble(txtC.Text);
if(a>0 && b>0 && c>0 && a+b>c && a+c>b && b+c>a)
{
p = (a + b + c) / 2;
s = Math.Sqrt(p * (p - a) * (p - b) * (p - c));
txtResult.Text = "Площадь треугольника: " + s.ToString();
}
else
txtResult.Text = "Неверные исходные данные.";
}
Слайд 14Оператор множественного выбора (переключатель) switch
Козьминых Н.М.
Слайд 15Оператор множественного выбора (переключатель) switch
Козьминых Н.М.
switch (выражение) {
case
константа1: список_операторов1; [break;]
case константа2: список_операторов2; [break;]
...........................
[default: список операторов3; break;]
}
break (прерывание) может отсутствовать;
default (блок по умолчанию, если не найдено значение в case) может отсутствовать.
Слайд 16Оператор множественного выбора (переключатель) switch
Козьминых Н.М.
Выполнение оператора:
Вычисляется выражение, если это
необходимо;
Полученное значение последовательно сравнивается с константами, помещенными после служебного слова
case; при первом совпадении значений выполняются операторы, стоящие после двоеточия;
Если ни с одной из констант совпадения не произошло, то выполнятся операторы после слова default.
Слайд 17Оператор множественного выбора
Пример использования №1
Козьминых Н.М.
Перевести числовую оценку знаний учащегося
в ее словесный эквивалент: 5 — «отлично», 4 — «хорошо»,
3 — «удовлетворительно», 2 — «неудовлетворительно».
Слайд 18Оператор множественного выбора
Пример использования №1
Козьминых Н.М.
Слайд 19Оператор множественного выбора
Пример использования №1
Козьминых Н.М.
private void btnDecide_Click(object sender, EventArgs
e)
{
int ball;
ball = Convert.ToInt32(txtBall.Text);
switch
(ball){
case 2:
txtResult.Text = "Это неудовлетворительно !"; break;
case 3:
txtResult.Text = "Это удовлетворительно !"; break;
case 4: txtResult.Text = "Это хорошо !"; break;
case 5: txtResult.Text = "Это отлично !"; break;
default: txtResult.Text = "Нет такой оценки!"; break;
}
}
Слайд 20Пример 1
Козьминых Н.М.
Вычислить значение выражения
Слайд 21Пример 1
Козьминых Н.М.
private void btn_Click(object sender, EventArgs e)
{
double
x, y;
x = Convert.ToDouble(txtX.Text);
if (x >=
13)
y = -Math.Pow(x, 2) - 9;
else
y = -1 / (Math.Pow(x, 2) - 9);
txtResult.Text = y.ToString();
}
Слайд 22Пример 2
Козьминых Н.М.
Создать приложение для вычисления значения по формуле:
Слайд 23Пример 2
Козьминых Н.М.
Список идентификаторов
Слайд 26Пример 2
Козьминых Н.М.
private void btnDecide_Click(object sender, EventArgs e) {
double x, t, z, p, y;
x = Convert.ToDouble(mskX.Text);
t = Convert.ToDouble(mskT.Text);
z = Math.Log(Math.Abs((2* Math.Pow(x, 2) – 1)/(3 * t + 1)), 3.0);
if(z >= 2)
p = 1 / Math.Sqrt(2 + 3 * Math.Pow(z, 2));
else if(z <= 0 && z < 2)
p = z;
else
p = z / Math.Sqrt(2 + 3 * Math.Pow(z, 2));
y = p * Math.Exp(Math.Cos(x) - 1);
if(chkFormat.Checked){
txtZ.Text = String.Format("{0:N4}", z);
txtP.Text = String.Format("{0:N4}", p);
txtY.Text = String.Format("{0:N4}", y);
}else{
txtZ.Text = z.ToString();
txtP.Text = p.ToString();
txtY.Text = y.ToString();
}
}
Слайд 27Пример 2
Козьминых Н.М.
private void Form1_Shown(object sender, EventArgs e){
mskX.Focus();
}
private void mskX_KeyPress(object sender, KeyPressEventArgs
e){
if (e.KeyChar == 13)
mskT.Focus();
}
private void mskT_KeyPress(object sender, KeyPressEventArgs e){
if (e.KeyChar == 13)
btnDecide_Click(sender, e);
}
private void btnExit_Click(object sender, EventArgs e){
Close();
}
private void btnClear_Click(object sender, EventArgs e){
txtZ.Clear();
txtP.Clear();
txtY.Clear();
}
Слайд 29Вопросы…
Спасибо за внимание
Козьминых Н.М.