Results 1 to 12 of 12

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Registered User
    Join Date: May:2010
    Location: sofiq
    Posts: 6

    Ïîìîù çà C++

    Çäðàâåéòå,
    Äîñåãà íèêîãà íå ñúì ñå çàíèìàâàë ñúñ Ñ, íî ìè ñå íàëàãà. Ñåä äíè ìúêè ðåøèõ ÷å òðÿáâà äà ïîòúðñÿ ïîìîù. Ñòàâà âúïðîñ çà âàëèäèçàöèÿ íà áóñòàò. Ïðîáëåìà å ÷å èçïúëíÿâà ñàìî åäèíèÿ êðúã íà ïðîâåðêà

    (Êîíòðîëíîòî ÷èñëî çà äåâåòöèôðîâèÿ Åäèíåí èäåíòèôèêàöèîíåí êîä ñå èç÷èñëÿâà ïî ñëåäíèÿ íà÷èí:

    * èç÷èñëÿâà ñå ñóìàòà:

    1*à1+2*à2+3*à3+4*à4+5*à5+6*à6+7*à7+8*à8 ,

    êúäåòî à1 e ïúðâàòà öèôðà îò ÅÈÊ, à2 - âòîðàòà è ò.í.

    * èç÷èñëÿâà ñå îñòàòúêúò ïî ìîäóë 11 îò ñóìàòà
    * àêî îñòàòúêúò å ðàçëè÷åí îò 10, ñå îïðåäåëÿ êàòî äåâåòà öèôðà
    * àêî îñòàòúêúò å 10, ñå èç÷èñëÿâà ñóìàòà

    3*à1+4*à2+5*à3+6*à4+7*à5+8*à6+9*à7+10*à8 ,

    êúäåòî à1 e ïúðâàòà öèôðà îò ÅÈÊ, à2 - âòîðàòà è ò.í

    * èç÷èñëÿâà ñå îñòàòúêúò ïî ìîäóë 11 îò íîâàòà ñóìà
    * àêî îñòàòúêúò å ðàçëè÷åí îò 10, ñå îïðåäåëÿ êàòî äåâåòà öèôðà, à àêî å äåñåò - çà äåâåòà öèôðà ñå îïðåäåëÿ “0”)


    Êîãàòî ÿ çàâúðòÿ èçïúíÿâà äðóãàòà ÷àñò, íî íå ìîãà äà ÿ íàêàðàì äà ãè ãëåäà è äâåòå.
    Ìíîãî ùå ñå ðàäâàì àêî íÿêîé èìà æåëàíèå äà ìè ïîìîãíå.
    À åòî è ìîèòå îïèòè.

    #include <stdio.h>
    #include <stdlib.h>

    int is_valid_bul( char bul[9] )

    {
    int weight1[8] = { 1, 2, 3, 4, 5, 6, 7, 8 };
    int weight2[8] = { 3, 4, 5, 6, 7, 8, 9, 10 };
    int i,sum;

    {
    sum = 0;
    for( i=0; i<8; i++ )

    sum += weight1[i] * (bul[i]);
    if ( (sum % 11) % 10 == (bul[9]))
    return 1;

    }
    }
    int main(void)
    {
    char bul[9];

    printf( "Bulstat:" );

    scanf( "%s", bul );
    printf( "\n" );

    if (is_valid_bul( bul )==1)
    printf( "Bulstata e validen\n" );
    else
    printf( "Nevaliden Bulstat!\n" );

    exit(0);
    }


    Áëàãîäàðÿ ïðåäâàðèòåëíî çà ïîìîùà.

  2. #2
    Defender Kaspirtov's Avatar
    Join Date: Jun:2006
    Location: Sf
    Posts: 7,414
    Quote Originally Posted by Diesel View Post
    int is_valid_bul( char bul[9] )

    {
    int weight1[8] = { 1, 2, 3, 4, 5, 6, 7, 8 };
    int weight2[8] = { 3, 4, 5, 6, 7, 8, 9, 10 };
    int i,sum;

    {
    sum = 0;
    for( i=0; i<8; i++ )

    sum += weight1[i] * (bul[i]);
    if ( (sum % 11) % 10 == (bul[9]))
    return 1;
    Òóê òðÿáâà äà èìàø
    else if((sum % 11) % 10 == 10){ äðóãîòî óñëîâèe}
    else
    {
    throw ("íåâàëèäåí áóëñòàò"); èëè êàêâîòðî ðåøèø êàòî îáðàáîòêà íà íåâàëèäåí áóëñòàò
    }

    }
    .
    "Íèêîãà íå ìîæåì äà ñìå ñèãóðíè, ÷å ìíåíèåòî, êîåòî ñå ñòðåìèì äà çàäóøèì å ïîãðåøíî, à è äà áÿõìå ñèãóðíè, ïàê áè áèëî ïîãðåøíî äà ãî çàäóøèì."
    Äæîí Ñòþàðä Ìèë

  3. #3
    Registered User
    Join Date: May:2010
    Location: sofiq
    Posts: 6
    Çäðàâåéòå,
    Àç â÷åðà íå ñúì ãî êîïíàë öÿëîòî, íî ãî âèäÿõ ÷àê ñëåä îòãîâîðà, çà êîéòî ìíîãî áëàãîäàðÿ.
    Ïðîáëåìà å ÷å íå èñêà äà èçïúëíè öâåòíàòà ÷àñò à íàïðàâî êàçâà ÷å å íåâàëèäåí áóëñòàòà. Îò äâà áóëñòàòà (åäèíèÿ êîéòî å ñàìî îò ïúðâîòî óñëîâèå, à äðóãèÿ è îò äâåòå)âèíàãè åäèíèÿ ìè èçëèçà íåæàëèäåí.


    #include <stdio.h>


    int is_valid_bul( char bul[9] )

    {
    int weight1[8] = { 1, 2, 3, 4, 5, 6, 7, 8 };
    int weight2[8] = { 3, 4, 5, 6, 7, 8, 9, 10 };
    int i,sum;

    {
    sum = 0;
    for( i=0; i<8; i++ )
    sum += weight1[i] * (bul[i]);

    if ( (sum % 11) == 10 )
    {
    sum = 0;
    for( i=0; i<8; i++ )
    sum += weight2[i] * (bul[i]);
    }


    if ( (sum % 11) % 10 == (bul[9]))
    return 1;
    else
    return 0;

    }
    }
    int main(void)
    {
    char bul[9];

    printf( "Bulstat:" );

    scanf( "%s", bul );
    printf( "\n" );

    if (is_valid_bul( bul )==1)
    printf( "Bulstata e validen\n" );
    else
    printf( "Nevaliden Bulstat!\n" );

    exit(0);
    }


    Áëàãîäàðÿ ïðåäâàðèòåëíî çà ïîìîùà.

  4. #4
    Registered User
    Join Date: Oct:2003
    Location: Ñîôèÿ
    Posts: 4,317
    Ïúðâî, èìàø buffer overflow, ìàêàð ÷å íå òîâà å îñíîâíèÿò ïðîáëåì.
    Âòîðî, óìíîæàâàø ñèìâîë ñ ÷èñëî. Ïîðàäè îñîáåíîñòèòå íà C òîâà ñòàâà - ìàêàð ÷å ìè ñå ñòðóâà, ÷å êîìïèëàòîðúò òðÿáâà äà âàäè ïðåäóïðåæäåíèå, - íî ðåçóëòàòúò íå å òî÷íî êàêâîòî ñè èìàë ïðåäâèä.

  5. #5
    philosophus duratea icaci's Avatar
    Join Date: Oct:2006
    Location: Aachen
    Posts: 2,698
    Íàé-åëåìåíòàðíàòà êîðåêöèÿ å äà íàïðàâèø ñëåäíàòà çàìÿíà âúâ ôóíêöèÿòà is_valid_bul:
    âñè÷êè (bul[x]) äà ñòàíàò (bul[x] - '0')

    Ïðèíöèïúò å ïðîñò: àêî îò ASCII êîäà íà ñèìâîë, ïðåäñòàâÿù àðàáñêà öèôðà, èçâàäèø ASCII êîäà íà ñèìâîëà çà '0', òî ïîëó÷àâàø öèôðàòà êàòî äåñåòè÷íà ñòîéíîñò. Ðàáîòè, çàùîòî '0', '1', '2' è ò.í. äî '9' ñà ïîñëåäîâàòåëíî â ASCII òàáëèöàòà, êàêòî è âúâ âñè÷êè íåéíè íàäìíîæåñòâà.
    Internet - it doesn't make you stupid, it just makes your stupidity more accessible to others

  6. #6
    Registered User
    Join Date: May:2010
    Location: sofiq
    Posts: 6
    Òîâà êîåòî äî ñåãà îñòàíîâèõ å ÷å íèêîé âñúùíîñò íå ìè ïîìîãíà.
    Êàçàõ ïî-ãîðå ÷å íå ñúì ñå çàíèìàâàë ñúñ Ñ, à âèå ìè îáÿñíÿâàòå íÿêâè ãëóïîñòè. Ãëåäàõ âúâ ôîðóìà, ÷å êàòî íÿêîé èñêà íÿêâà ïðîãðàìà âåäíàãà ìó ÿ ïðàâèòå. Àç èñêàõ îò âàñ ñàìî äà ìè ïîìîãíåòå äà ÿ íàïðàâÿ äà ðàáîòè êîðåêòíî. Âìåñòî òîâà âèå ìè ðàçïðàâÿòå ãëóïîñòè. Ñïîðåä ìåí íèêîé äîðè íå å ïðîáâàë äà ãî íàïðàâè, çàùîòî âñè÷êî êîåòî ìè íàïèñàõòå ÍÅ ÑÒÀÂÀ. Àìà å òàêà äà èìà íåùî.
    Íàèñòèíà ìèñëåõ ÷å ùå ìè ïîìîãíåòå, íî ÿâíî è òîçè ôîðóì å êàòî äðóãèòå. Âàæíî å íåùî äà íàïèøà, àìà äàëè ðàáîòè íå ñå çíàå.
    Íàèñòèíà î÷àêâàõ ïîâå÷å.
    Ìîëÿ äà ìå èçâèíàò õîðàòà çà êîèòî íå ñå îòíàñÿò ãîðíèòå ðåäîâå.

  7. #7
    Áåëûé è ïóøèñòûé Bombera's Avatar
    Join Date: Jul:2001
    Location: Êàçàíëúê 4EVA
    Posts: 13,833
    Äâàòà ñúâåòà ïîñëåäíèòå ñà òî÷íî ïî ïðîáëåìà, ïðåäèçâèêâàù íåêîðåêòíàòà ðàáîòà íà ïðîãðàìàòà. icaci òè å äàë íàé-ïðîñòèÿ íà÷èí äà ãî ôèêñíåø.
    Íå âèæäàì îò êàêâî ñè íåäîâîëåí.
    È â äâàòà öèêúëà â is_valid_bul óìíîæàâàø äàííè îò ðàçëè÷íè òèïîâå. Äàííèòå âúâ âõîäíèÿ ìàñèâ bul, òðÿáâà îò ñèìâîëè äà ñå îáúðíàò íà ÷èñëà, êàêòî òè å êàçàë bsb. Ïîñëå Èöî òè êàçâà êàê ñòàâà.
    Àêî ñå çàãëåäàì ïîâå÷å, ùå íàìåðÿ è êúäå å ïðåïúëâàíåòî.

    if ( (sum % 11) % 10 == (bul[9])) - åòî ãî ïðåïúëâàíåòî, ïî-òî÷íî ÷åòåø âúí îò ðàìêèòå íà ìàñèâà.
    Last edited by Bombera; 22nd May 2010 at 22:44. Reason: Íåäî÷åòîõ, ÷å èìà àëãîðèòúì.
    EVGA X299 FTW K|i9-7960X@4.7|4x8 Patriot Viper Steel 4000|GTX 1660 Ti|970 EVO 1 TB|Seasonic Focus GX-1000|Xigmatek Elysium|Êèëî è ïîëîâèíà âîäà
    Rampage IV Extreme BE|E5-1680v2@4.7|4x4 HyperX 1866|Cougar Aqua 240|GTX 1050 Ti|970 EVO 1/4 TB|CM 850 SilentPro|HAF-X|Áåç èñòèíñêî âîäíî

  8. #8
    Registered User
    Join Date: Dec:2007
    Location: Sofia
    Posts: 366
    Òîâà ñðàâíåíèå å íåêîðåêòíî (bul[] å ìàñèâ ñ 9 åëåìåíòà)

    Code:
    if ( (sum % 11) % 10 == (bul[9]))
    Diesel, íàëè óæ íå ñè ñå çàíèìàë ñúñ C? Òîãàâà êàê ðåøè, ÷å íàïèñàíîòî â òåìàòà ñà ãëóïîñòè?

    È êàê òî÷íî ðàçáðà, ÷å êîäà â çåëåíî íå ñå èçïúëíÿâà?

  9. #9
    Registered User
    Join Date: May:2010
    Location: sofiq
    Posts: 6
    Àìè òóêà íå ñòàâà âúïðîñ çà òâà äàëè ñúì ñå çàíèìàâàë èëè íå. Ëîãè÷íî å òàçè ÷àñò äà íå ðàáîòè (íàëè òÿ èçïúëíÿâà âòîðîòî óñëîâèå (àêî çàâúðøâà íà 10 äà ñå ñìÿòà ïî âòîðà ô-ëà)). Êàê ðàçáðàõ ÷å íå ðàáîòè ëè? Àìè ìíîãî ïðîñòî. Òóê íå òè òðÿáâàò ïîçíàíèÿ â Ñ, à ïðîñòî ìàëêî àêúë. Êàòî íàïèñàõ æàëèäåí áóë êîèòî ñå ñìÿòà è ïî âòîðàòà ôîðìóëà è èçëåçå ÷å å íåâàëèäåí, ëîãè÷íî å òàçè ÷àñò äà íå ðàáîòè. Ìíîãî å ïðîñòî - ïðîñòî òðÿáâà äà ïîìèñëèø ñ ãëàâàòà ñè. À çà òâà (bul[x]) äà ñòàíàò (bul[x] - '0') ÍÅ ÐÀÁÎÒÈ. Ïðîáâàõ ãî êàê ëè íå è íå ðàáîòè. (èçêàðâà âñè÷êî íåâàëèäíî) È ìåðñè íà Bombera ÷å ìè å êàçàë êúäå ìè å ïðåïúâàíåòî, íî òîâà íå ìè ïîçâîëÿâà äà ãî ðåøà. Çàùî íÿêîé íå ïðîáâà äà ãî íàïðàâè, à? Èëè ïðîáâàõòå è âèäÿõòå ÷å íå ñòàâà. Áîðÿ ñå îò òîëêîâà ìíîãî âðåìå è ñåãà ïàê ñúì äî íèêàäå. Ìèñëåõ ÷å íÿêîé ùå ìè ïîêàæå êàê òî÷íî äà ãî íàïðàâÿ, à íå äà ìè îáÿñíÿâà íåùà êîèòî íå ìè ïîìàãàò.
    Ìåðñè âñå ïàê.

  10. #10
    Registered User
    Join Date: Dec:2007
    Location: Sofia
    Posts: 366
    Quote Originally Posted by Diesel View Post
    Àìè òóêà íå ñòàâà âúïðîñ çà òâà äàëè ñúì ñå çàíèìàâàë èëè íå. Ëîãè÷íî å òàçè ÷àñò äà íå ðàáîòè (íàëè òÿ èçïúëíÿâà âòîðîòî óñëîâèå (àêî çàâúðøâà íà 10 äà ñå ñìÿòà ïî âòîðà ô-ëà)). Êàê ðàçáðàõ ÷å íå ðàáîòè ëè? Àìè ìíîãî ïðîñòî. Òóê íå òè òðÿáâàò ïîçíàíèÿ â Ñ, à ïðîñòî ìàëêî àêúë. Êàòî íàïèñàõ æàëèäåí áóë êîèòî ñå ñìÿòà è ïî âòîðàòà ôîðìóëà è èçëåçå ÷å å íåâàëèäåí, ëîãè÷íî å òàçè ÷àñò äà íå ðàáîòè. Ìíîãî å ïðîñòî - ïðîñòî òðÿáâà äà ïîìèñëèø ñ ãëàâàòà ñè.
    Ìè íå, íå å ëîãè÷íî. Ìîæåø äà òâúðäèø ïîäîáíî íåùî ñàìî àêî ïðîãðàìàòà òè âàëèäèðà ïðàâèëíî ÁÓËÑÒÀÒè ïî ïúðâàòà ôîðìóëà è íåïðàâèëíî ïî âòîðàòà, íî ñëó÷àÿ íå å òàêúâ - ïðîãðàìàòà òè íå èç÷èñëÿâà ïðàâèëíî è äâåòå ôîðìóëè. Òàêà ÷å îáÿâÿâàíåòî íà äàäåí ÁÓËÑÒÀÒ çà íåâàëèäåí îçíà÷àâà ñàìî, ÷å â ïðîãðàìàòà òè èìà ïðîáëåì, à íå ÷å ïðîáëåìà å òî÷íî è ñàìî â êîäà â çåëåíî.

    À çà òâà (bul[x]) äà ñòàíàò (bul[x] - '0') ÍÅ ÐÀÁÎÒÈ. Ïðîáâàõ ãî êàê ëè íå è íå ðàáîòè. (èçêàðâà âñè÷êî íåâàëèäíî)
    Íå ãî ïðîáâàé "êàê ëè íå", à ãî ïðîáâàé êàêòî å. Ïðåâðúùàíåòî îò ASCII êîä â ÷èñëî ñå ïîëçâà îò õèëÿäè è äîðè ìèëèîíè C ïðîãðàìèñòè ïðåç ïîñëåäíèòå ïî÷òè 40 ãîäèíè è ñúñ ñèãóðíîñò ÐÀÁÎÒÈ (ïîíå çà öèôðèòå îò ASCII òàáëèöàòà).

    Îùå åäíà ïîäñêàçêà - â 'if' îïåðàòîðà, çà êîéòî òè êàçàõìå, ÷å èìà ïðåïúëâàíå, èìà è äðóã ïðîáëåì. Îïèòàé ñå äà ãî íàìåðèø ñàìîñòîÿòåëíî. Êàêòî òè ñàìèÿò ñè êàçàë, "òóê íå òè òðÿáâàò ïîçíàíèÿ â Ñ, à ïðîñòî ìàëêî àêúë", òàêà ÷å áè òðÿáâàëî äà ñå ñïðàâèø. Óñïåõ!

    Ìåæäó äðóãîòî, ÁÓËÑÒÀÒ êîäîâåòå íå âèíàãè ñà 9-öèôðåíè.

  11. #11
    Registered User
    Join Date: May:2010
    Location: sofiq
    Posts: 6
    Áëàãîäàðÿ íà Bombera çà ïîëîæåíèÿ òðóä è íà âñè÷êè êîèòî ñå îïèòàõà äà ìè ïîìîãíàò. Ùå ñå îïèòàì íà áàçàòà íà òîâà è òàçè ïðîãðàìà îò Bombera äà èç÷èñòÿ ìîÿòà è äà ÿ íàïðàâÿ êîðåêòíà, çà äà ìîãà äà ñè âçåìà èçïèòà. Ìåðñè îùå âåäíúæ.

  12. #12
    Áåëûé è ïóøèñòûé Bombera's Avatar
    Join Date: Jul:2001
    Location: Êàçàíëúê 4EVA
    Posts: 13,833
    Åòî òè ãî ðàáîòåùî, ãðåøêèòå ùå ñè ãè îòêðèåø ñàì, íàäÿâàì ñå.
    Code:
    #include <stdio.h>
    
    #define DIM_OF(x) (sizeof(x)/sizeof(x[0]))
    #define BULSTAT_MAX_CHARS 9
    
    int is_valid_bul( char *bul){ // ñúùîòî êàòî char bul[9]
    	int weight1[8] = { 1, 2, 3, 4, 5, 6, 7, 8 };
    	int weight2[8] = { 3, 4, 5, 6, 7, 8, 9, 10 };
    	int i, sum;
    
    	{
    	sum = 0;
    	for( i=0; i< BULSTAT_MAX_CHARS - 1; i++ )
    		sum += weight1[i] * (bul[i]);
    
    	if ( (sum % 11) == 10 ){
    		sum = 0;
    		for( i = 0; i < BULSTAT_MAX_CHARS - 1; i++ )
    			sum += weight2[i] * (bul[i]);
    	}
    
    	if ( (sum % 11) % 10 == (bul[BULSTAT_MAX_CHARS - 1]))
    		return 1;
    	else
    		return 0;
    
    	}
    }
    
    int main(int argc, char* argv[])
    {
    	char bul[BULSTAT_MAX_CHARS + 1];
    	char i;
    
    	printf( "Bulstat:" );
    
    	scanf( "%s", bul );
    	printf( "\n" );
    
    	for(i = 0; i < DIM_OF(bul) - 1; i++)
    		bul[i] = (bul[i] - '0');
    
    	if (is_valid_bul( bul ) == 1)
    		printf( "Bulstata e validen\n" );
    	else
    		printf( "Nevaliden Bulstat!\n" );
    
    	return 0;
    }
    Íå òðÿáâà äà ñå êîìïèëèðà êàòî UNICODE, èìàé ãî ïðåäâèä.
    Èìàøå è äðóãî ïðåïúëâàíå íà áóôåðà, ïðè scanf. Ìàñèâúò èñêà äîïúëíèòåëåí ñèìâîë çà åíòúðà íà êðàÿ íà ðåäà - 9 ñèìâîëà + åíòúð = 10.

    Ïðîâåðåíî å, ðàáîòè. Íà ïðàêòèêà íàïðàâèõ òîâà, êîåòî ñà òè êàçàëè ïî-ãîðå, íèùî ïîâå÷å.
    Last edited by Bombera; 23rd May 2010 at 00:10.
    EVGA X299 FTW K|i9-7960X@4.7|4x8 Patriot Viper Steel 4000|GTX 1660 Ti|970 EVO 1 TB|Seasonic Focus GX-1000|Xigmatek Elysium|Êèëî è ïîëîâèíà âîäà
    Rampage IV Extreme BE|E5-1680v2@4.7|4x4 HyperX 1866|Cougar Aqua 240|GTX 1050 Ti|970 EVO 1/4 TB|CM 850 SilentPro|HAF-X|Áåç èñòèíñêî âîäíî

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Copyright © 1999-2011 Õàðäóåð ÁÃ. Âúçìîæíî å ñúäúðæàíèåòî íà òàçè ñòðàíèöà äà å îáåêò íà àâòîðñêè ïðàâà.
iskamPC.com | mobility.BG | Bloody's Techblog | Êðèïòîâàëóòè è ìàéíèíã | 3D Vision Blog | Ìàãàçèí çà åëåêòðîííè öèãàðè