- •Лабораторный практикум по программированию в среде Visual Studio 2010
- •1. Введение
- •2.1 Лабораторная работа №1
- •Тема: Структура программ.
- •Вычисление арифметических выражений
- •Консольный вариант
- •2.1 Лабораторная работа №1
- •2.1 Лабораторная работа №2
- •Тема: Вычисление сложных арифметических выражений
- •Windows вариант
- •Условие: Разработать проект для вычисления выражения
- •Задания для выполнения лабораторных работ по вычислению арифметических выражений
- •2.3 Лабораторная работа №1
- •Тема: Условия и циклы
- •Консольный вариант
- •Условие: Вычислить сумму ряда
- •2.2 Лабораторная работа №2
- •2.3 Лабораторная работа №3
- •Программа еа языке vb.Net
- •Windows проекты
- •Лабораторная работа 2-х мерные массивы
- •2.6 Лабораторная работа №6
- •Графика
- •2.10 Лабораторная работа №10
2.10 Лабораторная работа №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)
{
}
}
}