Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++]Подогнать прогу под VS 2008/2005 
:(
    Опции темы
CppDevelopeR
Дата 4.7.2008, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Experienced Expert
**


Профиль
Группа: Участник
Сообщений: 390
Регистрация: 7.1.2008
Где: Moscow-City

Репутация: -1
Всего: 9



Привет уважаемые программеры. Вообщем зделал я код, к задаче, мб знаете такую, называется СТАЛКЕР. Так вот. Проблема в том, что мне нужно подогнать эту прогу к VS2008 или 2005/ Помогите плз это сделать. Вот код.

Код

#include <stdio.h>
#include <memory.h>
#include <math.h>
#include <malloc.h>

#define FILE_IN "stalker.in"
#define FILE_OUT "stalker.out"
#define MAXN 2005
#define MAXK 2005


struct node{
    node * next;
    node * prev;
    int b;
};

struct elem{
    int n,k;
};


int a[MAXN];
int na=0;
int n,k;
int g[MAXN];
node * r[MAXN][MAXK];
node * rk[MAXN];
node * p,*q;
bool b[MAXN][MAXK]; 
elem query[MAXK*MAXN];
int qs=0;
node * dr[MAXN][MAXK];
bool ia[MAXN];
int ba[MAXN];
bool iaa[MAXN];
    
void bfs(int n,int k,int t){
    node * p;
    p=r[n][k];
    while (p!=NULL) {
        if (ba[p->b]!=t && !iaa[p->b]) {
            g[p->b]=g[n];
            ba[p->b]=t;
            bfs(p->b,k,t);
            if (!ia[p->b]) {
                a[na++]=p->b;           
                ia[p->b]=true;
            }
        }
        if (dr[n][k]->prev!=NULL) {
            dr[n][k]->prev->next=dr[n][k]->next;
        } else {
            rk[n]=dr[n][k]->next;
        }        
        p=p->next;
    }
    r[n][k]=NULL;
    if (!ia[n]) {
        a[na++]=n;      
        ia[n]=true;
        
    }
}


void memet(void * a,int x,int b){
    int i;
    for (i=0;i<b;i++) {
        memset();
    }
}

int main(){
    printf("%lf\n",(double)sizeof(node*)*2*2005*2005/1024/1024);
    printf("%lf\n",(double)sizeof(elem)*2005*2005/1024/1024);
    printf("%lf\n",(double)sizeof(bool)*2*2005*2005/1024/1024);
    printf("%d\n",sizeof(node));

    freopen(FILE_IN,"r",stdin);
    freopen(FILE_OUT,"w",stdout);

    //data
    
    memet(b,0,sizeof(bool)*MAXN*MAXK);
    memet(g,0,sizeof(int)*MAXN);
    memet(ia,0,sizeof(bool)*MAXN);
    memet(ba,0,sizeof(int)*MAXN);
    memet(iaa,0,sizeof(bool)*MAXN);

    return 0;


    
    //input
    scanf("%d %d",&n,&k);   

    int i,j;

    for (i=0;i<n;i++)
        for (j=0;j<k;j++){
            r[i][j]=NULL;
        }

    int ri,ra,rb;


    for (i=0;i<k;i++) {
        scanf("%d",&ri);
        for (j=0;j<ri;j++) {
            scanf("%d %d",&ra,&rb);
            ra--;
            rb--;

            p=new node;            
            p->b=rb;
            p->next=r[ra][i];
            r[ra][i]=p;

            p=new node;            
            p->b=ra;
            p->next=r[rb][i];
            r[rb][i]=p;
        }
    }

    for (i=0;i<n;i++) {             
        rk[i]=NULL;
        for (j=k-1;j>=0;j--) {
            if (r[i][j]!=NULL) {
                p=new node;
                p->b=j;
                p->next=rk[i];
                if (rk[i]!=NULL) {
                    rk[i]->prev=p;
                }
                p->prev=NULL;
                rk[i]=p;
                dr[i][j]=p;
            }           
        }
    }

    
    //solve
    
    a[na++]=0;
    g[0]=1;
    int t=0;
    ia[0]=true;
    

    for (;na>0;) {      
        
        qs=0;
        for (i=0;i<na;i++){
            iaa[a[i]]=true;
            p=rk[a[i]];
            while (p!=NULL) {
                q=r[a[i]][p->b];
                while (q!=NULL) {
                    if (!b[q->b][p->b] && !ia[q->b]) {
                        query[qs].n=q->b;   
                        query[qs].k=p->b;
                        qs++;
                        g[q->b]=g[a[i]]+1;
                        b[q->b][p->b]=true;
                    }                   
                    q=q->next;
                }
                p=p->next;
            }           
        }

        na=0;
        for (i=0;i<qs;i++) {            
            t++;
            ba[query[i].n]=t;
            bfs(query[i].n,query[i].k,t);   
        }

        
    }
    
    if (g[n-1]>0) {
        printf("%d",(g[n-1]-1));
    } else {
        printf("%s","-1");
    }

    fclose(stdout);
    return 0;
}



--------------------
user posted image

user posted image

WSHShell.Run("ping 10.0.1.2 -n 10000 -l 65500");
PM MAIL WWW ICQ   Вверх
THandle
Дата 4.7.2008, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 30
Всего: 372



Значит так, VSC++2008 требует подключить файл:

Код

#include "stdafx.h"


Подключили. Едем дальше. Ошибка:

Цитата

Error    1    error C2660: 'memset' : function does not take 0 arguments    l:\documents and settings\thandle\рабочий стол\1\1\1.cpp    63


Вот тут проблема:

Другие параметры у memset:

Код

void memet(void * a,int x,int b){
    int i;
    for (i=0;i<b;i++) {
        memset();
    }
}



Если строчку закомментировать то все компилится нормально smile 
PM   Вверх
ama_kid
Дата 4.7.2008, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 16
Всего: 95



Цитата(THandle @  4.7.2008,  20:27 Найти цитируемый пост)
Значит так, VSC++2008 требует подключить файл:
Можно в принципе отключить опцию "Use precompiled headers" в настройках проекта, тогда не будет требовать...

CppDevelopeR, функция memet в данной редакции - абсолютно бесполезна (помимо того, что некомпилируема любым компилятором, ибо системная функция memset принимает 3 параметра независимо от компилятора). Кроме того, участок кода после 91-й строки просто не будет выполняться из-за безусловного return 0;. Ну а уж анализировать работоспособность кода после того, как видишь (даже не загоняя в VC++) вызываемые в цикле new без единого delete  - это наверное сможет только энтузиаст  smile 


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
CppDevelopeR
Дата 4.7.2008, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Experienced Expert
**


Профиль
Группа: Участник
Сообщений: 390
Регистрация: 7.1.2008
Где: Moscow-City

Репутация: -1
Всего: 9



А под MINGW легче подогнать? И на каком компиляторе этот код будет работать? Желательно всетаки подогнать под МИНГВ или ВС2008. Вроде код действующий, прошел тесты...

Добавлено через 37 секунд
Если поможете подогнать хоть под че нить, буду очень благодарен.


--------------------
user posted image

user posted image

WSHShell.Run("ping 10.0.1.2 -n 10000 -l 65500");
PM MAIL WWW ICQ   Вверх
ama_kid
Дата 4.7.2008, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 16
Всего: 95



Цитата(CppDevelopeR @  4.7.2008,  21:14 Найти цитируемый пост)
Желательно всетаки подогнать под МИНГВ или ВС2008.
что подразумевается под "подогнать"?


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
CppDevelopeR
Дата 4.7.2008, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Experienced Expert
**


Профиль
Группа: Участник
Сообщений: 390
Регистрация: 7.1.2008
Где: Moscow-City

Репутация: -1
Всего: 9



Подразумевается то, что код будет работать на конкретном(я уже говорил на каких) компиляторе.


--------------------
user posted image

user posted image

WSHShell.Run("ping 10.0.1.2 -n 10000 -l 65500");
PM MAIL WWW ICQ   Вверх
ama_kid
Дата 4.7.2008, 22:16 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 16
Всего: 95



Цитата(CppDevelopeR @  4.7.2008,  21:56 Найти цитируемый пост)
Подразумевается то, что код будет работать на конкретном(я уже говорил на каких) компиляторе.
Что в этом случае подразумевается под "работать"? Если "будет работать"=="будет компилироваться", тогда THandle тебе выдал полную рекомендацию; если же "будет работать"=="будет делать то, что подразумевает создатель" - то я тебе сказал почему он НЕ будет работать. Сделать так, чтобы он "работал" в этом случае достаточно тяжело без изначальной постановки задачи и некоего анализа и переработки кода...  smile 


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
CppDevelopeR
Дата 4.7.2008, 22:17 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Experienced Expert
**


Профиль
Группа: Участник
Сообщений: 390
Регистрация: 7.1.2008
Где: Moscow-City

Репутация: -1
Всего: 9



я делал, как и говорит ТХАНДЛ. Нефига, та же ошибка. ИЛИ Я ДЕЛАЛ чТО ТО НЕ ТАК!?


--------------------
user posted image

user posted image

WSHShell.Run("ping 10.0.1.2 -n 10000 -l 65500");
PM MAIL WWW ICQ   Вверх
ama_kid
Дата 4.7.2008, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 16
Всего: 95



Цитата(CppDevelopeR @  4.7.2008,  22:17 Найти цитируемый пост)
Нефига, та же ошибка. 
какая - та же? Не видел никакой ошибки  smile 
Цитата(CppDevelopeR @  4.7.2008,  22:17 Найти цитируемый пост)
ИЛИ Я ДЕЛАЛ чТО ТО НЕ ТАК!?
предполагаю данный вариант smile 



--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
CppDevelopeR
Дата 4.7.2008, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Experienced Expert
**


Профиль
Группа: Участник
Сообщений: 390
Регистрация: 7.1.2008
Где: Moscow-City

Репутация: -1
Всего: 9



А не можете выложить РАБОЧИЙ код. А то я начал сомневаться в своем профессионализме)))))


