Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Введение в программирование на языке Visual C#

Лабораторная работа №11 «Комплексное применение элементов управления»

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

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

Пример выполнения работы

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

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

1. По табл. 27 определяется тарифная ставка в соответствии с квалификационным уровнем (заработная плата за 18 часов в неделю) — St;

Таблица 27. Тарифная ставка

Квалификационный

уровень

Должности, отнесенные к квалификационным уровням

Должностной оклад

і

Ассистент

3880

2

Преподаватель

4268

3

Старший преподаватель

5104

4

Доцент

5247

5

Профессор

6003

6

Заведующий кафедрой

6463

7

Декан факультета

6960

2. На основе тарифной ставки рассчитывается основная заработная плата за ведение занятий:

Т = * К / 18, где К — количество часов в неделю;

3. Рассчитываются надбавки:

? за звание доцента — 40% от заработной платы;

? вредность (при работе в компьютерном классе) — 12% от заработной платы;

? заведование кабинетом — 10% от ставки;

? участие в национальном проекте «Образование» — 15% от ставки;

? куратор группы — 20% от ставки;

? звание «Заслуженный учитель России» — 50% от заработной платы;

? ученая степень кандидата наук — 50% от заработной платы;

? ученая степень доктора наук — 70% от заработной платы;

? за методическую литературу — 100 руб. ежемесячно; начисление = основная заработная плата за ведение занятий + надбавки;

4. Вычисляются налоги:

налог в пенсионный фонд — 1% от начисления; подоходный налог — 13% от начисления; сумма к выдаче = начисление — налоги.

Внешний вид главного окна приложения представлен на рис. 210.

Рис. 210. Внешний вид главной формы приложения В листинге 195 приведен код процедуры, отвечающий за решение задачи. Листинг 195

namespace WindowsApplicationl

{

public partial class Forml : Form

{

double dl, d2, d3, d4, d5, d6, d7, d8, d9, st; public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

{

int kv_ur = Convert.Tolntl6(textBoxl.Text); int kol_chas = Convert.ToIntl6(textBox2.Text); bool flag = true ; switch (kv_ur)

{

case 1: st = 3880 ; break;//Тарифная ставка определяется по таблице

case

2

st = 4268 ;

break;

case

3

s t = 5104 ;

break;

case

4

s t = 5247

break;

case

5

s t = 6003

break;

case

6

st = 6463

break;

case

7

st = 6960 ;

break;

default: {

уровень ");

flag = false; textBoxl.Clear(); textBox2.Clear(); break;

}

}

if (flag == true)

{

double z = st / 18 * kol_chas; if (checkBoxl.Checked)

dl = 0.12 * z; //Надбавка за вредность работы в

комп, классе

if (checkBox2.Checked)

d2 = 0.2 * st; //Надбавка за кураторство

if (checkBox3.Checked)

d3 = 0.15 * st; //Надбавка за участие в над.

проекте

if (checkBox4.Checked)

d4 = 0.1 * st; //Надбавка за заведование

кабинетом

if (checkBox5.Checked)

d5 = 0.4 * z; // Надбавка за звание доцента if (radioButton2.Checked)

d6 = 0.5 * z; //Надбавка за звание кандидата

наук

if (radioButton.3 .Checked)

d7 = 0.7 * z; //Надбавка за звание доктора наук if (radioButton4.Checked)

d8 = 0.5 * z; //Надбавка за звание Заслуженный

учитель

d9 = 100; //Надбавка за методическую

литературу

double d = dl + d2 + d3 + d4 + d5 + d6 + d7 + d8 + d9 ; //Все надбавки

z = z + d ; //Зарплата с надбавками

textBox3.Text = z.ToString(); double pod_nal = 0.13 * z ; //Подоходный

налог

textBox4.Text = pod_nal.ToString(); double pens_nal = 0.01 * z ; //Налог в

пенсионный фонд

textBox5.Text = pens_nal.ToString() ;

double itog = z - pod_nal - pens_nal ; //Итог

textBox6.Text =itog.ToString() ;

}

}

private void Forml_Load(object sender, EventArgs e)

{

string f =

Microsoft.VisualBasic.Interaction.InputBox("Введите вашу фамилию", "Регистрация","", -1, -1);

string i =

Microsoft.VisualBasic.Interaction.InputBox("Введите ваше имя",

"Регистрация","", -1, -1);

string о =

Microsoft.VisuaiBasic.Interaction.InputBox("Введите ваше отчество",

"Регистрация","", -1, -1) ;

this.Text = "Зарплата преподавателя. " + f + " " + i +

" " + о ;

label1.Text = "Уважаемый(-ая) " + i + " " + о + " !

Введите, пожалуйста, свои данные";

}

}

}

Задания для самостоятельной подготовки Изучить:

- основные свойства элементов управления, используемых в приложении. Разработать:

- интерфейс программы;

- программу решения задачи;

- тестовый вариант исходных данных.

Работа в лаборатории

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

1. Получить допуск к лабораторной работе при предъявлении преподавателю отчета по текущей лабораторной работе.

2. Проект должен иметь заставку, в которой должны быть указаны:

название учебного заведения; название кафедры; название лабораторной работы; цель лабораторной работы; условие задачи.

3. Заставка к проекту выполняется студентами 1-й подгруппы с использованием программного кода, который реализует создание нестандартной формы (см. Приложение 2, заставка №11), студентами 2-й подгруппы с использованием программного кода, который реализует работу с объектом Bitmap (см. Приложение 2, заставка №8).

4. Главную форму разрабатываемого приложения студенты 1-й подгруппы и 2-й подгруппы программируют с использованием обычной формы.

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

6. Студент должен уметь ответить на контрольные вопросы по лабораторной работе, т.е. проявить свои знания по теоретической части курса.

7. Студент должен продемонстрировать свои навыки и умения при работе на персональном компьютере в среде программирования Microsoft Visual Studio, набрав и отладив программу своего варианта.

8. Студент обязан соблюдать правила по технике безопасности при работе с вычислительной техникой.

Содержание отчета

1. Название лабораторной работы.

2. Фамилия, имя студента, номер группы.

3. Цель лабораторной работы.

4. Условие задачи.

5. Листинг программы.

6. Результаты выполнения программы.

Контрольные вопросы

1. Дайте характеристику каждому элементу управления, применяемому в данном проекте.

2. Расскажите принцип работы разработанного приложения.

Лабораторная работа №12 «Классические способы обработки одномерных массивов»

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

Пример выполнения работы

Условие: разработайте проект, содержащий несколько форм. Первая форма является заставкой к приложению. На второй форме находится элемент управления ТаЬСоп<то1, на 1-й вкладке которого следует разместить элементы управления, с помощью которых возможно осуществить:

заполнение одномерного массива с помощью генератора случайных чисел; выбор одного из четырех классических способов обработки одномерного массива, таких как:

1. Нахождение количества элементов одномерного массива при заданном условии.

2. Нахождение суммы элементов одномерного массива при заданном условии.

3. Нахождение произведения элементов одномерного массива при заданном условии.

4. Нахождение экстремальных значений элементов одномерного массива при заданном условии.

Ввод заданного условия организуйте с помощью функции 1при1Вох.

На 2 -й вкладке элемента управления ТаЬСоп<то1 следует программно реализовать алгоритмы включения и удаления элемента, соответственно в массив и из массива. Организуйте с помощью функции 1при1Вох запрос на ввод количества элементов массива.

НаЗ -й вкладке элемента управления TabControl следует программно реализовать алгоритмы упорядочивания одномерных массивов по возрастанию и убыванию. Организуйте с помощью функции InputBox запрос на ввод количества элементов массива.

Предусмотрите запрос на выход из программы. Создайте иконку с собственными инициалами и скомпилируйте .ехе файл.

Внешний вид главной формы представлен на рис. 211.

Рис. 211. Внешний вид главной формы

Классические способы обработки

Нахождение количества элементов при заданном условии Нахождение суммы значений элементов при заданном условии Нахождение произведения значений элементов при заданном условии Нахождение максимального элемента_

Рис. 212. Элементы ComboBox

-

Обработка одномерных массивов

Классические слособь обработки Исходньй массиЕ

Вклсчение и удаление элемента УпорядочиЕание элементоЕ

1

7

18 1

7 1

15

3

11

10

6

Результат Еьчислений

Заполнить массиЕ

Вьберите способ обработки массиЕа

Нахохдение максимального значения

Бьчислить

Рис. 213. Один из способов обработки одномерных массивов

Рис. 214. Вставка элемента со значением 0 на 11-е место

Рис. 215. Упорядочивание исходного массива по возрастанию

В листинге 196 приведен код процедур, отвечающий за решение задач, реализуемых на первой вкладке элемента управления TabControl.

Листинг 196

namespace WindowsApplicationl

