Инфоурок Информатика Другие методич. материалыЛабораторная работа "Создание и использование процедур в программах"

Лабораторная работа "Создание и использование процедур в программах"

Скачать материал

Лабораторная работа № 15.

Создание и использование процедур в программах 

             Цели занятия:           

          Формирование представления о назначении процедур.

          Формирование навыков разработки пользовательских процедур.

          Формирование навыков использования процедур в программах.  

 

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

 

Упражнение 1.

В упражнении 1 создается Windows-приложение для вычисления функции sin(х)  для любого аргумента с заданной точностью. Для вычисления sin(х)  используется пользовательская процедура.

 

        Чтобы начать работу над новым проектом, надо:

§   В меню File выбрать команду New Project.

§   В открывшемся окне New Project выбрать тип приложения — Windows Forms Application - Visual С#.

§   В поле Name ввести имя проекта —  и нажать кнопку ОК. 

В результате описанных действий в папке временных проектов (по умолчанию C:\Users\User\Документы\Visual Studio 2008\Projects) будет создана папка с именем проекта, а в ней — в ней вы найдете сам проект.

 

: Разработка пользовательского интерфейса проекта.

Настроим стартовую форму нашего приложения согласно рис. 1. 

Аргумент и точность вводятся в компонентах TextBox, для надписей используем компоненты  Label. Запуск процесса вычисления функции будет осуществляться с помощью кнопки Button. Результат отображается на форме в компоненте Label. 

 Рис. 1. Окно программы

 : Разработка функционала проекта.

1.Процесс разработки функционала проекта начнем с создания кода, вычисляющего значение функции sin(х) (синус) с точностью Ɛ = 10-6 с помощью бесконечного ряда Тейлора по формуле

+…

Рассмотрим алгоритм решения.

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

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

Алгоритм решения задачи выглядит так: задать начальное значение суммы ряда, а затем многократно вычислять очередной член ряда и добавлять его к ранее найденной сумме. Вычисления заканчиваются, когда абсолютная величина очередного члена ряда станет меньше заданной точности.

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

Для уменьшения количества выполняемых действий следует воспользоваться рекуррентной формулой получения последующего члена ряда через предыдущий: 

Cn+1 = Cn* T ,где  Т — некоторый множитель. Из нашей формулы ряда видно, что Т=

 

        

Перед разработкой кода, сделаем следующие важные замечания:

§  Для реализации кода будем использовать процедуру.

Для оптимизации кода воспользуемся таким средством языка, как процедура или функция, которое позволяет написать код единожды,  а выполнить его множество раз.

§  Каковы будут параметры нашей процедуры?

Кроме входных параметров: аргумент и точность, необходимо определить выходной параметр для результата (значения функции). Выходной параметр объявляется с ключевым словом out. Для каждого параметра обязательно указывать тип и имя. Для нашей процедуры подойдет тип Double § Необходим ли нашей процедуре модификатор доступа?

Из четырех его возможных значений, нам пока интересны только два - public и private. Модификатор public показывает, что данный код открыт и доступен для  вызова  всеми клиентами и потомками класса, где он расположен. Модификатор private говорит, что код предназначен для внутреннего использования в классе и доступен для вызова только в теле методов самого класса. Заметьте, если модификатор доступа опущен, то по умолчанию предполагается, что он имеет значение private и код является закрытым. 

В нашем случае, сделаем наш код открытым для вызова, т.е. укажем его с модификатором public.

§  Каковы основные особенности написания процедуры?

Основное на что следует обратить внимание при написании процедуры – это обязательное присвоение результата вычислений выходному параметру, объявленному со словом out.

§  Где разместить код процедуры?

Напомним, что в C# процедуры и функции существуют только как методы некоторого класса, они не существуют вне класса. Поэтому, размещайте код процедуры внутри кода класса формы Form1 (Windows Forms приложение) или класса Program (консольное приложение) 

Учитывая все эти замечания, синтаксис объявления нашей процедуры, вычисляющей функцию sin(x), приведен в листинге 1.

Листинг 1. Пользовательская процедура sinus() public void sinus(double x, double e, out double res)

 {         double slag = x, sum=x;

            for (int n=1; Math.Abs(slag)>e; n++)             { slag=slag*(x*x/(2*n*(2*n+1)));

            slag = -1 * slag;

              sum+=slag;

            }

            res=sum;

        }

2. Продолжим разработку функционала проекта созданием стандартной функции обработки события Click для кнопки Вычислить функцию (buttonl). 

Функция button1_ciick вызывает пользовательскую процедуру sinus(),результат расчета выводится в поле компонента label5. 

Обратите внимание, что вызов процедуры является отдельным оператором. При вызове перед выходным параметром r обязательно указывать слово out! Исходные данные координат (x и y) вводятся из полей редактирования TextBox путем обращения к свойству Text. 

Код процедуры приведен в листинге 2.

Листинг 2. Обработки события Click для кнопки Вычисление функции

 

        private void button1_Click(object sender, EventArgs e)

        { double r;           try

           {

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

            double eps = Convert.ToDouble(textBox2.Text);             sinus(x, eps, out r);

            label3.Text = r.ToString("n2");

           }

        catch (Exception exc)

           { MessageBox.Show("Неверно введены данные"); }

        }

 

В приведенном коде предусмотрена обработка исключительных ситуаций, возникающих при неверном вводе исходных данных. Обработка осуществляется с помощью оператора Try – Catch, который в случае возникновения исключительной ситуации перехватывает управление и выдает сообщение «Неверно введены данные». 

 

Замечание.

Вы можете самостоятельно добавить процедуры обработки событий TextChanged и KeyPress для компонентов TextBox, чтобы исключить неправильный ввод исходных данных.

 

& Компиляция и отладка проекта. Тестирование проекта.

Запустите на выполнение проект. Выполните его отладку. Протестируйте работу приложения при различных исходных данных. 

Упражнения для самостоятельной работы.

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

Вариант 1

x1               1        1        1        1 ln x1 2n0 (2т1)x2n1 (x3x3 5x5 ...),               | x |1.

Вариант 2            ex n0 (1)nn xn 1xx22! x3!3 x44 ...,     | x |.

Вариант 3

 

                                 x        xn           1xx2 x3 x4 ...,

                              e n0 n!              2!     3!     4!               | x |.

 

Вариант 4

 

ln(x1) n0 (1n)n x1n1 xx22 x33 x44 ..., 1x1.

 

Вариант 5

 

ln1x 2 x2n1 2(xx3 x5 ....)

                                    1x        n0 2n1              3      5                               | x |1

 

Вариант 6

 

                                                                  xn                               x2 x4

ln(1x)  (x  ...)

                                                                n1 n                 2       4            1x1|

 

Вариант 7

 

                                                                 (1)n1x2n1                 x3        x5

                                  arcctgx                                 x   ....,

                                                         2     n0               2n1          2           3      5          |x|<=1

 

Вариант 8

 

                                                               (1)n0                  1        1        1

arctgx 2 n0 (2n1)x2n1 2 x 3x3 5x5 ..., x0

 

Вариант 9

 

                                                         (1)n x2n1                    x3         x5         x7

arctgx  x    ..., n0 (2n1) 3 5 7 | x |1

Вариант 10

 

                                                            x2n1                         x3          x5          x7

Arthx x    ..., n0 2n1 3 5 7  | x |1

Вариант 11

 

                                                                 1             1      1        1

                              Arthx (2n1)x2n1 x 3x3 5x5 ...,                   | x |1

n0

Вариант 12

 

                                                                    (1)n1                       1        1        1

arctgx  2 (2n1)x2n1  2 x 3x3 5x5 ..., x1 n 0     

 

Вариант 13

 

ex2 (1)nn!x2n 1x2 x24! x3!6 x48! ..., x 

n0

Вариант 14

 

                                               (1)n x2n                           x2 x4 x6

                     cos xn0 (2n)! 12! 4! 6! K, | x |  

 

Вариант 15

                                                             (x1)2n1                   x1     (x1)3            (x1)       

ln x2(2n1)(x1)2n1 2x2 3(x1)3 5(x1)5 K, x0  n 0

 

 

 

 

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Лабораторная работа "Создание и использование процедур в программах""

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Юрист

Получите профессию

Технолог-калькулятор общественного питания

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Краткое описание документа:

Данная лабораторная работа дает представление о назначении процедур, формирует навыки разработки и использования процедур  в программах. Приведено пошаговое описание разработки проекта, вычисляющего функцию синуса. Даны подробные рекомендации по созданию пользовательских процедур. Также приведен список упражнений для самостоятельной работы. Лабораторная работа «Создание и использование процедур в программах» входит в лабораторный практикум по дисциплине «Основы программирования» для студентов специальности 230115» Программирование в компьютерных системах» среднего профессионального образования. 

 

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 662 872 материала в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 24.12.2014 353
    • PDF 695.7 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Бабикова Татьяна Михайловна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Бабикова Татьяна Михайловна
    Бабикова Татьяна Михайловна
    • На сайте: 8 лет и 9 месяцев
    • Подписчики: 0
    • Всего просмотров: 15978
    • Всего материалов: 10

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Копирайтер

Копирайтер

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Теория и методика обучения информатике в начальной школе

Учитель информатики в начальной школе

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 96 человек из 34 регионов
  • Этот курс уже прошли 222 человека

Курс повышения квалификации

Использование компьютерных технологий в процессе обучения информатике в условиях реализации ФГОС

36 ч. — 144 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 140 человек из 44 регионов
  • Этот курс уже прошли 1 297 человек

Курс профессиональной переподготовки

Информатика: теория и методика преподавания в профессиональном образовании

Преподаватель информатики

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 49 человек из 21 региона
  • Этот курс уже прошли 151 человек

Мини-курс

Создание и продвижение сайтов для достижения максимальных результатов

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 31 человек из 15 регионов

Мини-курс

Цифровая трансформация в бизнесе: аспекты управления и развития

3 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Основы русского языка: морфология, синтаксис, лексика

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 22 человека из 12 регионов
  • Этот курс уже прошли 14 человек