נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: קבצי טקסט בסי++

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
דניאל
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 21 January 2007 בשעה 18:47 | IP רשוּם
ציטוט דניאל

ניסיתי לפתור את התרגיל http://pl1.mscc.huji.ac.il/cpp2007/Ex3.pdf

הרבה זמן ואני לא מצליח , זה תרגיל להגשה והוא ממש חשוב והשקעתי בו הרבה זמן אך ללא הועיל , כל מי שיכול שיעזור לי בבקשה

חזרה לתחילת העמוד הצג את כרטיס החבר של דניאל חפש הודעות אחרות של דניאל בקר בדף הבית של דניאל
 
צחי@
משתמש חבר
משתמש חבר


הצטרף / הצטרפה: 02 January 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 209
נשלח בתאריך: 21 January 2007 בשעה 19:09 | IP רשוּם
ציטוט צחי@

מה אתה לא מצליח בדיוק ? הקריאה והכתיבה לקבצים ? התנאים הלוגיים ?

אם יש לך קוד אז תצרף אותו ואולי אפשר יהיה לומר לך מה הבעיה.

על כל מקרה, מצורף לינק להסבר ודוגמאות לקריאה/כתיבה מקבצים ב-C++:

http://www.cplusplus.com/doc/tutorial/files.html



__________________
דלתות אדריכלים גגות פוליש
חזרה לתחילת העמוד הצג את כרטיס החבר של צחי@ חפש הודעות אחרות של צחי@ בקר בדף הבית של צחי@
 
דניאל
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 21 January 2007 בשעה 19:37 | IP רשוּם
ציטוט דניאל

אני לא מצליח להבין איך בודקים מהו המספר הגדול ביותר ואיך עושים ממוצע , בבקשה תעזרו לי זה די דחוף
חזרה לתחילת העמוד הצג את כרטיס החבר של דניאל חפש הודעות אחרות של דניאל בקר בדף הבית של דניאל
 
צחי@
משתמש חבר
משתמש חבר


הצטרף / הצטרפה: 02 January 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 209
נשלח בתאריך: 21 January 2007 בשעה 20:02 | IP רשוּם
ציטוט צחי@

אני מצרף קוד שלא כולו "באמת" קוד - חלק הוא פשוט תיאור במילים של מה שצריך לבצע, אני בטוח שתבין מתי מדובר בקוד ומתי לא:

קוד:

int count = 0;
int max = 0;
int sum = 0;
int temp;
.
.
.
While (end-of-file wasn't reached)
{
    temp << Read_Next_Number_from_file();
    if (temp > max)
    {
        max = temp;
    }

    sum += temp;
    count++;
}

float avergae = float(sum) / float(count);
.
.
.

יש כאן תאור סכמתי של לולאת WHILE מרכזית שקוראת מהקובץ, מעדכנת משתנה סכום (לצורך חישוב ממוצע בסיום הריצה) וכן משתנה max שיכיל את הערך המקסימלי.

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

בהצלחה!

חזרה לתחילת העמוד הצג את כרטיס החבר של צחי@ חפש הודעות אחרות של צחי@ בקר בדף הבית של צחי@
 
דניאל
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 21 January 2007 בשעה 20:27 | IP רשוּם
ציטוט דניאל

אני יודע כיצד קוראים שורה , אבל כיצד קוראים את זה כמחרוזת? כאילו בתור CHAR ולא STRING

חזרה לתחילת העמוד הצג את כרטיס החבר של דניאל חפש הודעות אחרות של דניאל בקר בדף הבית של דניאל
 
צחי@
משתמש חבר
משתמש חבר


הצטרף / הצטרפה: 02 January 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 209
נשלח בתאריך: 21 January 2007 בשעה 21:55 | IP רשוּם
ציטוט צחי@

למה לך לקרוא שורה או מחרוזת ? תקרא פשוט לתוך int.
דוגמא:
קוד:

#include <iostream>
#include <fstream>

using namespace std;


void main()
{
    int num;
    ifstream myfile("example.txt");

    if (myfile.is_open())
    {
        while (! myfile.eof() )
        {
          myfile >> num;
          cout << num << endl;
        }
        myfile.close();
    }
}

נניח שהקובץ example.txt מכיל את השורה: "4 3 2 1",
אז התוכנית תדפיס למסך:
1
2
3
4
חזרה לתחילת העמוד הצג את כרטיס החבר של צחי@ חפש הודעות אחרות של צחי@ בקר בדף הבית של צחי@
 
דניאל
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 21 January 2007 בשעה 22:26 | IP רשוּם
ציטוט דניאל

ראיתי , תודה רבה.

עכשיו נאמר לי לבנות תוכנית אשר קוראת מספרים שלמים מקובץ בשם IN.TXT וכותבת את סכום הספרות של מה שהיא קראה לקובץ בשם OUT.TXT אך מספר בשורה. מספר המספרים בקלט אינו ידוע ומספר הספרות במספר שלם לא יעלה על 10. בנוסף נאמר שהפונקציה צריכה להראות :

int sdigits(int n) s

יצאתי מנקודת הנחה ש:

int sum=0;
while(n!=0)
{
 sum=sum+n%10
 x/10;

אבל השאלה הגדולה היא : איך אני מביא את N , כלומר את המספר שבאותו רגע הוא קורא?

ת' רבה לכל מי שיענה וזוהי שאלתי האחרונה והחשובה מכל :P

 

חזרה לתחילת העמוד הצג את כרטיס החבר של דניאל חפש הודעות אחרות של דניאל בקר בדף הבית של דניאל
 
SBD
פורומיסט על
פורומיסט על
סמל אישי

הצטרף / הצטרפה: 13 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 1194
נשלח בתאריך: 22 January 2007 בשעה 00:01 | IP רשוּם
ציטוט SBD

לפי מה שהבנתי ממך התוכנית צריכה לקרוא מספרים מקובץ אחד ובקובץ השני צריכים להיות באופן חופף את סכום הספרות של אותם מספרים....כלומר אם בשורה הראשונה בקובץ הקלט יש "1234" אז המספר הראשון בקובץ הפלט יהיה "10" וכו'...

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


__________________
~ Nobody Is Perfect, I'm Nobody ~
פורומים
חזרה לתחילת העמוד הצג את כרטיס החבר של SBD חפש הודעות אחרות של SBD בקר בדף הבית של SBD
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה