نمایش نتایج 1 تا 29 از 29

نام تاپیک: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    53

    يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    سلام.ميشه راهنمايي كنيد با استفاده از كد اسكي در يك رشته بزرگترين و كوچكترين حرف رو چگونه پيدا كنم.يعني از چه تابعي بايد استفاده كنم

  2. #2
    کاربر دائمی آواتار SamaPic
    تاریخ عضویت
    مهر 1387
    محل زندگی
    مشهد مقدس
    پست
    329

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    با سلام خدمت دوست عزيز.
    شما ابتدا با مساوي قرار دادن مقدار كاراكتر را بدست آوريد و سپس مانند معمول محاسبه نماييد.

    char ch;
    for (i=32;i<52;i++)
    {
    ch=x;
    cout<<endl<<ch;
    }

    عدد هاش رو يكم عوض كنيد درست مي شه.(البته در بازه ي 1 تا فكر كنم 120 .ولي كار شما با همين اعداد فكر كنم راه مي افتد.
    اميد وارم متوجه شده باشيد اگر متوجه نشديد سوال كنيد.
    خدانگهدار.

  3. #3
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    سلام
    در واقع هر عضو رشته شما همين مقدار اسكي رو تو خودش نگه ميداره ولي به شما كاراكتر رو نشون ميده و شما براي ديدن مقدارش كافيه قبلش تبديلش كنين به int :
    در اين قطعه كد سعي شده موارد زير رعايت بشه:

    1- چند تا از type casting ها رو گذاشتم تا با نحوه كاربردشون بيشتر آشنا بشيد.
    2- فقط حروف تو شرط حلقه شركت ميكنن.
    3- كوچك و بزرگ بودن حروف دخالت داده شده (case sensivity).
    4- ترتيب انجام كارها در خروجي كنسول جهت ديدن روال كاري نمايش داده شده.
    5- كاراكتر اصلي و كد اسكي اش تو نتيجه نهايي نمايش داده شدن.

    خوشحال ميشم كه دوستان به برنامه دقت كنند و نظر بدن و حتما اگه مشكلي توش پيدا كردن از تذكر دادنش ممنون ميشم

    //---------------------------------------------------------------------------

    #include <iostream.h>
    #include <conio.h>

    //---------------------------------------------------------------------------

    int main()
    {
    char *inputStr = (char *) AllocMem(512); // Max Input set to 512
    char cMax='\0', cMin='\0';
    cout<<"\nEnter STR> ";
    cin>>inputStr;
    cMin = cMax = inputStr[0];
    int iMaxPosition = 1,
    iMinPosition = 1,
    iASCIIMax = ((int)inputStr[0]<97?(int)inputStr[0]:(int)inputStr[0]-32),
    iASCIIMin = iASCIIMax,
    iTemp = iASCIIMin;

    printf("\n 1) Cur: %c, Min: %c, Max: %c",
    static_cast<char>(iTemp),
    static_cast<char>(iASCIIMin),
    static_cast<char>(iASCIIMax)
    );

    for (unsigned int i=1; i<strlen(inputStr); i++)
    {
    iTemp = (int)inputStr[i];
    if ( ((iTemp>=65) && (iTemp<=88))
    ||((iTemp>=97) && (iTemp<=120))) // Check 4 ASCII Code
    {
    if ((inputStr[i]>=97) && (inputStr[i]<=120)) // Convert to Uppercase
    iTemp -= 32;

    if (iTemp <= iASCIIMin)
    {
    iMinPosition = i+1;
    cMin = inputStr[i];
    iASCIIMin = iTemp;
    }

    if (iTemp >= iASCIIMax)
    {
    iMaxPosition = i+1;
    cMax = inputStr[i];
    iASCIIMax = iTemp;
    }
    printf("\n%2d) Cur: %c, Min: %c, Max: %c", i+1,
    static_cast<char>(iTemp),
    static_cast<char>(iASCIIMin),
    static_cast<char>(iASCIIMax)
    );
    }
    }
    printf("\n================\nMax in [%d] = %c:%d ,Min in [%d] = %c:%d ",
    iMaxPosition,
    cMax,
    (int)cMax,
    iMinPosition,
    cMin,
    (int)cMin);
    getch();
    free(inputStr);
    return 0;
    }
    //---------------------------------------------------------------------------
    با تشكر.
    عکس های ضمیمه عکس های ضمیمه
    آخرین ویرایش به وسیله Saeed_m_Farid : شنبه 14 دی 1387 در 19:42 عصر دلیل: مرتب كردن تاپيك

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    53

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي


    #include
    <string.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<stdio.h>
    #include<math.h>
    int main()
    {
    int i,j,de,min,max,l,lop,jik,a[8],k=0,n;
    char s[8];
    clrscr();
    printf(
    "enter a string:",s);
    scanf(
    "%s",&s);
    strupr(s);
    max=min=s[0];
    for(i=0;i<8;i++)
    {
    if(s[i]<min)
    min=s[i];
    if(s[i]>max)
    max=s[i];
    }
    printf(
    "max=%c,min=%c",max,min);
    de=((max-min)+1);
    printf(
    "\nmax-min:%d\n",de);
    for(l=0;l<=5;l++)
    if(pow(2,l)>de)
    break;
    lop=l;
    printf(
    "\ndiffer=%2d",lop);
    for(s[i=0];s[i]<=s[8];s[i++])
    s[i]-min==jik;
    printf(
    "\njik=%d\n",jik);
    do
    {
    a[k]=n%2;
    n=n/2;
    k=k+1;;
    }
    while(n>=2);
    a[k]=n;
    for(i=k;i>=0;i--)
    {
    printf(
    "%d",a[i]);
    }
    getch();
    }

  5. #5
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    آقا ميثم اولين قدم واسه رسيدن به جواب درست بيان كردن سوال به صورت درسته:
    من صورت مساله شما رو طور ديگه اي كه قابل فهم باشه كشيدم تا هم خودتون بهتر بتونين تجسم كنين هم دوستاني كه ميخوان كمك كنن ولي تا همين مرحله مشكلات شما :

    1- لازم نيست اونهمه متغير بالا تعريف كنيد يه دونه i واسه همه for ها تون كافيه، اينطوري خودتونم گيج ميشين.

    2- تا مرحله انتخاب توان مراحل درست رفتين از اين مرحله به بعد شما دو تا آرايه واسه نگهداري فاصله كاراكترها و يكي هم واسه ليست كدشدتون لازم دارين كه انديسهاشون برعكس هم هستن مثلا
    bool decs[5][8] = {0}, codes[8][5] = {0};


    3- معني اين حلقه چيه يا بهتره بپرسم هدفتون چي بوده؟
      for(s[i=0];s[i]<=s[8];s[i++])
    s[i]-min==jik;

    شما بايد واسه هر كدوم از كاراكترها بيتهاي تفاوت رو محاسبه كنين وبذارينشون تو آرايه اي كه واسه لين منظور تعريف كردين، ضمنا 1)كدتون رو يكمي مرتب بنويسين 2) همه چي رو تو main ننويسين تو يه تابع با اين هدر كد محاسبه آرايه خروجي از int رو بنويسين و بعد خروجي رو بدين به آرايتون :
    int* toBin(int iDec)
    {
    int result[5] = {0};
    //...
    return result;
    }


    4- ايننقدر سريع به فكر خروجي نباشين، بايد بعد از انكدينگ؛ روال دكودينگ رو هم بنويسين.
    عکس های ضمیمه عکس های ضمیمه

  6. #6
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    53

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    دقيقا همين چيزيو كه توي تصوير ديدم مي خوام انجام بدم.
    ضمنا اينم تصحيح شده كد بالا
    #include<string.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<stdio.h>
    #include<math.h>
    int main()
    {int i,j,de,min,max,l,lop,jik[20]={0},a[8],k=0,n;
    char s[8];
    int code[20]={0};
    clrscr();
    printf("enter a string:",s);
    scanf("%s",&s);
    strupr(s);
    max=min=s[0];
    for(i=0;s[i]!='\x0';i++)
    {if(s[i]<min)
    min=s[i];
    if(s[i]>max)
    max=s[i];
    }
    printf("max=%c,min=%c",max,min);
    de=((max-min));
    printf("\nmax-min:%d\n",de);
    for(l=0;l<=5;l++)
    if(pow(2,l)>de)
    break;
    lop=l;
    printf("\ndiffer=%2d",lop);
    for(s[i=0];s[i]!='\x0';s[i++]){
    jik[i]=s[i]-min;
    printf("\njik[%d]=%d\n",i,jik[i]);
    }
    int help=0;
    int ehsan=0;
    for ( i=0;s[i]!='\x0';i++){
    ehsan = jik [i ] ;
    k=0;
    do
    {
    help=ehsan%2;
    ehsan=ehsan/2;
    code[i]=code[i]+help*pow(10,k);
    k=k+1;;
    }while(ehsan!=0);
    }
    printf("\n");
    for(i=0;s[i]!='\x0';i++)
    {
    printf("*** %d ***",code[i]);
    }
    getch();
    }

    حالا اگه بخوام كدهاي بدست آمده رو به صورت ستوني در نظر بگيرم چه كار بايد انجام بدم؟
    آخرین ویرایش به وسیله ميثم طاهري : یک شنبه 15 دی 1387 در 00:39 صبح

  7. #7
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    دقيقا همين چيزيو كه توي تصوير ديدم مي خوام انجام بدم.
    ضمنا اينم تصحيح شده كد بالا
    دوست عزيز تا كدتون رو مرتب ننويسين و حداقل نيازتون رو با تابع ننويسين نميشه كمكي كرد چون گفتين كه ميخواين خودتون اين كار رو انجام بدين پس اينقدر عجله نكنين و با آرامش و مرتب كد بنويسين و ضمنا يكمي متغيراتون رو با معني و سنجيده تعريف كنيد تا ادامه بديم ...

  8. #8
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    53

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    نقل قول نوشته شده توسط Saeed_m_Farid مشاهده تاپیک
    دوست عزيز تا كدتون رو مرتب ننويسين و حداقل نيازتون رو با تابع ننويسين نميشه كمكي كرد چون گفتين كه ميخواين خودتون اين كار رو انجام بدين پس اينقدر عجله نكنين و با آرامش و مرتب كد بنويسين و ضمنا يكمي متغيراتون رو با معني و سنجيده تعريف كنيد تا ادامه بديم ...
    منظور از مرتب كردن كدتون چيه؟يعني چي كار كنم؟كدوم متغير رو براتون توضيح بدم؟

  9. #9
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    نقل قول نوشته شده توسط ميثم طاهري مشاهده تاپیک
    منظور از مرتب كردن كدتون چيه؟يعني چي كار كنم؟كدوم متغير رو براتون توضيح بدم؟
    نميخواد چيزي رو توضيح بدين فقط تغييرات گفته شده رو اگه مايل بودين تو كدتون اعمال كنيد مثلا يه چيزي شبيه اين:

    void toBin(int iDec, bool* dest)
    {
    for (int idx=4; idx>=0; idx--,iDec>>=1)
    dest[idx] = iDec % 2;
    }

    int main()
    {
    bool decs[5][8] = {0}, codes[8][5] = {0};
    int idx,de,min,max,lop;
    char s[8];

    // ...

    for(idx=0;idx<8;idx++)
    {
    if (s[idx]!='\0')
    {
    if(s[idx]<min)
    min=s[idx];
    if(s[idx]>max)
    max=s[idx];
    }
    }

    // ...

    for(lop=0;lop<=5;lop++)
    if(pow(2,lop)>de)
    break;

    /* ... calc distance between
    characters and min character
    and put in array ==> decs[idx][jdx]
    */

    for(idx=0; idx<8; idx++)
    toBin((int(s[idx]) - int(min)), decs[idx]);

    // ... code continue ...

    return 0;
    }
    آخرین ویرایش به وسیله Saeed_m_Farid : یک شنبه 15 دی 1387 در 01:58 صبح دلیل: insomnia

  10. #10
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    53

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    سعي مي كنم اين تغييرات رو اعمال كنم
    ميتونيد بگيد حالا كدها رو چطوري ستوني در بيارم؟
    مثل عكسي كه ضميمه كرديد

  11. #11
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    نقل قول نوشته شده توسط ميثم طاهري مشاهده تاپیک
    سعي مي كنم اين تغييرات رو اعمال كنم
    ميتونيد بگيد حالا كدها رو چطوري ستوني در بيارم؟
    مثل عكسي كه ضميمه كرديد
    شما سطريش رو درآورديد كه ميخوايد ستونيش رو در بياريد اگه به كد دقت ميكردين من نحوه اين كار رو واستون نوشتم ولي يه جوري كه خودتون هم روش كار كنين:
    دوتا آرايه اگه بالاي main رو نگاه كنين گذاشتم، كه يكيش مال افقيهاست و اونيكي مال عمودي ها؛ نحوه تبديل عدد به آرايه رو هم تو يه تابع بالاي main بنام toBin گذاشتم شما فقط بايد يه ارتباط منطقي بين اينا پيدا كنيد و بعد درست شدن آرايه افقي كافيه تو 2 تا for تودرتو جاي سطر و ستونها رو عوض كنيد.
    ديگه توضيح بيشتر از اين نميشه اسمشو گذاشت برنامه اي كه خودتون نوشتين.

  12. #12
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    53

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    اگه ميشه در مورد toBinيه كمي بيشتر توضيح بديد

  13. #13
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    نقل قول نوشته شده توسط ميثم طاهري مشاهده تاپیک
    اگه ميشه در مورد toBinيه كمي بيشتر توضيح بديد
    من اين for رو تو تابع نوشتم واسه اين كه شما هم از توابع استفاده كنين ولي شما همچنان دارين برنامه نويسي خطي ميكنيد.

    void toBin(int iDec, bool* dest)
    {
    for (int idx=4; idx>=0; idx--,iDec>>=1)
    dest[idx] = iDec % 2;
    }
    كار اين تابع بردن عدد int شما به يه آرايه بولي هست كه بعدا كه بقول شما ميخواهيم ستوني اش كنيم بتونين از اين آرايه استفاده كنيم، نكاتي كه بايد تو اين آرايه بهش توجه كنين:

    اين عملگر (=<<) عدد رو يك به واحد به سمت راست شيفت ميده و درنتيجه عدد نصف ميشه‌ (البته درمورد اعداد بدون علامت كه همين هم موردنظر ماست)،
    نكته ديگه اينكه حلقه updown هست يعني از بيشترين به كمترين مياد و هر دفعه باقيمانده رو ميده به يه عضو از آرايه bool كه فقط مقادير درست 1 و غلط 0 رو تو خودش نگه ميداره.

    من نه تو پيغامهاي خصوصي كه ميفرستين خبري از همچين آرايه اي ميبينم نه تو اين تاپيك. بالاخره يه جايي بايد يه آرايه دوبعدي واسه اين كار داشته باشين و روش ديگش استفاده محض از عملگرهاي بيتي هست كه من فكر نميكنم واسه اين سطح مناسب باشه چون خيلي پيچيده ميشه ولي اگه خواستين در اون مورد هم بحث ميكنيم به شرطي كه اين بحث به نتيجه برسه!
    البته اگه خودتون راه حل ديگه اي دارين بگين؛ اين چيزيه كه به ذهن من ميرسه.

  14. #14
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    53

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    با توجه به راهنمايي هاتون تونستم فقط تا اينجا پي برم

    #include
    <stdio.h>
    #include<conio.h>
    #include<math.h>
    #include<string.h>
    #include<stdlib.h>
    void toBin(int iDec,bool dest)
    {
    for(int idx=4;idx>=0;idx--,iDec>>=1)
    dest[idx]=iDec%2;
    }
    int main()
    {
    bool decs[5][8]={0},codes[8][5]={0};
    int idx,de,min,max,lop;
    char s[8];
    clrscr();
    printf(
    "enter a string:",s);
    scanf(
    "%s",&s);
    strupr(s);
    for(idx=0;idx<8;idx++)
    {
    if(s[idx]!='\0')
    {
    if(s[idx]<min)
    min=s[idx];
    if(s[idx]>max)
    max=s[idx];
    }
    }
    printf(
    "max=%c,min=%c",max,min);
    de=((max-min)+1);
    printf(
    "\n(max-min)+1=%d\n",de);
    for(lop=0;lop<=5;lop++)
    if(pow(2,lop)>de)
    break;
    printf(
    "\ndiffer=%d",lop);
    for(idx=0;idx<8;idx++)
    toBin((
    int(s[idx])-int(min)),decs[idx]);

  15. #15
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    آقا ميثم خواهش ميكنم اينقدر نامرتب كد ننويسين، با عرض معذرت : شما ور ميدارين هر چي من sudo code مينويسم به صورت نامرتب و غلط ميذارين تو كدتون ميگين تغييرات شما رو اعمال كردم خوب حداقل عين انشا ننويسين برين پايين (Tab, Space هاي كدها كجا ميرن؟ خيلي ناجور بنظر مياد) ؛ يه جوري بنويسين كد درست به نظر بياد اسمبلي كه نيست! من مرحله اول رو واستون تكميل كردم يه كمي هم خودتون همت كنين و بقيشو بنويسين.
    اين آخرين راهنمايي من به شماست. بقيه رو اگه دوستان وقت داشتن كمك كنن؛ ممنون از توجهتون.

    //---------------------------------------------------------------------------

    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    #include<string.h>
    #include<stdlib.h>

    //---------------------------------------------------------------------------

    void toBin(int iDec,bool *dest)
    {
    for(int idx=4;idx>=0;idx--,iDec>>=1)
    dest[idx]=iDec%2;
    }

    int main()
    {
    bool decs[8][5]={0},
    codes[5][8]={0};
    int idx,jdx,de,min,max,lop;
    char s[8];
    clrscr();
    printf("enter a string:",s);
    scanf("%s",&s);
    strupr(s);
    min=max=s[0];
    for(idx=0;idx<8;idx++)
    {
    if(s[idx]!='\0')
    {
    if(s[idx]<min)
    min=s[idx];
    if(s[idx]>max)
    max=s[idx];
    }
    }
    printf("max=%c,min=%c",max,min);
    de=((max-min)+1);
    printf("\n(max-min)+1=%d\n",de);
    for(lop=0;lop<=5;lop++)
    if(pow(2,lop)>de)
    break;

    printf("\ndiffer=%d\n",lop);
    for(idx=0;idx<8;idx++)
    toBin((int(s[idx])-int(min)),decs[idx]);

    for (idx=0; idx<8; idx++)
    for (jdx=0; jdx<5; jdx++)
    codes[jdx][idx]=decs[idx][jdx];

    printf("\n\nHorizontals[");
    for (idx=0; idx<8; idx++)
    {
    for (jdx=0; jdx<5; jdx++)
    printf("%d", (decs[idx][jdx])?1:0);
    printf(",");
    }

    printf("]\nVerticals [");
    for (idx=0; idx<5; idx++)
    {
    for (jdx=0; jdx<8; jdx++)
    printf("%d", (codes[idx][jdx])?1:0);
    printf(",");
    }
    printf("]\n First step complete!");
    getch();
    return 0;
    }
    //---------------------------------------------------------------------------
    آخرین ویرایش به وسیله Saeed_m_Farid : سه شنبه 17 دی 1387 در 11:44 صبح

  16. #16
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    53

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    ممنون ببخشيد اگه خستتون كردم.ديگه ما تازه كارا بايد بيشتر كار كنيم تا ياد بگيريم
    اميدوارم سماجت من ناراحتتون نكرده باشه اگرم ناراحت شديد عذر ميخوام

  17. #17
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    53

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي


    #include<string.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<stdio.h>
    #include<math.h>
    int main(){
    int i,j,de,min,max,l,lop,jik[20]={0},a[8],k=0,n;
    char s[8];
    int code[20]={0};
    char list[20][20]={0};
    clrscr();
    printf("enter a string:",s);
    scanf("%s",&s);
    strupr(s);
    max=min=s[0];
    for(i=0;s[i]!='\x0';i++){
    if(s[i]<min)
    min=s[i];
    if(s[i]>max)
    max=s[i];
    }
    printf("max=%c,min=%c",max,min);
    de=((max-min));
    printf("\nmax-min:%d\n",de);
    for(l=0;;l++)
    if(pow(2,l)>de)
    break;
    lop=l;
    printf("\ndiffer=%2d",lop);
    for(s[i=0];s[i]!='\x0';s[i++]){
    jik[i]=s[i]-min;
    printf("\njik[%d]=%d\n",i,jik[i]);
    }
    int help=0;
    int ehsan=0;
    char temp[20]={0};
    for(i=0;s[i]!='\x0';i++){
    for(int g=0;g<lop;g++) temp[g]=' ';
    ehsan = jik [i ] ;
    k=0;
    do{
    help = ehsan%2;
    if ( help == 0 ){
    list[i][k]='0';
    temp[k]='0';
    }
    else{
    list[i][k]='1';
    temp[k]='1';
    }
    ehsan=ehsan/2;
    k=k+1;;
    }while(ehsan!=0);
    for(j=k;j<lop;j++){
    list[i][j]='0';
    temp[j]='0';
    }
    for(j=lop-1,l=0;j>=0;j--,l++){
    list[i][l]=temp[j];
    }
    }
    getch();
    return 0;
    }

  18. #18
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    53

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    والا عليرغم تهديدتون در تاپيك قبلي بايد بگم هر كاري كردم ارور داد.شايد مشكل از كامپايلر منه؟

  19. #19
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    نقل قول نوشته شده توسط ميثم طاهري مشاهده تاپیک
    والا عليرغم تهديدتون در تاپيك قبلي بايد بگم هر كاري كردم ارور داد.شايد مشكل از كامپايلر منه؟
    ممنون ببخشيد اگه خستتون كردم.ديگه ما تازه كارا بايد بيشتر كار كنيم تا ياد بگيريم
    اميدوارم سماجت من ناراحتتون نكرده باشه اگرم ناراحت شديد عذر ميخوام
    بنده عرض كردم براي هرچيزي تاپيك تكراري ندين : اين كه اسمش تهديد نيست! (احتمالا اگه ايام محرم نبود عوض شما خود آقا نيما حذفش ميكرد! من گوشزد كردم)
    ضمنا من نه خسته شدم و نه ناراحت و اين پيگيري و فعاليت هم خيلي خوب و باعث پيشرفته. مطمئن باشين اگه ارزشش رو نداشت اصلا اين تاپيك رو اينقدر ادامه نميداديم و همون اول انگار كه نديدمش! ولي خوب يه چيزايي توش بود كه جذاب به نظر اومدن و نكاتي كه ميتونست مفيد باشه؛ عرض بنده اينه كه خيلي زودتر بايد به نتيجه ميرسيدي...
    تو همون تاپيكي كه پاك كردين گفتم كه اگه ميبينين نميتونين از اين تابع toBin استفاده كنيد مستقيم بردارين حلقه داخل تابع رو بذارين داخل main و اصلا تابع toBin رو بيخيال شيد. ميشه دوتا for تودرتو همونطوريكه تو سطرهاي بعدش هم هست؛ اين تابع رو فقط واسه اين گذاشتم كه با شكل كاركرد اشارگرها تو توابع هم آشنا بشيد، اجباري تو استفاده ازش نيست. و ضمنا من واسه تست يه بار ديگه همين برنامه رو كامپايل كردم و مشكلي نبود.

    باتشكر.

  20. #20
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    53

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    نقل قول نوشته شده توسط Saeed_m_Farid مشاهده تاپیک
    اگه ميبينين نميتونين از اين تابع toBin استفاده كنيد مستقيم بردارين حلقه داخل تابع رو بذارين داخل main و اصلا تابع toBin رو بيخيال شيد. ميشه دوتا for تودرتو همونطوريكه تو سطرهاي بعدش هم
    .
    همين ديگه در واقع نميدونم چطوري و كجا بنويسمش چون حقيقتا برام گنگه!اگه راهنمايي كنيد ممنون ميشم.يه چيز ديگه اينكه از چه كامپايلري استفاده مي كنيد؟
    آخرین ویرایش به وسیله ميثم طاهري : سه شنبه 17 دی 1387 در 12:06 عصر

  21. #21
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    نقل قول نوشته شده توسط ميثم طاهري مشاهده تاپیک
    همين ديگه در واقع نميدونم چطوري و كجا بنويسمش چون حقيقتا برام گنگه!اگه راهنمايي كنيد ممنون ميشم
    ديدي داري اذيت ميكني‌ (يه دونه حلقه FOR‌رو نمياري تو بدنه برنامه)، ضمنا من از bcb++6 دارم استفاده ميكنم كه هر دفعه واسه اينكه با tc شما قابل كامپايل بشه برنامه رو تغيير ميدم و ميذارمش تو تاپيك، اين هم ازحلقه داخل بدنه برنامه:
      int iDec = 0;
    for(idx=0;idx<8;idx++)
    {
    iDec = int(s[idx])-int(min);
    for(jdx=4;jdx>=0;jdx--,iDec>>=1)
    decs[idx][jdx]=iDec%2;
    }
    آخرین ویرایش به وسیله Saeed_m_Farid : سه شنبه 17 دی 1387 در 12:16 عصر دلیل: افزودن مطلب

  22. #22
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    53

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي


    #include
    <stdio.h>
    #include<conio.h>
    #include<math.h>
    #include<string.h>
    #include<stdlib.h>
    //---------------------------------------------------------------------------
    int ToDec(int [][8],int col,int len);
    int main()
    {
    int i,idx,jdx,de,lens,lop,decs[8][5],codes[5][8];
    char s[8],max,min;
    clrscr();
    printf(
    "enter a string:");
    gets(s);
    lens=strlen(s);
    strupr(s);
    min=max=s[0];
    for(idx=0;idx<lens;idx++)
    {
    if(s[idx]<min)
    min=s[idx];
    if(s[idx]>max)
    max=s[idx];
    }
    printf(
    "max=%c,min=%c",max,min);
    de=((max-min)+1);
    printf(
    "\n(max-min)+1=%d\n",de);
    for(lop=0;lop<=5;lop++)
    if(pow(2,lop)>de)
    break;
    printf(
    "\ndiffer=%d\n",lop);
    int iDec=0;
    for(idx=0;idx<lens;idx++)
    {
    iDec=
    int(s[idx])-int(min);
    for(jdx=(lop-1);jdx>=0;jdx--,iDec>>=1)
    decs[idx][jdx]=iDec%2;
    }
    for (idx=0; idx<lens; idx++)
    for (jdx=0; jdx<lop; jdx++)
    codes[jdx][idx]=decs[idx][jdx];
    printf(
    "\n\nHorizontals[");
    for (idx=0; idx<lens; idx++)
    {
    for (jdx=0; jdx<lop; jdx++)
    printf(
    "%d", (decs[idx][jdx])?1:0);
    printf(
    ",");
    }
    printf(
    "]\nVerticals [");
    for (idx=(lop-1); idx>=0; idx--)
    {
    for (jdx=0; jdx<lens; jdx++)
    printf(
    "%d", (codes[idx][jdx])?1:0);
    printf(
    ",");
    }
    for (idx=(lop-1);idx>=0;idx--)
    {
    printf(
    "%c",ToDec(codes,idx,lens));
    }
    getch();
    return 0;
    }
    int ToDec(int s[][8],int col,int len){
    int b=0,i;
    for(i=(len-1);i>=0;i--){
    b+=s[col][i]*pow(2,(len-1)-i);
    }
    return b;
    }
    //end of function

    پس از روزها تلاش بالاخره بخش كدينگ تمام شد.به خودم و شما تبريك ميگم.الان بايد بريم سراغ ديكدينگ
    پس همه با هم پيش به سوي ديكدينگ.ححمممملهههههههههه ههههههههههههههه

  23. #23
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    53

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    براي راحتي كار حرف اول رشته ورودي رو براي ديكدينگ وارد مي كنيم.اين كار رو چطوري بايد انجام بدم؟

  24. #24
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    53

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    فكر كنم نبايد شيفت مي كرديم؟نه؟به نظرم دليلي نداره

  25. #25
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    53

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    #include<string.h>
    #include<stdlib.h>
    //---------------------------------------------------------------------------
    int ToDec(int [5][8],int col,int len);
    void code(void);
    void decode(void);
    void margin(void);
    char menu(void);
    int main()
    {
    char choose_main;
    textmode(C80);
    for(;;){
    textbackground(8);
    _setcursortype(_NOCURSOR);
    choose_main=menu();
    switch(choose_main){
    case 'c':
    case 'C':
    code();
    break;
    case 'd':
    case 'D':
    decode();
    break;
    case 'e':
    case 'E':
    exit (0);
    }
    }
    }
    void margin(void){
    int i;
    clrscr();
    textmode(C80);
    textcolor(7);
    highvideo();
    cprintf("\xB2");
    for(i=1;i<25;i++){
    gotoxy(1,i);
    cprintf("\xB2\xB2");
    gotoxy(79,i);
    cprintf("\xB2\xB2");
    }
    gotoxy(1,1);
    insline();
    for(i=0;i<80;i++)cprintf("\xB2");
    gotoxy(1,25);
    for(i=0;i<79;i++)cprintf("\xB2");
    }
    char menu(void){
    char choose;
    textmode(C80);
    clrscr();
    margin();
    gotoxy(12,6);
    textcolor(2);
    highvideo();
    cprintf("MAIN MENU");
    gotoxy(9,7);
    cprintf("...............");
    gotoxy(9,9);
    textcolor(2);
    highvideo();
    cprintf("Code");
    gotoxy(9,9);
    textcolor(3);
    highvideo();
    cprintf("C");
    gotoxy(9,10);
    textcolor(2);
    highvideo();
    cprintf("Decode");
    gotoxy(9,10);
    textcolor(3);
    highvideo();
    cprintf("D");
    textcolor(2);
    gotoxy(9,11);
    highvideo();
    cprintf("Exit");
    gotoxy(9,11);
    textcolor(3);
    highvideo();
    cprintf("E");
    while(1){
    choose=getch();
    if(choose=='c'||choose=='C'||choose=='D'||choose== 'd'||choose=='e'||choose=='E')
    break;
    }
    return choose;
    }
    void code(){
    int i=0,idx=0,jdx=0,de=0,lens=0,lop=0,decs[8][8]={0},codes[8][8]={0};
    char s[8]={0},max=0,min=0;
    clrscr();
    textmode(C80);
    margin();
    _setcursortype(_NORMALCURSOR);
    gotoxy(6,5);
    printf("Enter a string:");
    gets(s);
    lens=strlen(s);
    strupr(s);
    min=max=s[0];
    for(idx=0;idx<lens;idx++)
    {
    if(s[idx]<min)
    min=s[idx];
    if(s[idx]>max)
    max=s[idx];
    }
    //printf("max=%c,min=%c",max,min);
    de=((max-min)+1);
    //printf(" (max-min)+1=%d",de);
    for(lop=0;lop<=5;lop++){
    i=pow(2,lop);
    if(pow(2,lop)>de)
    break;
    }
    //printf(" differ=%d\n",lop);
    int iDec=0;
    for(idx=0;idx<lens;idx++)
    {
    iDec=int(s[idx])-int(min);
    for(jdx=(lop-1);jdx>=0;jdx--,iDec>>=1)
    decs[idx][jdx]=iDec%2;
    }
    for (idx=0; idx<lens; idx++)
    for (jdx=0; jdx<lop; jdx++)
    codes[jdx][idx]=decs[idx][jdx];
    //printf("\n\nHorizontals[");
    /*for (idx=0; idx<lens; idx++)
    {
    for (jdx=0; jdx<lop; jdx++)
    printf("%d", (decs[idx][jdx]));
    if(idx!=lens-1) printf(",");
    } */
    //printf("]");
    //printf("\nVerticals[");
    //for (idx=(lop-1); idx>=0; idx--) // code meisam
    /*for (idx=0;idx<lop;idx++) // code MH
    {
    for (jdx=0; jdx<lens; jdx++)
    printf("%d",codes[idx][jdx]);
    if(idx!=lop-1)
    printf(",");
    }
    printf("]\n");*/
    gotoxy(6,7);
    printf("Coded String : ");
    for (idx=0/*(lop-1)*/;idx<lop/*>=0*/;idx++)
    {
    // printf("\n%c",ToDec(codes,idx,lens)+32);// code meisam
    //code MH
    //int b=0,i;
    int b=0;
    for(i=(lens-1);i>=0;i--){
    b+=codes[idx][i]*pow(2,(lens-1)-i);
    }
    gotoxy(21+idx,7);
    printf("%c",b+33);
    }
    getch();
    }
    void decode(){
    int i=0,idx=0,jdx=0,lens=0,lop=0,decs[8][8]={0},codes[8][8]={0};
    char s[8]={0},min=0;
    clrscr();
    textmode(C80);
    margin();
    _setcursortype(_NORMALCURSOR);
    gotoxy(6,5);
    printf("Enter the coded String: ");
    gotoxy(30,5);
    gets(s);
    gotoxy(6,7);
    printf("Enter the Minimum character of Main String: ");
    gotoxy(50,7);
    min = getchar();
    gotoxy(6,9);
    printf("Enter the length of the Main String: ");
    gotoxy(43,9);
    scanf("%d",&lop);
    lens=strlen(s);
    int iDec=0;
    //*************
    //baraye taEn kardane meghdar lop
    //*************
    for(idx=0;idx<8;idx++)
    for(jdx=0;jdx<8;jdx++)
    decs[idx][jdx]=0;
    for(idx=0;idx<lens;idx++)
    {
    iDec=int(s[idx])-33;
    for(jdx=lop-1;jdx>=0;jdx--,iDec>>=1){
    decs[idx][jdx]=iDec%2;
    }
    }
    for (idx=0; idx<lens; idx++)
    for (jdx=0; jdx<lop; jdx++)
    codes[jdx][idx]=decs[idx][jdx];
    gotoxy(6,13);
    printf("The main String is : ");
    for (idx=0/*(lop-1)*/;idx<lop/*>=0*/;idx++)
    {
    // printf("\n%c",ToDec(codes,idx,lens)+32);// code meisam
    //code MH
    //int b=0,i;
    int b=0;
    for(i=(lens-1);i>=0;i--){
    b+=codes[idx][i]*pow(2,(lens-1)-i);
    }
    gotoxy(29+idx,13);
    printf("%c",b+min);
    }
    getch();
    }

  26. #26

    Wink نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    با سلام
    به نظرم برنامه زیر هم جواب بده





    #include <conio.h>

    #include <iostream>

    #include <iomanip>
    using std::cout;
    using std::cin;


    void t(int a[],int c[],int);

    int main()
    {
    int c[1000]={0};
    int b[1000];
    char f[1000];
    int size=0;


    cout<<"enter reshte : ";

    cin>>f;
    for (int q=0;f[q] != '\0';q++)
    size++;
    for(int w=0;w<size;w++)
    b[w]=f[w];


    t(b,c,size);
    getch();

    return 0;
    }
    void t(int a[],int c[],int size)
    {
    for(int j=0; j<size;j++)
    c[a[j]]++;
    for(int z=97;z<123;z++)
    cout<<static_cast <char>(z)<<" "<<c[z]<<"\n";


    }





  27. #27
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    53

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    اينكه كلي eror داره

  28. #28
    کاربر تازه وارد آواتار obscure
    تاریخ عضویت
    مهر 1387
    محل زندگی
    کرج
    سن
    33
    پست
    47

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    با VC کامپایل کن.

  29. #29
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    53

    نقل قول: يافتن بزرگترين و كوچكترين با استفاده از كد اسكي

    آقا يه برنامه نوشتم در حد تيم ملي
    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    #include<string.h>
    #include<stdlib.h>
    //---------------------------------------------------------------------------
    int ToDec(int [5][8],int col,int len);
    void code(void);
    void decode(void);
    void margin(void);
    char menu(void);
    int main()
    {
    char choose_main;
    textmode(C80);
    for(;;){
    textbackground(8);
    _setcursortype(_NOCURSOR);
    choose_main=menu();
    switch(choose_main){
    case 'c':
    case 'C':
    code();
    break;
    case 'd':
    case 'D':
    decode();
    break;
    case 'e':
    case 'E':
    exit (0);
    }
    }
    }
    void margin(void){
    int i;
    clrscr();
    textmode(C80);
    textcolor(7);
    highvideo();
    cprintf("\xB2");
    for(i=1;i<25;i++){
    gotoxy(1,i);
    cprintf("\xB2\xB2");
    gotoxy(79,i);
    cprintf("\xB2\xB2");
    }
    gotoxy(1,1);
    insline();
    for(i=0;i<80;i++)cprintf("\xB2");
    gotoxy(1,25);
    for(i=0;i<79;i++)cprintf("\xB2");
    }
    char menu(void){
    char choose;
    textmode(C80);
    clrscr();
    margin();
    gotoxy(12,6);
    textcolor(2);
    highvideo();
    cprintf("MAIN MENU");
    gotoxy(9,7);
    cprintf("...............");
    gotoxy(9,9);
    textcolor(2);
    highvideo();
    cprintf("Code");
    gotoxy(9,9);
    textcolor(3);
    highvideo();
    cprintf("C");
    gotoxy(9,10);
    textcolor(2);
    highvideo();
    cprintf("Decode");
    gotoxy(9,10);
    textcolor(3);
    highvideo();
    cprintf("D");
    textcolor(2);
    gotoxy(9,11);
    highvideo();
    cprintf("Exit");
    gotoxy(9,11);
    textcolor(3);
    highvideo();
    cprintf("E");
    while(1){
    choose=getch();
    if(choose=='c'||choose=='C'||choose=='D'||choose== 'd'||choose=='e'||choose=='E')
    break;
    }
    return choose;
    }
    void code(){
    int i=0,idx=0,jdx=0,de=0,lens=0,lop=0,decs[8][8]={0},codes[8][8]={0};
    char s[8]={0},max=0,min=0;
    clrscr();
    textmode(C80);
    margin();
    _setcursortype(_NORMALCURSOR);
    gotoxy(6,5);
    printf("Enter a string:");
    gets(s);
    lens=strlen(s);
    strupr(s);
    min=max=s[0];
    for(idx=0;idx<lens;idx++)
    {
    if(s[idx]<min)
    min=s[idx];
    if(s[idx]>max)
    max=s[idx];
    }
    //printf("max=%c,min=%c",max,min);
    de=((max-min)+1);
    //printf(" (max-min)+1=%d",de);
    for(lop=0;lop<=5;lop++){
    i=pow(2,lop);
    if(pow(2,lop)>de)
    break;
    }
    //printf(" differ=%d\n",lop);
    int iDec=0;
    for(idx=0;idx<lens;idx++)
    {
    iDec=int(s[idx])-int(min);
    for(jdx=(lop-1);jdx>=0;jdx--,iDec>>=1)
    decs[idx][jdx]=iDec%2;
    }
    for (idx=0; idx<lens; idx++)
    for (jdx=0; jdx<lop; jdx++)
    codes[jdx][idx]=decs[idx][jdx];
    //printf("\n\nHorizontals[");
    /*for (idx=0; idx<lens; idx++)
    {
    for (jdx=0; jdx<lop; jdx++)
    printf("%d", (decs[idx][jdx]));
    if(idx!=lens-1) printf(",");
    } */
    //printf("]");
    //printf("\nVerticals[");
    //for (idx=(lop-1); idx>=0; idx--) // code meisam
    /*for (idx=0;idx<lop;idx++) // code MH
    {
    for (jdx=0; jdx<lens; jdx++)
    printf("%d",codes[idx][jdx]);
    if(idx!=lop-1)
    printf(",");
    }
    printf("]\n");*/
    gotoxy(6,7);
    printf("Coded String : ");
    for (idx=0/*(lop-1)*/;idx<lop/*>=0*/;idx++)
    {
    // printf("\n%c",ToDec(codes,idx,lens)+32);// code meisam
    //code MH
    //int b=0,i;
    int b=0;
    for(i=(lens-1);i>=0;i--){
    b+=codes[idx][i]*pow(2,(lens-1)-i);
    }
    gotoxy(21+idx,7);
    printf("%c",b+33);
    }
    getch();
    }
    void decode(){
    int i=0,idx=0,jdx=0,lens=0,lop=0,decs[8][8]={0},codes[8][8]={0};
    char s[8]={0},min=0;
    clrscr();
    textmode(C80);
    margin();
    _setcursortype(_NORMALCURSOR);
    gotoxy(6,5);
    printf("Enter the coded String: ");
    gotoxy(30,5);
    gets(s);
    gotoxy(6,7);
    printf("Enter the Minimum character of Main String: ");
    gotoxy(50,7);
    min = getchar();
    gotoxy(6,9);
    printf("Enter the length of the Main String: ");
    gotoxy(43,9);
    scanf("%d",&lop);
    lens=strlen(s);
    int iDec=0;
    //*************
    //baraye taEn kardane meghdar lop
    //*************
    for(idx=0;idx<8;idx++)
    for(jdx=0;jdx<8;jdx++)
    decs[idx][jdx]=0;
    for(idx=0;idx<lens;idx++)
    {
    iDec=int(s[idx])-33;
    for(jdx=lop-1;jdx>=0;jdx--,iDec>>=1){
    decs[idx][jdx]=iDec%2;
    }
    }
    for (idx=0; idx<lens; idx++)
    for (jdx=0; jdx<lop; jdx++)
    codes[jdx][idx]=decs[idx][jdx];
    gotoxy(6,13);
    printf("The main String is : ");
    for (idx=0/*(lop-1)*/;idx<lop/*>=0*/;idx++)
    {
    // printf("\n%c",ToDec(codes,idx,lens)+32);// code meisam
    //code MH
    //int b=0,i;
    int b=0;
    for(i=(lens-1);i>=0;i--){
    b+=codes[idx][i]*pow(2,(lens-1)-i);
    }
    gotoxy(29+idx,13);
    printf("%c",b+min);
    }
    getch();
    }

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •