Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Лабораторная работа № 1. Изучение среды разработки Visual Studio



Лабораторная работа № 1. Изучение среды разработки Visual Studio

Цель лабораторной работы: изучить среду быстрой разработки приложений Visual Studio. Научится размешать и настраивать внешний вид элементов управления на форме.

Настройка формы

Настройка формы начинается с настройки размера формы. С помощью мыши, «захватывая» одну из кромок формы или выделенную строку заголовка отрегулируйте нужные размеры формы.

Для настройки будущего окна приложения задаются свойства формы. Для задания любых свойств формы и элементов управления на форме используется окно свойств.

Новая форма имеет одинаковые имя (Name) и заголовок (Text) - Form1.

Для изменения заголовка перейдите в окно свойств и щелкните кнопкой мыши на форме. В форме инспектора объектов найдите и щелкните мышью на строчке с названием Text. В выделенном окне наберите “Лаб. раб. N1. Ст. гр. 7А62 Иванов А.А.”. Для задания цвета окна используйте свойство BackColor.

Размещение элементов управления на форме

Для размещения различных элементов управления на форме используется панель элементов. Панель элементов содержит элементы управления, сгруппированные по типу. Каждую группу элементов управления можно свернуть, если она в настоящий момент не нужна. Для выполнения лабораторных работ потребуются элементы управления из группы Стандартные элементы управления.

 

Рис.1.3 Панель элементов

 

Щёлкните на нужном элементе управления, а затем щёлкните в нужном месте формы – элемент появится на форме. Элемент можно перемещать по форме схватившись за него левой кнопкой мышки (иногда это можно сделать лишь за появляющийся при нажатии на элемент квадрат со стрелками ). Если элемент управления позволяет изменять размеры, то на соответствующих его сторонах появятся белые кружки, ухватившись за которые и можно изменить размер. После размещения элемента управления на форме, его можно выделить щелчком мыши и при этом получить доступ к его свойствам в окне свойств.

Размещение строки ввода (TextBox)

Если необходимо ввести из формы в программу или вывести на форму информацию, которая вмещается в одну строку, используют окно однострочного редактора текста, представляемого элементом управления TextBox.

В данной программе с помощью однострочного редактора будут вводиться переменные x, y, z типа double или int.

Выберите на панели элементов пиктограмму , щелкните мышью в том месте формы, где вы хотите ее поставить. Вставьте три элемента TextBox в форму. Захватывая их “мышью” отрегулируйте размеры окон и их положение. Обратите внимание на то, что теперь в тексте программы можно использовать переменные textBox1, textBox2 и textBox3, которые соответствуют каждому добавленному элементу управления. В каждой из этих переменных в свойстве.Text будет содержаться строка символов (тип string) и отображаться в соответствующем окне TextBox.

С помощью инспектора объектов установите шрифт и размер символов отражаемых в строке TextBox (свойство Font).

Размещение надписей (Label)

На форме могут размещаться пояснительные надписи. Для нанесения таких надписей на форму используется элемент управления Label. Выберите на панели элементов пиктограмму , щелкните на ней мышью. После этого в нужном месте формы щелкните мышью, появится надпись label1. Проделайте это для четырех надписей. Для каждой надписи, щелкнув на ней мышью, отрегулируйте размер и, изменив свойство Text в окне свойств, введите строку, например “Введите значение X: ”, а также выберите размер символов (свойство Font).

Обратите внимание, что в тексте программы теперь можно обращаться к четырём новым переменным типа Label. В них хранятся пояснительные строки, которые можно изменять в процессе работы программы.

Лабораторная работа №2. Программирование линейных алгоритмов

Цель лабораторной работы: научиться составлять каркас простейшей программы в среде Visual Studio. Написать и отладить программу линейного алгоритма.

 

Структура приложения

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

Кроме понятия проект часто используется более глобальное понятие – решение (solution). Решение содержит один или несколько проектов, один из которых может быть указан как стартовый проект. Выполнение решения начинается со стартового проекта.

Таким образом, при создании простейшей C# программы в Visual Studio. Создается папка решения, в которой для каждого проекта создается подпапка проекта, в которой будут создаваться другие подпапки с результатами компиляции приложения.

Проект это основная единица, с которой работает программист. При создании проекта можно выбрать его тип, а Visual Studio создаст каркас проекта в соответствии с выбранным типом.