{

public partial class Forml : Form

{

int[] b = new int[11]; public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

{

Random a = new Random();

textBoxl.Clear();

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

{

b[i] = a.Next(l, 20); //диапазон чисел от 1 до 20 textBoxl.AppendText(b[i] + " ");

}

} private void button2_Click(object sender, EventArgs e)

{

switch (comboBoxl.Selectedlndex)

{

case 0:

int kol = 0 ;

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

if (b[i] >= 10) //Ввод заданного условия с помощью функции InputBox предлагается организовать самостоятельно

kol = kol + 1 ;

textBox2.Text = kol.ToString() ; break;

case 1:

int sum = 0;

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

if (b[i] >= 10) //Ввод заданного условия с помощью функции InputBox предлагается организовать самостоятельно

sum = sum + b[i];

textBox2.Text = sum.ToString() ; break;

case 2:

int proizv = 1 ;

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

if (b[i] >= 10) //Ввод заданного условия с помощью функции InputBox предлагается организовать самостоятельно

proizv = proizv * b[i] ; textBox2.Text = proizv.ToString() ; break;

case 3:

int max = -32768;

for (int i — 0; i <— 9; i++)

if (b[i] > max) //Поиск минимального элемента предлагается организовать самостоятельно

max = b[i];

textBox2.Text = max.ToString(); break;

В листинге 197 приведен код процедур, отвечающий за вставку элемента на второй вкладке элемента управления TabControl. Процедуру, отвечающую за удаление элемента, предлагается реализовать самостоятельно.

Листинг 197

private void button3_Click(object sender, EventArgs e)

{

Random a = new Random();

textBox3.Clear();

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

{

b[i] = a.Next(1, 20);

textBox3.AppendText(b[i] + " ");

}

}

private void button4_Click(object sender, EventArgs e)

{

string chislo_, poz_;

textBox4.Clear(); chislo_ =

Microsoft.VisualBasic.Interaction.InputBox("Введите вставляемый элемент", "Окно ввода данных", 200, 480);

int chislo = Convert.ToIntl6(chislo_); poz_ = Microsoft.VisualBasic.Interaction.InputBox("Ha какое место в массиве вы хотите вставить элемент?", "Окно ввода данных", 200, 480);

int poz = Convert.ToIntl6(poz_); for (int i = 9; i >= poz; i--)

{

b [ i + 1] = b [ i ] ; b[i] = chislo;

}

for (int i = 0; i <= 10; i++)

textBox4.AppendText(b[i] + " ");

}

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

Листинг 198

private void button6_Click(object sender, EventArgs e)

{

Random a = new Random();

textBox5.Clear();

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

{

b[i] = a.Next(1, 20); //диапазон чисел от 1 до 20

textBox5.AppendText(b[i] + " ");

}

}

private void button7_Click(object sender, EventArgs e)

{

int bufer;

textBox6.Clear();

for (int i = 0; i <= 8; i + +)

{

int min = i;

for (int j = i + 1; j <= 9; j++) if (b[j] < b[min]) min = j; bufer = b[i]; b[i] = b[min]; b[min] = bufer;

}

for (int k = 0; k <= 9; k++) textBox6.AppendText(b[k] + " ");

}

Задания для самостоятельной подготовки Изучить:

- операторы для ввода и вывода одномерных массивов;

- работу элемента управления TabControl;

- классические способы обработки одномерных массивов;

- алгоритмы упорядочивания одномерных массивов.

Разработать:

- интерфейс программы;

- программу решения задачи;

- тестовый вариант исходных данных.

Работа в лаборатории

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

1. Получить допуск к лабораторной работе при предъявлении преподавателю отчета по текущей лабораторной работе.

2. Проект должен иметь заставку, в которой указываются:

название учебного заведения; название кафедры; название лабораторной работы; цель лабораторной работы; условие задачи.

3. Заставка к проекту выполняется:

- студентами 1-й подгруппы с использованием программного кода, который реализует поворот изображения и его зеркальное отображение (см. Приложение 2, заставка №12);

- студентами 2-й подгруппы с использованием программного кода, который реализует постепенное развертывание формы (см. Приложение 2, заставка №7).

4. Главную форму разрабатываемого приложения студенты 1-й подгруппы и 2-й подгруппы программируют с использованием обычной формы.

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

6. Студент должен уметь ответить на контрольные вопросы по лабораторной работе.

7. Студент должен продемонстрировать свои навыки и умения при работе на персональном компьютере в среде программирования Microsoft Visual Studio, набрав и отладив программу своего варианта.

8. Студент обязан соблюдать правила по технике безопасности при работе с вычислительной техникой.

Содержание отчета

1. Название лабораторной работы.

2. Фамилия, имя студента, номер группы, номер варианта.

3. Цель лабораторной работы.

4. Условие задачи.

5. Листинг программы.

6. Результаты выполнения программы.

Контрольные вопросы

1. С какой целью применяют одномерные массивы в программах?

2. Каким образом объявляются одномерные массивы в программах?

3. Каким образом осуществляется доступ к каждому элементу одномерного массива при его обработке?

4. Каким образом осуществить вывод одномерного массива на экран?

5. Нарисуйте базовые алгоритмы обработки одномерных массивов.

6. Поясните, каким образом осуществляется обмен значений элементов массива.

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

8. Расскажите, в чем заключается алгоритм упорядочивания массива методом «пузырька».

9. Расскажите, в чем заключается алгоритм упорядочивания массива по убыванию элементов.

Лабораторная работа №13 «Программирование алгоритмов формирования и обработки одномерных массивов»

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

Пример выполнения работы

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

Задача 1. Из одномерного массива целых чисел b [10] сформируйте два массива: массив четных чисел с и массив нечетных чисел d. Результат выведите на элемент управления TextBox. Создайте иконку с собственными инициалами, предусмотрите запрос на выход из программы и скомпилируйте .ехе файл.

Комментарий: исходный массив Ь[10] формируем с помощью генератора случайных чисел. Затем, организовав цикл, с помощью операции % (остаток от деления) каждый элемент одномерного массива проверяется на четность. Если условие истинно, то формируется массив четных чисел, если ложно, то нечетных.

Разработка алгоритма решения задачи представлена на рис. 216.

В листинге 199 приведен код процедуры, отвечающий за решение задачи.

Листинг 199

namespace WindowsApplicationl

{

public partial class Forml : Form

{

public Forml()

{

InitializeComponent() ;

}

private void buttonl_Click(object sender, EventArgs e)

{

Random a = new Random(); int[] b = new int[10]; int[] c = new int[10]; int[] d = new int[10];

int chet = 0 ; //Счетчик, отвечающий за количество

четных чисел

int nechet = 0 ; //Счетчик, отвечающий за количество нечетных чисел

textBoxl.Clear();

textBox2.Clear(); textBox3.Clear(); for (int i = 0; i < {

= 9; i++)

четность

b[i] = a.Next(10, 80); textBoxl.AppendText(b[i] + if (b[i] % 2 == 0) //Проверка на очередного элемента массива

{

chef = chef + 1 ;

с[chef] = b[i] ; //Формирование массива четных

чисел в случае истинности проверяемого условия

}

else

{

nechet = nechet + 1 ;

d[nechet] = b[i]; //Формирование массива нечетных чисел в случае, если проверяемое условие ложно

}

}

for (int i = 1; i <= chet; i++)

textBox2.AppendText(c[i] + " "); for (int i = 1; i <= nechet; i++) textBox3.AppendText(d[i] + " ");

}

}

Задача 2. В одномерном массиве целых чисел b [10] вычислите произведение ненулевых элементов.

В листинге 200 приведен код процедуры, отвечающий за решение задачи.

Листинг 200

namespace WindowsApplicationl

{

public partial class Forml : Form

{

public Forml()

{

InitializeComponent() ;

}

private void buttonl_Click(object sender, EventArgs e)

{

Random a = new Random();

int[] b = new int[10];

int pr = 1 ;

textBoxl.Clear();

textBox2.Clear();

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

{

b[i] = a.Next(0, 3); textBoxl.AppendText(b[i] + " "); if (b[i] != 0) pr = pr * b[i];

}

}

}

Задания для самостоятельной подготовки Изучить:

- операторы для ввода и вывода одномерных массивов;

- классические способы обработки одномерных массивов;

- алгоритмы упорядочивания одномерных массивов.

Разработать:

- интерфейс программы;

- алгоритм решения задачи;

- программу решения задачи;

- тестовый вариант исходных данных.

Работа в лаборатории

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

1. Получить допуск к лабораторной работе при предъявлении преподавателю отчета по текущей лабораторной работе.

2. Проект должен иметь заставку, в которой указываются:

название учебного заведения; название кафедры; название лабораторной работы; цель лабораторной работы; условие задачи; вариант задачи.

3. Заставка к проекту выполняется:

студентами 1-й подгруппы с использованием программного кода, который реализует рисование с помощью мыши (см. Приложение 2, заставка №13); студентами 2-й подгруппы с использованием программного кода, который реализует ввод пароля с заданным числом попыток (см. Приложение 2, заставка №6).

4. Главную форму разрабатываемого приложения студенты 1-й подгруппы и 2-й подгруппы программируют с использованием обычной формы.

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

6. Студент должен уметь ответить на контрольные вопросы по лабораторной работе.

7. Студент должен продемонстрировать свои навыки и умения при работе на персональном компьютере в среде программирования Microsoft Visual Studio, набрав и отладив программу своего варианта.

8. Студент обязан соблюдать правила по технике безопасности при работе с вычислительной техникой.

Содержание отчета

1. Название лабораторной работы.

2. Фамилия, имя студента, номер группы.

3. Цель лабораторной работы.

4. Условие задачи.

5. Разработанный алгоритм (все алгоритмические блоки чертятся карандашом или выполняются в текстовом редакторе Microsoft Word).

6. Листинг программы.

7. Результаты выполнения программы.

Контрольные вопросы

1. С какой целью применяют одномерные массивы в программах?

2. Каким образом объявляются одномерные массивы в программах?

3. Каким образом осуществляется доступ к каждому элементу одномерного массива при его обработке?

4. Каким образом осуществить вывод одномерного массива на экран?

5. Нарисуйте базовые алгоритмы обработки одномерных массивов.

6. Поясните, каким образом осуществляется обмен значений элементов массива.

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

8. Расскажите, в чем заключается алгоритм упорядочивания массива методом «пузырька».

9. Расскажите, в чем заключается алгоритм упорядочивания массива по убыванию элементов.

Варианты к лабораторной работе «Программирование алгоритмов формирования и обработки одномерных массивов»

(порядковый номер студента по журналу соответствует его номеру варианта)

варианта

Задача

1

Введите одномерный массив х= {-1.5, 0.1,12, 0, -2.2, 0.5, -1, 0.3}.

Вычислите и выведите сумму и количество элементов массива, принадлежащих отрезку [0,1].

2

Введите одномерный массив а = {5, -2, 0, 3, 4,12, 7}.

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

3

Введите одномерный массив х = {-1.5, 0, 0.8, 2.2, 3, 0.5, 0.1}.

Перепишите элементы массива, принадлежащие отрезку [-1,1], в массив у и выведите его.

4

Введите одномерные массивы а [5] и Ь |5], состоящие из произвольных чисел, и определите, в каком из массивов больше положительных элементов. Выведите новый массив с, состоящий из положительных элементов массивов а и Ь.

5

Введите одномерный массив г = {-2, 0,3.5, 7, -12, 5, -1, 3}.

Расположите в массиве г сначала положительные, а затем неположительные элементы массива г. Выведите массив г.

6

Введите одномерный массив а={2.35,-4.15,0,-3.1, 7.8, 6.3,-3.05,1.5}.

Найдите и выведите среднее геометрическое положительных элементов массива а и индекс элемента, наиболее близкого к среднему геометрическому.

7

Введите одномерный массив а [10], элементы которого должны быть сформированы по правилу а[1+1]:=а[1]+12 ; а[1]:=2, и вычислите среднее арифметическое его элементов.

8

Введите одномерный массив у={2.5, 4.9,10.2, -7.12, 3.1, -2, 6}.

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

9

Введите одномерный массив у={-6.3, 0.8,12, -4,13, 2.5, 7, 8, -9,10}.

Найдите и выведите максимальный и минимальный элементы массива и поменяйте их местами. Выведите полученный массив у.

10

Введите одномерные массивы х={4.1,16, 0, -3.2,12} и У={4, 5.1, 6}.

Объедините их в один массив г, поместив элементы массива у между третьим и четвертым элементами массива х. Выведите массив г.

11

Введите одномерные массивы г = {0, 1.6, 6.4, 3.8, -7, 1, -2} и а={5,4,6.4,1}. Найдите среди элементов массивов а и г два одинаковых элемента с наименьшими индексами и выведите их значения и индексы.

12

Введите одномерный массив п= {3, 5, 7, 9, 11, 13, 15}. Переставьте элементы массива п в обратном порядке и выведите его.

13

Введите одномерный массив т= {-1, 0,10, -3, -5, 6, -2, 3, 4}.

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

14

Введите одномерный массив 1 = {13, 4, -2, 6, 7, -1, -5, 2, -3, 4}.

Вычислите и выведите ш[0]п[0]+т[1]п[1]+...+т[к]п[к], где т[0], т[ 1 ],___т[р] —

отрицательные элементы массива 1, взятые в порядке их следования; п[0], п[ 1 ],...п[ц] — положительные элементы массива 1, взятые в обратном порядке их следования; к = гшп{р,ц}.

15

Введите одномерный массив к = {1, 2, 3, 4, 5, 6, 7, 8, 9,10}.

Переставьте пары элементов к[1], к[Н-1], где I = 0, 2, 4, 6, 8. Выведите полученный массив.

16

В одномерном массиве, состоящем из 15 вещественных элементов (значения элементов массива задайте, используя генератор случайных чисел), вычислите:

1) сумму отрицательных элементов массива;

2) произведение элементов массива, расположенных между максимальным и минимальным элементами.

17

Введите одномерный массив х={6,3.8, -9.3, 2.87,16, 5, 0.2, -3.1,1,10}. Сформируйте и выведите массив У, вычислив его по правилу:

Уа = ^Х0, У] =д/Х0 + Х1, У2 - Л/Х012 ,...,если подкор выражение неотр

У =0,в противном случае

18

Введите одномерный массив ш={6,10, 7,14,12,12,-2,3,-9, 6,-10}.

Вычислите и выведите количество и сумму тех элементов массива, которые делятся на 2 и не делятся на 3.

19

Введите одномерный массив ш = {14, 6, 3, 0, 7,12, -3,1, 5, 2}.

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

20

Введите одномерный массив 1 = {7, 6,15,17,12, -12, 4, 0, -10, -22}.

Замените в массиве нулями те элементы, модуль которых при делении на 5 дает в остатке 2. Выведите полученный массив.

21

Введите одномерный массив к = {1, 2, 3, 4, 6, 5, 8, 9,10}.

Если элементы массива образуют возрастающую последовательность, выведите сообщение "ДА"; в противном случае — сообщение "НЕТ".

22

Введите упорядоченный массив ц = {1.5,2,3.1,4.2,6,7.5,8.3,9}.

Удалите из массива элемент с индексом 4 и вставьте элемент с вводимым значением в так, чтобы не нарушилась упорядоченность. Выведите полученный массив.

23

В одномерном массиве, состоящем из 15 вещественных элементов (значения элементов массива задайте, используя генератор случайных чисел), вычислите:

1) сумму положительных элементов массива;

2) произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами.

24

Введите одномерный массив Ь={-15.1,0.8,32.3, 7.5,-1.5, 2.4, -6.3,15.5}. Подсчитайте и выведите среднее арифметическое значение элементов массива и количество элементов, больших среднего арифметического.

25

В одномерном массиве, состоящем из 20 вещественных элементов (значения элементов массива задайте, используя генератор случайных чисел), вычислите:

1) номер минимального элемента массива;

2) сумму элементов массива, расположенных между первым и вторым отрицательными элементами.

Преобразуйте массив таким образом, чтобы сначала располагались все элемен-ты, модуль которых не превышает 1, а потом — все остальные.

26

В одномерном массиве, состоящем из 20 целых элементов (значения элементов массива задайте, используя генератор случайных чисел), вычислите:

1) номер максимального элемента массива;

2) произведение элементов массива, расположенных между первым и вторым нулевыми элементами.

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

27

Введите одномерные массивы х = {-6,0.5,0.12,13, -10.1} и у = {13,2.1,14,6, -2}. Создайте одномерный массив г [10] такой, что элементы с нечетными номерами являют-ся элементами массива х, с четными номерами — массива у. Выведите массив г.

28

Введите одномерные, упорядоченные по возрастанию массивы а = {-2, 0, 3.1, 4.6, 10}, Ь = {4, 7, 9.1, 12, 63}. Сформируйте из элементов массивов а и Ь массив с. Упорядочите его по возрастанию и выведите массив с.

29

В одномерном массиве, состоящем из 20 целых элементов (значения элементов массива задать, используя генератор случайных чисел), вычислите:

1) произведение элементов массива с четными номерами;

2) преобразуйте массив таким образом, чтобы сначала располагались все поло-жительные элементы массива, а потом — все отрицательные (элементы, равные нулю, считать положительными).

30

В одномерном массиве, состоящем из 20 элементов целого типа (значения элементов массива задайте, используя генератор случайных чисел), вычислите:

1) минимальный элемент массива;

2) сумму элементов массива, расположенных между первым и последним положительными элементами.

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

31

Введите одномерный массив х= {-1, 2, -3, 4, -5, 0, 6, 8, 9}.

Перепишите в массив у подряд положительные элементы массива х.

Выведите массив у.

32

Введите одномерный массив g = {-3.1, 2.8, 5, 7.7, -7.5, 7.6, 3, 0}.

Определите и выведите минимальный элемент массива и его номер.

33

Введите одномерный массив Ь = {7.35, 0.12, -7,3.12, 2.87, -4.12, 5.32, 0, 6.5}. Определите и выведите максимальный элемент массива и его номер.

34

В одномерном массиве, состоящем из 20 вещественных элементов (значения элементов массива задайте, используя генератор случайных чисел), вычислите:

1) максимальный элемент массива;

2) сумму элементов массива, расположенных до последнего положительного элемента.

35

В одномерном массиве, состоящем из 20 вещественных элементов (значения элементов массива задайте, используя генератор случайных чисел), вычислите:

1) сумму элементов массива с нечетными номерами;

2) сумму элементов массива, расположенных между первым и последним отрицательными элементами

