תוכן Stoned Junglist - HWzone פורומים
עבור לתוכן
  • צור חשבון

Stoned Junglist

משתמש רשום
  • מספר הודעות

    177
  • הצטרפות

  • ביקר לאחרונה

    אף פעם

הודעות שנפתחו על-ידי Stoned Junglist

  1. אוקי צודק בקשר לתנאי לולאה, קצת פישלתי שם. בקשר להגדרה הבנתי את הטעות אבל לא הבנתי איך זה עוזר לתקן את הבעית קומלפציה כי היא נשארת אחרי התיקון, אני לא מבין בכלל למה הבעית קומפילציה מופיע שם הגדרתי את הפונקציה כמו שצריך לפי דעתי. :nixweiss:

    לגבי הפונקציה אני רוצה שזה יפתור כל מיני מקרים כמו 3+4-8 או 3+4-7+5+4-5

    בנתיים השארי את החזקות הכפל והחילוק שמה אבל לא השתמשתי בהם כי אני חושב על איך לסדר את זה שזה יפעל לפי סדר מתמטי (חזקה קודם אחרכך כפל ואחר כך חיבור וכו') בנתיים אני עובד על החיבור והחיסור.

    תודה.

  2. תודה על הביקורת הבונה. ערכתי קצת את הפונקציה כמו שצריך אך עדין יש לי בעיה עם הפונקציה, למרות התיקון


    #include <stdio.h>
    #include <string.h>
    #define SIZE 200
    int function_calc(char [],int);
    int main()
    {
    char str[SIZE];
    gets(str);
    if(str[0]=='c' && str[1]=='a' && str[2]=='l' && str[3]=='c')
    {
    puts("calc");
    function_calc(str,SIZE);
    }
    }
    int function_calc(char str[],int SIZE)
    {
    char ch,plus='n',diving='n',subtract='n',multi='n',square='n',hadError='n';
    double num=0,sum=0;
    int i,j;
    for(i=5;i!='\0';i++)
    {
    ch=str[i];
    if(ch>='0' && ch<='9')
    {
    if(plus=='y')
    num=num+ch-48;
    else if(diving=='y')
    num=num/(double)(ch-48);
    else if(subtract=='y')
    num=num-ch-48;
    else if(multi=='y')
    num=num*(ch-48);
    else if(square=='y')
    {
    for(j=1;j<ch;j++)
    {
    num=num*(num);
    }
    }
    else
    num+=ch-48;
    sum+=num;
    }
    else
    {
    if(ch=='+')
    plus='y';
    else if(ch=='\\')
    diving='y';
    else if(ch=='-')
    subtract='y';
    num=num-ch-48;
    else if(multi=='y')
    num=num*(ch-48);
    else if(square=='y')
    {
    for(j=1;j<ch;j++)
    {
    num=num*(num);
    }
    }
    else
    num+=ch-48;
    sum+=num;
    }
    else
    {
    if(ch=='+')
    plus='y';
    else if(ch=='\\')
    diving='y';
    else if(ch=='-')
    subtract='y';
    else if(ch=='*')
    multi='y';
    else if(ch=='^')
    square='y';
    else if(ch=='\n')
    printf("%.1lf",sum);
    else
    hadError='y';
    }
    }
    }

    בהצהרה- אני כותב את סוג המשתנים.

    ובהגדרה את השם שלהם והסוג כמו שעשיתי.

    אך אני נתקל בבעיות הנ"ל:

    main.c:16: parse error before `200'

    main.c: In function `function_calc':

    main.c:17: number of arguments doesn't match prototype

    main.c:5: prototype declaration

    main.c:23: `str' undeclared (first use in this function)

    main.c:23: (Each undeclared identifier is reported only once

    main.c:23: for each function it appears in.)

    אני לא מבין למה הוא אומר שהוא הצהרתי את str, הרי הגדרתי אותו בMAIN והעברתי אותו כארגונמט לפונקציה function_calc, ואותו דבר לבעיות האחרות, הרי הגדרתי אותם 2 ארגומנטים לכל הפונקציה הזאת.

    נ.ב זה קימפל לי תפונקציה שהשתמש ב200 ללא DEFINE אך זה השיב לי בsegment fault שזה ERROR חמור אז החלטתי להשתמש בDEFINE.

    שאני מגיע לסוף שורה אז הוא מתדפיס את הסכום של המספרים.

  3. כן, בדיוק ככה.

    ואז כמובן תדאג שהפונקציה תשתמש בפרמטרים האלה.

    אז בכל פרמרטים ומשתנה שאני משתמש בפונקציה אני צריך לכתוב אותו בהצרה? אתה יכול להסביר בקצרה על זה?

  4. קודם כל, בד"כ הקומפיילר אומר לך באיזו שורה הבעיה.

    חוץ מזה, הגדרת את הפונקציה function_calc כך שהיא לא מקבלת פרמטרים בכלל.

    (יש לך עוד באגים אחרים, אבל קודם כל נביא את התכנית למצב שהיא מתקמפלת)

    למה אתה מתכוון בכך שהיא לא מקבלת פרמטרים? האם אני צריך להגידר אותה כ function_calc(char string[200],int i)?

    עריכה- ערכתי תיקנתי כמה דברים .

  5. שלומות! =]

    אני עובד על תוכנה שאמורה לקרוא משפט, לזהות אם יש בו calc ואז לחשב את המספרים אחרי.

    לדוגמא קלט-calc 4+3

    פלט-7

    להלן הפונקציה הלא גמורה שלי(עוד לא בדקתי מקרה של קלט לא תקין ) שלא מתקמפלת בגלל הבעיה unterminated character constant.

    אך אינני יודע למה ישנה הבעיה מכיוון שבדקתי את הפונקציה ולא מצאתי את הבעיה =\.

    עזרה למצוא את בעיית הקימפול יהיה נחמד =] תודה רבה. להלן הפונקציה:


    #include <stdio.h>
    #include <string.h>
    int function_calc(char str[200],int i);
    int main()
    {
    char str[200];
    gets(str);
    if(str[0]=='c' && str[1]=='a' && str[2]=='l' && str[3]=='c')
    {
    puts("calc");
    function_calc(char str[200],int i);
    }
    }
    int function_calc(char str[200],int i)
    {
    char ch,plus,diving,subtract,multi,square,hadError;
    int i;
    double num,sum;
    for(i=5;i<200;i++)
    {
    ch=str[i];
    if(ch>='0' && ch<='9')
    {
    if(plus=='y')
    num=num+ch-48;
    else if(diving=='y')
    num=num/(double)(ch-48);
    else if(subtract=='y')
    num=num-ch-48;
    else if(multi=='y')
    num=num*(ch-48);
    else if(square=='y')
    num=num+(ch-48);
    else
    num=ch-48;
    }
    else
    {
    switch(ch)
    {
    case '+':plus='y';break;
    case '\':diving='y';break;
    case '-':subtract='y';break;
    case '*':multi='y';break;
    case '^':square='y';break;
    default:hadError='y';break;
    }
    }
    }
    }

  6. אני לא מתיימר להיות מבין גדול או אודיופיל, אך כאשר עשיתי ריפ לדיסק מקורי על LOSSLESS, שמעתי אותו עם תנאים סבירים (GRADO SR60 + IPOD).. ההבדל בין ה הקודם שעמד על 120-250 KBPS לא ידוע בידיוק דחיסה מלאה, היה הבדל רציני ומעניין, בלי לחרטט ובלי לחוש מבין גדול הרגשתי תחושה שונה והכל נשמע לי פשוט חלק יותר ואיכותי יותר.. לא יודע עד כמה ההבדל יהיה בין 320KBPS לבין LOSSLESS אך רוב הריפים של ה הם על 192 KBPS וביניהם תאכלס יצא לי לשמוע הבדל, ואולי במפגש תעשו קצת בדיקה עיוורת D:

  7. זהגם נראה נחמד ובעיקר בשביל הדאווין ;Dלמה התכוונת כשאמרת את זה?

    כיוון שהיא לא תצליח לנצל את הרמקולים בלי מגבר או סתם כדי לעשות רעש או מה שהילדה לא תעשה, סתם בזבוז כסף, לדעתי.. ואני לא מכיר את B&W מניסיון אבל לפי מה שקראתי , כל מוצר איכותי :D

  8. דיוידי תקנה פיוניר

    ולקנווד תשאיר לעשות מעבדי מזון לא רסיברים

    בשביל מה פיוניר ? פיוניר רק יקחו לו מלא כסף, אפשר למצוא חברות לא מוכרות במחיר טוב , בשביל שיהיה טוב לך - תבדוק שהוא קורא XVID , DOLBY DIGITAL , DTS וכו', שכל חדש עושה את זה, תביא דיסק מהבית, תכניס ל-DVD ותבדוק שעובד, לא צריך להוציא למעלה מ300 שקל על DVD חדש אם אתה מחפש DVD שיעבוד טוב ויקרא כמעט הכל.. אם אתה מחפש משהו שיקרא BLUERAY- HD וכו' אז זה משהו אחר..

  9. ניסיתי עוד כמה דגמים בינהם את שני הPXים וגם עוד כמה דגמים ספורטיביים של סנהייזר.

    אבל בתקציב שלי (עד 300) באמת לא היה דבר יותר טוב מהן. אחת הקניות הטובות שלי.

    מוזר שאף אחד לא רשם לך לנסות את ה-GRADO , עולה 390 +-..

    בכל מקרה אני ממליץ על כל מה שהוא הקלטה חדשה , ואם אפשר גם אלקטרונית.. אבל כן אני צריך גם לנסות את מה שרשמתם (4 עונות.. נשמע מעניין.. אבל אם ההקלטה ישנה אז איך בידיוק תוכל להבדיל??) תודה.

×
  • צור חדש...