В предыдущей лабораторной работе мы попробовали создавать оконные приложения или иначе Приложения Windows Forms. Как пример другого типа проекта можно привести проект консольного приложения.

По своим " внешним" проявлениям консольные напоминают приложения DOS, запущенные в Windows. Тем не менее, это настоящие Win32-приложения, которые под DOS работать не будут. Для консольных приложений доступен Win32 API, а кроме того, они могут использовать консоль - окно, предоставляемое системой, которое работает в текстовом режиме и в которое можно вводить данные с клавиатуры. Особенность консольных приложений в том, что они работают не в графическом, а в текстовом режиме.

Проект в Visual Studio состоит из файла проекта (файл с расширением .csproj), одного или нескольких файлов исходного текста (с расширением .cs), файлов с описанием окон формы (с расширением .designer.cs), файлов ресурсов (с расширением .resx), а также ряда служебных файлах.

В файле проекта находится информация о модулях, составляющих

данный проект, входящих в него ресурсах, а также параметров построения программы. Файл проекта автоматически создается и изменяется средой Visual Studio и не предназначен для ручного редактирования.

Файл исходного текста – программный модуль предназначен для размещения текстов программ. В этом файле программист размещает текст программы, написанный на языке C#.Модуль имеет следующую структуру:

 

// Раздел подключенных пространств имен

using System;

 

// Пространство имен нашего проекта

namespace MyFirstApp

{

// Класс окна

public partial class Form1: Form

{

// Методы окна

public Form1()

{

InitializeComponent();

}

}

}

 

В разделе подключения пространств имен (каждая строка которого располагается в начале файла и начинается ключевым словом using ) описываются используемые пространства имён. Каждое пространство имён включает в себя классы, выполняющие определённую работу, например, классы для работы с сетью располагаются в пространстве System.Net, а для работы с файлами – в System.IO. Большая часть пространств, которые используются в обычных проектах, уже подключена при создании нового проекта, но при необходимости можно дописать дополнительные пространства имён.

Для того чтобы не происходило конфликтов имён классов и переменных, классы нашего проекта также помещаются в отдельное пространство имен. Определяется оно ключевым словом namespace, после которого следует имя пространства (обычно оно совпадает с именем проекта).

Внутри пространства имен помещаются наши классы – в новом проекте это класс окна, который содержит все методы для управления поведением окна. Обратите внимание, что в определении класса присутствует ключевое слово partial, это говорит о том, что в исходном тексте представлена только часть класса, с которой мы работаем непосредственно, а служебные методы для обслуживания окна скрыты в другом модуле (при желании их тоже можно посмотреть, но редактировать вручную не рекомендуется).

Наконец, внутри класса располагаются переменные, методы и другие элементы программы. Фактически, основная часть программы размещается внутри класса при создании обработчиков событий.

При компиляции программы Visual Studio создает исполняемые.exe-файлы в каталоге bin.

Работа с проектом

Как вы видите, проект в Visual Studio состоит из многих файлов, и создание сложной программы требует хранения каждого проекта в отдельной папке. При создании нового проекта Visual Studio по умолчанию сохраняет его в отдельной папке. Рекомендуется создать для себя свою папку со своей фамилией внутри папки своей группы, чтобы все проекты хранились в одном месте. После этого можно запускать Visual Studio и создавать новый проект (как это сделать показано в предыдущей лабораторной работе).

Сразу после создания проекта рекомендуется сохранить его в подготовленной папке: Файл -> Сохранить всё. При внесении значительных изменений в проект следует еще раз сохранить проект той же командой, а перед запуском программы на выполнение среда обычно сама сохраняет проект на случай какого-либо сбоя. Для открытия существующего проекта используется команда Файл -> Открыть проект, либо можно найти в папке файл проекта с расширением.csproj и сделать на нём двойной щелчок.

Описание данных

Типы данных имеют особенное значение в С#, поскольку это строго типизированный язык. Это означает, что все операции подвергаются строгому контролю со стороны компилятора на соответствие типов, причем недопустимые операции не компилируются. Такая строгая проверка типов позволяет предотвратить ошибки и повысить надежность программ. Для обеспечения контроля типов все переменные, выражения и значения должны принадлежать к определенному типу. Такого понятия, как " бестиповая" переменная, в данном языке программирования вообще не существует. Более того, тип значения определяет те операции, которые разрешается выполнять над ним. Операция, разрешенная для одного типа данных, может оказаться недопустимой для другого.