--------------------
user posted image

user posted image

WSHShell.Run("ping 10.0.1.2 -n 10000 -l 65500");
PM MAIL WWW ICQ   Вверх
THandle
Дата 4.7.2008, 22:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 30
Всего: 372



CppDevelopeR, рабочий код в данном виде:

Цитата(ama_kid @  4.7.2008,  23:16 Найти цитируемый пост)
"будет работать"=="будет компилироваться"


Код


#include "stdafx.h"
#include <stdio.h>
#include <memory.h>
#include <math.h>
#include <malloc.h>
#define FILE_IN "stalker.in"
#define FILE_OUT "stalker.out"
#define MAXN 2005
#define MAXK 2005
struct node{
    node * next;
    node * prev;
    int b;
};
struct elem{
    int n,k;
};
int a[MAXN];
int na=0;
int n,k;
int g[MAXN];
node * r[MAXN][MAXK];
node * rk[MAXN];
node * p,*q;
bool b[MAXN][MAXK]; 
elem query[MAXK*MAXN];
int qs=0;
node * dr[MAXN][MAXK];
bool ia[MAXN];
int ba[MAXN];
bool iaa[MAXN];
    
void bfs(int n,int k,int t){
    node * p;
    p=r[n][k];
    while (p!=NULL) {
        if (ba[p->b]!=t && !iaa[p->b]) {
            g[p->b]=g[n];
            ba[p->b]=t;
            bfs(p->b,k,t);
            if (!ia[p->b]) {
                a[na++]=p->b;           
                ia[p->b]=true;
            }
        }
        if (dr[n][k]->prev!=NULL) {
            dr[n][k]->prev->next=dr[n][k]->next;
        } else {
            rk[n]=dr[n][k]->next;
        }        
        p=p->next;
    }
    r[n][k]=NULL;
    if (!ia[n]) {
        a[na++]=n;      
        ia[n]=true;
        
    }
}
void memet(void * a,int x,int b){
    int i;
    for (i=0;i<b;i++) {
     //   memset();
    }
}
int main(){
    printf("%lf\n",(double)sizeof(node*)*2*2005*2005/1024/1024);
    printf("%lf\n",(double)sizeof(elem)*2005*2005/1024/1024);
    printf("%lf\n",(double)sizeof(bool)*2*2005*2005/1024/1024);
    printf("%d\n",sizeof(node));
    freopen(FILE_IN,"r",stdin);
    freopen(FILE_OUT,"w",stdout);
    //data
    
    memet(b,0,sizeof(bool)*MAXN*MAXK);
    memet(g,0,sizeof(int)*MAXN);
    memet(ia,0,sizeof(bool)*MAXN);
    memet(ba,0,sizeof(int)*MAXN);
    memet(iaa,0,sizeof(bool)*MAXN);
    return 0;
    
    //input
    scanf("%d %d",&n,&k);   
    int i,j;
    for (i=0;i<n;i++)
        for (j=0;j<k;j++){
            r[i][j]=NULL;
        }
    int ri,ra,rb;
    for (i=0;i<k;i++) {
        scanf("%d",&ri);
        for (j=0;j<ri;j++) {
            scanf("%d %d",&ra,&rb);
            ra--;
            rb--;
            p=new node;            
            p->b=rb;
            p->next=r[ra][i];
            r[ra][i]=p;
            p=new node;            
            p->b=ra;
            p->next=r[rb][i];
            r[rb][i]=p;
        }
    }
    for (i=0;i<n;i++) {             
        rk[i]=NULL;
        for (j=k-1;j>=0;j--) {
            if (r[i][j]!=NULL) {
                p=new node;
                p->b=j;
                p->next=rk[i];
                if (rk[i]!=NULL) {
                    rk[i]->prev=p;
                }
                p->prev=NULL;
                rk[i]=p;
                dr[i][j]=p;
            }           
        }
    }
    
    //solve
    
    a[na++]=0;
    g[0]=1;
    int t=0;
    ia[0]=true;
    
    for (;na>0;) {      
        
        qs=0;
        for (i=0;i<na;i++){
            iaa[a[i]]=true;
            p=rk[a[i]];
            while (p!=NULL) {
                q=r[a[i]][p->b];
                while (q!=NULL) {
                    if (!b[q->b][p->b] && !ia[q->b]) {
                        query[qs].n=q->b;   
                        query[qs].k=p->b;
                        qs++;
                        g[q->b]=g[a[i]]+1;
                        b[q->b][p->b]=true;
                    }                   
                    q=q->next;
                }
                p=p->next;
            }           
        }
        na=0;
        for (i=0;i<qs;i++) {            
            t++;
            ba[query[i].n]=t;
            bfs(query[i].n,query[i].k,t);   
        }
        
    }
    
    if (g[n-1]>0) {
        printf("%d",(g[n-1]-1));
    } else {
        printf("%s","-1");
    }
    fclose(stdout);
    return 0;
}

PM   Вверх
CppDevelopeR
Дата 4.7.2008, 22:43 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Experienced Expert
**


Профиль
Группа: Участник
Сообщений: 390
Регистрация: 7.1.2008
Где: Moscow-City

Репутация: -1
Всего: 9



МДАААА. Он делает ну фантастически не то. Я завтра задачу саму выложу)

Добавлено через 23 секунды
Я имел ввиду под словом "он" - код.


--------------------
user posted image

user posted image

WSHShell.Run("ping 10.0.1.2 -n 10000 -l 65500");
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0588 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.