ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

21.03.2009, 18:48
|
|
Познающий
Регистрация: 20.07.2007
Сообщений: 99
Провел на форуме: 1562993
Репутация:
25
|
|
VirtualAlloc
Есть структура моя их на страницу виртуальной памяти 128 штук умещается код какбы рабочий но одно но когда в функции add условие идет на 2 ветку, где при заполнении страници нужно выделить новую страницу, она невыделяется посмотрите что нетак. Там скорее всего lpPtr+=dwPageSize; вроде все как мсдн даже написал а первый параметр в вирт аллок выходит что неправельный%( я непому почему что нетак...
Код:
#include <windows.h>
#include <stdio.h> // for printf
#include <stdlib.h> // for exit
#include <conio.h>
#include <string.h>
#include <iostream.h>
#define PAGELIMIT 80 // ask for this many pages
LPTSTR lpNxtPage; // address of the next page to ask for
DWORD dwPages = 1; // count of pages gotten so far
DWORD count=0;
DWORD count2=0;
DWORD dwPageSize;
LPVOID lpvBase;
DWORD lpPtr;
struct list {
char dt[20];
int x;
int y;
int v;
};
list * arr;
void add(int val1, int val2,int val3, char *val4){
if(((count2+1)%128)!=0){
strcpy(arr[count].dt, val4);
arr[count].x= val1;
arr[count].y= val2;
arr[count].v= val3;
count++;
count2++;
printf ("On saime page # %d.\n", dwPages);
}else{
lpPtr+=dwPageSize;
arr=(list*)VirtualAlloc((LPVOID)lpPtr,dwPageSize,MEM_COMMIT,PAGE_READWRITE);
if (arr == NULL ){
printf("VirtualAlloc failed\n");
} else {
printf ("Allocating another page.\n");
};
strcpy(arr[count].dt, val4);
arr[count].x= val1;
arr[count].y= val2;
arr[count].v= val3;
dwPages++;
count++;
count2=0;
printf ("On new page ¹ %d.\n", dwPages);
}
};
int main(int argc, char *argv[])
{
SYSTEM_INFO sSysInfo;
GetSystemInfo(&sSysInfo); // initialize the structure
printf ("This computer has page size %d.\n", sSysInfo.dwPageSize);
printf ("size of struct %d.\n", sizeof(list));
dwPageSize = sSysInfo.dwPageSize;
arr=(list*)VirtualAlloc(NULL,PAGELIMIT*dwPageSize,MEM_RESERVE,PAGE_READWRITE);
arr=(list*)VirtualAlloc(NULL,dwPageSize,MEM_COMMIT,PAGE_READWRITE);
lpPtr=(DWORD)arr;
printf("vvedite znachenie, stroku, stolbec, tip\n");
int a,b,c;
char tipp[20];
cin>>a>>b>>c>>tipp;
for (int f=0; f<130; f++){
add(a,b,c,tipp);
};
cout<<arr[130].x<<arr[130].y<<arr[130].v<<arr[130].dt;
system("PAUSE");
return 0;
}
|
|
|

21.03.2009, 23:41
|
|
Новичок
Регистрация: 06.12.2008
Сообщений: 1
Провел на форуме: 44939
Репутация:
0
|
|
Помогите, пожалуйста, с задачкой.
Взята она с сайта с олимпиадными задачами https://www.spoj.pl/problems/MRECAMAN/
Суть её следующая.
Последовательность Recaman-а определена так:
a0 = 0
Для m, больших 0:
a(m) = a(m-1) - m, если эта разность больше нуля и её до этого момента в последовательности не было;
a(m) = a(m-1) + m, иначе.
Вот первые несколько членов последовательности:
0, 1, 3, 6, 2, 7, 13, 20, 12, 21, 11, 22, 10, 23, 9...
Задание состоит в том, чтобы по введённому порядковому номеру k вывести k-ый член последовательности.
Вообще, эту задачу мне нужно сдать на Хашкеле, но пока что я хочу сдать её на другом языке, который я знаю чуть получше (ruby, C). И возникла проблема с придумыванием алгоритма, поскольку решение в лоб (в смысле, просто переписать рекуррентное соотношение, ну и добавить поиск по массиву для проверки, встречалось ли число в последовательности ) не годится для больших k (0 <= k <= 500000). Буду очень признателен, если подскажете эффективное решение данной задачи. 
Последний раз редактировалось _Spy_; 22.03.2009 в 11:09..
|
|
|

22.03.2009, 11:12
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Массивы
|
|
|

22.03.2009, 12:41
|
|
Новичок
Регистрация: 19.03.2009
Сообщений: 1
Провел на форуме: 7936
Репутация:
0
|
|
Здравствуйте товарищи! Помогите пожалуйста сделать програмку для курсовика. Итак нужно:
1) Выполнить дискретизацию расчетной области в виде четырехугольника заданного координатами вершин:
A(-2;1) B(1;4) C(4;0) D(2;-1).
2) Найти узловые неизвестные T(X i,Y i) по заданному распределению температуры вдоль границы области T(X,Y)=X+2XY+2(X^2)-2(Y^2). Вычислить максимальную абсолютную погрешность полученных результатов.
3) Построить семейство изотерм.
Очень желательно на C#, но можно и на C++
Буду очень признателен!!! 
|
|
|

23.03.2009, 21:39
|
|
Новичок
Регистрация: 15.06.2008
Сообщений: 4
Провел на форуме: 17297
Репутация:
0
|
|
Голову ломаю ... ребята, поможите ?
1) На Си нужно написать вычисления частного и остаток от деления двух полиномов размерности N и M, заданные своими коэффициентами.
2) Дан текст, выяснить является ли этот текст записью вещественного числа по правилу языка Pascal ... (с фиксированной и плавающей точкой).
Мало верится что эту тему посещают, но всёже надеюсь ...
|
|
|

27.03.2009, 23:28
|
|
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
Провел на форуме: 3134311
Репутация:
1467
|
|
Сообщение от botaniQQQ
Голову ломаю ... ребята, поможите ?
1) На Си нужно написать вычисления частного и остаток от деления двух полиномов размерности N и M, заданные своими коэффициентами.
2) Дан текст, выяснить является ли этот текст записью вещественного числа по правилу языка Pascal ... (с фиксированной и плавающей точкой).
Мало верится что эту тему посещают, но всёже надеюсь ...
Стоимость задания 500 WMR. Если устраивает, то какие сроки выполнения?
|
|
|

24.03.2009, 11:24
|
|
Новичок
Регистрация: 15.06.2008
Сообщений: 4
Провел на форуме: 17297
Репутация:
0
|
|
По баксу за лабу сделаете ?
|
|
|

24.03.2009, 13:32
|
|
Новичок
Регистрация: 10.03.2009
Сообщений: 4
Провел на форуме: 2992
Репутация:
0
|
|
пишу на С++ Builder. Программа должна пинговать разные адреса, а также делать преобразование из числового адреса в буквенный и обратно. Командной строкой пользоваться нельзя (так бы,конечно,использовал nslookup или tracert). Как мне это получить?
Для пинга использовал IdIcmpClient, но вроде у него нет таких методов и свойств для связи и dns...подскажите,пожалуйста...
|
|
|

24.03.2009, 14:39
|
|
Познающий
Регистрация: 21.03.2009
Сообщений: 32
Провел на форуме: 339263
Репутация:
1
|
|

контрольное задание...создать тест...
на картинке схема
буду рад помощи
|
|
|

24.03.2009, 21:50
|
|
Новичок
Регистрация: 25.02.2009
Сообщений: 1
Провел на форуме: 1179
Репутация:
1
|
|
Помогите сделать задание (делфи,консоль),кто реально сделает её с комментариями и объяснит то в долгу не останусь,оплачу работу над ней
10 раз сгенерировать красно-черное дерево из 1000 случайных узлов, подсчитать среднее количество "поворотов", необходимое для построения такого дерева, среднюю дистанцию между корнем и внешним узлом. Объяснить результаты.
P.S. можно написать в ПМ либо icq 195810065
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|