В С# имеются две общие категории встроенных типов данных: типы значений и ссылочные типы. Они отличаются по содержимому переменной. Концептуально разница между ними состоит в том, что тип значения (value type) хранит данные непосредственно, в то время как ссылочный тип (reference type) хранит ссылку на значение.

Эти типы сохраняются в разных местах памяти: типы значений сохраняются в области, известной как стек, а ссылочные типы — в области, называемой управляемой кучей.

 

 

Рис.2.1 Панель элементов

 

· Целочисленные типы

В С# определены девять целочисленных типов: char, byte, sbyte, short, ushort, int, uint, long и ulong. Но тип char в основном применяется для представления символов и поэтому рассматривается отдельно. Остальные восемь целочисленных типов предназначены для числовых расчетов.

 

· Типы с плавающей точкой

Типы с плавающей точкой позволяют представлять числа с дробной частью. В С# имеются две разновидности типов данных с плавающей точкой: float и double. Они представляют числовые значения с одинарной и двойной точностью соответственно.

 

· Десятичный тип данных

Для представления чисел с плавающей точкой высокой точности предусмотрен также десятичный тип decimal, который предназначен для применения в финансовых вычислениях.

 

· Символы

В С# символы представлены не 8-разрядным кодом, как во многих других языках программирования, например С++, а 16-разрядным кодом, который называется юникодом (Unicode). В юникоде набор символов представлен настолько широко, что он охватывает символы практически из всех естественных языков на свете.

 

· Логический тип данных

Тип bool представляет два логических значения: " истина" и " ложь". Эти логические значения обозначаются в С# зарезервированными словами true и false соответственно. Следовательно, переменная или выражение типа bool будет принимать одно из этих логических значений.

 

· Строки

Основным типом при работе со строками является тип string, задающий строки переменной длины. Тип string представляет последовательность из нуля или более символов в кодировке Юникод. Класс String в языке C# относится к ссылочным типам. Над строками - объектами этого класса - определен широкий набор операций, соответствующий современному представлению о том, как должен быть устроен строковый тип. По сути, текст хранится в виде последовательной доступной только для чтения коллекции объектов Char.

 

Рассмотрим самые популярные данные – переменные и константы. Переменная - это ячейка памяти, которой присвоено некоторое имя и это имя используется для доступа к данным, расположенным в данной ячейке. Для каждой переменной задаётся тип данных – диапазон всех возможных значений для данной переменной.. Объявляются переменные непосредственно в тексте программы. Лучше всего сразу присвоить им начальное значение с помощью знака присвоения " = " (переменная = значение):

 

int a; // Только объявление

int b = 7; // Объявление и инициализация значением

 

Для того чтобы присвоить значение символьной переменной, достаточно заключить это значение (т.е. символ) в одинарные кавычки:

char ch; // Только объявление

char symbol = 'Z'; // Объявление и инициализация значением

 

Несмотря на то что тип char определен в С# как целочисленный, его не следует путать со всеми остальными целочисленными типами.

Частным случаем переменных являются константы. Константы - это переменные, значения которых не меняются в процессе выполнения программы. Константы описываются как обычная переменная, только с ключевым словом const впереди:

const int c = 5;

Пример написания программы

Задание: составить программу вычисления для заданных значений x, y, z арифметического выражения

.

Панель диалога программы организовать в виде, представленном на рис:

 

Рис 2.1. Внешний вид программы.

 

Для вывода результатов работы программы в программе используется текстовое окно, которое представлено обычным элементом управления. После установки свойства Multiline в True появляется возможность растягивать элемент управления не только по горизонтали, но и по вертикали. А после установки свойства ScrollBars в значение Both в окне появится вертикальная, а при необходимости и горизонтальная полосы прокрутки.

Информация, которая отображается построчно в окне, находится в массиве строк Lines, каждая строка которого имеет тип string. Однако нельзя напрямую обратиться к этому свойству для добавления новых строк, поскольку размер массивов в C# определяется в момент их инициализации. Для добавления нового элемента используется свойство Text, к текущему содержимому которого можно добавить новую строку:

 

