Тема: Разработка одномерного массива с помощью компонента( класса) 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

 

Задания по теме Одномерные массивы

  1. Найти сумму положительных элементов массива.
  2. Найти сумму всех элементов массива, кратных 5.
  3. Найти сумму всех четных элементов массива, стоящих на четных местах.
  4. Найти сумму первых пяти элементов массива.
  5. Найти сумму элементов с k1 по k2, где k1, k2 вводятся с клавиатуры.
  6. Найти сумму элементов, больших данного числа А.
  7. Найти сумму элементов, принадлежащих промежутку от А до В.
  8. Найти номера всех отрицательных элементов массива (вывести их на экран). Если таких элементов нет, то сообщить об этом.
  9. Найти номера всех элементов с максимальным значением.
  10. Найти количество отрицательных нечетных элементов массива.
  11. Сколько элементов массива превосходят по модулю заданное число А?
  12. Найти все элементы массива, кратные 3 или 5. Сколько их?
  13. Есть ли в данном массиве два соседних положительных элемента? Найти номера первой и последней пары.
  14. Есть ли в данном массиве элемент, равный заданному числу? Если есть, то вывести номер одно из них.
  15. Изменить знак у максимального по модулю элемента массива.
  16. Заменить все четные элементы массива их квадратами, а нечетные – удвоить.
  17. Вычесть из положительных элементов элемент с номером k1, а к отрицательным прибавить элемент k2, нулевые элементы оставить без изменения.
  18. К четным элементам прибавить А, а из элементов с четными номерами вычесть В.
  19. Даны два целочисленных массива, состоящие из одинакового числа элементов. Получить третий массив той же размерности, каждый элемент которого равен большему из соответствующих элементов данных массивов.
  20. Дан первый член геометрической прогрессии и её знаменатель. Найти первые n членов этой прогрессии.
  21. Получить первые n чисел Фибоначчи, - первые два числа равны 1, а каждое следующее сумме двух предыдущих.
  22. Даны два массива. Найти среднее арифметическое элементов каждого и сравнить эти значения.
  23. Дан одномерный массив А, состоящий из 2n элементов. Поменять его половины следующим образом: первый элемент поменять с последним, второй – с предпоследним и т.д.
  24. Дан одномерный массив. Переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным.

Лабораторная работа 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();

}

 

private void label8_Click(object sender, EventArgs e)

{

 

}

 

   }

}

     

Vb.net

Лабораторная работа №6  

  Тема: Двумерные массивы. Window проект

                    

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

 1. построение словесных алгоритмов

2. Построение алгоритмов в виде блок-схем

3. Разработка программы в консольном варианте .

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)

   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 

Тема: Графика.

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

Условие задачи.Нарисовать на форме желтого цвета прямоугольник зеленного цвета и эллипс красногоцвета

 

 

 

 

using

System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace Brush

{

public partial class Form1 : Form

{

   public Form1()

   {

       InitializeComponent();

   }

 private void Form1_Paint(object sender, PaintEventArgs e)

   {

       //Задаем тип и цвет кисти

       SolidBrush myBrush = new SolidBrush(System.Drawing.Color.Green);

       //Объявляем объект myRectangle и создаем Экземпляр этого объекта

Rectangle myRectangle = new Rectangle(10, 15, 150, 200);

       //рисуем и заполняем фигуру

e.Graphics.FillRectangle(myBrush,myRectangle);

          //Высвобождаем память, выделенную объекту myBrush

       myBrush.Dispose();

   }

private void pictureBox1_Paint(object sender,PaintEventArgs e)

   {

       //Задаем тип и цвет кисти

       SolidBrush myBrush = new SolidBrush(System.Drawing.Color.Red);

       //Объявляем объект myRectangle и создаем Экземпляр этого объекта

Rectangle myRectangle = new Rectangle(10, 15, 150, 200);

       e.Graphics.FillEllipse(myBrush, myRectangle);

       //Высвобождаем память, выделенную объекту myBrush

       myBrush.Dispose();

   }

Лабораторная работа 2. Графика. Нарисовать и закрасить вставленные фигуры

 

 

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

 

namespace _llabb

{

public partial class Form1 : Form

{

   public Form1()

   {

       InitializeComponent();

   }

 

private void Form1_Paint(object sender, PaintEventArgs e)

   {

       Pen myPen = new Pen(Color.Black, 3);

           

       SolidBrush myB1 = new SolidBrush(System.Drawing.Color.Blue);

       SolidBrush myB2 = new SolidBrush(System.Drawing.Color.Red);

      e.Graphics.FillRectangle(myB2, 0,0,1280,1024);      

       e.Graphics.DrawLine(myPen, 240, 60, 120, 220);

       e.Graphics.DrawLine(myPen, 240, 60, 360, 220);

       e.Graphics.DrawLine(myPen, 120, 220, 360, 220);

       e.Graphics.FillPolygon(myB1, new Point[]

       {

           new Point(240,60),

           new Point(120,220),

           new Point(360,220),

       });

       e.Graphics.DrawEllipse(myPen, 190, 115, 100, 100);

       e.Graphics.FillEllipse(myB2, 190, 115, 100, 100);

                       

       myPen.Dispose();           

       myB1.Dispose();

       myB2.Dispose();

   }

   private void exitToolStripMenuItem_Click(object sender, EventArgs e)

  {

       Close();

   }

   private void authorToolStripMenuItem_Click(object sender, EventArgs e)

   {

       Form2 frm = new Form2();

       frm.Show();

   }

   private void aboutToolStripMenuItem_Click(object sender, EventArgs e)

   {

       Form3 rfm = new Form3();

       rfm.Show();

   }

}

}

 

 

С++

 

 

 

 

/ grafDlg.cpp : implementation file

//

 

#include "stdafx.h"

#include "graf.h"

#include "grafDlg.h"

 

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

 

/////////////////////////////////////////////////////////////////////////////

// CAboutDlg dialog used for App About

 

class CAboutDlg : public CDialog

{

public:

       CAboutDlg();

 

// Dialog Data

       //{{AFX_DATA(CAboutDlg)

       enum { IDD = IDD_ABOUTBOX };

       //}}AFX_DATA

 

       // ClassWizard generated virtual function overrides

       //{{AFX_VIRTUAL(CAboutDlg)

       protected:

       virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support

       //}}AFX_VIRTUAL

 

// Implementation

protected:

       //{{AFX_MSG(CAboutDlg)

       //}}AFX_MSG

       DECLARE_MESSAGE_MAP()

};

 

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)

{

       //{{AFX_DATA_INIT(CAboutDlg)

       //}}AFX_DATA_INIT

}

 

void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{

       CDialog::DoDataExchange(pDX);

       //{{AFX_DATA_MAP(CAboutDlg)

       //}}AFX_DATA_MAP

}

 

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)

       //{{AFX_MSG_MAP(CAboutDlg)

                   // No message handlers

       //}}AFX_MSG_MAP

END_MESSAGE_MAP()

 

/////////////////////////////////////////////////////////////////////////////

// CGrafDlg dialog

 

CGrafDlg::CGrafDlg(CWnd* pParent /*=NULL*/)

       : CDialog(CGrafDlg::IDD, pParent)

