Инфоурок Информатика Другие методич. материалыЛабораторная работа "Параметры процедур и функций"

Лабораторная работа "Параметры процедур и функций"

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

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

Параметры-значения, параметры-ссылки в процедурах 

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

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

       Формирование навыков использования параметров-значений.

       Формирование навыков использования параметров-ссылок.

 

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

 

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

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

 

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

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

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

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

 

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

 

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

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

В компоненте TextBox1 вводится количество элементов массива. С помощью кнопки Button1 одномерный массив заполняется случайными числами и выводится в компонент ListBox1. С помощью кнопки Button2 одномерный массив изменяется, в нем максимальный элемент заменяется на количество нулевых. Результат выводится в компонент ListBox2. 

 

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

 

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

1.Процесс разработки функционала проекта начнем с создания кода, вычисляющего максимальный элемент массива. Так как результатом вычисления является одно значение (максимальное), то реализуем данный код в виде функции. Входным параметром функции будет целый массив типа int[]. Типом результата функции  - целый тип данных. 

        

Синтаксис объявления нашей функции, вычисляющей максимальный элемент массива, приведен в листинге 1.

Листинг 1. Пользовательская функция Maximum ()

public static int Maximum(int[] a)

        {    int max = a[0];             for (int i = 1; i < a.Length; i++)                 if (a[i] > max) max = a[i];             return max;

        }

Замечание.

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

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

 

2. Продолжим разработку созданием кода, вычисляющего количество нулевых элементов массива. Реализуем его в виде функции. Входным параметром функции будет целый массив типа int[]. Типом результата функции  - целый тип данных.

 

Синтаксис объявления нашей функции, вычисляющей количество нулевых элементов массива, приведен в листинге 2.

Листинг 2. Пользовательская функция Kol_Zero () public static int Kol_Zero(int[] a)

        {   int k = 0;

            for (int i = 0; i < a.Length; i++)

                if (a[i] == 0) k++;             return k;

        }

 

3.        Объявим глобальную переменную – одномерный массив.  Синтаксис объявления нашего массива в классе Form следующий: public partial class Form1 : Form

    {  int[] a;

       ………………….

 

4.        Далее создадим код, обновляющий массив по правилу: все максимальные элементы заменяются на количество нулевых. Реализуем его в виде процедуры. Целый массив должен быть прочитан процедурой как исходный, а результат его обновления должен быть сохранен в нем же. Т.е параметр-массив является и входным и результатом одновременно, поэтому объявим его как обновляемый с ключевым словом ref. Обратите внимание, что в коде процедуры вызываются написанные нами функции Kol_Zero(a) и  Maximum(a).

 

Синтаксис объявления нашей процедуры, обновляющей массив, приведен в листинге 3.

Листинг 3. Пользовательская процедура Refresh_Array ()

public static void Refresh_Array(ref int[] a)

        {   //вызов функции             int k = Kol_Zero(a);           //вызов функции             int m = Maximum(a);             for (int i = 0; i < a.Length; i++)

                if (a[i] == m) a[i] = k;

        }

 

5. Продолжим разработку функционала проекта созданием стандартной функции обработки события Click для кнопки «Создать массив» (buttonl). 

Функция button1_ciick выделает память под заданное пользователем количество элементов массива и заполняет его случайными числами от -10 до 9. Полученный массив выводится   в список ListBox1 в виде строки.

 

Синтаксис объявления нашей процедуры button1_Click, создающей массив, приведен в листинге 4.

Листинг 4. Процедура button1_Click ()

private void button1_Click(object sender, EventArgs e)

        {   string s="";

            int n = Convert.ToInt32(textBox1.Text);             a = new int[n];

            Random r = new Random();             for (int i = 0; i < a.Length; i++)             {   a[i] = r.Next(-10, 10);

                s = s + ' ' + a[i];

            }

            listBox1.Items.Clear(); 

            listBox2.Items.Clear();

            listBox1.Items.Add("Исходный массив");

            listBox1.Items.Add(s);

        }

 

6. Далее создадим стандартную процедуру обработки события Click для кнопки «Изменить массив» (button2). Функция button2_ciick вызывает процедуру обновления массива. Измененный массив выводится   в список ListBox2 в виде строки. 

Синтаксис объявления нашей процедуры button2_Click, создающей массив, приведен в листинге 5.

Листинг 5. Процедура button2_Click ()

private void button2_Click(object sender, EventArgs e)

        {   string s = "";

            //вызов процедуры

Refresh_Array(ref a);

            for (int i = 0; i < a.Length; i++)

                s = s + ' ' + a[i];

            listBox2.Items.Clear();

            listBox2.Items.Add("Измененный массив");             listBox2.Items.Add(s);

        }

 

Замечание.

Обратите внимание, что вызов процедуры является отдельным оператором. При вызове перед обновляемым параметром a обязательно указывать слово ref!

 

Замечание.

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

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

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

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

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

Вариант № 1

В одномерном массиве размерности n заменить максимальные элементы на их номера.

Вариант № 2

В одномерном массиве размерности n заменить минимальные элементы нулем.

Вариант № 3

В одномерном массиве размерности n заменить минимальные элементы на количество четных.

Вариант № 4

В одномерном массиве размерности n поменять местами первый минимальный  и последний элемент.

Вариант № 5

В одномерном массиве размерности n заменить последний элемент на произведение элементов, кратных 5. 

Вариант № 6

В одномерном массиве размерности n заменить максимальные элементы на  последний элемент.

Вариант № 7

В одномерном массиве размерности n заменить минимальные элементы на количество отрицательных.

Вариант № 8

В одномерном массиве размерности n поменять местами первый элемент и последний максимальный.

Вариант № 9

В одномерном массиве размерности n заменить элемент после первого на максимальный.

Вариант № 10

В одномерном массиве размерности n  к четным элементам прибавить максимальный.

Вариант № 11

В одномерном массиве размерности n заменить минимальные элементы на произведение нечетных.

Вариант № 12

В одномерном массиве размерности n заменить максимальные на разность положительных и кратных 3.

Вариант № 13

В одномерном массиве размерности n из элементов с нечетными номерами вычесть минимальный элемент. 

Вариант № 14

В одномерном массиве размерности n заменить первый элемент на количество минимальных элементов.

Вариант № 15

В одномерном массиве размерности n заменить все элементы между первым максимальным и последним минимальным нулем.

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Лабораторная работа "Параметры процедур и функций""

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

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

Ученый секретарь

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

Фитнес-тренер

за 6 месяцев

Пройти курс

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

Скачать

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

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

 

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

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

6 663 944 материала в базе

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

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

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

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

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

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

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

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

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

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

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

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

Няня

Няня

500/1000 ч.

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

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

Методы и инструменты современного моделирования

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Сейчас обучается 36 человек из 19 регионов
  • Этот курс уже прошли 69 человек

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

Педагогическая деятельность по проектированию и реализации образовательного процесса в общеобразовательных организациях (предмет "Информатика")

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

300 ч. — 1200 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Этот курс уже прошли 20 человек

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

Разработка и сопровождение требований и технических заданий на разработку и модернизацию систем и подсистем малого и среднего масштаба и сложности

Системный аналитик

600 ч.

9840 руб. 5600 руб.
Подать заявку О курсе
  • Сейчас обучается 66 человек из 34 регионов
  • Этот курс уже прошли 83 человека

Мини-курс

Управление коммуникациями в кризисных ситуациях

6 ч.

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

Мини-курс

Фокусировка и лидерство: достижение успеха в условиях стресса и перемен

4 ч.

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

Мини-курс

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

3 ч.

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