בס"ד
כתוב תכנית הקולטת מספר ובעזרת פעולה (שלא מחזירה ערך) בודקת אם המספר פלינדרום או לא.
תודה לעוזרים![]()
בס"ד
כתוב תכנית הקולטת מספר ובעזרת פעולה (שלא מחזירה ערך) בודקת אם המספר פלינדרום או לא.
תודה לעוזרים![]()
כעיקרון זאת ריקורסיה ,
תנאי יציאה הוא שהמספר קטן מ10..
בודקת כל פעם האם המספר שמתקבל , הספרה הראשונה והאחרונה שלו שוות , אם כן
תמחוק אותן ותכנס לריקורסיה ללא הספרה הראשונה והאחרונה, אם לא , צא..
ככה תקבלי בסוף בסוף האם המספר פלינדרום.
בס"ד
אני יודעת לעשות את זה ב - #c.
אבל בויז'ואל בייסיק אני לא יודעת כ"כ.
אתה יכול להגיד לי בבקשה איך עושים את זה ב - vb?
תודה על העזרה.
שבוע טוב!
למה רקורסיה? ניתן לעשות זאת בלולאה פשוטה...
אם את יודעת לעשות את זה בשפת תכנות עילית אחרת, אז איפה הבעיה? את לא יודעת את תחביר השפה? אין לך רעיונות?
בכל אופן, אני חושבת שרקורסיה זו סתם הסתבכות. עדיף 2 מצביעים - על ראש המחרוז ועל סוף המחרוזת, וכל פעם משווים את הערכים עליהם הם מצביעים ואז מקדמים (את הראשון קדימה ואת האחרון אחורה) וממשיכים להשוות. מפסיקים את הלולאה כאשר אין שוויון או כאשר מיקומי המצביעים מתחלפים (כלומר זה שהצביע על הראשון נמצא במיקום גבוה יותר מזה שהצביע על האחרון).
בס"ד
את יכולה להראות לי איך עושים את זה בג'אווה?
שבוע טוב![]()
בבקשה.קוד:public class Palindrome { public static void main(String[] args) { palindrome("12345654321"); } public static void palindrome(String string) { boolean palindrome = true; for (int i = 0; i < string.length(); i++) { if (string.charAt(i) != string.charAt(string.length()-i-1)) { palindrome = false; System.out.println("That's not a palindrome!"); break; //There's no need to continue the loop... } } if (palindrome) System.out.println("WOHOO! A palindrome!! :D"); } }
אני לא יודע אילו פעולות ניתן לבצע על מחרוזת ב- VB, אז אני לא יכול לעזור לך בזה.
בס"ד
איך עושים את זה בלי break; כי אני לא יודעת לפרש את זה ל - #C ...
תודה על העזרה!
גם לא משתמשים בלולאת for אלא while....
כשאני אגיע הביתה אני אעלה לך קוד פשוט יותר...
בס"ד
תודה רבה לכם![]()
זה מטפל במחרוזות. אני מניח שיש צורך בלולאת while כאשר זה רק מספרים.
אני כבר רואה שאפשר לייעל את התוכנית ולעשות שהיא תרוץ עד חצי אורך המחרוזת במקום אורך המחרוזת.
את יכולה להעיף את ה- break. זה רק יוצא מהלולאה. את יכולה לרשום במקום זה:
ואז הלולאה תסתיים. אבל אני לא יודע אם מותר לעשות את זה בבגרות ובכלל. ם.םקוד:i = string.length();
בס"ד
חח לא ציינתי את זה מקודם, אבל אני צריכה רק על מספרים.
חח ויפה לא ידעתי שאפשר לעשות פעולה, שמטפלת גם בממספרים וגם במחרוזות. עכשיו אני יודעתתודה!
אני לא מבינה, את מקבלת int או string כפרמטר?
אם זה int, אז בטח יש ב- VB פעולת מודולו וכך את מקבלת את הספרה האחרונה של המספר, ותוצאת החלקות בשלמים של המספר ב- zzz 10^(length-1) zzz תיתן לך את הספרה השמאלית ביותר.
אם זה string, מצביעים מספיקים...
בס"ד
int.
תראי לי בבקשה איך עושים את זה בג'אווה.
שכחתי איך עושים ב - #C.
תודה רבה על העזרה!
קוד:import java.util.*; public class sivan { static Scanner s=new Scanner(System.in); public static void main(String[] args) { int num; System.out.println("הכנס מספר"); num=s.nextInt(); polyndrom(num); } public static void polyndrom(int n) { int mone=0,temp=n,i,m=0; while(temp>0) { temp=temp/10; mone++; } int[]maarach=new int[mone]; for(int j=maarach.length-1;j>=0;j--) { maarach[j]=n%10; n=n/10; } for( i=0;i<=(maarach.length-1)/2;i++) { if(maarach[i]!=maarach[maarach.length-1-i]) { System.out.println("not a polyndrom"); m=1; i=mone; } } if(m==0) { System.out.println("polyndrom"); } } }
כרגע 1 משתמשים צופים באשכול זה. (0 חברים ו 1 אורחים )
סימניות