Тема: Разработка одномерного массива с помощью компонента( класса) ArrayList
Public Class Form2
Dim n, i, t, p, z As Integer
Dim strana, transport As String
Dim x As String
Dim mylist As New ArrayList()
Dim f As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
n = Val(TextBox1.Text) 'ввод количества предложений
ListBox1.Items.Clear()
mylist.Clear()
For Me.i = 1 To n 'ввод данных
strana = InputBox("введите элемент массива")
'вывод в Listbox
mylist.Add(strana)
ListBox1.Items.Add(Str(i) + " " + mylist.Item(i - 1))
Next
End Sub
Private Sub НазадToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles НазадToolStripMenuItem.Click
Form1.Show()
Me.Hide()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'добавление нового элемента
strana = InputBox("введите элемент массива")
mylist.Add(strana)
ListBox1.Items.Add(Str(i) + " " + mylist.Item(ListBox1.Items.Count))
i = i + 1
n = n + 1
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ListBox1.Items.Clear()
For Me.i = 1 To n 'сортировка
mylist.Sort()
ListBox1.Items.Add(Str(i) + " " + mylist.Item(i - 1))
Next
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'удаление элемента
mylist.Remove(mylist.Item(f))
n = n - 1
ListBox1.Items.Clear()
For Me.i = 1 To n
ListBox1.Items.Add(Str(i) + " " + mylist.Item(i - 1))
Next
End Sub
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
f = ListBox1.SelectedIndex
End Sub
‘поиск
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
x = TextBox2.Text
If mylist.IndexOf(x) >= 0 Then
ListBox1.SelectedIndex = mylist.IndexOf(x)
Else : MsgBox("по вашему запросу ничего не найдено")
End If
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
End Sub
End Class
Лабораторная работа 7
Тема: 2-х мерные массивы
Язык программирования С#
Блок-схема алгоритма
Программа
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int n, m;
double[,] a;
double[,] b;
// ввод размерности
private void button1_Click(object sender, EventArgs e)
{
m = Convert.ToInt16(textBox1.Text);
n = Convert.ToInt16(textBox2.Text);
a = new double[m, n];
b = new double[m, n];
//Чистка DGView, если они не пусты
int k = 0;
k = dataGridView1.ColumnCount;
if (k != 0)
for (int i = 0; i < k; i++)
dataGridView1.Columns.RemoveAt(0);
dataGridView2.Columns.Clear();
// dataGridView3.Columns.Clear();
//Заполнение DGView столбцами
AddColumns(n, dataGridView1);
AddColumns(n, dataGridView2);
// AddColumns(p, dataGridView3);
//Заполнение DGView строками
AddRows(m, dataGridView1);
AddRows(m, dataGridView2);
// AddRows(m, dataGridView3);
}
private void AddColumns(int n, DataGridView dgw)
{
//добавляет n столбцов в элемент управления dgw
//Заполнение DGView столбцами
DataGridViewColumn column;
for (int i = 0; i < n; i++)
{
column = new DataGridViewTextBoxColumn();
column.DataPropertyName = "Column" + i.ToString();
column.Name = "Column" + i.ToString();
dgw.Columns.Add(column);
}
}
private void AddRows(int m, DataGridView dgw)
{
//добавляет m строк в элемент управления dgw
//Заполнение DGView строками
for (int i = 0; i < m; i++)
{
dgw.Rows.Add();
dgw.Rows[i].HeaderCell.Value
= "row" + i.ToString();
}
}
// создание массива
private void button2_Click(object sender, EventArgs e)
{
{
string elem = "";
bool correct = true;
Random rnd = new Random();
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
{
try
{
// elem = dataGridView1.Rows[i].Cells[j].Value.ToString();
// a[i, j] = Convert.ToDouble(elem);
// label8.Text = "";
//mas[i] = rnd.Next(-20, 20);
a[i, j] = rnd.Next(-20, 40);
// dataGridView1.Cells[i,J] = a[i, j].ToString();
// elem = dataGridView1.Rows[i].Cells[j].Value.ToString();
// a[i, j] = Convert.ToDouble(elem);
dataGridView1.Rows[i].Cells[j].Value = a[i, j].ToString();
}
catch (Exception any)
{
label8.Text = "Значение элемента" +
"a[" + i.ToString() + ", " + j.ToString() + " ]"
+ " не корректно. Повторите ввод!";
dataGridView1.Rows[i].Cells[j].Selected = true;
return;
} } } }
// новый массив
private void button3_Click(object sender, EventArgs e)
{
MultMatr(a,b);
FillDG();
// int m = a.GetLength(0);
// int n = a.GetLength(1);
}
void MultMatr(double[,] a, double[,] b)
{
for(int i=0; i < m; i++)
for (int j = 0; j < n; j++)
{
if (a[i,j]>0) {b[i,j]=2*a[i,j];}
} }
void FillDG()
{
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
dataGridView2.Rows[i].Cells[j].Value
= b[i, j].ToString();
}
private void button4_Click(object sender, EventArgs e)
{
Close();
} }}
Vb.net
Цель занятия: Изучить структуру программ, основные операторы VB.NET для вычислений, отличительные признаки языка программирования VB.NET. Получить навыки работ по составлению простейших программ в консольном варианте.
1. построение словесных алгоритмов
2. Построение алгоритмов в виде блок-схем
3. Разработка программы в windows варианте .
4.Разработка программ на основе основных математических операторов
2.7
Public Class Form2
Private Sub назадToolStripMenuItem_Click(ByVal sender
Form1.Show()
Me.Hide()
End Sub
Private Sub вывестиToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles вывестиToolStripMenuItem.Click
Dim n, m, i, j As Integer
Dim a(100, 100) As Integer
Dim min, max As Double
Dim k As String
n = Val(TextBox1.Text)
m = Val(TextBox2.Text)
k = «»
For i = 1 To n
For j = 1 To m
a(i, j) = Int(Rnd(1) * (-200) + 100)
k = k + « « + Str(a(i, j))
Next
ListBox1.Items.Add(k)
k = «»
Next
min = a(1, 1)
max=a(1,1)
For i = 1 To n
For j = 1 To m
If a(i, j) > max Then max = a(i, j)
If a(i, j) < min Then min = a(i, j)
Next Next
TextBox3.Text = Str(min)
TextBox4.Text = Str(max)
End Sub
End Class
Задания по теме 2-х мерные массивы
Дана матрица C(nxn) и вектор а = (a1, a2, ..., an). Написать программу вычисления вектора b = C*a.
Дана матрица А(nxn). Построить n-мерный вектор по правилу: если в строке матрицы с номером i есть отрицательные элементы, то bi = 0, в противном случае bi = 1.
Даны две матрицы А(nxn) и B(nxn). Написать программу нахождения произведения этих матриц D = A*B.
Дана матрица А(nxn). Написать программу, которая меняет k-ю и m-ю строки матрицы, а затем транспонирует матрицу.
Дана матрица А(nxn) и вектор х = (х1, х2, ...,хn). Написать программу нахождения скалярного произведения (х*Ах).
Дана матрица А(nxn). Написать программу нахождения матрицы АтА, где Ат - транспонированная матрица.
Даны две матрицы А(nxn) и B(nxn). Написать программу нахождения матрицы, равной (А-В)т.
Даны два вектора b = (b1, b2, ..., bn), x = (x1,x2, ..., xn) и матрица А(nxn). Написать программу вычисления длины вектора Ах - b.
Дана матрица А(nxm). Написать программу, которая вычеркивает столбец с номером р и переставляет остальные так, чтобы получилась матрица nx(m-1).
Даны две матрицы А(nxn) и B(nxn), а также два вектора х = (x1, x2,..., xn) и y = (y1, y2, ..., yn). Написать программу нахождения скалярного произведения (Ах)*(Ву).
Даны две матрицы А(nxn) и C(nxn). Написать программу вычисления матрицы Ст(А+С), где Ст - транспонируемая матрица.
Даны две матрицы А(nxn) и B(nxn). Написать программу нахождения суммы диагональных элементов А*В.
Даны квадратные матрицы А(nxn), B(nxn), C(nxn). Написать программу вычисления матрицы (А+В)*С.
Даны две матрицы А(nxn) и B(nxn). Написать программу получения коммутатора АВ этих матриц.
Дана матрица А(nxn). Написать программу вычисления матрицы Аk, где k>0 - целое число.
Дана матрица А(nxn). Написать программу вычисления max(Sk), где .
Даны две матрицы А(nxn) и B(nxn). Написать программу вычисления матрицы , где норма ||C|| матрицы С есть max||Ckm|| .
Дана действительная квадратная матрица порядка n. Построить последовательность действительных чисел A1, A2, ..., An по правилу: если в i - той строке матрицы элемент, принадлежащий главной диагонали, отрицателен, то Ai равно сумме элементов i - той строки, предшествующих первому отрицательному элементу; в противном случае Ai равно сумме последних элементов i - той строки, начиная с первого по порядку неотрицательного элемента.
-
Дан вектор х=(х1, х2, ...,хn). Написать программу, которая находит разность между первой и последней отрицательными координатами вектора х.
Дана матрица А(nxn). Написать программу нахождения минимального элемента из (max1, ...,maxn), где maxi - максимальный в i - той строке.
В матрице А(nxn) найти максимальный и минимальный элементы. Указать их разность, а также строки и столбцы, на пересечении которых они находятся.
Дана матрица А(nxn). Написать программу, которая находит максимальный и минимальный элементы этой матрицы и переставляет столбцы и строки так, чтобы эти элементы поменялись местами.
Дана матрица А(nxn). Написать программу, которая находит максимальную сумму элементов, стоящих на диагоналях, параллельных главной.
Даны две матрицы А(nxn) и B(nxn). Написать программу нахождения максимального значения max(S1, S2, ..., Sn), где Sk - скалярное произведение k - й строки матрицы А на k - й столбец матрицы В.
Даны m векторов х1 = (х11, х21, ...,хn1), ..., xm = (x1m, x2m, ...,xnm). Написать программу поиска вектора минимального по длине.
Дана матрица А(nxn) с положительными элементами. Написать программу, которая находит среди элементов матрицы тройки таких элементов (aji-1, aji, aji+1), чтобы существовал треугольник со сторонами, равными этим числам.
Дана прямоугольная матрица А(nxm). Заменить наименьший элемент каждой строки, начиная со второй, наибольшим элементом предыдущей строки.
Дана действительная квадратная матрица порядка n. Вычислить сумму тех ее элементов, расположенных на главной диагонали и выше нее, которые превосходят по величине все элементы, расположенные ниже главной диагонали. Если на главной диагонали и выше нее нет элементов с указанным свойством, то ответом должно служить сообщение об этом.
Найти все различающиеся элементы целочисленной квадратной матрицы размерностью nxn.
Дана матрица А(nxn). Написать программу, которая находит максимальный по абсолютной величине элемент и переставляет строки и столбцы так, чтобы он оказался в левом верхнем углу.
Дана матрица А(nxn). Написать программу поиска одинаковых элементов в этой матрице.
Дана матрица А(nxn). Написать программу нахождения максимального элемента матрицы, принадлежащего отрезку [p, q].
|