Лабораторная работа №14 «Классические способы обработки двумерных массивов»

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

Пример выполнения работы

Условие: разработайте проект, содержащий несколько форм. Первая форма является заставкой к приложению. На второй форме находится элемент управления TabControl, на 1-й вкладке которого следует разместить элементы управления, с помощью которых возможно осуществить:

- ввод размера двумерного массива и его заполнение с помощью генератора

случайных чисел;

- выбор одного из четырех классических способов обработки двумерного массива, таких как:

1. Нахождение количества элементов матрицы при заданном условии.

2. Нахождение суммы элементов матрицы при заданном условии.

3. Нахождение произведения элементов матрицы при заданном условии.

4. Нахождение экстремальных значений элементов матрицы при заданном условии.

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

На 2-й вкладке элемента управления TabControl следует программно реализовать алгоритмы обмена столбцов и обмена строк элементов матрицы размерностью ш х п. Организуйте с помощью функции InputBox запрос на ввод количества строк и столбцов массива.

НаЗ -й вкладке элемента управления TabControl следует программно реализовать алгоритмы транспонирования матрицы и нахождения произведения двух матриц.

Создайте иконку с собственными инициалами, предусмотрите запрос на выход из программы и скомпилируйте .ехе файл.

Внешний вид главной формы представлен на рис. 217.

Рис. 217. Внешний вид главной формы

Выберите способ обработки матрицы

Нахождение количества элементов при заданном условии Нахождение суммы элементов при заданном условии Нахождение произведения элементов при заданном условии Нахождение экстремальных значений матрицы_

Рис. 218. Элементы СотЬоВох

Рис. 219. Один из способов обработки матрицы

Рис. 220. Произведен обмен 0-й и 4-й строки матрицы

Рис. 221. Транспонирование матрицы

В листинге 201 приведен код процедур, отвечающий за решение задач, реализуемых на первой вкладке элемента управления TabControl.

Листинг 201

namespace WindowsApplicationl

{

public partial class Forml : Form

{

int[,] b = new int[5, 5]; int[,] c = new int[5, 5]; public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

{

Random a = new Random();

textBoxl.Clear ();

for (int i — 0; i < 5; i++)

{

textBoxl.Text = textBoxl.Text + " " + " "; for (int j = 0; j < 5; j++)

{

b[i, j] = a.Next(1, 30); textBoxl.Text = textBoxl.Text +

String.Format("{0}", b[i, j]) + " ";

}

}

}

private void button2_Click(object sender, EventArgs e)

{

switch (comboBoxl.Selectedlndex)

{

case 0: int kol = 0;

for (int i = 0; i < 5; i++) for (int j = 0; j < 5; j++)

if (b[i, j] >= 10) //Ввод заданного условия с помощью функции InputBox предлагается организовать самостоятельно

kol = kol + 1;

textBox2.Text = kol.ToString(); break; case 1:

int sum = 0;

for (int i = 0; i < 5; i++) for (int j = 0; j < 5; j++)

if (b[i, j] >=10) //Ввод заданного условия с помощью функции InputBox предлагается организовать самостоятельно

sum = sum + b[i, j]; textBox2.Text = sum.ToString(); break; case 2:

int proizv = 1; for (int i = 0; i < 5; i++) for (int j = 0; j < 5; j++)

if (b[i, j] >=10) //Ввод заданного условия с помощью функции InputBox предлагается организовать самостоятельно

proizv = proizv * b[i, j]; textBox2.Text = proizv.ToString(); break; case 3:

int max = -32768; for (int i = 0; i < 5; i++) for (int j = 0; j < 5; j++)

if (b[i, j] > max) //Поиск минимального элемента предлагается организовать самостоятельно

max = b [ i, j];

textBox2.Text = max.ToString(); break;

}

}

}

}

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

Листинг 202

private void button3_Click(object sender, EventArgs e)

{

Random a = new Random();

textBox3.Clear();

for (int i = 0; i < 5; i + + )

{

textBox3.Text = textBox3.Text + " " + " "; for (int j = 0; j < 5; j++)

{

b[i, j] = a.Next(1, 30); textBox3.Text = textBox3.Text +

String.Format("{0}", b[i, j]) + " ";

}

}

}

private void button4_Click(object sender, EventArgs e)

{

textBox4.Clear();

string n_st_l_ =

Microsoft.VisualBasic.Interaction.InputBox("Введите номер строки, которая подлежит замене", "Окно ввода данных", -1, -1);

int n_st_l = Convert.Tolntl6(n_st_l_); string n_st_2_ =

Microsoft.VisualBasic.Interaction.InputBox("Введите номер строки, которую обменяем", "Окно ввода данных", -1, -1);

int n_st_2 = Convert.ToIntl6(n_st_2_); for (int j = 0; j < 5; j++)

{

int bufer = b[n_st_2, j]; b [ n_s t_2 , j ] = b [ n_s t_l, j ] ; b[n_st_l, j] = bufer;

}

for (int i = 0; i < 5; i++)

{

textBox4.Text = textBox4.Text + " " + " "; for (int j = 0; j < 5; j++)

textBox4.Text = textBox4.Text +

String.Format("{0}", b[i, j]) + " ";

}

}

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

Листинг 203

private void button6_Click(object sender, EventArgs e)

{

Random a = new Random();

textBox5.Clear();

for (int i = 0; i < 5; i++)

{

textBox5.Text = textBox5.Text + " " + " "; for (int j = 0; j < 5; j++)

{

b[i, j] = a.Next(1, 30); textBox5.Text = textBox5.Text +

String.Format("{0}", b[i, j]) + " ";

}

}

}

private void button7_Click(object sender, EventArgs e)

{

textBox6.Clear();

for (int i = 0; i < 5; i++)

for (int j = 0; j < 5; j++) c [ j , i] = b [i , j ] ; for (int i — 0; i < 5; i++)

{

textBox6.Text = textBox6.Text + " " + " "; for (int j = 0; j < 5; j++)

textBox6.Text = textBox6.Text +

String.Format("{0}", c[i, j]) + " ";

}

}

Задания для самостоятельной подготовки Изучить:

- операторы для ввода и вывода двумерных массивов;

- основные свойства матриц;

- работу элемента управления TabControl;

- классические способы обработки двумерных массивов.

Разработать:

- интерфейс программы;

- программу решения задачи;

- тестовые варианты (число тестов равно числу ветвей вычислительного процесса) для проверки правильности функционирования программы.

Работа в лаборатории

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

1. Получить допуск к лабораторной работе при предъявлении преподавателю отчета по текущей лабораторной работе.

2. Проект должен иметь заставку, в которой указываются:

название учебного заведения; название кафедры; название лабораторной работы; цель лабораторной работы; условие задачи.

3. Заставка к проекту выполняется:

студентами 1-й подгруппы с использованием программного кода, который реализует вывод бегущей строки (см. Приложение 2, заставка №14); студентами 2-й подгруппы с использованием программного кода, который реализует проявление и исчезновение формы (см. Приложение 2, заставка №5).

4. Главную форму разрабатываемого приложения студенты 1-й подгруппы и 2-й подгруппы программируют с использованием обычной формы.

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

6. Студент должен уметь ответить на контрольные вопросы по лабораторной работе.

7. Студент должен продемонстрировать свои навыки и умения при работе на персональном компьютере в среде программирования Microsoft Visual Studio, набрав и отладив программу своего варианта.

8. Студент обязан соблюдать правила по технике безопасности при работе с вычислительной техникой.

Содержание отчета

1. Название лабораторной работы.

2. Фамилия, имя студента, номер группы, номер варианта.

3. Цель лабораторной работы.

4. Условие задачи.

5. Листинг программы.

6. Результаты выполнения программы.

Контрольные вопросы

1. Что называется циклическим алгоритмом?

2. Как записывается сложный циклический процесс в блок-схемах?

3. Как записывается сложный циклический процесс цикл в программах?

4. Как работает сложный циклический процесс?

5. Каким образом осуществляется доступ к каждому элементу двумерного массива при его обработке?

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

7. Каким образом осуществить вывод двумерного массива на экран?

8. Нарисуйте базовые алгоритмы обработки двумерных массивов.

9. Назовите основные свойства матриц.

10. Поясните, каким образом осуществляется обмен значений элементов двумерного массива.

Лабораторная работа №15 «Программирование алгоритмов формирования и обработки двумерных массивов»

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

Пример выполнения работы

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

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

Комментарий: для поиска минимального элемента в каждой строке матрицы используется стандартный прием нахождения минимального элемента. Оператором x[i] = 32767 первому элементу матрицы может быть присвоено какое-то большое значение, в нашем примере число 32767.

Затем каждый элемент в строке матрицы будет сравниваться с этим числом, и если какой-то из них будет меньше данного числа, то он считается минимальным и уже с ним будут сравниваться оставшиеся элементы в текущей строке матрицы. Таким образом, в каждой строке происходят поиск минимального элемента и одновременно формирование результирующего массива оператором x[i] = b[i, j]. Поскольку в каждой строке матрицы может быть только один минимальный элемент (а строк всего пять), то параметр цикла меняется от 1 до 5.

Разработка алгоритма решения задачи представлена на рис. 222.

Рис. 222. Алгоритм решения задачи

В листинге 204 приведен код процедуры, отвечающий за решение задачи.

Листинг 204

namespace WindowsApplicationl

{

public partial class Forml : Form

{

public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

{

Random a = new Random(); int[,] b = new int[5, 5]; int[] x = new int[5]; textBoxl.Clear (); textBox2.Clear(); for (int i = 0; i < 5; i++)

{

textBoxl.AppendText(" " + " "); for (int j = 0; j < 5; j++)

{

b[і, j] = a.Next(1, 3 0);

}

}

for (int i — 0; i < 5; i++)//Организация цикла по строкам {

x[i] = 32767; //Формирование первого элемента массива for (int j = 0; j < 5; j++)

if (b[i, j] < x[i]) //Проверка каждого элемента

массива

x[i] = b[i, j];

}

for (int i = 0; i < 5; i + +)

textBox2.AppendText(x[i] + " ");

}

}

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

Комментарий: для перебора всех элементов исходной матрицы используется сложный циклический процесс, в данном случае во внешнем цикле меняется номер столбца, а во внутреннем — номер строки. Такой порядок перебора элементов двумерного массива диктуется условиями задачи. В каждом столбце производится подсчет положительных элементов, и по окончании цикла результат записывается в соответствующий элемент одномерного массива х, номер которого совпадает с номером столбца матрицы Ь.

В листинге 205 приведен код процедуры, отвечающий за решение задачи.

Листинг 205

