Операторы передачи управления
Логические операции
Пример 1 Составить программу, при помощи которой можно вычислить значение данной функции при любом значении -100≤X≤100 (действительное число). В случае, если функция при данном значении X не определена, вывести ответ «функция не определена». Число X вводится с клавиатуры. Проект Поиск Y по X
namespace PrXY { public partial class frmXY: Form { public frmXY() { InitializeComponent(); }
private void btnExit_Click(object sender, EventArgs e) { Close(); }
private void btnPusk_Click(object sender, EventArgs e) { double X = Convert.ToDouble(txtX.Text),Y; if ((X > 15)&&(X<=100)) { Y = Math.Cos(X); lblY.Text = "Y=" + Convert.ToString(Y); } else if ((X <= 10) && (X!= 5)&&(X>=-100)) { Y = 1 / (X - 5); lblY.Text = "Y=" + Convert.ToString(Y); } else lblY.Text = "функция не определена"; } } }
Пример 2 Составить программу для перевода номера дня недели в словесное представление.
namespace PrWeek { public partial class frmWeek: Form
{ public frmWeek() { InitializeComponent(); }
private void btnExit_Click(object sender, EventArgs e) { Close(); }
private void txtN_TextChanged(object sender, EventArgs e) { int N; if (txtN.Text!="") N=Convert.ToInt16(txtN.Text); else N=0; string Week = ""; switch (N) { case 1: Week = "Понедельник"; break; case 2: Week = "Вторник"; break; case 3: Week = "Среда"; break; case 4: Week = "Четверг"; break; case 5: Week = "Пятница"; break; case 6: Week = "Суббота"; break; case 7: Week = "Воскресенье"; break; default: Week="Такого дня недели не существует"; break; } lblWeek.Text = Week; } } } События: MouseDown - нажатие клавиши MouseUp – отпускание клавиши MouseMove – перемещение мыши
Параметры e.X и e.Y задают координаты мыши в пределах объекта.
Параметр e.Button принимает следующие значения: MouseButtons.Left — левая клавиша мыши; MouseButtons.Right — правая клавиша мыши; MouseButtons.Middle — средняя клавиша мыши;
Пример 3 Простейший графический редактор namespace PrGrRed { public partial class frmGrRed: Form { Graphics picGraph; Pen mousePen; int curX, curY; public frmGrRed() { InitializeComponent(); }
private void btnExit_Click(object sender, EventArgs e) { Close(); }
private void btnClear_Click(object sender, EventArgs e) { SolidBrush whiteBrush = new SolidBrush(Color.White); picGraph.FillRectangle(whiteBrush, 0, 0, picDraw.Width, picDraw.Height);
}
private void frmGrRed_Load(object sender, EventArgs e) { picGraph = picDraw.CreateGraphics(); }
private void picDraw_MouseDown(object sender, MouseEventArgs e) { switch (e.Button) { case MouseButtons.Left: mousePen = new Pen(Color.Green); break; case MouseButtons.Right: mousePen = new Pen(Color.Red); break; case MouseButtons.Middle: mousePen = new Pen(Color.Blue); break; default: mousePen = new Pen(Color.Black); break; } curX = e.X; curY = e.Y; }
private void picDraw_MouseMove(object sender, MouseEventArgs e) { if (e.Button > 0) { picGraph.DrawLine(mousePen, curX, curY, e.X, e.Y); curX = e.X; curY = e.Y; } } } }
Особую группу составляют системы программирования (инструментальные системы), которые являются частью системного ПО, но носят прикладной характер. Системы программирования – это совокупность программ для разработки, отладки и внедрения новых программных продуктов.
Системы программирования обычно содержат: · трансляторы; · среду разработки программ; · библиотеки справочных программ (функций, процедур); · отладчики; · редакторы связей и др. Любой алгоритм, как мы знаем, есть последовательность предписаний, выполнив которые можно за конечное число шагов перейти от исходных данных к результату. В зависимости от степени детализации предписаний обычно определяется уровень языка программирования — чем меньше детализация, тем выше уровень языка. По этому критерию можно выделить следующие уровни языков программирования: машинные; машинно-оpиентиpованные (ассемблеры); машинно-независимые (языки высокого уровня). Машинные языки и машинно-ориентированные языки — это языки низкого уровня, требующие указания мелких деталей процесса обработки данных. Языки же высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека. Языки высокого уровня делятся на: алгоритмические (Basic, Pascal, C и др.), которые предназначены для однозначного описания алгоритмов; логические (Prolog, Lisp и др.), которые ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания; объектно-ориентированные (Object Pascal, Delphi, C++, Visual Basic, Java и др.), в основе которых лежит понятие объекта, сочетающего в себе данные и действия над ними. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур. Алгоритмический язык (как и любой другой язык), образуют три его составляющие: алфавит, синтаксис и семантика. Алфавит – фиксированный для данного языка набор символов (букв, цифр, специальных знаков и т.д.), которые могут быть использованы при написании программы. Синтаксис - правила построения из символов алфавита специальных конструкций, с помощью которых составляется алгоритм.
Семантика - система правил толкования конструкций языка. Таким образом, программа составляется с помощью соединения символов алфавита в соответствии с синтаксическими правилами и с учетом правил семантики. Каждый компьютер имеет свой машинный язык, то есть свою совокупность машинных команд, которая отличается количеством адресов в команде, назначением информации, задаваемой в адресах, набором операций, которые может выполнить машина и др. При программировании на машинном языке программист может держать под своим контролем каждую команду и каждую ячейку памяти, использовать все возможности имеющихся машинных операций. Но процесс написания программы на машинном языке очень трудоемкий и утомительный. Программа получается громоздкой, труднообозримой, ее трудно отлаживать, изменять и развивать. Поэтому в случае, когда нужно иметь эффективную программу, в максимальной степени учитывающую специфику конкретного компьютера, вместо машинных языков используют близкие к ним машинно-ориентированные языки (ассемблеры). Транслятор (англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд. Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются. Компилятор (англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется. (Pascal, C). Интерпретатор (англ. interpreter — истолкователь, устный переводчик) переводит и выполняет программу строка за строкой. (Basic). Таким образом, алгоритмические языки в значительной мере являются машинно-независимыми. Они облегчают работу программиста и повышают надежность создаваемых программ. ИТЕРАЦИИ Итерация - это циклическая управляющая структура, которая содержит композицию и ветвление. Она предназначена для организации повторяющихся процессов обработки последовательности значений данных.
Цикл с предусловием начинается с проверки условия выхода из цикла. Это логическое выражение, например I<=6. Если оно истинно, то выполняются те действия, которые должны повторяться. В противном случае, если логическое выражение I<=6 ложно, то этот цикл прекращает свои действия. Цикл с постусловием функционирует иначе. Сначала выполняется один раз те действия, которые подлежат повторению, затем проверяется логическое выражение, определяющее условие выхода из цикла, например, I>6. Если условие выхода ложно, то цикл с постусловием прекращает свою работу, в противном случае - происходит повторение действий, указанных в цикле. Повторяющиеся действия в цикле называются "телом цикла". Зацикливание возникает, когда условие всегда выполняется.
Пример 1 Программа факториал n!=1*2*3*…*n
namespace PrFactorial { public partial class frmFactorial: Form { public frmFactorial() { InitializeComponent(); }
private void btnExit_Click(object sender, EventArgs e) { Close(); }
private void btnPusk_Click(object sender, EventArgs e) { int N = Convert.ToInt16(txtN.Text); long Fact=1; for (int i=1; i <= N; i++) Fact*=i; lblResult.Text = txtN.Text+"!=" + Convert.ToString(Fact); } } }
1. 2. Namespace PrGraphic {
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|