textBox4.Text += Environment.NewLine + " Привет";

 

В этом примере к текущему содержимому окна добавляется символ перевода курсора на новую строку (который может отличаться в разных операционных системах и потому представлен свойством класса Environment) и сама новая строка. Если добавляется числовое значение, то его предварительно нужно привести в символьный вид методом ToString().

Работа с программой происходит следующим образом. Нажмите (щелкните мышью) кнопку “Выполнить”. В окне textBox4 появляется результат. Измените исходные значения x, y, z в окнах textBox1 – textBox3 и снова нажмите кнопку ”Выполнить” - появится новые результаты.

Полный текст программы имеет следующий вид:

 

using System;

using System.Windows.Forms;

 

namespace MyFirstApp

{

public partial class Form1: Form

{

public Form1()

{

InitializeComponent();

}

 

private void Form1_Load(object sender, EventArgs e)

{

textBox1.Text = " 3, 4"; // Начальное значение X

textBox2.Text = " 0, 74"; // Начальное значение Y

textBox3.Text = " 19, 43"; // Начальное значение Z

// Вывод строки в многострочный редактор

textBox4.Text = " Лаб. раб. N1. Ст. гр. 7А62 Иванов А.А.";

}

 

private void button1_Click(object sender, EventArgs e)

{

// Считывание значения X

double x = double.Parse(textBox1.Text);

// Вывод значения X в окно

textBox4.Text += Environment.NewLine +

" X = " + x.ToString();

// Считывание значения Y

double y = double.Parse(textBox2.Text);

// Вывод значения Y в окно

textBox4.Text += Environment.NewLine +

" Y = " + y.ToString();

// Считывание значения Z

double z = double.Parse(textBox3.Text);

// Вывод значения Z в окно

textBox4.Text += Environment.NewLine +

" Z = " + z.ToString();

// Вычисляем арифметическое выражение

double a = Math.Tan(x + y) * Math.Tan(x + y);

double b = Math.Exp(y - z);

double c = Math.Sqrt(Math.Cos(x * x) + Math.Sin(z * z));

double u = a -b * c;

// Выводим результат в окно

textBox4.Text += Environment.NewLine +

" Результат U = " + u.ToString();

}

}

}

 

 

2.7. Выполнение индивидуального задания

Ниже приведено 15 вариантов задач. По указанию преподавателя выберите свое индивидуальное задание. Уточните условие задания, количество, наименование, типы исходных данных. В соответствии с этим установите необходимое количество окон TextBox, тексты заголовков на форме, размеры шрифтов, а также типы переменных и функции преобразования при вводе и выводе результатов.

Прочтите в приложении описание меню Файл, Правка, Отладка, и описание элемента управления TextBox. С помощью инспектора объектов измените цвет формы, шрифт выводимых символов.

 

Индивидуальные задания

1.

При x=14.26, y=-1.22, z=3.5´ t=0.564849.

2.

При x=-4.5, y=0.75´ , z=0.845 u=-55.6848.

3.

При x=3.74 , y=-0.825, z=0.16 , v=1.0553.

4.

При x=0.4 , y=-0.875, z=-0.475 w=1.9873.

5.

При x=-15.246, y=4.642 , z=20.001 =-182.036.

6.

При x=16.55 , y=-2.75, z=0.15 =-38.902.

7.

При x=0.1722, y=6.33, z=3.25 =-172.025.

8.

При x=-2.235 , y=2.23, z=15.221 =39.374.

9.

При x=1.825 , y=18.225, z=-3.298 =1.2131.

10.

При x=3.981 , y=-1.625 , z=0.512 a=1.26185.

11.

При x=6.251, y=0.827, z=25.001 b=0.7121.

12.

При x=3.251, y=0.325, z=0.466 c=4.025.

13. .

При x=17.421, y=10.365 , z=0.828 f=0.33056.

14. .

При x=12.3 , y=15.4, z=0.252 g=82.8257.

15. .

При x=2.444, y=0.869 , z=-0.13 -0.49871.

 


Условные операторы

Операторы ветвления позволяют изменить порядок выполнения операторов в программе. К операторам ветвления относятся условный оператор if и оператор выбора switch.

