Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Высокоуровневые методы информатики и программир...docx
Скачиваний:
25
Добавлен:
12.11.2019
Размер:
6.53 Mб
Скачать

Void cPerevozkaPredmetovDlg::OnButton2() //кнопка “Очистить”

{ m_label1.SetCaption(""); m_label2.SetCaption(""); m_label3.SetCaption("");

m_label4.SetCaption(""); m_label5.SetCaption("");

m_edit1=""; m_edit2=""; m_edit3=""; m_edit4=""; m_edit5="";

m_edit6=0; m_edit7=0; m_edit8=0; m_edit9=0; m_edit10=0;

m_edit11=0; m_edit12=0;m_edit13=0;m_edit14=0; m_edit15=0; m_edit16=0;

UpdateData(0); //обновление объектов формы

}

Void cPerevozkaPredmetovDlg::OnButton3() //кнопка “Перевезти”

{ float tekst, maxst=0; char x1, x2, x3, x4, x5, y1, y2, y3, y4, y5; //объявления

UpdateData(1); //обновление значений назначенных объектам переменных

for (x1=0; x1<=1; x1++) //циклы перебора всех вариантов перевозок

for (x2=0; x2<=1; x2++)

for (x3=0; x3<=1; x3++)

for (x4=0; x4<=1; x4++)

for (x5=0; x5<=1; x5++)

if ((x1*m_edit6+x2*m_edit7+x3*m_edit8+x4*m_edit9 +x5*m_edit10)

<=m_edit16) //допустимый вариант перевозки

{ tekst=x1*m_edit11+x2*m_edit12+x3*m_edit13+x4*m_edit14+

x5*m_edit15; //стоимость перевозимых предметов

if (tekst>maxst) //запоминание лучшего варианта перевозки

{ maxst=tekst; y1=x1; y2=x2;y3=x3;y4=x4;y5=x5;}

} //конец циклов перебора всех вариантов перевозки предметов

//вывод лучшего варианта перевозки в поля меток

m_label1.SetCaption((y1*m_edit6*m_edit11> 0) ? "перевозить": "");

m_label2.SetCaption((y2*m_edit7*m_edit12> 0) ? "перевозить": "");

m_label3.SetCaption((y3*m_edit8*m_edit13> 0) ? "перевозить": "");

m_label4.SetCaption((y4*m_edit9*m_edit14> 0) ? "перевозить": "");

m_label5.SetCaption((y5*m_edit10*m_edit15>0) ? "перевозить": "");

}

BOOL CPerevozkaPredmetovDlg::OnInitDialog() //инициализация формы

{ ... //неизменяемая часть функции

OnButton2(); //вызов функции обработки кнопки “Очистить”

return TRUE;

}

8.2. Задачи для программирования

При работе информация вводится и выводится в текстовые поля с надписями, каждая задача оформляется в виде приложения в отдельной папке под номером задачи, например: z_4_2. Если есть варианты, то для каж­дого варианта создается кнопка его вызова. Условие задачи указывает­ся на первой форме или на отдельной форме, вызываемой кнопкой, или в начале текста программы в виде комментария.

8.2.1. Числовые типы, оператор присваивания

  1. Поменять местами значение целых переменных х и у, не используя дополнительные переменные.

  2. Вычислить значения выражений:

а) not odd (n) при n = 0;

б) t and (p mod 3 = 0) при t = True, p = 101010;

в) (х  у <>0) and (у > х) при х = 2, у = 1;

8.2.2. Алгоритмы линейной структуры

  1. Вычислить площадь треугольника со сторонами a, b, c по форму­ле Герона: , где .

  2. Вычислить для усеченного конуса площадь поверхности и объем .

  3. Вычислить высоты треугольника со сторонами а, b, c, организуя ввод данных из блока данных и вывод результатов с их наименованиями.

8.2.3. Алгоритмы разветвляющей структуры

  1. Найти квадрат наибольшего из двух чисел a и b и отпечатать

N = 1, если наибольшим является а, и признак N = 2 ‑ в противном случае.

  1. Определить, попадает ли точка с координатами х, у в круг радиуса r (уравнение окружности ). Вывести признак N = 1, если точка находится внутри круга, и признак N = 0, если точка находится вне круга.

3. По номеру у (у > 0) некоторого года определить с ‑ номер его столетия (учесть, что, к примеру, началом XX столетия был 1901 год).