לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

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



  #2  
ישן 11-11-2006, 04:10
צלמית המשתמש של ם_O
  משתמש זכר ם_O ם_O אינו מחובר  
 
חבר מתאריך: 15.08.06
הודעות: 465
בתגובה להודעה מספר 1 שנכתבה על ידי לירונה שמתחילה ב "חדשה בתחום זקוקה לעזרה בפונקציות"

ציטוט:
במקור נכתב על ידי לירונה
שלום לכולם,
מחפשת עזרה ממישהו שירד לעומק העניין בלולאות,
1. פונקציה שבודקת אם מס' הוא ראשוני ע"י שימוש בספריית STDIO בלבד...?
2. פונקציה שבודקת האם ספרותיו של מספר הן בסדר עולה?....
3. תוכנית שמחזירה את המחלקים הראשוניים של מספר?

אשמח לקבל אפילו הכוונה או הסברים לפיתרון.
תודה (-:


באמת שאני לא יודע איך אפשר לתת הכוונה לתוכניות כל כך בסיסיות, זה בסה"כ לבדוק נכונות לפי הגדרה :/ אז אני אכתוב את התוכניות עם הסבר.


1.
קוד PHP:
 int prime(int n){
for (
int i=2;i<n-1;++i//בדיקה האם קיים מחלק
    
if (n%== 0//i מחלק..
     
return 0//נחזיר 0, כי n לא ראשוני, ובזאת גם נצא מהפונקציה
return 1//הלולאה הסתיימה, כלומר n ראשוני, נחזיר 1



2.
קוד PHP:
 int Myfunction(int n){
while (
n){ //בגוף הלולאה נחלק בכל ריצה את n ב10 על מנת "לקצץ" את ספרת האחדות, בשבל, אחרי מספר ריצות כמספר הספרות, שזה המספר שאנחנו צריכים, n יהיה שווה 0 ונצא מהלולאה
if (n%10 < (n/10)%10
   return 
0//אם ספרת האחדות קטנה מספרת העשרות, הספרות אינן בסדר עולה. נחזיר 0
n/=10//"נקצץ" את ספרת האחדות
}return 1//הלולאה הסתיימה, לכן המספר בסדר עולה, נחזיר 1



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

קוד PHP:
 int fact(int n){
    
int current=1//משתנה שיכיל את מכפלת הגורמים שנמצאים בכל ריצה של לולאת הפור. זה נחוץ בגלל שיתכנו גורמים שמופיעים מספר פעמים
    
while (n!=1//בכל פעם שיימצא גורם נחלק את n באותו גורם, או יותר נכון נחלק במכפלת גורמים שאינם בהכרח כל הגורמים בכל ריצה של לולאה הפור, n יהיה שווה 1 לאחר חילוק בכל גורמיו הראשוניים שהרי מכפלתם שווה n, ועד אז נרוץ
    
{
          for (
int i=2;i<=n;i++) 
          {
              if ((
prime(i)) && (!(n%i))) //אם i ראשוני וגם מחלק את n
              
{
                 
printf("%3d"i); //נדפיס את i שהרי הוא גורם ראשוני
                 
current=current*i//נכפיל את current ב i כדי שנוכל אחרי זה לחלק את n בו, זה יקרה רק במידה שקיים גורם שמופיע יותר מפעם אחת...
              
}
          }
          
n/=current//נחלק את n במכפלת הראשוניים שמצאנו, אם זה כל הגורמים, הלולאה תסתיים
          
current=1//נאתחל את current בשביל הריצה הבאה
    
}
    return 
0;


prime
זאת הפונקציה מסעיף 1 כמובן.
_____________________________________
Any sufficiently advanced bug is indistinguishable from a feature

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

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

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 14:39

הדף נוצר ב 0.04 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2025 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר