- •В.А. Новиков Объектно-ориентированное программирование в с#
- •Минск ● вгкс
- •Лабораторная работа 1 Константы, переменные, выражения. Визуальные элементы: кнопка и текстовое поле
- •Лабораторная работа 2 Операторы управления. Визуальные элементы: маскированное поле и установка цвета
- •Лабораторная работа 3 Ввод – вывод на консоль. Визуализация через файлы. Независимый переключатель и шрифты
- •Лабораторная работа 4 Строки. Модальные формы пользователя
- •Лабораторная работа 5 Массивы. Зависимый переключатель
- •Лабораторная 6 Перечисление. Немодальные формы пользователя
- •Лабораторная 7 Регулярные выражения. Таймер
- •Лабораторная работа 8 Прототипы-данные. Визуальный элемент выпадающий список
- •Лабораторная работа 9 Подпрограммы. Визуальный элемент список. Отработка событий клавиатуры
- •Лабораторная работа 10 Обработка исключительных ситуаций. Визуальный элемент закладка tabControl
- •Лабораторная работа 11 Переопределение операций. Закладка TabStrip
- •Лабораторная работа 12 Работа с файлами. Всплывающая подсказка
- •Лабораторная работа 13 Структуры. Перетаскивание элемента на форме
- •Лабораторная работа 14 Построение графиков через Excel. Объект Drawning
- •Содержание
Лабораторная работа 2 Операторы управления. Визуальные элементы: маскированное поле и установка цвета
Цель работы.
Изучить формирование программ с операторами управления. Научиться создавать формы с использованием визуального элемента маскированное поле. Научиться изменять цвет визуальных элементов.
План занятия.
Изучить теоретические сведения формирования программы на С#.
По приведенному листингу программы разработать на Visual Studio программу и отладить ее. Составить программу по индивидуальному заданию.
Краткие теоретические сведения.
Оператор ветвления if.
Синтаксис
if( логическое выражение ) опер.1;
else оператор 2;
Конструкция else необязательна.
Примеры:
if(a<1) b=a;
if(a<1) b=a;
else b=2*a;
if(a<1){// фигурные скобки, если больше одного оператора !
b=a;
c=b+a;
}
else{
b=2*a;
c=(b+a)*(2*b+4);
}
В логическом выражении могут использоваться операции отношения и логические операции.
Операции отношения : < > <= >= = = (равно) != (не равно)
Логические операции: && (логическое и), || (логическое или), ! (логическое отрицание)/
Пример:
(a<=1)&&(b>2)
Условная операция является операцией и может использоваться в выражениях:
b>a?b:a; // если окажется b>a, то результат операции равен b, иначе a.
Пример:
y=x+x>1?0:1+Math.Sin(x);
Оператор ветвления switch.
switch (выражение целого или строкового типа)
{
case конст.1:
операторы 1
case конст.2:
операторы 2
………..
default:
операторы 0
}
Особенность switch: если в операторе i не указан оператор break, то будут выполняться операторы нижеследующих case:
switch (k)
{
case 1: a = 1;
case 2: a = 2;
default: a = 0;
}
В этом примере, если k = 1, то выполнится последовательность: a = 1; a = 2; a = 0. Очевидно, что данный пример всегда будет определять a = 0;
Приведенный пример будет верным:
switch (k)
{
case 1: a = 1; break;
case 2: a = 2; break;
default: a = 0; break;
}
Однако иногда такая специфика оператора switch позволяет упростить ветвление учитывая, что в case может располагаться только одна константа:
switch (k)
{
case 1:
case 2:
case 3: a = 1; break;
case 4: a = 2; break;
}
В этом примере a будет равно 1 в случае, если k = 1 или k = 2 или k = 3.
Цикл с предусловием while.
Примеры:
while (a< 1) a++;
while (а <1){
а++;
b+=а;
}
Логика работы: оператор за циклом выполняется до тех пор, пока выполняется условие в скобках. Правила формирования условия идентичны оператору if.
Цикл с постусловием do.
do a++while(a <1);
do{
a++;
b+=a;
}
while(a <1);
Этот цикл по смыслу идентичен while, но в данном случае операторы цикла будут всегда выполняться хотя бы один раз, а условие проверяется в конце цикла.
Цикл for.
Синтаксис:
for(начальные значения; условие; модификация) оператор;
Логика работы:
1) Выполняются все выражения в начальных условиях. Здесь выражения могут указываться через знак запятая:
а=1, b=3, ἰ=0;
Проверяется условие. Если оно истинно, то выполняется оператор, иначе делается выход из цикла.
Синтаксис условия полностью соответствует оператору ἰf: а<1;
3) после выполнения оператора выполняются выражения модификация. В этих выражениях должна задаваться такая модификация, чтобы было окончание цикла: i++, j+=2;
4)Делается переход на П.2.
В операторе for можно опускать любую конструкцию в скобках:
for( ; a<1; a++) s+=a; //нет начальных условий
for( i=1; ; i ++) s+=ἰ; // нет условия, т.е. будет бесконечный чикл
for(ἰ=1; ἰ<10; ) s+= ἰ; //нет модификации
for( ; ; ) s+= ἰ; //пустой бесконечный цикл
В любом из циклов while, do, for могут использоваться операторы передачи управления:
contine; // переход на следующую операцию цикла
break; //выход из цикла
Оператор безусловного перехода.
goto a1; //принудительный переход на метку а1
≡
а1: оператор;
Предупреждение: запрещено в программах использоваться этим оператором, кроме особо исключительных случаев!
Порядок выполнения работы
Создайте форму:
Для маскированного поля в соответствующем свойстве установите маску ##.# для запрещения ввода в него других символов кроме цифр.
Реализуйте следующий программный код:
// FORM
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
private void button1_Click(object sender, EventArgs e)
{
double x, y; string st;
x = Convert.ToDouble(maskedTextBox1.Text);
y = Math.Sin(x);
st = String.Format("{0,4:0.##}",y);
textBox2.Text = st;
}
private void button3_Click(object sender, EventArgs e)
{
ColorDialog Col = new ColorDialog();
if (Col.ShowDialog() == DialogResult.OK)
{
maskedTextBox1.BackColor = Col.Color;
textBox2.ForeColor = Col.Color;
} } }}
Индивидуальные задания.
Составить программы вычисления:
Y=
Содержание отчета.
Представить отлаженную программу по индивидуальному заданию.
Литература.
Павловская Т.А. С#, Программирование на языке высокого уровня. – М., СПб: Питер, 2010, с.69-87