Условный оператор if используется для разветвления процесса обработки данных на два направления. Он может иметь одну из форм: сокращенную или полную.

Форма сокращенного оператора if:

if (B) S;

где В - логическое или арифметическое выражение, истинность которого проверяется; S - оператор: простой или составной.

При выполнении сокращенной формы оператора if сначала вычисляется выражение B, затем проводится анализ его результата: если B истинно, то выполняется оператор S; если B ложно, то оператор S пропускается. Таким образом, с помощью сокращенной формы оператора if можно либо выполнить оператор S, либо пропустить его.

Форма полного оператора if:

if (B) S1; else S2;

где B - логическое или арифметическое выражение, истинность которого проверяется; S1, S2 - оператор: простой или составной.

При выполнении полной формы оператора if сначала вычисляется выражение B, затем анализируется его результат: если B истинно, то выполняется оператор S1, а оператор S2 пропускается; если B ложно, то выполняется оператор S2, а S1 - пропускается. Таким образом, с помощью полной формы оператора if можно выбрать одно из двух альтернативных действий процесса обработки данных.

Пример. Вычислим значение функции

 

sin x, если x£ a,

y(x)= cos x, если a< x< b,

tg x, если x³ b.

 

Указанное выражение может быть запрограммировано в виде

 

if (x< =a) y = Math.Sin(x);

if ((x> a) & & (x< b)) y = Math.Cos(x);

if (x> =b) y = Math.Sin(x)/Math.Cos(x);

 

или

 

if (x < = a) y = Math.Sin(x);

else if (x < b) y = Math.Cos(x);

else y = Math.Sin(x) / Math.Cos(x);

Оператор выбора switch предназначен для разветвления процесса вычислений по нескольким направлениям. Формат оператора:

switch ( < выражение> )

{

case < константное_выражение_1>:

[< оператор 1> ]; < оператор перехода>;

case < константное_выражение_2>:

[< оператор 2> ]; < оператор перехода>;

...

case < константное_выражение_n>:

[< оператор n> ]; < оператор перехода>;

[default: < оператор>; ]

}

Замечание. Выражение, записанное в квадратных скобках, является необязательным элементом в операторе switch. Если оно отсутствует, то может отсутствовать и оператор перехода.

Выражение, стоящее за ключевым словом switch, должно иметь арифметический, символьный, строковый тип или тип указатель. Все константные выражения должны иметь разные значения, но их тип должен совпадать с типом выражения, стоящим после switch или приводиться к нему. Ключевое слово case и расположенное после него константное выражение называют также меткой case.

Выполнение оператора начинается с вычисления выражения, расположенного за ключевым словом switch. Полученный результат сравнивается с меткой case. Если результат выражения соответствует метке case, то выполняется оператор, стоящий после этой метки, за которым обязательно должен следовать оператор перехода: break, goto и т.д. При использовании оператора break происходит выход из switch и управление передается оператору, следующему за switch. Если же используется оператор goto, то управление передается оператору, помеченному меткой, стоящей после goto.

Если ни одно выражение case не совпадает со значением оператора switch, управление передается операторам, следующим за необязательной подписью default. Если подписи default нет, то управление передается за пределы оператора switch.

Пример использования оператора switch:

int caseSwitch = 1;

Switch (caseSwitch)

{

case 1:

Console.WriteLine(" Case 1" );

break;

case 2:

Console.WriteLine(" Case 2" );

break;

default:

Console.WriteLine(" Default case" );

break;

}

Пример написания программы

Задание: ввести три числа - x, y, z. Вычислить

В качестве f(x) использовать по выбору: sin(x), cos(x), ex.

 

Создание формы

Создайте форму, в соответсвии с рис. 3.1.

 

Рис 3.1. Окно лабораторной работы

Выберите в панели элементов из контейнеров GroupBox и поместите его в нужное место формы. На форме появится окаймленный линией чистый прямоугольник с заголовком GroupBox1. Замените заголовок ( Text ) на F(x). Далее, как показано на рисунке, разместите в данном контейнере три радиокнопки ( RadioButton ). Для первой из них установите свойство Checked в значение True.

Далее разместите на форме элементы Label, TextBox и Button. Поле для вывода результатов также является элементом TextBox с установленным в True свойством Multiline.

Цикл с предусловием while