namespace WindowsApplicationl {

public partial class Forml : Form {

public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

{

Random a = new Random(); int[,] b = new int[5, 5]; int[] x = new int[5]; textBoxl.Clear(); textBox2.Clear(); for (int i = 0; i < 5; i++)

{

textBoxl.AppendText(" " + " "); for (int j = 0; j < 5; j++)

{

b[i, j] = a.Next(-10, 20); textBoxl.AppendText(b[i, j] + " "); }

}

for (int j = 0; j < 5; j++)

{

ігЩ к = 0 ;

?ог (ігЩ і = 0; і < 5; і++) і? (Ь[і,з] > 0) к = к + 1 ; х [ з ] = к ;

}

?ог (ігЩ і = 0; і < 5; і++)

кехЬВох2 . АррепсіТехк (х [ і ] + "М;");

}

Результаты разобранной задачи представлены на рис. 223

1ЯГ

Лабораторная работа |С|[п][Х~]

Исходная матрица

12

2

2

1

5

V

12

6

1

оо

6

с

V

12

17

-1

-7

6

-5

13

10

16

1

-4

6

-4

-1

18

Сформированный одномерный ма

С31Е

3

С

ъ/

2

3

4

Ок

Рис. 223. Результат работы программы

Задания для самостоятельной подготовки Изучить:

- операторы для ввода и вывода двумерных массивов;

- основные свойства матриц;

- классические способы обработки двумерных массивов.

Разработать:

- интерфейс программы;

- алгоритм решения задачи;

- программу решения задачи;

- тестовый вариант исходных данных.

Работа в лаборатории

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

1. Получить допуск к лабораторной работе при предъявлении преподавателю отчета по текущей лабораторной работе.

2. Проект должен иметь заставку, в которой указываются:

название учебного заведения; название кафедры;

название лабораторной работы; цель лабораторной работы; условие задачи; вариант задачи.

3. Заставка к проекту выполняется:

студентами 1-й подгруппы с использованием программного кода, который реализует форму произвольной конфигурации (см. Приложение 2, заставка №15);

студентами 2-й подгруппы с использованием программного кода, который реализует создание сплэш-форм (см. Приложение 2, заставка №4).

4. Главную форму разрабатываемого приложения студенты 1-й подгруппы и 2-й подгруппы программируют с использованием обычной формы.

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

6. Студент должен уметь ответить на контрольные вопросы по лабораторной работе.

7. Студент должен продемонстрировать свои навыки и умения при работе на персональном компьютере в среде программирования Microsoft Visual Studio, набрав и отладив программу своего варианта.

8. Студент обязан соблюдать правила по технике безопасности при работе с вычислительной техникой.

Содержание отчета

1. Название лабораторной работы.

2. Фамилия, имя студента, номер группы.

3. Цель лабораторной работы.

4. Условие задачи.

5. Разработанный алгоритм (все алгоритмические блоки чертятся карандашом или выполняются в текстовом редакторе Microsoft Word).

6. Листинг программы.

7. Результаты выполнения программы.

Контрольные вопросы

1. Что называется циклическим алгоритмом?

2. Как записывается сложный циклический процесс в блок-схемах?

3. Как записывается сложный циклический процесс в программах?

4. Как работает сложный циклический процесс?

5. Каким образом осуществляется доступ к каждому элементу двумерного массива при его обработке?

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

7. Каким образом осуществить вывод двумерного массива на экран?

8. Нарисуйте базовые алгоритмы обработки двумерных массивов.

9. Назовите основные свойства матриц.

10. Поясните, каким образом осуществляется обмен значений элементов двумерного массива.

Варианты к лабораторной работе «Программирование алгоритмов формирования и обработки двумерных массивов»

(порядковый номер студента по журналу соответствует его номеру варианта)

варианта

Задача

і

Сформируйте двумерный массив L [9,9] по правилу:

i-j-r, если i Ф j

ц. = <

0, в противном_ случае,

где г — случайное число из отрезка [0,1]. Найдите в каждой строке наибольший элемент и поменяйте его местами с элементом главной диагонали. Выведите полученный массив.

2

Сформируйте двумерный массив L [10,10] по правилу:

L . =-5 + 10-г,

‘.j

где г — случайное число из отрезка [0,1].

Запишите на место отрицательных элементов массива нули, а на место положительных элементов массива единицы. Выведите нижнюю треугольную матрицу.

3

Сформируйте двумерный массив N [12,12] по правилу:

Вычислите и выведите сумму и количество положительных элементов массива, находящихся под главной диагональю.

4

Сформируйте двумерный массив N [15,10] по правилу:

Г i+j . .

—-, если 1 Ф 1

N.. =i-j

•J J

1, в противном случае

Найдите строки с наибольшей и наименьшей суммой элементов. Выведите найденные строки и суммы их элементов.

5

Сформируйте двумерный массив N [10,10] по правилу:

N.. = -10 + 20-г ,

ij 5

где г — случайное число из отрезка [0,1].

Из положительных элементов массива N сформируйте массив М[10, max], где max — максимальное число положительных элементов строки массива N, располагая их в строках массива М подряд. Запишите нули на место отсутствующих элементов массива М. Выведите полученный массив.

6

Сформируйте двумерный массив К [8,8] по правилу:

Kij=8-(i-j) + j.

Транспонируйте массив (поменяйте местами строки и столбцы) и выведите элементы главной диагонали и диагонали, расположенной под главной, разместив их в двух строках экрана.

7

Сформируйте двумерный массив К [7,8] по правилу:

к., =1000т,

* »7

где г — случайное число из отрезка [0,1]. Найдите наибольший и наименьший элементы массива и поменяйте их местами. Выведите полученный массив.

8

Сформируйте двумерный массив N [12,12] по правилу:

Nj=(-)'•(* +У).

Вычислите и выведите сумму и количество положительных элементов массива, находящихся под главной диагональю.

9

Сформируйте двумерный массив М [8,8] по правилу:

М.. = — 10 + 100 • Г, где г — случайное число из отрезка [0,1].

Найдите в каждой строке массива максимальный и минимальный элементы и поменяйте их местами соответственно с первым и последним элементами строки. Выведите полученный массив.

10

Сформируйте двумерный массив К [10,12] по правилу:

К = -20 + 40 • г,,

* V

где г — случайное число из отрезка [0,1]. Определите в каждом столбце коли-чество простых чисел и запишите его в соответствующий элемент одномерного массива L. Выведите массив L.

11

Сформируйте двумерный массив L [8,8] по правилу:

Ц = 250 • Г, где г — случайное число из отрезка [0,1].

Среди элементов массива L найдите и выведите наибольший элемент и его индексы. Все элементы массива разделите на найденный наибольший элемент и выведите полученный массив.

12

Сформируйте двумерный массив К [5,5] по правилу:

M. j = —30 + 60-Г , где г — случайное число из отрезка [0,1]. Поменяйте мес-

тами элементы строки с номером к с элементами строки с номером t (значения к и t вводятся с клавиатуры). Выведите полученный массив М по строкам.

13

Сформируйте двумерный массив X [4,4] по правилу:

х.= '? .

1 + j

Вычислите и выведите сумму и количество элементов массива X, находящихся под главной диагональю и удовлетворяющих условию 0.2 < Xj,j < 0.3,

14

Сформируйте двумерный массив Z [10,4] по правилу:

sin(/ + j), если i < j

Zfj = < 1, если i = j

. i+j . .

arctg-, если i> j.

{ 2i + 3j

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

15

Сформируйте двумерный массив А [9,3] по правилу

A. . = sin(/ + у/2).

Определите наименьший элемент в каждой строке массива и запишите его в соответствующий элемент одномерного массива В. Выведите массив В.

16

Сформируйте двумерный массив В [6,3] по правилу:

i2 - Г

В = sin- и вычислите выражение

V /-1 j-i

17

Сформируйте двумерный массив В [4,4] по правилу:

ви =-3 + 6г,

где г — случайное число на отрезке [0,1].

Сформируйте и выведите массив А [4,4], получаемый из массива В перестановкой в каждой строке наибольшего по абсолютной величине элемента с диагональным.

18

Сформируйте двумерный массив N [10,10] по правилу:

N.. = / + 2 /.

Получите и выведите одномерный массив К [10], где К, — наименьшее из значений элементов, находящихся в начале 1-й строки массива N до элемента, принадлежащего главной диагонали включительно.

19

Сформируйте двумерный массив X [4,4] по правилу:

Х,,у=С08(/2+/).

Получите и выведите одномерный массив У |4], где У( — значение первого по порядку положительного элемента 1-й строки; если такого элемента нет, то принять У 1=1.

20

Сформируйте двумерный массив Z [10,3] по правилу:

г.. =-8.2+ 16.4-г,

'.У ’

где г — случайное число из отрезка [0,1].

Получите и выведите одномерный массив Р, где Р1 — сумма элементов, распо-ложенных за первым отрицательным элементом в ьй строке; если все элементы строки неотрицательны, то принять Рг=100.

21

Сформируйте двумерный массив Г 110,3] по правилу:

Р . =-1 + 2

'.У ’

где г — случайное число из отрезка [0,1].

Получите и выведите одномерный массив Я, где ^ — сумма элементов, пред-шествующих последнему отрицательному элементу ]-го столбца; если все элементы столбца неотрицательны, то принять 1^= -1.

22

Сформируйте двумерный массив Я [8,3] по правилу:

Д.=/*е~у.

'.У

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

23

Сформируйте двумерный массив N [5,5] по правилу:

Г/ + 5у, если / < 3

,,} [7/+ 2(у -1), если /> 3.

Найдите и выведите значение и индексы двух одинаковых элементов. Если таковых не окажется, выведите сообщение об этом.

24

Сформируйте двумерный массив М [5,5] по правилу:

М =101+1.

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

25

Сформируйте двумерный массив К [8,8] по правилу:

Ки = —15+30* г,

где г — случайное число из отрезка [0,1]. Получите и выведите одномерный массив Ь |7,7] полученный путем удаления из массива К строки и столбца, на пересечении которых находится наибольший по модулю элемент.

Сформируйте двумерный массив М [7,7] по правилу:

М, = —5 +10*г, где г — случайное число из отрезка [0,1].

Введите одномерный массив К = {-5, -3, -1, 1, 3}. Замените нулями в массиве М те элементы, для которых имеются равные среди элементов массива К. Выве-дите полученный массив М.

Сформируйте двумерный массив Т [4, 4] по правилу:

С = 5(/ + /) — /. Удалите из него столбцы, содержащие элементы меньше 10.

Сформируйте двумерный массив К [6,3] по правилу

Ки =-10 + 20 , где г — случайное число из отрезка [0,1].

Сформируйте и выведите массив Ь [6,3], получаемый из массива К переста-новкой строк: первой с последней, второй с предпоследней и т.д.

Сформируйте двумерные массивы А [4,4] и В [4,4] по правилу:

1 . .

4.,=

/ + у + 1 у + у-1

>*-У

В =

СУ

/' + у‘ +1

о, / = у -1

,/<у

П >У

/ + у-1

Получите массив Я [4,4] путем умножения элементов каждой строки массива А на наибольший из элементов соответствующей строки массива В. Выведите массив В.

Сформируйте двумерные массивы К [3,3] и Ь [3,3] по правилу:

1 =-Х

’ '.7

К =-

СУ * , • л

1 + У -1

* + У

Получите массив М путем прибавления к элементам каждого столбца массива К произведения элементов соответствующей строки массива Ь. Выведите массив М.

Сформируйте двумерный массив М [6,6] по правилу:

М.. = —30 + 60* У , где г — случайное число из отрезка [0,1]. Сформируйте и

выведите массив Ь, получающийся из массива М перестановкой столбцов: пер-вого с последним, второго с предпоследним и т.д.

Сформируйте двумерный массив А [3, 4] по правилу:

аи =

г2 + У2

Вычислите и выведите одномерный массив В [4], каждый элемент которого есть среднее арифметическое элементов соответствующей строки массива а.

Сформируйте двумерный массив М [5, 6] по правилу:

т. =2 + 300г, где г — случайное число из отрезка [0, 1].

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

Сформируйте двумерный массив С [5, 5] по правилу:

Соз(1 + у), если / < у

0, если / = у

У?(У - У), если / > /

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

d =

Перепишите отрицательные элементы массива d в одномерный массив t

Лабораторная работа №16 «Организация многодокументного интерфейса»

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

Пример выполнения работы

Условие: разработайте проект, содержащий несколько форм. Первая форма является заставкой к приложению. Родительская MDI-форма содержит меню, с помощью которого пользователь может создавать и упорядочивать дочерние формы. Необходимо создать экземпляр дочерней формы, содержащий элемент управления PictureBox, отображающий картинку.

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

Комментарий: для приложений, разрабатываемых в среде Windows, можно использовать несколько типов интерфейсов, в частности:

- однодокументный (Single-document interface, SDI);

- многодокументный (Multiple-Document Interface, MDI).

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

MDI-интерфейс предоставляет возможность открывать многократно форму одного вида для нескольких разных по содержанию документов. Примером такого интерфейса может служить программа Microsoft Excel. Для такого интерфейса характерно то, что имеется главное окно, называемое родительским окном, и необходимое количество подчиненных окон, называемых дочерними. Родительское окно является контейнером для всех дочерних окон. При его минимизации вместе с ним минимизируются и все дочерние окна.

Итак, для создания многодокументной формы создается новая форма Forml, и ее свойство IsMdiContainer устанавливается в значение True. Затем создается класс дочерней формы, которая будет добавлена на исходную форму. Для этого надо щелкнуть по опции Project / Add Windows Form. Для добавления дочерней формы в родительскую форму мы в коде будущей программы должны создать новый объект дочерней формы, указать в его свойстве MdiParent родительскую форму и вызвать метод Show.

Для создания элемента меню, в котором будут перечислены все подчиненные окна, относящиеся к данной родительской форме, необходимо добавить на фор- му Forml элемент управления menuStripl. Создадим меню Файл и вложенные пункты, а также пункт меню Подчиненные окна (рис 224).

Файл Подчиненные окна

Новый ?

Дочернее OKHOl

Дочернее окно2

Выход

Рис. 224. Созданное меню

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

Рис. 225. Пункты меню Упорядочить

Установим свойство MdiWindowListltem компонента menuStripl в положение подчиненныеОкнаТоо^прМепиИет. Данное свойство указывает, что список подчиненных окон автоматически появляется в виде пунктов меню Подчиненные окна (рис. 226), при этом активная форма отмечена галочкой.

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

Подчиненные окна

Упорядочить ?

1 Дочернее окно

2 Дочернее окно

Рис. 226. Активная форма отмечена галочкой

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

Нижеописанные действия выполним относительно второй формы (Form2). В раздел using добавим пространство имен System.IO. Также следует создать папку Image по следующему адресу: каталог Projects Имя текущего проекта Bin Debug Image и скопировать в нее файл с расширением .jpg. Для того чтобы на дочерних формах отображались изображения, нанесем компонент pictureBoxl и выставим его свойство SizeMode в положение Stretchimage. Кроме того, добавим компонент menuStripl и создадим пункт меню, который будет закрывать все открытые дочерние формы, — «Закрыть дочерние формы».

Таким образом, полный листинг программы для родительской формы будет выглядеть следующим образом:

Листинг 206 namespace WindowsApplicationl

public partial class Forml : Form

{

public Forml()

{

InitializeComponent();

}

private void flO4epHee0KHolToolStripMenuItem_Click(object sender, EventArgs e)

{

Form2 ChildForml = new Form2(); // Создаем экземпляр

класса формы Form2

ChildForml.MdiParent = this; //Свойству MdiParent этого экземпляра указываем на родительскую форму

ChildForml.Show(); //Открываем дочернее окно

}

private void flO4epHee0KHo2ToolStripMenuItem_Click(object sender, EventArgs e)

{

Form2 ChildForml = new Form2();

ChildForml.MdiParent = this;

ChildForml.Show();

}

private void поГоризонталиТоо13^1рМепи]^ет_С11ск (obj ect sender, EventArgs e)

{

this.LayoutMdi(MdiLayout.TileHorizontal);

//Упорядочиваем дочерние формы по горизонтали

}

private void KacKaflOMToolStripMenuItem_Click(object sender, EventArgs e)

{

this.LayoutMdi(MdiLayout.Cascade); //Упорядочиваем дочерние формы каскадом }

private void noBepTHKannToolStripMenuItem_Click(object sender, EventArgs e)

{

this.LayoutMdi(MdiLayout.TileVertical); //Упорядочиваем дочерние формы по вертикали }

private void BbixoflToolStripMenuItem_Click(object sender, EventArgs e)

{

Application.Exit();

}

}

}

В листинге 207 представлен код дочерней формы.

Листинг 207

using System.10; namespace WindowsApplicationl {

public partial class Form2 : Form

{

public Form2()

{

InitializeComponent();

}

private void Form2_Paint(object sender, PaintEventArgs e)

{

string currentDirectory =

Directory.GetCurrentDirectory();

pictureBoxl.Image = Image.FromFile(currentDirectory + @"Imagel.jpg"); //Осуществляем вывод изображения }

private void 3aKpbiTbToolStripMenuItem_Click(object sender,

EventArgs e)

{

foreach (Form ChildForml in MdiParent.MdiChildren)

ChildForml.Close(); //Для каждой дочерней формы, входящей в родительскую, применяем метод закрытия }

}

}

В результате приложение примет вид, представленный на рис. 227

Многодокументный интерфейс

Файл Подчиненные окна Закрыть дочерние формы

Закрыть дочерние формы

Рис. 227. Внешний вид разработанного приложения

В0Я

Задания для самостоятельной подготовки

Изучить:

- основные свойства элемента управления РюШгеВох;

- наиболее часто используемые свойства МОЬформ. Разработать:

- интерфейс программы;

- программу решения задачи;

- тестовый вариант исходных данных.

Работа в лаборатории

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

1. Получить допуск к лабораторной работе при предъявлении преподавателю отчета по текущей лабораторной работе.

2. Проект должен иметь заставку, в которой указываются:

название учебного заведения; название кафедры; название лабораторной работы; цель лабораторной работы; условие задачи.

3. Заставка к проекту выполняется студентами 1-й подгруппы с использованием программного кода, который реализует вывод векторного изображения (см. Приложение 2, заставка №16), студентами 2-й подгруппы с использованием программного кода, который реализует вывод текста на графическую поверхность и выравнивание его по центру (см. Приложение 2, заставка №3).

4. MDI-формы разрабатываемого приложения студенты 1-й подгруппы и 2-й подгруппы программируют с использованием обычных форм.

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

6. Студент должен уметь ответить на контрольные вопросы по лабораторной работе, т.е. проявить свои знания по теоретической части курса.

7. Студент должен продемонстрировать свои навыки и умения при работе на персональном компьютере в среде программирования Microsoft Visual Studio, набрав и отладив программу своего варианта.

8. Студент обязан соблюдать правила по технике безопасности при работе с вычислительной техникой.

Содержание отчета

1. Название лабораторной работы.

2. Фамилия, имя студента, номер группы.

3. Цель лабораторной работы.

4. Условие задачи.

5. Листинг программы.

6. Результат выполнения программы.

Контрольные вопросы

1. Какие типы интерфейсов можно использовать для создания Windows-приложений?

2. Поясните принцип создания MDI- приложений.

3. Расскажите принцип работы разработанного приложения.

Лабораторная работа №17 «Разработка графического редактора»

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

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

Пример выполнения работы

Условие: разработайте проект, содержащий несколько форм. Первая форма является заставкой к приложению. На второй форме разработайте программу «Графический редактор», которая обладает следующими функциями:

- позволяет рисовать мышью как карандашом;

- сохраняет созданное изображение в диалоговом режиме;

- открывает созданное изображение в диалоговом режиме;

- имеет возможность выбора цвета карандаша;

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

- позволяет пользоваться системой меню;

- имеет возможность увеличивать толщину пера;

- имеет строку состояния.

Создайте иконку с собственными инициалами, предусмотрите запрос на выход из программы и скомпилируйте .ехе файл.

Комментарий: прежде всего, надо отметить, что некоторые вопросы по работе с графикой изложены в Приложении 2 настоящего учебного пособия, и разрабатывая графические заставки к своим проектам, вы уже успели приобщиться к средствам языка программирования Visual С#, которые позволяют осуществить визуализацию графических данных. Не надо забывать, что создание подобных программ — творческий процесс, поэтому вы всегда можете внести свои коррективы, направленные на улучшение интерфейса или усовершенствование программного кода на том или ином этапе создания приложения. Не исключение и разрабатываемая программа.

Разработку текущей программы можно начать с размещения невизуальных элементов управления, указанных на рис. 228.

Ш menuStripl 123 openFileDialogl jfl saveFileDialogl colorDialogl ^toolStripl

l_ statusStripl ^ timerl

Рис. 228. Элементы управления

Свойство формы ВаскСо1ог выставим в положение НщЫщЬГГехС Далее создадим меню графического редактора, которое будет содержать как традиционные пункты Открыть, Сохранить, Выход, так и те, с помощью которых можно будет осуществить очистку рабочей области (Редактирование/Очистить) и изменить цвет отрисованных графических примитивов (Цвет/Выбор цвета).

На рис. 229 представлены пункты меню создаваемого редактора.

Файл

Редактирование

Открыть

Сохранить

Выход

Редактирование

Цвет

Цвет

Очистить

3

Выбор цвета

Рис. 229. Система меню графического редактора

Кнопки, расположенные на панели инструментов, позволят изменять толщину пера, строить такие графические примитивы, как линия, прямоугольник (квадрат), эллипс (круг), закрашенный прямоугольник (квадрат), закрашенный эллипс (круг), по заранее заданным координатам. Внешний вид панели инструментов представлен на рис. 230.

I+DS8 і Е

0

ж

V

Введите координаты х1

х2 у1 у2

J

Рис. 230. Панель инструментов графического редактора

Процесс создания кнопок следующий. Находим свойство Items элемента управления toolStripl. Появится окно Items Collection Editor, в котором надо последовательно добавлять кнопки (Button) и при желании разделители (Sepa-rator). Подобная ситуация представлена на рис. 231.

Рис. 231. Окно Items Collection Editor

Для каждой созданной кнопки следует выбирать свойство Image. В появившемся окне Select Resource (рис. 232) через кнопку Import (либо активируем опцию Project resource file) указываем путь к графическому изображению, которое будет находиться на созданной кнопке.

Рис. 232. Окно Select Resource

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

Кроме того, размещаем четыре текстовых окна под ввод будущих координат графических примитивов, а также несколько компонентов типа Label и подписываем их согласно рис. 230. Их свойство BackColor (цвет заднего фона) лучше подобрать под цвет панели инструментов. Можно изменить свойство Tabindex для текстового окна, отвечающего за координату xl, выставив его в 1. Тогда при запуске приложения это окно будет активно, и в нем будет мигать курсор. Остается разместить элемент управления numericUpDownl, который будет отвечать за толщину пера.

Приступим к созданию строки состояния. Разместив компонент StatusStrip на форме, следует выбрать свойство Items и в окне Items Collection Editor добавить три элемента toolStripStatusLabel. Первый будет выводить текущее время, второй — текущую дату, третий — отслеживать координаты мыши.

Далее следует нанести на форму объект timerl и выставить следующие свойства:

Enabled = True Interval = 1000

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

Листинг 208

using System.IO;

using System.Drawing.Drawing2D; namespace WindowsApplicationl {

public partial class Forml : Form {

int x, у; //Координаты мыши при предыдущем наступлении события MouseMove

int xl, х2, yl, у2; //Координаты точек, по которым будут строиться примитивы

388

Bitmap xolst;

Graphics gr, mygraf;

Pen pn = new Pen(Color.Black, 3); //Цвет карандаша Brush br = new SolidBrush(Color.Blue); //Цвет кисти public Forml()

{

InitializeComponent();

}

private void OTKpbiTbToolStripMenuItem_Click(object sender, EventArgs e)

{

if (openFileDialogl.ShowDialog() == DialogResult.OK)

{

string path = openFileDialogl.FileName; try {

openFileDialogl.InitialDirectory =

Environment.CurrentDirectory;

gr.Drawlmage(new

Bitmap(openFileDialogl.FileName), 10, 10);

mygraf.Drawlmage(new

Bitmap(openFileDialogl.FileName), 10, 10);

this.Text = "Открываем " +

Path.GetFileName(path);

}

catch (Exception exc)

{

MessageBox.Show("Файл " + path + "имеет неверный формат" + exc.ToString(), "Ошибка");

}

}

}

private void Forml_Load(object sender, EventArgs e)

{

xolst = new Bitmap(this.Width, this.Height); gr = Graphics.Fromlmage(xolst); mygraf = this.CreateGraphics(); pn.StartCap = LineCap.Round; pn.EndCap = LineCap.Round; toolStripStatusLabel3.Text = openFileDialogl.Filter = "Графические файлы|*.jpg;*.gif;*.png|ВМР-файлы|*.bmp|Все файлы|*.*";

saveFileDialogl.Filter = "Графические файлы|*.jpg;*.gif;*.png|ВМР-файлы|*.bmp|Все файлы|*.*";

}

private void Forml_MouseDown(object sender, MouseEventArgs e)

{

x = e.X; у = e.Y;

}

private void Forml_MouseMove(object sender, MouseEventArgs e)

{

if (e.Button == MouseButtons.Left)

{

//Рисуем отрезок прямой от текущего положения мыши

до предыдущего

gr.DrawLine(pn, е.Х, e.Y, х, у); mygraf.DrawLine(pn, e.X, e.Y, x, у);

//Запоминаем текущее положение мыши

х = е.Х; у = e.Y;

toolStripStatusLabe!3.Text = string.Format("х,у: {0},{1}", е.Х,e.Y); //Отслеживаем текущие координаты мыши и выводим их в строку состояния

}

}

private void Bbi6opU,BeTaToolStripMenuItem_Click (object sender, EventArgs e)

{

colorDialogl.ShowDialog(); pn.Color = colorDialogl.Color;

}

private void 04HCTHTbToolStripMenuItem_Click(object sender,

EventArgs e)

{

this.Refresh() ;

}

private void coxpaHHTbToolStripMenuItem_Click(object sender, EventArgs e)

{

if (saveFileDialogl.ShowDialog() == DialogResult.OK)

{

openFileDialogl.InitialDirectory =

Environment.CurrentDirectory;

xolst.Save(saveFileDialogl.FileName,

System.Drawing.Imaging.ImageFormat.Jpeg);

}

}

private void timerl_Tick(object sender, EventArgs e)

{

toolStripStatusLabell.Text =

DateTime.Now.ToLongTimeString(); //Выводим текущее время

toolStripStatusLabel2.Text =

DateTime.Today.ToLongDateString();//Выводим текущую дату

}

private void toolStripl_ItemClicked(object sender, ToolStripItemClickedEventArgs e)

{

try

{

xl = Convert.ToIntl6(textBoxl.Text); // Устанавливаем координаты точек

x2 = Convert.ToIntl6(textBox2.Text); yl = Convert.ToIntl6(textBox3.Text); y2 = Convert.ToIntl6(textBox4.Text);

}

catch

{

MessageBox.Show("Вы не ввели координаты точек "

,"Ошибка");

}

>

private void BbixoflToolStripMenuItem_Click(object sender,

EventArgs e)

{

Application.Exit();

}

private void numericUpDownl_ValueChanged(object sender,

EventArgs e)

{

pn.Width = (int)numericUpDownl.Value;//Увеличиваем

толщину пера

}

private void toolStripButtonl_Click(object sender,

EventArgs e)

{

mygraf.DrawLine(new Pen(colorDialogl.Color, 3), xl, x2,

yl, y2); //Рисуем линию

}

private void toolStripButton2_Click(object sender,

EventArgs e)

{

mygraf.DrawRectangle(new Pen(colorDialogl.Color, 3),

xl, x2, yl, y2); //Рисуем прямоугольник }

private void toolStripButton3_Click(object sender,

EventArgs e)

{

mygraf.DrawEllipse(new Pen(colorDialogl.Color, 3), xl,

x2, yl, y2); //Рисуем эллипс }

private void toolStripButton4_Click(object sender,

EventArgs e)

{

mygraf.FillRectangle(br, xl, x2, yl, y2); //Рисуем закрашенный прямоугольник }

private void toolStripButton5_Click(object sender,

EventArgs e)

{

mygraf.FillEllipse(br, xl, x2, yl, y2); //Рисуем закрашенный эллипс }

}

}

На рис. 233, 234 представлен внешний вид разработанного редактора с загруженным изображением и с отрисованными графическими примитивами.

Г-

ЕЙ Открываем 1.jpg

Файл Редактирование

Цвет

і+ 088 І С

0

и V

Введите координаты х1

х2

>•1

Рис. 233. Загруженное изображение

О"

Графический редактор

Файл Редактирование Цвет

1 + а88 «с

0

ж

?V

Введите координать х1

200

х2

200

у1

450

У2

100

Рис. 234. Внешний вид разработанного графического редактора с отрисованными

графическими примитивами

22:32:01 19 января 2010 г. х,у: 4,6

Задания для самостоятельной подготовки Изучить:

- способы создания объекта Graphics;

- методы работы с объектом Bitmap;

- методы рисования с помощью мыши;

- принцип создания строки состояния;

- принцип создания меню;

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

Разработать:

- интерфейс программы;

- программу решения задачи;

- демонстрационную версию программы.

Работа в лаборатории

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

1. Получить допуск к лабораторной работе при предъявлении преподавателю отчета по текущей лабораторной работе.

2. Проект должен иметь заставку, в которой указываются:

название учебного заведения; название кафедры; название лабораторной работы; цель лабораторной работы; условие задачи.

3. Заставка к проекту выполняется:

студентами 1-й подгруппы и 2-й подгруппы с использованием программного кода, который реализует рисование с помощью мыши (см. Приложение, заставка №13).

4. Главную форму разрабатываемого приложения студенты 1-й подгруппы и 2-й подгруппы программируют с использованием обычной формы.

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

6. Студент должен уметь ответить на контрольные вопросы по лабораторной работе.

7. Студент должен продемонстрировать свои навыки и умения при работе на персональном компьютере в среде программирования Microsoft Visual Studio, набрав и отладив программу своего варианта.

8. Студент обязан соблюдать правила по технике безопасности при работе с вычислительной техникой.

Содержание отчета

1. Название лабораторной работы.

2. Фамилия, имя студента, номер группы.

3. Цель лабораторной работы.

4. Условие задачи.

5. Листинг программы.

6. Результаты выполнения программы.

Контрольные вопросы

1. Перечислите базовые пространства имен GDI+ и поясните их назначение.

2. Назовите и поясните назначение базовых типов пространства имен System. Drawing.

3. Каким образом создать объект Graphics и как получить к нему доступ?

4. Объясните разницу между растровой и векторной графикой.

5. Как создать пользовательские типы Pen, Brush?

6. Поясните назначение объекта класса Bitmap.

Лабораторная работа №18 «Работа с методами»

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

Пример выполнения работы

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

Задача. Разработайте программу для вычисления периметра и площади треугольника по заданным координатам трех его вершин. Задано: xl, yl; х2, у2; хЗ, уЗ — координаты вершин.

Комментарий: для решения задачи воспользуемся формулами: р = а + b + с;

Метод Dlina_otr(double xl, double yl, double x2, double y2)

Входные параметры: xl, yl, x2, y2 Возвращаемое значение: otr

Рис. 235. Разработка алгоритма метода Dlina_otr()

Разработка алгоритма метода Ps() представлена на рис. 236.

Метод Ps (double xl, double yl, double x2, double yl, double x3, double y3, ref double p, ref double s)

Входные параметры: xl, yl, x2, y2, x3, y3 Выходные параметры: p, s

Рис. 236. Разработка алгоритма метода Ps()

Разработка блок-схемы решения задачи (событийная процедура) представлена на рис. 237.

Рис. 237. Разработка блок-схемы решения задачи

В листингах 209, 210 приведен код процедур, отвечающий за решение задачи.

Листинг 209

namespace WindowsApplicationl

{

class Classl

{

public static double Dlina_otr(double xl, double yl, double x2, double y2 )

{

double otr=(Math.Sqrt((x2 - xl) *(x2 - xl) + (y2 - yl) * (y2 - yl) )) ;

return otr;

}

public static void Ps(double xl, double yl, double x2, double y2, double x3, double y3, ref double p, ref double s)

{

double a,b,c,pp;

a = Classl.Dlina_otr(xl, yl, x2, y2); b = Classl.Dlina_otr(x2, y2, x3, y3) ; c = Classl.Dlina_otr(x3, y3, xl, yl) ;

p = (a + b + с) ; //Нахождение периметра треугольника pp = p / 2 ; // Нахождение полупериметра треугольника

s = (Math.Sqrt(pp * (pp - a) * (pp - b) * (pp - c))) ;

}

}

}

Листинг 210

namespace WindowsApplicationl

{

public partial class Forml : Form

{

public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

{

string xl_, x2_, x3_,yl_,y2_,y3_; double per=0,plo=0;

xl_ = Microsoft.VisualBasic.Interaction.InputBox("Введите координату вершины xl", "Окно ввода данных", -1, -1);

double xl = Convert.ToDouble(xl_);

yl_ = Microsoft.VisualBasic.Interaction.InputBox("Введите координату вершины yl", "Окно ввода данных", -1, -1);

double yl = Convert.ToDouble(yl_);

x2_ = Microsoft.VisualBasic.Interaction.InputBox("Введите координату вершины x2", "Окно ввода данных", -1, -1);

double х2 = Convert.ToDouble(х2_);

у2_ = Microsoft.VisualBasic.Interaction.InputBox("Введите координату вершины у2", "Окно ввода данных", -1, -1);

double у2 = Convert.ToDouble(у2_);

хЗ_ = Microsoft.VisualBasic.Interaction.InputBox("Введите координату вершины хЗ", "Окно ввода данных", -1, -1);

double хЗ = Convert.ToDouble(хЗ_);

уЗ_ = Microsoft.VisualBasic.Interaction.InputBox("Введите координату вершины уЗ", "Окно ввода данных", -1, -1);

double уЗ = Convert.ToDouble(уЗ_);

Classl.Ps(xl, yl, x2, y2, хЗ, y3, ref per, ref plo); MessageBox.Show("Периметр = " + per.ToString("n"), "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

MessageBox.Show("Площадь = " + plo.ToString("n"),

"Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}

}

Задания для самостоятельной подготовки Изучить:

- модель событийных процедур;

- возможности передачи параметров по ссылке и по значению;

- применение модификаторов ref и out.

Разработать:

- интерфейс программы;

- алгоритм решения задачи;

- программу решения задачи;

- тестовые варианты (число тестов равно числу ветвей вычислительного процесса) для проверки правильности функционирования программы.

Работа в лаборатории

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

1. Получить допуск к лабораторной работе при предъявлении преподавателю отчета по текущей лабораторной работе.

2. Проект должен иметь заставку, в которой указываются:

название учебного заведения; название кафедры; название лабораторной работы; цель лабораторной работы; условие задачи; вариант задачи.

3. Заставка к проекту выполняется:

студентами 1-й подгруппы с использованием программного кода, который реализует использование текстового окна для ввода пароля (см. Приложение 2, заставка №17);

студентами 2-й подгруппы с использованием программного кода, который реализует вывод центрированного текста, закрашенного с помощью градиентной заливки (см. Приложение 2, заставка №2).

4. Главную форму разрабатываемого приложения студенты 1-й подгруппы и 2-й подгруппы программируют с использованием обычной формы.

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

6. Студент должен уметь ответить на контрольные вопросы по лабораторной работе.

7. Студент должен продемонстрировать свои навыки и умения при работе на персональном компьютере в среде программирования Microsoft Visual Studio, набрав и отладив программу своего варианта.

8. Студент обязан соблюдать правила по технике безопасности при работе с вычислительной техникой.

Содержание отчета

1. Название лабораторной работы.

2. Фамилия, имя студента, номер группы, номер варианта.

3. Цель лабораторной работы.

4. Условие задачи.

5. Разработанный алгоритм включает: алгоритм метода(ов) и общий алгоритм решения задачи (все алгоритмические блоки чертятся карандашом или выполняются в текстовом редакторе Microsoft Word).

6. Листинг программы.

7. Результаты выполнения программы.

Контрольные вопросы

1. Назовите модификаторы доступности, существующие в Visual С#, и поясните их назначение.

2. Определите понятие «класс».

3. Дайте определение понятию «метод». Напишите синтаксис метода. Приведите примеры создания простейших методов.

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

5. Какие два объекта передаются обработчикам событий?

6. Какова роль ключевого слова static?

7. Охарактеризуйте два способа передачи параметров.

8. Поясните, в каких случаях используются модификаторы out и ref. Приведите примеры.

9. Каким образом осуществляется передача массива в качестве параметра, какой модификатор при этом используется. Приведите примеры.

Варианты к лабораторной работе «Работа с методами»

(порядковый номер студента по журналу соответствует его номеру варианта)

Задача

1

Определите периметры правильных п — угольников (10-угольника, 50-угольника, 100-угольника), вписанных в окружность заданного радиуса К

Назначение метода: вычисление стороны правильного п-уголыгака

0 » С- 180°

а' = 1- К- Ып ; вычисление периметра п- угольника р = па,

п

2

Определите длины всех медиан треугольника, заданного длинами сторон а,Ь,с. Назначение метода: вычисление медианы, проведенной к стороне а:

та =0.5лІ2Ь2 +2с22.

3

Определите углы между тремя векторами, направленными из общей начальной точки с координатами (0,0) в конечные точки: точку (2;5); точку (7;6); точку (9;3). Назначение метода: вычисление угла между двумя векторами, проведенными из точ-

X • X, + уу.

ки (0, 0) в точки (xl, yl) и (х2, у2) по формуле Cos а = , =—=

л/ X,2 + У Г WX2 + У1

4

Вычислите площадь пятиугольника, заданного прямоугольными координатами своих вершин: А1(3;2), А2(9;6), А3(14;2), А4(10;-3), А5(7;-2)

Используйте формулу площади треугольника:

S = -’|(*2~х,)(у3з-xjy2х]

Назначение метода: вычисление площади треугольника по заданным координатам его вершин: (xl;yl), (х2;у2), (хЗ;уЗ).

5

Определите длины всех биссектрис треугольника, заданного длинами сторон а, Ь, с. Назначение метода: вычисление биссектрисы угла а

_ -Jbc((b + с) 2)

Ь + с

6

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

х = г -sin0 • cos(p;

у = г ? sin 0 • cos ;

z = г -COS0;

0<г <°о-7Г <<р<7г;0<в<л;

R = л/(хй АУ +{увАУ +(zB-zA)2

Назначение метода: вычисление декартовых координат точки по заданным сферическим координатам.

7

Вычислите значение площади полной поверхности треугольной пирамиды, если известны длины всех ребер:

|АВ| = 3; |AD| = 5; |DB| = 4; |DC| = V35 ; |ВС| = V?9 ; |АС| = 5.

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

1—7-77-777-7 Cl + b + С

S = урур а)(р — Ь)(р — с); р =-, где а, Ь, с — длины сторон тре-

угольника.

Назначение метода: вычисление площади треугольника по формуле Герона.

8

Определите высоту, на которой будет мяч, подброшенный вертикально вверх с высоты уо=1м и начальной скоростью Уо=20м/сек через время t=lceK, Зсек и 4сек.

Назначение метода: вычисление высоты в момент t: y(t) = у0 + v0t — g • t2 /2, где

g = 9.8 м/сек.

9

Определите площади правильных n-угольников (10-угольника; 50-угольника; 100-угольника), вписанных в окружность радиуса R

Назначение метода: вычисление стороны правильного п-угольника.

ПР. 180° 1J?r 180°

а — IKSin ; где г — ZKLOS — радиус вписанном окружности;

п п

с 1

площадь п-уголыгака о =—аХпХг.

2

10

Определите площадь кольца, внутренний радиус которого равен R1; а внешний R2 (R2>R1).

Назначение метода: вычисление площади круга радиуса R: S — TtR2.

11

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

г - д/х2 + у2; = arctg—.

X

Назначение метода: вычисление полярных координат по заданным прямоугольным координатам точки правой полуплоскости.

12

Определите площадь каждого из трех секторов с радиусами R1, R2, R3 и с центральными углами ОС,/3, у.

Назначение метода: вычисление площади сектора радиуса R с центральным углом а

ОС

(в градусах) равна S =7ГЯ2--.

360

12

Вычислите у = Sh(x) + tg(x + X) — tg2(2 + Sh(x 1))

Г - tx

Назначение метода: вычисление Sh(x) =-—-.

13

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

Назначение метода: применить теорему синусов

" = Ъ = С =2 R (а + (3 + ^ = 180°).

Sin a Sin/3 Sin у

14

Определите площадь каждого из трех кругов, ограниченных тремя окружностями, длины которых L1,L2,L3 известны.

Назначение метода: вычисление площади круга S = 7TR2, предварительно следует вычислить R по формуле L — 2TlR.

15

Определите углы треугольника, длины сторон которого а, Ь, с заданы.

Назначение метода: примените теорему половинного угла

.„У _ (р- а)-(р-Ь) ___ „_а + Ь + с _________________________„__________

, іди у у у і vjji, при і rmujiwtvaLu.iiii UpUflU и

р-(р-с) 2

16

Зх3 - 4х2 + 2 8х3 + 2х2 + х

Вычислите У = 1 2

2х + Зх -1 х + 4х - 2

Назначение метода: вычисление / (а, Ь, с, с/, х) = ахг + Ьх~ + сх + (3.

17

Определите общую длину дуги, образованной полуокружностями

3 * г 2.5^ 1

* 2

Назначение метода: вычисление длины половины окружности Ь — 7ГЯ.

18

Вычислите стороны треугольника А и В при условии, что заданы сторона С и углы треугольника а и р.

Назначение метода: вычисление стороны треугольника по формуле

. Sin а 10_0 0

А С-; J^ = 180 — СС — р ,где а — угол, противолежащий стороне А, у — угол,

Siny

противолежащий стороне С.

19

Вычислите значения медиан треугольника, сторонами которого являются медианы исходного треугольника со сторонами а, Ь, с.

Назначение метода: вычисление длины медианы, проведенной к стороне а:

та = 0,5д/2Z?2 + 2с2 - а2.

20

2,56х2 + 3,4х + 8,1 Зх2 - 2

Вычислите у = „ ; z =

3,6х - 5,2 7х + 2п

Назначение метода: вычисление f(a, b, с, х) = ах2 + Ьх + с.

21

Вычислите у = ch(x + 2) + 3ch{x) + tg2( 1 - ch(2x - 3)).

t + ?~x

Назначение метода: вычисление ch(x) =---.

22

Определите длину дуги каждого из трех секторов с радиусами Rl, R2, R3 и с центральными углами а, Р, у.

Назначение метода: длина дуги сектора радиуса R с центральным углом а (в граду-

_ _ _ а

сах) равная = АПК--

360

23

Вычислите координаты точки пересечени алх + Ь^у = с

, вычисляемые г

<7,Х + Ь,у = С2

а, Ь. с. Ь. а, с,

А = 1 ; Ах = ; А у = '

а, Ь, с2 Ь, а, с2

Назначение метода: вычисление определ

я двух прямых:

Ах Ау

ю формулам: х = —; у — —, где

А А

[ителя второго порядка.

24

3,5х + + + 7 1,8х + 2х + 6

13ЫЧИСЛИ IС у — „ „ , ^ —

2х + 4,3х -1 0,5х + 4х3 - 2

Назначение метода: вычисление /(а, Ь, с, с!, х) = ах5 + Ьх~ + сх + с/

25

Определите все углы треугольника при заданных значениях сторон а, Ь, с.

Назначение метода: вычисление угла по теореме косинусов:

а = Агссо$(Ь2 + с2 - а2)/(2хЬхс).

26

Ъ

Вычислите определенный интеграл у = j

а

Ь~а /•/ ч , Jа + Ь .... У- , 7(а) + 4/ +J(b) .

6 l V 6 j

f(x)dx для функции f (х) = V2х + 1

27

Вычислите площадь трех кругов Б1, Б2 и БЗ с заданными диаметрами (11, Й2 и <13. Назначение метода: вычисление А = П X <72 /4.

28

3,5л;3 — 2,8л:3 + 6,7 12,8л;3 + 0,2х~ + 0,76

Вычислите у = „ ; Z

X3 + 0,3х -1 5,5х + 0,4х - 2,8

Назначение метода: вычисление f(a, b, с, х) = ах} + Ьх~ + с.

29

Определите общую площадь фигуры, образованной полукругами

3 4 * 2.5 1

*2

С 7TR2

Назначение метода: вычисление площади полукруга о =-.

2

30

Вычислите значения^ 1.2,s)+g(t,s)-g(2s-l,s+t), где s и t-действительные числа.

, «л а22

Назначение метода: вычисление g{a, о) — —---.

а~ + 2 ab + 3 Ь~ + 4

31

3,3х4 + 8,5х + 7 4х + 8

Вычислите у =- и : z = —--.

2х - 5 5х - Зх

Назначение метода: вычисление J (а, Ь, с, х) = ах4 + Ьх + с.

32

. 47Г _ . Ъп 2 .71

sin--7 sin y'+sin

3 2 2

Вычислите у —---——; z —--—

* с . %7Г .171 , .4Л

5sin +sin— 1-y + sin —

5 3 5

У/ Г Ч • 71 -п

Назначение метода: вычисление у (п, к) — sin-.

к

33

0,35х3 - 4,8х 5,8xJ - 6,16

Вычислите у = ; z

2х + 4,3х -15 3,5х + 4,9х - 7,5

Назначение метода: вычисление j (а, Ь, с, х) = ах3 + Ьх + с.

34

Вычислите

93*+2 + з4* г

Y= 2 ; z = sin +(х + 2Г'.

flY 6iY 2

V 2 J UJ

Назначение метода: вычисление а' = e'hM, а> 0.

Лабораторная работа №19 «Классические способы обработки строк»

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

Пример выполнения работы

Условие: разработайте проект, содержащий несколько форм. Первая форма является заставкой к приложению. На второй форме разместите элемент управ-402

ления ComboBox, в свойстве которого Items следует указать названия классических способов обработки строк.

Кроме того, разместите элементы управления, с помощью которых возможно осуществить:

- определение количества символов;

- замену символов в строке;

- удаление символа в строке;

- вставку символа в строку;

- анализ символа на принадлежность к группе;

- поиск строки в блоке текста;

- обращение строки;

- алфавитную выборку.

Предусмотрете запрос на выход из программы. Создайте иконку с собственными инициалами и скомпилируйте .ехе файл.

Внешний вид главной формы представлен на рис. 238.

Рис. 238. Главная форма приложения

Бь берите способ обработки строк

V

Определение когичестЕа символов

Замена символов е строке

Удаление символа е строке

ВстаЕка символа е строку

.Аналіз символа на принадлежность к группе

Подсчет колічестЕа орагментоЕ

Поиск строки е блоке текста

Обращение строки

А

V

Рис. 239. Элементы ComboBox

Рис. 240. Результат работы программы «Подсчет количества символов»

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

Листинг 211 namespace WindowsApplicationl

{

public partial class Forml : Form

{

public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

{

switch (comboBoxl.Selectedlndex)

{

case 0:

int kol = 0;

string row = textBoxl.Text;

char simv = char.Parse(textBox2.Text);

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

{

if (row[i] == simv) kol = kol + 1;

}

строке

break;

label3.Text = " Количество найденных символов в + kol.ToString(); break; case 1:

bool zamena = false; string rowl = textBoxl.Text; string simvol = textBox2.Text; if (!zamena)

rowl = rowl.Replace(" ", simvol);

else

rowl = rowl.Replace(simvol, " ");

zamena = !zamena;

label3.Text = "Результирующая строка: " + rowl;

case 2:

string row2 = textBoxl.Text; int n;

char simvol2 = char.Parse(textBox2.Text); for (int i = 0; i < row2.Length; i++) if (row2[i] == simvol2)

{

n = row2.IndexOf(simvol2); row2 = row2.Remove(n, 1) ;

}

label3.Text = "Результирующая строка: " + row2;

break;

}

}

}

}

Задания для самостоятельной подготовки Изучить:

- методы работы с символами и строками;

- классические способы обработки строк.

Разработать:

- интерфейс программы;

- программу решения задачи;

- тестовые варианты (число тестов равно числу ветвей вычислительного процесса) для проверки правильности функционирования программы.

Работа в лаборатории

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

1. Получить допуск к лабораторной работе при предъявлении преподавателю отчета по текущей лабораторной работе.

2. Проект должен иметь заставку, в которой указываются:

название учебного заведения; название кафедры; название лабораторной работы; цель лабораторной работы; условие задачи.

3. Заставка к проекту выполняется:

студентами 1-й подгруппы с использованием программного кода, который реализует вывод текста из файла в область, нарисованную на форме (см. Приложение, заставка №18);

студентами 2-й подгруппы с использованием программного кода, который реализует создание текста и изображения на форме графическими методами (см. Приложение, заставка №1).

4. Главную форму разрабатываемого приложения студенты 1-й подгруппы и 2-й подгруппы программируют с использованием обычной формы.

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

6. Студент должен уметь ответить на контрольные вопросы по лабораторной работе.

7. Студент должен продемонстрировать свои навыки и умения при работе на персональном компьютере в среде программирования Microsoft Visual Studio, набрав и отладив программу своего варианта.

8. Студент обязан соблюдать правила по технике безопасности при работе с вычислительной техникой.

Содержание отчета

1. Название лабораторной работы.

2. Фамилия, имя студента, номер группы, номер варианта.

3. Цель лабораторной работы.

4. Условие задачи.

5. Листинг программы.

6. Результат выполнения программы.

Контрольные вопросы

1. Перечислите наиболее распространенные методы работы с символами.

2. Перечислите наиболее распространенные методы работы со строками.

3. Приведите примеры отдельных методов структуры char.

4. Приведите примеры отдельных методов работы со строками.

5. Каким образом можно инициализировать массив символов?

6. Приведите примеры базовых алгоритмов строк.

7. Какой метод используется для форматирования строк? Приведите примеры шаблонов форматирования строк.

Лабораторная работа №20 «Обработка строковых данных»

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

Пример выполнения работы

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

Предусмотрите запрос на выход из программы. Создайте иконку с собственными инициалами и скомпилируйте .ехе файл.

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

В листинге 212 представлен код процедуры, отвечающий за решение задачи.

Листинг 212

using System.10; namespace WindowsApplicationl {

public partial class Forml : Form {

public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

{

StreamReader zapis = new StreamReader(@"c:1.txt",

Encoding.Default);//читаем строку на русском языке

string z = zapis.ReadToEnd(); textBoxl.AppendText(z); zapis.Close();

} private void button2_Click(object sender, EventArgs e)

{

StreamReader zapis = new StreamReader(@"c:2.txt", Encoding.Default);//читаем строку на русском языке

string zl = zapis.ReadToEnd(); textBox2.AppendText(zl); zapis.Close ();

}

private void button3_Click(object sender, EventArgs e)

{

string strl = textBoxl.Text; string str2 = textBox2.Text;

int dlina_strl = strl.Length; //Длина 1 строки int dlina_str2 = str2.Length; //Длина 2 строки for (int i = 0; i <= dlina_str2-l ; i++)

{

int j = 0;

while (j < dlina_strl)//Начинаем перебор всех символов

1 строки

{

if (strl.Substring(j, 1) == str2.Substring(i, 1))

{

strl = strl.Remove(j, 1); //Если символы

совпали,то удаляем их

dlina_strl = dlina_strl - 1; //Уменьшаем длину

строки

}

else

j = j +1; //Переходим к следующему символу

строки

}

}

textBox3.Text = strl.ToString();

StreamWriter zapis = File.CreateText(@"c:3.txt"); zapis.WriteLine(strl); zapis.Close () ;

}

Результат работы программы представлен на рис. 241.

Работа со строками

Читаем перЕую строку мама

Ok

Читаем Еторую строку папа

Ok

Полутениьй результат мм

Ok

Задача 2. Из заранее созданного текстового файла, содержащего слово, считать информацию и отобразить ее в текстовом окне формы. Замените в слове букву а на букву о. Если буквы а в этом слове нет — выведите соответствующее сообщение. Результат обработки отобразите на форме и сохраните в текстовом файле. В листинге 213 представлен код процедуры, отвечающий за решение задачи.

Листинг 213

using System.10; namespace WindowsApplicationl {

public partial class Forml : Form {

public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

{

StreamReader zapis = new StreamReader(@"c:1.txt", Encoding.Default);//читаем строку на русском языке

string z = zapis.ReadToEnd(); textBoxl.AppendText(z) ; zapis.Close();

}

private void button2_Click(object sender, EventArgs e)

{

string strl = textBoxl.Text;

//Создаем массив символов из исходной строки

char[] а = strl.ToCharArray();

string ot=" //Начало строки - пробел

bool flag = false;

for (int i = 0; i <= dlina_strl-l; i++)

{

if (a[i] == 'a')

{

a [ i ] = ' о 1 ; flag = true;

}

ot = ot + a[i] ; //Формируем результирующую строку

}

if ( ! flag)

MessageBox.Show("В слове нет буквы а","Ошибка",MessageBoxButtons.OK,MessageBoxIcon.Error);

else

for (int i = 0; i <= dlina_strl - 1; i++)

textBox3.Text = ot.TrimStart();//Удаляем пробел

в начале строки

StreamWriter zapis = File.CreateText(@"c:3.txt"); zapis.WriteLine(ot.TrimStart()); zapis.Close();

}

}

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

Листинг 214

using System.10; namespace WindowsApplicationl {

public partial class Forml : Form {

public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

{

StreamReader zapis = new StreamReader(@"c:1.txt", Encoding.Default);//читаем строку на русском языке

string z = zapis.ReadToEnd(); textBoxl.AppendText(z); zapis.Close();

}

private void button2_Click(object sender, EventArgs e)

{

string strl = textBoxl.Text;

//Создаем массив символов из исходной строки

char[] а = strl.ToCharArray(); int flag = 0; int i = 0;

int dlina_strl= strl.Length; //Длина строки while ((flag >= 0) && (i <= dlina_strl-l))

{

if (a[i] == ' ( ' ) flag = flag + 1; if (a[i] == ' ) ' ) flag = flag - 1; i = i + 1;

}

if (flag==0)

MessageBox.Show("Есть баланс открывающих и

закрывающих

скобок!","Сообщение",MessageBoxButtons.OK,MessageBoxIcon.Error);

else

MessageBox.Show("Нет баланса открывающих и

закрывающих

скобок!","Сообщение",MessageBoxButtons.OK,MessageBoxIcon.Error); }

}

}

Задания для самостоятельной подготовки Изучить:

- методы работы с символами и строками;

- классические способы обработки строк.

Разработать:

- интерфейс программы;

- алгоритм решения задачи;

- программу решения задачи;

- тестовый вариант исходных данных.

Работа в лаборатории

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

1. Получить допуск к лабораторной работе при предъявлении преподавателю отчета по текущей лабораторной работе.

2. Проект должен иметь заставку, в которой указываются:

название учебного заведения; название кафедры; название лабораторной работы; цель лабораторной работы; условие задачи; вариант задачи.

3. Заставка к проекту выполняется:

студентами 1-й подгруппы с использованием программного кода, который реализует создание текста и изображения на форме графическими методами (см. Приложение, заставка №1);

студентами 2-й подгруппы с использованием программного кода, который реализует вывод текста из файла в область, нарисованную на форме (см. Приложение, заставка №18).

4. Главную форму разрабатываемого приложения студенты 1-й подгруппы и 2-й подгруппы программируют с использованием обычной формы.

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

6. Студент должен уметь ответить на контрольные вопросы по лабораторной работе.

7. Студент должен продемонстрировать свои навыки и умения при работе на персональном компьютере в среде программирования Microsoft Visual Studio, набрав и отладив программу своего варианта.

8. Студент обязан соблюдать правила по технике безопасности при работе с вычислительной техникой.

Содержание отчета

1. Название лабораторной работы.

2. Фамилия, имя студента, номер группы.

3. Цель лабораторной работы.

4. Условие задачи.

5. Разработанный алгоритм (все алгоритмические блоки чертятся карандашом или выполняются в текстовом редакторе Microsoft Word).

6. Листинг программы.

7. Результаты выполнения программы.

Контрольные вопросы

1. Перечислите наиболее распространенные методы работы с символами.

2. Перечислите наиболее распространенные методы работы со строками.

3. Приведите примеры отдельных методов структуры char.

4. Приведите примеры отдельных методов работы со строками.

5. Каким образом можно инициализировать массив символов?

6. Приведите примеры базовых алгоритмов строк.

7. Какой метод используется для форматирования строк? Приведите примеры шаблонов форматирования строк.

Варианты к лабораторной работе «Обработка строковых данных»

(порядковый номер студента по журналу соответствует его номеру варианта)

варианта

Задача

і

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

2

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

3

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

4

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

5

Дано слово. Определите, является ли оно палиндромом (Слово, которое читается одинаково в обоих направлениях, например «потоп»).

6

Дана строка символов. Определите самое длинное слово в строке и количество слов такой же длины.

7

Дана строка символов. Определите количество слов, являющихся записью десятичного числа.

8

Дана строка символов. Удалите из нее все пробелы.

9

Дана строка символов. Дано слово. Удалите из строки это слово.

10

Дана строка символов. Выделите подстроку между первой и второй точкой.

11

Дана строка символов. Определите длину самого короткого и самого длинного слова.

12

Дана строка символов. Определите, сколько слов начинается и кончается одной и той же буквой.

13

Дана строка символов. Определите, сколько слов содержат хотя бы одну букву «е».

14

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

15

Дана строка символов. Определите, сколько слов содержат ровно три буквы «е».

16

Строка содержит только цифры. Удалите все впереди стоящие нули.

17

Дана строка символов. Подсчитайте количество знаков препинания в строке.

18

Дана строка символов. Удалить из строки все запятые.

19

Дана строка символов. Приведено некоторое слово. Вставьте его после каждого пробела.

20

Дана строка символов. Найдите сумму чисел, встречающихся в строке.

21

Дана строка символов. Удалите из строки все числа.

22

Дана строка символов. В ней группа символов, разделенная пробелами, считается словом. Удалить из строки слово.

23

Дана строка символов. Вставьте в строку пробел после каждого знака препинания.

24

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

25

Дана строка из цифр и латинских букв. Определите, каких букв — гласных (А, Н, I, О, и) или согласных — больше в этой строке.

26

Из заданной строки удалите те ее части, которые заключены в кавычки (вместе с кавычками).

27

Задано слово. Замените в этом слове букву А на букву О. Если буквы А в этом слове нет, то выведите соответствующее сообщение.

Лабораторная работа №21 «Работа с текстовыми файлами»

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

Пример выполнения работы

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

Предусмотрите запрос на выход из программы. Создайте иконку с собственными инициалами и скомпилируйте .ехе файл.

Задача 1. Сформируйте файл исходных данных, содержащий несколько строк. Определите максимальную длину самой длинной строки. Результат выведите на экран. В листинге 215 представлен код процедуры, отвечающий за решение задачи.

Листинг 215

using System.10; namespace WindowsApplicationl {

public partial class Forml : Form {

string str; public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

StreamWriter zapis = File.CreateText(@"c:Stroka.txt"); for (int i = 0; i <= 3; i++)

{

str =

Microsoft.VisualBasic.Interaction.InputBox("Введите строку",

"Заголовок окна", -1, -1);

zapis.WriteLine(str);

}

zapis.Close () ;

}

private void button2_Click(object sender, EventArgs e)

{

StreamReader read = File.OpenText(@"c:Stroka.txt"); int n = 0;

for (int i = 0; i < 4; i++)

{

str = read.ReadLine();

textBoxl.AppendText(str + " ");

if (n < str.Length)

n = str.Length;

}

read.Close();

labell.Text = "Максимальная длина строки= " + n.ToString("n");

}

l

I

Задача 2. Сформируйте файл исходных данных, содержащий несколько строк. Определите длину минимальной строки. Запишите в другой файл самую короткую строку. В листинге 216 представлен код процедуры, отвечающий за решение задачи.

Листинг 216

using System.10; namespace WindowsApplicationl {

public partial class Forml : Form

{

string str; public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

{

StreamWriter zapis = File.CreateText(@"c:Stroka.txt"); for (int i = 0; i <= 3; i++)

{

str =

Microsoft.VisualBasic.Interaction.InputBox("Введите строку",

"Заголовок окна", -1, -1);

zapis.WriteLine(str);

}

zapis.Close ();

}

private void button2_Click(object sender, EventArgs e)

{

StreamReader read = File.OpenText(@"c:Stroka.txt"); StreamWriter zap = File.CreateText(@"c:Strokal.txt"); int min = 512; for (int і — 0; і < 4; i++)

{

str = read.ReadLine();

textBoxl.AppendText(str + " ");

if (str.Length < min ) //Находим строку с

минимальном длиной

min = str.Length; if (str.Length == min)

zap.WriteLine(str); //Записываем ее в другой файл

}

read.Close() ; zap.Close();

labell.Text = "Минимальная длина строки= " + min.ToString("n");

}

}

}

Задания для самостоятельной подготовки

Изучить:

- методы получения информации о процессах и потоках;

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

- интерфейс программы;

- алгоритм решения задачи;

- программу решения задачи;

- тестовый вариант исходных данных.

Работа в лаборатории

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

1. Получить допуск к лабораторной работе при предъявлении преподавателю отчета по текущей лабораторной работе.

2. Проект должен иметь заставку, в которой указываются:

название университета; название кафедры; название лабораторной работы; цель лабораторной работы; условие задачи; вариант задачи.

3. Заставка к проекту выполняется:

студентами 1-й подгруппы с использованием программного кода, который реализует вывод центрированного текста, закрашенного с помощью градиентной заливки (см. Приложение, заставка №2); студентами 2-й подгруппы с использованием программного кода, который реализует использование текстового окна для ввода пароля (см. Приложение, заставка №17).

4. Главную форму разрабатываемого приложения студенты 1-й подгруппы и 2-й подгруппы программируют с использованием обычной формы.

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

6. Студент должен уметь ответить на контрольные вопросы по лабораторной работе.

7. Студент должен продемонстрировать свои навыки и умения при работе на персональном компьютере в среде программирования Microsoft Visual Studio, набрав и отладив программу своего варианта.

8. Студент обязан соблюдать правила по технике безопасности при работе с вычислительной техникой.

Содержание отчета

1. Название лабораторной работы.

2. Фамилия, имя студента, номер группы.

3. Цель лабораторной работы.

4. Условие задачи.

5. Разработанный алгоритм (все алгоритмические блоки чертятся карандашом или выполняются в текстовом редакторе Microsoft Word).

6. Листинг программы.

7. Результаты выполнения программы.

Контрольные вопросы

1. Что представляет собой файл?

2. Поясните разницу между понятиями «процесс» и «поток».

3. Какие классы используются для работы с потоками символьной информации?

4. Назовите методы, с помощью которых можно записать или прочитать информацию.

5. Какие методы используются для доступа к информации о файлах и директориях?

6. Какие компоненты позволяют получить доступ к информации о дисках, директориях и файлах?

Варианты к лабораторной работе «Работа с текстовыми файлами»

(порядковый номер студента по журналу соответствует его номеру варианта)

варианта

Задача

1

Осуществите ввод двух матриц А[5,5] в пустой текстовый файл. Разработайте программу умножения двух матриц, результирующую матрицу выведите на экран и в текстовый файл.

2

Задан файл вещественных чисел. Удалите из него максимальный и минимальный элементы. Выведите результаты выполнения программы на экран.

3

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

4

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

5

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

6

Сформируйте файл исходных данных. Из компонентов исходного файла целых чисел сформируйте массивы четных и нечетных чисел. Определите наибольший четный компонент файла и наименьший нечетный. Результат запишите в текстовый файл

7

Сформируйте файл исходных данных. Из компонентов исходного файла целых чисел сформируйте массив удвоенных нечетных чисел. Упорядочите его по возрастанию элементов. Результат запишите в текстовый файл.

8

Сформируйте файл исходных данных. Из компонентов исходного файла вещественных чисел сформируйте массив, записав в него компоненты, расположенные в файле до минимального элемента и после максимального элемента. Результат запишите в текстовый файл.

9

Сформируйте файл исходных данных. Из компонентов исходного файла вещественных чисел сформируйте массив, удвоив каждый его элемент через два пробела. Результат запишите в текстовый файл и выведите на экран.

10

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

11

Разработайте программу, позволяющую протестировать студента. Последовательность вопросов и варианты ответов должны находиться в текстовом файле. Количество вопросов не более пяти. Текст вопроса и ответов не должен зани-мать более одной строки экрана. Программа выставляет оценки «5» — все пра-вильные ответы, «4» — более 80% ответов верные, «3» — более 60% ответов верные, «2» — менее 60% ответов верные.

12

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

13

Разработайте программу, которая создает на диске текстовый файл, записывает в него построчно информацию (количество строк заранее неизвестно, а признаком окончания ввода является ввод в конце очередной строки символа *). Подсчитайте количество строк в имеющемся файле.

14

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

15

Сформируйте файл исходных данных. Из компонентов исходного файла вещественных чисел сформируйте массив, записав в него компоненты, расположенные в файле между минимальным и максимальным элементами. Результат запишите в текстовый файл.

16

Создайте файл, элементами которого будут строковые переменные. Из компонентов исходного файла сформируйте текстовый файл, удвоив все буквы «а». Результат выведите на экран.

17

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

18

Сформируйте файл исходных данных. Из компонентов исходного файла целых чисел сформируйте массив отрицательных чисел. Вычислите количество нулевых компонентов файла. Результат запишите в текстовый файл.

19

Сформируйте файл исходных данных. Из компонентов исходного файла целых чисел сформируйте массив чисел, записав в него только ненулевые компоненты, находящиеся после максимального элемента. Результат запишите в текстовый файл.

20

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

21

Сформируйте файл исходных данных. Постройте конкатенацию (последовательную запись) исходного файла самого с собой. Результат запишите в текстовый файл и выведите на экран.

22

Разработайте программу, которая записывает в текстовый файл фамилию и номер телефона товарища по группе в формате ***_**_**. Найдите количество номеров телефонов, у которых совпадают первые три цифры. Сформируйте результирующий файл таких телефонов. Если таких номеров нет, то программа должна выводить соответствующее сообщение.

23

Сформируйте файл исходных данных. Удалите в исходном файле текст после первой точки. Результат запишите в текстовый файл и выведите на экран.

24

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

25

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

26

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

Лабораторная работа №22 «Работа с файлами и каталогами»

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

Пример выполнения работы

Условие: разработайте проект, содержащий несколько форм. Первая форма является заставкой к приложению. На второй форме и последующих формах следует разработать программу, позволяющую получить доступ к файловой системе компьютера и доступ к информации о файлах и директориях, используя различные методы класса Filelnfo и класса Directory Info.

Создайте иконку с собственными инициалами, предусмотрите запрос на выход из программы и скомпилируйте .ехе файл.

Комментарий: процесс визуализации файловой системы с помощью компонентов БпуеЬЫВох, Б^ЬЫВох, ЕПеЬ^Вох, написание соответствующих листингов приведены в главе 11 учебного пособия. Сейчас перечислим основные этапы создания приложения.

1. Добавление компонентов ЭпуеЬ^Вох, ОшЬЫВох, РПеЬ^Вох в панель ТооШох (см. параграф 11.4, задача 2).

2. Размещение компонентов ОпуеЬ^Вох, Б^Ь^Вох, РйеЬЫВох на форме (см. параграф 11.4, рисунок 172).

3. Написание соответствующих процедур (см. параграф 11.4, листинг 168).

4. Отладка приложения.

5. Добавление следующей формы и размещение компонентов (см. параграф 11.4, рисунок 173).

6. Написание соответствующих процедур (см. параграф 11.4, листинг 169).

7. Окончательная отладка приложения.

Разработанное приложение можно дополнить (на усмотрение преподавателя), создав дополнительную форму и листинг программы, в которой будут использованы различные методы класса И1е1пГо и класса Бщес^огуХпй) для доступа к информации о файлах и директориях (см. параграф 11.4, задача 1, листинг 167).

Задания для самостоятельной подготовки

Изучить:

- методы, позволяющие получить сведения об указанном каталоге;

- методы, позволяющие получить информацию о конкретном файле. Разработать:

- интерфейс программы;

- программу решения задачи;

- тестовый вариант исходных данных.

Работа в лаборатории

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

1. Получить допуск к лабораторной работе при предъявлении преподавателю отчета по текущей лабораторной работе.

2. Проект должен иметь заставку, в которой указываются:

название университета; название кафедры; название лабораторной работы; цель лабораторной работы; условие задачи.

3. Заставка к проекту выполняется:

студентами 1-й подгруппы с использованием программного кода, который реализует вывод текста на графическую поверхность и выравнивание его по центру (см. Приложение, заставка №3);

студентами 2-й подгруппы с использованием программного кода, который реализует вывод векторного изображения (см. Приложение, заставка №16).

4. Главную форму разрабатываемого приложения студенты 1-й подгруппы и 2-й подгруппы программируют с использованием обычной формы.

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

6. Студент должен уметь ответить на контрольные вопросы по лабораторной работе.

7. Студент должен продемонстрировать свои навыки и умения при работе на персональном компьютере в среде программирования Microsoft Visual Studio, набрав и отладив программу своего варианта.

8. Студент обязан соблюдать правила по технике безопасности при работе с вычислительной техникой.

Содержание отчета

1. Название лабораторной работы.

2. Фамилия, имя студента, номер группы.

3. Цель лабораторной работы.

4. Условие задачи.

5. Листинг программы.

6. Результаты выполнения программы.

Контрольные вопросы

1. Что представляет собой файл?

2. Поясните разницу между понятиями «процесс» и «поток».

3. Какие классы используются для работы с потоками символьной информации?

4. Назовите методы, с помощью которых можно записать или прочитать информацию.

5. Какие методы используются для доступа к информации о файлах и директориях?

6. Какие компоненты позволяют получить доступ к информации о дисках, директориях и файлах?

7. Какой метод позволяет выяснить имена дисков компьютера?

 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
 
Популярные страницы