{

       //{{AFX_DATA_INIT(CGrafDlg)

                   // NOTE: the ClassWizard will add member initialization here

       //}}AFX_DATA_INIT

       // Note that LoadIcon does not require a subsequent DestroyIcon in Win32

       m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

 

void CGrafDlg::DoDataExchange(CDataExchange* pDX)

{

       CDialog::DoDataExchange(pDX);

       //{{AFX_DATA_MAP(CGrafDlg)

                   // NOTE: the ClassWizard will add DDX and DDV calls here

       //}}AFX_DATA_MAP

}

 

BEGIN_MESSAGE_MAP(CGrafDlg, CDialog)

       //{{AFX_MSG_MAP(CGrafDlg)

       ON_WM_SYSCOMMAND()

       ON_WM_PAINT()

       ON_WM_QUERYDRAGICON()

       ON_COMMAND(ID_MENUITEM32771, OnUslovie)

       ON_COMMAND(ID_MENUITEM32772, OnAvtor)

       ON_COMMAND(ID_MENUITEM32773, OnFigura)

       ON_COMMAND(ID__OK, OnOk)

       //}}AFX_MSG_MAP

END_MESSAGE_MAP()

 

/////////////////////////////////////////////////////////////////////////////

// CGrafDlg message handlers

 

BOOL CGrafDlg::OnInitDialog()

{

       CDialog::OnInitDialog();

 

       // Add "About..." menu item to system menu.

 

       // IDM_ABOUTBOX must be in the system command range.

       ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

       ASSERT(IDM_ABOUTBOX < 0xF000);

 

       CMenu* pSysMenu = GetSystemMenu(FALSE);

       if (pSysMenu != NULL)

       {

                   CString strAboutMenu;

                   strAboutMenu.LoadString(IDS_ABOUTBOX);

                   if (!strAboutMenu.IsEmpty())

                   {

                              pSysMenu->AppendMenu(MF_SEPARATOR);

                              pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

                   }

       }

 

       // Set the icon for this dialog. The framework does this automatically

       // when the application's main window is not a dialog

       SetIcon(m_hIcon, TRUE);                       // Set big icon

       SetIcon(m_hIcon, FALSE);         // Set small icon

           

       // TODO: Add extra initialization here

           

       return TRUE; // return TRUE unless you set the focus to a control

}

 

void CGrafDlg::OnSysCommand(UINT nID, LPARAM lParam)

{

       if ((nID & 0xFFF0) == IDM_ABOUTBOX)

       {

                   CAboutDlg dlgAbout;

                   dlgAbout.DoModal();

       }

       else

       {

                   CDialog::OnSysCommand(nID, lParam);

       }

}

 

// If you add a minimize button to your dialog, you will need the code below

// to draw the icon. For MFC applications using the document/view model,

// this is automatically done for you by the framework.

 

void CGrafDlg::OnPaint()

{

       if (IsIconic())

       {

                   CPaintDC dc(this); // device context for painting

 

                   SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

 

                   // Center icon in client rectangle

                   int cxIcon = GetSystemMetrics(SM_CXICON);

                   int cyIcon = GetSystemMetrics(SM_CYICON);

                   CRect rect;

                   GetClientRect(&rect);

                   int x = (rect.Width() - cxIcon + 1) / 2;

                   int y = (rect.Height() - cyIcon + 1) / 2;

 

                   // Draw the icon

                   dc.DrawIcon(x, y, m_hIcon);

       }

       else

       {

                   CDialog::OnPaint();

       }

}

 

// The system calls this to obtain the cursor to display while the user drags

// the minimized window.

HCURSOR CGrafDlg::OnQueryDragIcon()

{

       return (HCURSOR) m_hIcon;

}

 

void CGrafDlg::OnUslovie()

{

MessageBox("Нарисовать прямоугольник в окружности на фоне ромба ","Условие");       

}

 

void CGrafDlg::OnAvtor()

{

       // TODO: Add your command handler code here

MessageBox("студентка ФМФ гр.ИМ-3 Павлова Любовь","Автор");             

}

 

void CGrafDlg::OnFigura()

{

       // TODO: Add your command handler code here

CClientDC pDC(this);

       CBrush b_red,b_zel,b_sin;

           

       b_red.CreateSolidBrush(RGB(200,0,55));

b_zel.CreateSolidBrush(RGB(0,255,0));

       b_sin.CreateSolidBrush(RGB(0,0,255));

 

 

       pDC.SelectObject(b_red);

       pDC.Ellipse(110,50,290,230);

 

        pDC.SelectObject(b_zel);

       pDC.Rectangle(150,100,250,180);

 

pDC.SelectObject(b_sin);

        pDC.MoveTo(200,10);

        pDC.LineTo(330,140);

        pDC.MoveTo(330,140);

        pDC.LineTo(200,270);

        pDC.MoveTo(200,270);

        pDC.LineTo(70,140);

        pDC.MoveTo(70,140);

        pDC.LineTo(200,10);

        pDC.FloodFill(200,15,RGB(0,0,0));

           

       b_red.DeleteObject();

       b_zel.DeleteObject();

       b_sin.DeleteObject();

 

           

 

}

 

void CGrafDlg::OnOk()

{

       // TODO: Add your command handler code here

       CDialog::OnOK();    

}

 

 

Язык программирования VB.NET

Построить вложенные геометрические фигуры: окружность зеленного цвета, шестиугольник синего цвета и треугольник красного цвета  

 

 

 

Public Class Form4

Dim g As Graphics

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

   Form1.Show()

   Me.Hide()

End Sub

Private Sub Form_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Button1.Paint

   Dim g As Graphics = CreateGraphics()

   Dim myBrush As New SolidBrush(Color.DarkBlue)

   g.TranslateTransform(50, 50)

   g.FillEllipse(Brushes.DarkGreen, 120, -10, 150, 150)

   Dim points As Point() = {New Point(195, 0), New Point(235, 23), New Point(245, 70), New Point(200, 110), New Point(143, 77), New Point(145, 25), New Point(195, 0)}

   g.FillPolygon(myBrush, points)

   Dim triangle As Point() = {New Point(150, 50), New Point(230, 70), New Point(230, 30), New Point(150, 50)}

   g.FillPolygon(Brushes.DarkRed, triangle)

End Sub

Private Sub Form4_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

   Application.Exit()

End Sub

Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End SubEnd Class

 

Лабораторная работа №10 

           Тема: Построение графика и таблицы 

                          значений функции y=f(x)

                    

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

 1. построение словесных алгоритмов

2. Построение алгоритмов в виде блок-схем

3. Разработка программы в форме Window проекта

 

      

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

 

Построить график функции y=sin(x) и таблицу значений Y,X в элементе Listbox

 

 

 

ВыходToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ВыходToolStripMenuItem.Click

   End

End Sub

Private Sub НазадToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles НазадToolStripMenuItem.Click

   Me.Hide()

   Form1.Show()

End Sub

Private Sub ПостроитьГрафикToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ПостроитьГрафикToolStripMenuItem.Click

   Dim g As Graphics = CreateGraphics()

   Dim dy, dx, a, b, intx, inty, dpl As Integer

   Dim x, y As Double

   Dim mashtab As Long

   a = InputBox(«Введите левую границу», «Ввод границ»)

   b = InputBox(«Введите правую границу», «Ввод границ»)

   g.DrawString(a, Font.Clone, Brushes.Black, 22, 145)

   g.DrawString(b, Font.Clone, Brushes.Black, 355, 145)

   dx = 200

   dy = 150

   mashtab = 300 / (b - a)

   dpl = -(b + a) * Int(mashtab / 2)

   g.FillRectangle(Brushes.White, 50, 50, 300, 200)

     g.DrawRectangle(Pens.Blue, 50, 50, 300, 200)

   “оси координат

   g.DrawLine(Pens.Black, dx + dpl, 50, dx + dpl, 250)

   g.DrawLine(Pens.Black, 50, 150, 350, 150)

   For x = a To b Step 1 / Int(300 / (b - a))

       If x <> 0 Then

           y = Math.Sin(x)

           ListBox1.Items.Add(«x=» + Str(Format(x, «0.##»)) + « « + «y=» + Str(Format(y, «0.##»)))

       End If

       If (Int(-mashtab * y) + dy >= 50) And (Int(-mashtab * y) + dy <= 250) Then

            “ setpixel(Int(mashtab * x) + dx + dpl, Int(-mashtab * y) + dy, clred)

           intx = Int(mashtab * x) + dx + dpl

           inty = Int(-mashtab * y) + dy

           g.FillEllipse(Brushes.Red, intx, inty, 2, 2)

       End If

       If Int(-mashtab * y) + dy = 50 Then

           g.DrawString(Str(Int(y)), Font.Clone, Brushes.Black, 190, 38)

       End If

       If Int(-mashtab * y) + dy = 250 Then

           g.DrawString(Str(Int(y)), Font.Clone, Brushes.Black, 190, 255)

       End If

   Next

End Sub

 

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

 

End Sub

End Class

 

 

                

 

C# Вычисление площади фигур методом Монте-Карло

 

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

 

namespace Monte_Karlo

{

public partial class Form2 : Form

{

   public Form2()

   {

       InitializeComponent();

   }

 

   private void menuItem4_Click(object sender, EventArgs e)

   {

       Close();

   }

 

   private void menuItem2_Click(object sender, EventArgs e)

   {

       Refresh();

       Graphics g = this.CreateGraphics();

       //рисуем ось x

       g.DrawLine(new Pen(Color.Black,1),0,Height/2,Width, Height/2);

       //рисуем ось у

       g.DrawLine(new Pen(Color.Black,1), Width/2,0,Width/2, Height);

       //выводим деления по оси х

       for (int i = -250; i <= 250; i=i+50)

       {

           g.DrawLine(new Pen(Color.Black, 1), Width / 2 + i, Height / 2 - 3, Width / 2 + i, Height / 2 + 3);

           //выводим значения по оси х

           g.DrawString(Convert.ToString(i),new Font("Times New Roman",10), new SolidBrush(Color.Black),Width/2+i-10, Height/2+5);

       }

       //выводим деления по оси y

       for (int i = -250; i <= 250; i = i + 50)

       {

           g.DrawLine(new Pen(Color.Black,1), Width/2-3, Height/2-i, Width/2+3, Height/2-i);

           //выводим значения по оси y

           g.DrawString(Convert.ToString(i), new Font("Times New Roman",10), new SolidBrush(Color.Black), Width/2-20, Height/2-i);

       }

       //рисуем окружности

       g.DrawEllipse(new Pen(Color.Black), Width/2-200, Height/2-200,400, 400);

       g.DrawEllipse(new Pen(Color.Black), Width/2+20, Height/2-80, 60, 60);

   }

 

   private void menuItem3_Click(object sender, EventArgs e)

   {

       //ввод число точек

       int kolic = Convert.ToInt32(textBox1.Text);

       int i,i0 = 0,i1 = 0;

       int[] x1=new int[1000];

       int[] y1 = new int[1000];

       int[] x0=new int[1000];

       int[] y0=new int[1000];

           

       Random rnd=new Random();

       //метод Монте-Карло

       for (i = 1; i <= kolic; i++)

       {

           //выбор координат точек случайным образом

           int t1 = rnd.Next(-220, 221);

           int t2 = rnd.Next(-220, 221);

           {

               //условие попадания в фигуру

               if ((t1 * t1 + t2 * t2 < 40000) & ((t1 - 50) * (t1 - 50) + (t2 + 50) * (t2 + 50) > 900))

               {

                   //количество попавших точек

                   i1++;

                   //запоминаем их координаты

                   x1[i1] = t1;

                   y1[i1] = t2;

               }

               else

               {

                   //количество непопавших точек

                   i0++;

                   //запоминаем их координаты

                      x0[i0] = t1;

                   y0[i0] = t2;

               }

           }

       }

       Graphics g = this.CreateGraphics();

       g.DrawLine(new Pen(Color.Green, 1), Width / 2 - 220, Height / 2 - 220, Width / 2 + 220, Height / 2 - 220);

       g.DrawLine(new Pen(Color.Green, 1), Width / 2 + 220, Height / 2 - 220, Width / 2 + 220, Height / 2 + 220);

       g.DrawLine(new Pen(Color.Green, 1), Width / 2 + 220, Height / 2 + 220, Width / 2 - 220, Height / 2 + 220);

       g.DrawLine(new Pen(Color.Green, 1), Width / 2 - 220, Height / 2 + 220, Width / 2 - 220, Height / 2 - 220);

       //рисуем точки, не попавшие в фигуру

       for (i = 1; i <= i0; i++)

       {

           g.DrawEllipse(new Pen(Color.Black), Width / 2 + x0[i] + 1, Height / 2 + y0[i] - 1, 2, 2);

       }

       //рисуем точки, попавшие в фигуру

       for (i = 1; i <= i1; i++)

       {

           g.DrawEllipse(new Pen(Color.Red), Width / 2 + x1[i] + 1, Height / 2 + y1[i] - 1, 2, 2);

       }

       //количество попавших точек

       int popav = i1;

       //вывод количества попавших точек

       textBox2.Text = Convert.ToString(popav);

       //вычисляем площадь

       float s = popav * 440 * 440 / kolic;

       ////вывод площади

       textBox3.Text = Convert.ToString(s);

   }

 

   private void Form2_Load(object sender, EventArgs e)

   {

 

   }

}

}

 

 

 

 


Дата добавления: 2018-02-18; просмотров: 846; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!