Пример 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. Если условие выхода ложно, то цикл с постусловием прекращает свою работу, в противном случае - происходит повторение действий, указанных в цикле. Повторяющиеся действия в цикле называются "телом цикла".

Зацикливание возникает, когда условие всегда выполняется.

for (int count=0; count<15; count++) команда;   for (int count=0; count<15; count++) { команды; }
while (условие) команда;   while (условие) { команды; } do команда while (условие);   do { команды; } while (условие);

 

 


Пример 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.