- •В.А. Новиков Объектно-ориентированное программирование в с#
- •Минск ● вгкс
- •Лабораторная работа 1 Константы, переменные, выражения. Визуальные элементы: кнопка и текстовое поле
- •Лабораторная работа 2 Операторы управления. Визуальные элементы: маскированное поле и установка цвета
- •Лабораторная работа 3 Ввод – вывод на консоль. Визуализация через файлы. Независимый переключатель и шрифты
- •Лабораторная работа 4 Строки. Модальные формы пользователя
- •Лабораторная работа 5 Массивы. Зависимый переключатель
- •Лабораторная 6 Перечисление. Немодальные формы пользователя
- •Лабораторная 7 Регулярные выражения. Таймер
- •Лабораторная работа 8 Прототипы-данные. Визуальный элемент выпадающий список
- •Лабораторная работа 9 Подпрограммы. Визуальный элемент список. Отработка событий клавиатуры
- •Лабораторная работа 10 Обработка исключительных ситуаций. Визуальный элемент закладка tabControl
- •Лабораторная работа 11 Переопределение операций. Закладка TabStrip
- •Лабораторная работа 12 Работа с файлами. Всплывающая подсказка
- •Лабораторная работа 13 Структуры. Перетаскивание элемента на форме
- •Лабораторная работа 14 Построение графиков через Excel. Объект Drawning
- •Содержание
Лабораторная работа 5 Массивы. Зависимый переключатель
Цель работы.
Изучить формирование программ с использованием массивов. Научиться создавать формы с использованием визуального элемента зависимый переключатель.
План занятия.
Изучить теоретические сведения формирования программы на С#.
По приведенному листингу программы разработать на Visual Studio программу и отладить ее. Составить программу по индивидуальному заданию.
Краткие теоретические сведения.
Массивы.
Одномерные массивы.
Обращение к элементу массива: a[4].
Инициализация
int[ ] a; //массив a целого типа
int[ ] a = new int[5]; // фиксируется длина символа
int[ ] a = {15,2,8,4};
int[ ] a = new [6] {8,4,2};
Прямоугольные массивы.
a[1,2] // двумерный массив прямоугольный
a[2,3,1] // трёхмерный массив прямоугольный
У прямоугольного массивы размеры постоянны т. е. n строк и m столбцов для матрицы.
Инициализация
int[ , ] a;
int[ , ] a= new int[2,3];
int[ , ] a= { {1,4,8}, {5,6}};
int [ , ] a= new int[2,3] { {1,4,8},{5,6}};
В обоих последних случаях будет инициализирована матрица
1 4 8
a = 5 6 0
Ступенчатые массивы.
Инициализация:
1) int[ ][ ] a;
2) int[ ][ ] a=new int[3][ ];
a[0]= new int[5]; //каждая строка матрицы инициализируется как одномерный массив; в данном примере это строка номер один
Нельзя
3) int[ ][ ] a=new int [ ] [3];
4) int[ ][ ] a={new int[ ], new int[5], new int[4]};
Функции над массивами.
Все массивы являются объектом Array.
a.Length – для одномерного массива его размер, для двумерного – число строк.
a[0].Length – число столбцов, т. е. второго размера нулевой строке.
a[0][1].Length – число элементов 3-его размера в 0-й строке и 1-м столбце.
a.Rank – число размеров массива
a.GetValue(1) – тоже, что a[1].
К статическим методам нужно обращаться через указание класса Array:
Array.Sort(a) // сортировка одномерного массива а по возрастанию
Порядок выполнения работы.
Создайте форму:
Воспроизведите программный код:
//FORM
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
float[,] Xmas=new float[10,10];
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if(radioButton1.Checked){
for(int i=0; i<10; i++)
{
float x=1+i/3;
for(int j=0; j<10; j++)
{
float y=-2+j/12;
Xmas[i,j]=Convert.ToSingle((Math.Exp(-x*y)+Math.Exp(x*y))/
(1+Math.Abs(Math.Pow(Math.Sin(x),2)+Math.Pow(Math.Cos(x),2))));
}
}
radioButton5.Checked=true;
}
}
private void radioButton5_CheckedChanged(object sender, EventArgs e)
{
if(radioButton5.Checked){
float Y=0;
for(int i=0; i<10; i++)
{
for(int j=0; j<10; j++)
{
Y+=Xmas[i,j];
}
}
textBox2.Text=String.Format("{0,5:f2}",Y/100);
}
}
private void radioButton7_CheckedChanged(object sender, EventArgs e)
{
if(radioButton7.Checked){
float Y=1.0e33f;
for(int i=0; i<10; i++)
{
for(int j=0; j<10; j++)
{
if(Y>Xmas[i,j]) Y=Xmas[i,j];
}
}
textBox2.Text=String.Format("{0,5:f2}",Y);
}
}}}
Индивидуальное задание.
Из практического задания в файл вывести матрицу Xmas. Составить программу транспонирования этой матрицы. Транспонированную матрицу вывести в тот же файл, что и Xmas.
Содержание отчета.
Представить отлаженную программу по индивидуальному заданию.
Литература.
Павловская Т.А. С#, Программирование на языке высокого уровня. – М., СПб: Питер, 2010, с.126-138