Оператор цикла while организует выполнение одного оператора (простого или составного) неизвестное заранее число раз. Формат цикла while:

while (B) S;

где B - выражение, истинность которого проверяется (условие завершения цикла); S - тело цикла - оператор (простой или составной).

Перед каждым выполнением тела цикла анализируется значение выражения В: если оно истинно, то выполняется тело цикла, и управление передается на повторную проверку условия В; если значение В ложно - цикл завершается и управление передается на оператор, следующий за оператором S.

Если результат выражения B окажется ложным при первой проверке, то тело цикла не выполнится ни разу. Отметим, что если условие B во время работы цикла не будет изменяться, то возможна ситуация зацикливания, то есть невозможность выхода из цикла. Поэтому внутри тела должны находиться операторы, приводящие к изменению значения выражения B так, чтобы цикл мог корректно завершиться.

В качестве иллюстрации выполнения цикла while рассмотрим программу вывода в консоль целых чисел из интервала от 1 до n.

 

Static void Main()

{

Console.Write(" N= " );

int n=int.Parse(Console.ReadLine());

int i = 1;

while (i < = n) //пока i меньше или равно n

Console.Write(" " + i++ ); //выводим i на экран, затем увеличиваем его на 1

}

 

Результаты работы программы:

n ответ

10 1 2 3 4 5 6 7 8 9 10

Цикл с параметром for

Цикл с параметром имеет следующую структуру:

for ( < инициализация>; < выражение>; < модификация> ) < оператор>;

Инициализация используется для объявления и/или присвоения начальных значений величинам, используемым в цикле в качестве параметров (счетчиков). В этой части можно записать несколько операторов, разделенных запятой. Областью действия переменных, объявленных в части инициализации цикла, является цикл и вложенные блоки. Инициализация выполняется один раз в начале исполнения цикла.

Выражение определяет условие выполнения цикла: если его результат истинен, цикл выполняется. Истинность выражения проверяется перед каждым выполнением тела цикла, таким образом, цикл с параметром реализован как цикл с предусловием. В блоке выражение через запятую можно записать несколько логических выражений, тогда запятая равносильна операции логическое И ( & & ).

Модификация выполняется после каждой итерации цикла и служит обычно для изменения параметров цикла. В части модификация можно записать несколько операторов через запятую.

Оператор (простой или составной) представляет собой тело цикла.

Любая из частей оператора for (инициализация, выражение, модификация, оператор) может отсутствовать, но точку с запятой, определяющую позицию пропускаемой части, надо оставить.

Пример формирования строки состоящей из чисел от 0 до 9 разделенных пробелами:

for (var i = 0; i < = 9; i++)

{

s += i + " ";

}

Данный пример работате следующим образом. Сначала вычисляется начальное значение переменной i. Затем, пока значение i меньше или равно 9, выполняется тело цикла и затем повторно вычисляется значение i. Когда значение i становится больше 9, условие становится ложным и управление передается за пределы цикла.

Средства отладки программ

Практически в каждой вновь написанной программе после запуска обнаруживаются ошибки.

Ошибки первого уровня (ошибки компиляции) связаны с неправильной записью операторов (орфографические, синтаксические). При обнаружении ошибок компилятор формирует список, который отображается по завершению компиляции (рис. 4.1.). При этом возможен только запуск программы, которая была успешно скомпилирована для предыдущей версии программы.

 

Рис. 4.1. Окно со списком ошибок компиляции.

При выявлении ошибок компиляции в нижней части экрана появляется текстовое окно (рис 4.1.), содержащее сведения обо всех ошибках, найденных в проекте. Каждая строка этого окна содержит имя файла, в котором найдена ошибка, номер строки с ошибкой и характер ошибки. Для быстрого перехода к интересующей ошибке необходимо дважды щелкнуть на строке с ее описанием. Следует обратить внимание на то, что одна ошибка может повлечь за собой другие, которые исчезнут при ее исправлении. Поэтому следует исправлять ошибки последовательно, сверху вниз и, после исправления каждой ошибки компилировать программу снова.

Ошибки второго уровня (ошибки выполнения) связаны с ошибками выбранного алгоритма решения или с неправильной программной реализацией алгоритма. Эти ошибки проявляются в том, что результат расчета оказывается неверным либо происходит переполнение, деление на ноль и др. Поэтому перед использованием отлаженной программы ее надо протестировать, т.е. сделать просчеты при таких комбинациях исходных данных, для которых заранее известен результат. Если тестовые расчеты указывают на ошибку, то для ее поиска следует использовать встроенные средства отладки среды программирования.

