Сайт о программировании, математике и моделировании
Записи с метками листинг
Задача про два отрезка на прямой и их общие точки
17 Февраль
Постановка задачи:
Два отрезка на прямой заданы координатами своих концов. Определить, имеют ли эти отрезки общие точки, и если имеют, то длину общей части. Замечание. Необходимо рассмотреть различные случаи взаимной ориентации отрезков. Тестирование должно предусмотреть все такие ситуации.
Решение:
Пусть А и В – два отрезка, с координатами своих концов [а1, а2] и [b1, b2] соответственно. a1, b1 –левые координаты, a2, b2 – правые координаты отрезков А и В. Читать дальше >
Вычисление длины окружности и площади круга одного и того же радиуса R
3 Январь
Постановка задачи:
Вычислить длину окружности и площадь круга одного и того же радиуса R. И площадь вписанного в эту окружность равнобедренного треугольника. Читать дальше >
Работа со строками на С++
1 Ноябрь
Постановка задачи:
Написать программу, демонстрирующую работу с объектами двух типов: SymbString (символьная строка) DecString (десятичная строка). Каждый объект должен иметь идентификатор(в виде произвольной строки символов) и одно или несколько полей для хранения состояния(текущего значения) объекта.
Клиенту (функции main) должны быть доступны следующие основные операции:
- Создать объект
- Удалить объект
- Показать значение объекта Читать дальше >
Программа деления длинного числа
28 Август
Приведем алгоритм деления длинного числа на цифру. За эту операцию отвечает процедура ShortDiv. Деление С = А/х и вычисление остатка r = A mod x (х-цифра)
void ShortDiv(
DIGIT *C, /* результат */
const DIGIT A[ ], /* делимое */
DIGIT x, /* делитель (1 цифра) */
DIGIT *pr, /* остаток */
int n) /* длина делимого */ Читать дальше >
Программа, реализующая модулярное умножение
9 Август
Операцию умножения по модулю можно выполнять следующим образом. Если А и В < Р, то С = (А Ч В) (mod P) вычисляется так:
D:=A Ч B;
С := D mod P. Читать дальше >
Листинг программного комплекса по защите информации от ВЧ-навязывания
2 Август
Файл mdFunction.bas (модуль с ключевыми функциями и процедурами)
//Процедура БПФ
Public Sub FFT(ByRef aSpR() As Single, ByRef aSpI() As Single, ByRef aQ As Byte, ByVal aN As Long, ByVal aPower As Integer, Ang() As Single)
Dim i As Long, j As Long, k As Long, oldQ As Long
Dim deg As Long, step As Long, idx As Long, sh As Long
step = aN
For j = 1 To aPower
deg = 0
step = step \ 2
For i = 0 To 2 ^ j — 1
idx = i * step
sh = deg + step
oldQ = 1 — aQ
For k = 0 To step — 1
aSpR(k + idx, aQ) = aSpR(k + deg, oldQ) + aSpR(k + sh, oldQ) * Ang(0, idx) — aSpI(k + sh, oldQ) * Ang(1, idx)
aSpI(k + idx, aQ) = aSpI(k + deg, oldQ) + aSpR(k + sh, oldQ) * Ang(1, idx) + aSpI(k + sh, oldQ) * Ang(0, idx)
Next k
eg = sh + step
If deg >= aN Then deg = 0
Next i
aQ = 1 — aQ
Next j
aQ = 1 — aQ
End Sub Читать дальше >
Рисуем гистограммы и графики посредством С#
24 Июль
Данная статья является продолжением опубликованного ранее материала на нашем сайте. Здесь рассматриваются вопросы связанные с рисование различных видов графиков и диаграмм с помощью специализированных функций реализованных в C#.
Этап 5 — Построение гистограммы.
Гистограмма будет строится для заданных значений в pictureBox2 при нажатии кнопки «Гистограмма». Событие button5_Click:
private void button5_Click(object sender, EventArgs e)
{
pictureBox2.Visible = true;
pictureBox1.Visible = false;
pictureBox3.Visible = false;
pictureBox4.Visible = false;
uk=setuk(uk);
userControl11.Enabled = false;
listBox1.Enabled = false;
pictureBox2.Visible = false;
pictureBox2.Visible = true;
}
Само же событие, обеспечивающее построение непосредственно диаграммы описывается схоже с событием для построения точечной диаграммы, только от точек следует откладывать прямоугольники. Программный код приведен ниже: Читать дальше >
Листинг программы нахождения среднего методом интервалов
30 Июнь
Private Sub Command1_Click()
Text10.Text = 0.12
Text11.Text = 0.16
Text12.Text = 0.14
Text13.Text = 0.16
Text14.Text = 0.5
Text15.Text = 0.48
Text16.Text = 0.05
Text17.Text = 0.1
End Sub
Private Sub Command2_Click()
Dim Yt As Double
Dim x As Double
Dim h As Double
Dim Pi As Double
Dim Pim As Double
Dim Pip As Double
x = 23
h = 1
Pi = 0.5
Pim = 0.16
Pip = 0.48
Yt = x + h * ((Pi — Pim) / (2 * Pi — Pim — Pip))
Yt = CInt(Yt)
Text18.Text = Yt
Text19.Text = 0.9
End Sub
Private Sub Command3_Click()
Dim a1 As Double
Dim a2 As Double
Dim b1 As Double
Dim b2 As Double
Dim x As Double
Dim f As Double
Dim Yt As Double
a1 = 0.146
a2 = 0.146
Text20.Text = a1
b1 = 6.653
Text21.Text = b1
b2 = 26.612
Text22.Text = b2
x = 23
f = a1 * Exp(-1 * ((x — Yt) ^ 2 / b2))
Text23.Text = f
x = 25
f = a2 * Exp(-1 * ((x — Yt) ^ 2 / b2))
Text24.Text = f
End Sub
Метод наименьших квадратов для решения уравнений
26 Июнь
Постановка задачи
1.Написать программу для обработки набора экспериментальных данных. Выбрать веса.
Найти : матрицу C, вектор Fm, матрицу C-1, коэффициенты вk, остаточную сумму квадратов Rmin, погрешности Dk и ei.
Выбрать доверительную вероятность a и найти доверительные интервалы для ak.
Построить графики f(x) и fi(x).
2.Сократите выборку, отбросив около половины экспериментальных точек, по выбору.
Взяв оставшиеся экспериментальные точки в качестве исходной информации, найти вk и Dk.
Сравнить с результатами, полученными ранее предыдущего пункта и с точными значениями.
Вариант
y = a1 + a2x+a3tg(x)
Xi | -1.0 | -0.9 | -0.8 | -0.7 | -0.6 | -0.5 | -0.4 | -0.3 | -0.2 | -0.1 | 0.0 |
Yi | 2.64 | 2.87 | 2.78 | 2.56 | 2.74 | 2.65 | 2.33 | 2.54 | 2.57 | 2.39 | 2.17 |
0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 | 1.0 |
2.29 | 1.95 | 1.89 | 2.10 | 2.70 | 3.26 | 1.94 | 2.35 | 1.92 | 1.94 |
При x<0 точность измерений в 6 раз выше, чем при x>0. Читать дальше >
Создание диаграмм в С#
14 Июнь
Строить диаграммы по заданным значениям в C# возможно, используя элемент PictureBox и стандартный программный код для построения различных графических примитивов (точка, линия, круг, прямоугольник). Как это сделать, будет рассказано в этой и последующих статьях.
Этап 1 — Создание WindowsForm и заполнение необходимыми элементами
При выполнении данного практического задания использовалось четыре элемента PictureBox (наложенных друг на друга), шесть элементов Button, элемент ListBox, элемент Label и, наконец, пользовательский элемент NumericTextBox, являющийся наследником класса TextBox с возможностью ввода лишь цифр.
Этап 2 — Заполнение ListBox.
Итак, элемент listBox1 будет заполнятся значениями, которые пользователь вводит в поле для ввода, представленное элементом NumericTextBox, носящим имя userControl1. Кроме того, будет реализована возможность ввода значения нажатием клавиши Enter, при активном элементе NumericTextBox.
Добавление элемента нажатием кнопки «Добавить»:
try { listBox1.Items.Add(Convert.ToInt32(userControl11.Text)); label1.Text = «Вводите значения, раделяя нажатием Enter»; }
catch (FormatException ex) { label1.Text = «Введено недопустимое значение»; }
userControl11.Text = «»;
n = listBox1.Items.Count;
Удаление выделенного значения из элемента ListBox.
private void button3_Click(object sender, EventArgs e)
{
listBox1.Items.Remove(listBox1.SelectedItem);
n = listBox1.Items.Count;
}
Реализация добавления элемента в ListBox нажатием клавиши Enter.
private void userControl11_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar ==(int)Keys.Enter)
{
listBox1.Items.Add(Convert.ToInt32(userControl11.Text));
userControl11.Text = «»;
n = listBox1.Items.Count;
}
}
Как можно было заметить из приведенных строк кода, в нашем классе Form1 заданы поля
int n = 0;
double uk = 1; Читать дальше >