Сайт о программировании, математике и моделировании
Записи с метками алгоритм
Что такое алгоритм?
6 Январь
Понятие алгоритма такое же основополагающее для информатики, как и понятие информации. Именно поэтому важно в нем разобраться. Название «алгоритм» произошло от латинской формы имени величайшего среднеазиатского математика Мухаммеда ибн Муса ал-Хорезми (Alhorithmi), жившего в 783—850 гг. В своей книге «Об индийском счете» он изложил правила записи натуральных чисел с помощью арабских цифр и правила действий над ними «столбиком», знакомые теперь каждому школьнику. В XII веке эта книга была переведена на латынь и получила широкое распространение в Европе.
Человек ежедневно встречается с необходимостью следовать тем или иным правилам, выполнять различные инструкции и указания. Например, переходя через дорогу на перекрестке без светофора надо сначала посмотреть направо. Если машин нет, то перейти полдороги, а если машины есть, ждать, пока они пройдут, затем перейти полдороги. После этого посмотреть налево и, если машин нет, то перейти дорогу до конца, а если машины есть, ждать, пока они пройдут, а затем перейти дорогу до конца.
В математике для решения типовых задач мы используем определенные правила, описывающие последовательности действий. Например, правила сложения дробных чисел, решения квадратных уравнений и т. д. Читать дальше >
Алгоритм проверки работоспособности серверов
2 Декабрь
Разработанный алгоритм предусматривает выполнение тестовых запросов к службам сервера и проверку поступивших ответов. Блок-схема алгоритма метода проверки работоспособности серверов показана на рисунке. Последовательность действий данного алгоритма:
- Начало выполнения алгоритма.
- Подключение к серверу по сети.
- Проверка, было ли подключение успешным.
- Если подключение не удалось, то программа записывает сообщение о недоступности сервера по сети.
- При успешном подключении выполняется тестовый запрос к проверяемой службе сервера.
- Проверка, выполнился ли данный запрос службой сервера.
- Если запрос не выполнился, то программа записывает сообщение о неправильной работе службы сервера.
- Если запрос выполнился успешно, то программа записывает сообщение, что сервер и проверяемая служба функционируют нормально.
- Конец выполнения алгоритма.
Алгоритм анализа журнала безопасности
30 Ноябрь
Блок-схема алгоритма метода анализа журнала безопасности приведена на рисунке. Последовательность действий данного алгоритма:
- Начало выполнения алгоритма.
- Открытие журнала безопасности Windows на чтение.
- Прохождение по всем записям в журнале.
- Проверка поля «тип события», на соответствие одному из типов событий, по которым ведется мониторинг.
- Если поле «тип события» соответствует одному из типов событий, по которым ведется мониторинг, то данное событие заносится в список.
- Подключение по сети к модулю мониторинга и аудита текущего состояния безопасности в корпоративной сети.
- Передача модулю мониторинга и аудита текущего состояния безопасности в корпоративной сети собранной информации.
- Конец выполнения алгоритма.
Алгоритм мониторинга работоспособности сетевого оборудования
1 Ноябрь
Для ведения мониторинга работоспособности сетевого оборудования на ip-адрес проверяемого сетевого оборудования отправляется ICMP echo пакет, после чего определяется время, затраченное сетевым оборудованием на отправку ICMP echo-rep пакета. В случае, если ICMP echo-rep пакет не приходит долгое время, это говорит о том, что проверяемое сетевое оборудование не функционирует. Если же время ответа большое, это говорит о высокой нагрузке на проверяемое сетевое оборудования. Читать дальше >
Листинг программного комплекса по защите информации от ВЧ-навязывания
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;
}
Само же событие, обеспечивающее построение непосредственно диаграммы описывается схоже с событием для построения точечной диаграммы, только от точек следует откладывать прямоугольники. Программный код приведен ниже: Читать дальше >
Алгоритм быстрого двумерного вейвлет-преобразования
20 Июль
FWT2D::FWT2D(const wchar_t* fname, const float* tH, unsigned int thL, int thZ,
const float* tG, unsigned int tgL, int tgZ,
const float* H, unsigned int hL, int hZ,
const float* G, unsigned int gL, int gZ) : BaseFWT2D(fname, tH, thL, thZ, tG, tgL, tgZ, H, hL, hZ, G, gL, gZ)
{
}
void FWT2D::transrows(char** dest, char** sour, unsigned int w, unsigned int h) const
{
int n;
float s, d;
unsigned int w2 = w / 2;
const vec1D& tH = gettH();
const vec1D& tG = gettG();
for (unsigned int y = 0; y < h; y++) {
for (unsigned int k = 0; k < w2; k++) {
s = 0.0f;
d = 0.0f;
for (int m = tH.first(); m <= tH.last(); m++) {
n = 2 * k + m;
if (n < 0) n = 0 — n;
if (n >= (int)w) n -= 2 * (1 + n — w);
s += tH[m] * float(sour[y][n]);
}
for (int m = tG.first(); m <= tG.last(); m++) {
n = 2 * k + m;
if (n < 0) n = 0 — n;
if (n >= (int)w) n -= 2 * (1 + n — w);
d += tG[m] * float(sour[y][n]);
}
dest[y][k] = mmxround(s);
dest[y][k+w2] = mmxroundTH(d);
}
}
}
void FWT2D::transcols(char** dest, char** sour, unsigned int w, unsigned int h) const
{
int n;
float s, d;
unsigned int h2 = h / 2;
const vec1D& tH = gettH();
const vec1D& tG = gettG(); Читать дальше >
Алгоритм мониторинга и аудита безопасности
15 Июнь
В основе модуля мониторинга и аудита безопасности в корпоративной сети лежит составление эталонного профиля и составлении текущего профиля, который затем сравнивается с эталонным. Читать дальше >
Заполнение матрицы нулями
12 Июнь
Задача:
Заполните нулями элементы массива A(m,n), расположенные по периметру, используя только 1 цикл.
Алгоритм:
Создаем массив из M=5 строк и N=10 столбцов ->Придаем каждому элементу массива значение равное 1 ->Выводим начальный массив на экран -> Придаем значение равное 0 элементам, находящимся по периметру -> Выводим на экран конечный массив.
Код программы на языке програмирования C#:
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;
Какими свойствами обладают алгоpитмы?
14 Январь
Основные свойства алгоритмов следующие:
1. Понятность для исполнителя — исполнитель алгоритма должен понимать, как его выполнять. Иными словами, имея алгоритм и произвольный вариант исходных данных, исполнитель должен знать, как надо действовать для выполнения этого алгоритма. Читать дальше >