В простейшем случае для локализации места ошибки рекомендуется поступать следующим образом. В окне редактирования текста установить точку останова перед подозрительным участком, которая позволит остановить выполнение программы и далее более детально следить за ходом работы операторов и изменением значений паерменных. Для этого достаточно в окне редактирования кода щелкнуть слева от нужной строки. В результате чего данная строка быдет выделена красным (рис. 4.2.).

Рис. 4.2. Фрагмент кода с точкой останова

 

При выполнении программы и достижения установленной точки, программа будет остановлена и далее можно будет выполнять код по операторно с помощью кнопок F10 (без захода в подпрограммы) или F11 (с заходом в подпрограммы) (рис 4.3.).

 

Рис. 4.3. Отладка программы

Желтым выделяется оператор, который будет выполнен. Значение переменных во время выполнения можно увидеть наведя на них курсор. Для снятия программы с выполнения необходимо нажать Shift F5.

Для поиска алгоритмических ошибок контролуются значения промежуточных переменных на каждом шаге выполнения подозрительного кода и сравниваются с результатами, полученными вручную.

4.3. Порядок выполнения задания

Задание: Вычислим и выведем на экран таблицу значений функции y=a•lnx при x, изменяющемся от x0 до xk с шагом dx, a - константа.

Панель диалога представлена на рис 4.4.

 

Рис. 4.4. Окно программы для табулирования функции.

 

Текст обработчика нажатия кнопки Вычислить приведен ниже.

 

private void button1_Click(object sender, EventArgs e)

{

// Считывание начальных данных

double x0 = Convert.ToDouble(textBox1.Text);

double xk = Convert.ToDouble(textBox2.Text);

double dx = Convert.ToDouble(textBox3.Text);

double a = Convert.ToDouble(textBox4.Text);

textBox5.Text = " Работу выполнил ст. Иванов М.А." + Environment.NewLine;

// Цикл для табулирования функции

double x = x0;

while (x< =(xk+dx/2))

{

double y = a*Math.Log(x);

textBox5.Text += " x=" + Convert.ToString(x) +

"; y=" + Convert.ToString(y) + Environment.NewLine;

x = x + dx;

}

После отладки программы составьте тест (X0=2, Xk=4, Dx=0, 2), установите точку останова на оператор перед циклом и запустите программу в отладочном режиме (F5). После попадания на точку остановки, нажимая клавишу F10, выполните пошагово программу и проследите, как меняются все переменные в процессе выполнения.

4.4. Выполнение индивидуального задания

По указанию преподавателя выберите нужный вариант задачи из нижеприведенного списка. Откорректируйте панель диалога и текст программы.

Индивидуальные задания

Cоставить программу для табулирования функции y(x), вывести на экран значения x и y(x)

 

 

 


Тип данных string

Для хранения строк в языке C# используется тип string. Так, чтобы объявить (и, как правило, сразу инициализировать) строковую переменную, можно написать следующий код:

 

string a = " Текст";

strin


Поделиться:



Популярное:

  1. D триггеры, работающие по фронту.
  2. I. Техники безопасности при подготовительных работах.
  3. II. Изучение нового материала
  4. II. Работа со словарём. Научитесь одним движением руки открывать нужную букву в словаре.
  5. III. Изучение геологического строения месторождений и вещественного состава полезного ископаемого
  6. III. Изучение геологического строения месторождения и вещественного состава руд
  7. IV. Изучение технологических свойств руд.
  8. SWOT-анализ факторов внешней юридической среды
  9. V. Изучение гидрогеологических, инженерно-геологических, экологических и других природных условий месторождения
  10. А - типовые, разработанные в СоюзДорПроекте; б - из стеклофибробетона
  11. А.Е.М. – весовая характеристика элемента – относительная величина количества энергии, наполняющий элемент, отличающая его от среды нахождения.
  12. Абиотические факторы среды обитания


Последнее изменение этой страницы: 2016-04-09; Просмотров: 4000; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.213 с.)
Главная | Случайная страница | Обратная связь