ABA


"שפת c ,מחרוזת ואותיות גדולות וקטנות"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #21309 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 21309
faruz_avi 
חבר מתאריך 27.10.04
11552 הודעות
   22:23   15.06.15   
אל הפורום  
  שפת c ,מחרוזת ואותיות גדולות וקטנות  
 
   אני צריך לבנות תוכנית שקולטת מחרוזת לכל היותר 100 תווים והיא מוצאת את האות הגדולה הראשונה במערך.
לאחר מכן היא מחליפה כל אות שהיא זהה לאות הגדולה הראשונה שמצאנו(הן קטנה והן גדולה). אם היא גדולה היא מחליפה לקטנה ואם היא רטנה היא מחליפה לגדולה.

לדוגמא: rtwAaA

הפלט: rtwaAa

זה מה שעשיתי ונראה לי שיש לי המון טעויות,הן קומפלציה וסינטקס והן בהבנה של הענין


בif השני זה אמור להיות -'A'-a


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  בעקרון אתה די בכיוון simond15  15.06.15 22:51 1
     הוא משנה לי את כל מה שצריך חוץ מהאחרון faruz_avi  15.06.15 23:20 2
         הצלחתי לסדר את זה faruz_avi  15.06.15 23:37 3
             כנראה בגלל שאתה רץ על המערך יותר מדי simond15  15.06.15 23:46 4
     הערה קטנה cfirzzz 18.06.15 11:57 7
         כמובן שאתה צודק אבל.... simond15  18.06.15 16:24 8
             אבל אתה יכול לכתוב בעצמך את abs.. inno3D 18.06.15 19:09 9
  תהנה : aCoZz  18.06.15 00:32 5
     הבעיה שלך שאתה יוצא מגבולות המערך למרות שאמרת שיש 100 בפועל הוקצו aCoZz  18.06.15 00:50 6

       
simond15  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 21.8.10
1144 הודעות, 3 פידבק
   22:51   15.06.15   
אל הפורום  
  1. בעקרון אתה די בכיוון  
בתגובה להודעה מספר 0
 
   תרשום בגוגל טבלת ascii ותראה שההבדל בין אות גדולה לאות קטנה זה בעצם התו רווח.
A שווה 65, B שווה 66 וכו'....
a שווה 97, b שווה 98 וכו'....
רווח שווה 32 שזה בעצם ההבדל בינהם.
הפלוס שווה והמינוס שווה רשום אצלך הפוך.
תשתמש בהזחות, כל מה שבתוך ה- main צריך לזוז ימינה.
תשתמש בסוגריים מסולסלות גם אם יש רק שורה אחת בתוך התנאי.
חסר לך break כדי לצאת מהלולאה הראשונה, אם כבר מצאת אות גדולה, אז אין צורך להמשיך.
(וזה בעצם דוגמא למה לעשות תמיד סוגריים מסולסלים, כי יש מצב טוב שהיית מוסיף עכשיו break בלי להוסיף סוגריים מסולסלות וזה בעצם לא היה עושה כלום)

הנה דוגמא קטנה שרשמתי בהתאם למה שעשית:




                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
faruz_avi 
חבר מתאריך 27.10.04
11552 הודעות
   23:20   15.06.15   
אל הפורום  
  2. הוא משנה לי את כל מה שצריך חוץ מהאחרון  
בתגובה להודעה מספר 1
 
  

וחוץ מהגדולה הראשונה שמצאנו


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
faruz_avi 
חבר מתאריך 27.10.04
11552 הודעות
   23:37   15.06.15   
אל הפורום  
  3. הצלחתי לסדר את זה  
בתגובה להודעה מספר 2
 
   אבל יש בעיה מוזרה אחרת
עבור abc הוא פולט aBc


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
simond15  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 21.8.10
1144 הודעות, 3 פידבק
   23:46   15.06.15   
אל הפורום  
  4. כנראה בגלל שאתה רץ על המערך יותר מדי  
בתגובה להודעה מספר 3
 
   גם אם אתה קולט מחרוזת שהיא קטנה מ-100, אתה עדיין רץ על המערך 100 פעמים
אם קלטת abc אז אחרי זה הוא ימשיך לרוץ על המערך על ערכי זבל שיש בו וכנראה שהוא מצא B איפשהו בערכי זבל שלו בהמשך...
אתה צריך להוסיף תנאי כלשהו שמודיע לך שסיימת לעבור על המחרוזת, גם אם היא קטנה מ-100.

אפשר לעשות את זה ככה:

שזה בעצם אומר שהתו שלך כרגע שונה מ- '0\' שזה התו של סוף מחרוזת



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
cfirzzz לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.8.02
5060 הודעות, 2 פידבק
   11:57   18.06.15   
אל הפורום  
  7. הערה קטנה  
בתגובה להודעה מספר 1
 
   לא מומלץ לעשות:
 + ' ' 

כדאי למצוא את ההפרש :
 int capital_delta = abs('A' - 'a') 

ולהשתמש בו


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
simond15  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 21.8.10
1144 הודעות, 3 פידבק
   16:24   18.06.15   
אל הפורום  
  8. כמובן שאתה צודק אבל....  
בתגובה להודעה מספר 7
 
   הנחתי שהרעיון זה לא להשתמש בכל מיני פונקציות מוכנות(כמו abs).
כי אחרת, אז ברור שמומלץ גם להשתמש בפונקציות כמו toupper, tolower, isupper, islower וכו'...



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
inno3D
חבר מתאריך 21.4.02
4533 הודעות
   19:09   18.06.15   
אל הפורום  
  9. אבל אתה יכול לכתוב בעצמך את abs..  
בתגובה להודעה מספר 8
 
   עדיף בשביל למנוע כאלה מצבים
לא ברור איך ע"י הופסת התו רווח ל 'A' אתה מקבל 'a' אם אתה לא מכיר את הסדר של תווי ה ASCII


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
aCoZz 
חבר מתאריך 19.7.06
17692 הודעות
   00:32   18.06.15   
אל הפורום  
  5. תהנה :  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 18.06.15 בשעה 00:55 בברכה, aCoZz
 
https://rotter.name/User_files/nor/5581eccf1e87b6f5.txt


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
aCoZz 
חבר מתאריך 19.7.06
17692 הודעות
   00:50   18.06.15   
אל הפורום  
  6. הבעיה שלך שאתה יוצא מגבולות המערך למרות שאמרת שיש 100 בפועל הוקצו  
בתגובה להודעה מספר 5
 
   ערכתי לאחרונה בתאריך 18.06.15 בשעה 00:57 בברכה, aCoZz
 
מספר התווים שהכנסת


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net