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

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



  #2  
ישן 29-10-2012, 20:50
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 1 שנכתבה על ידי hwarang שמתחילה ב "כתיבת תוכנית בjava"

ג'אווה אני לא יודע, אז פתרון כללי...

1. הגדרת וקטור של int-ים, משתנה זמני לאחסון המספר הגדול (או הקטן) ביותר עד כה, ומונה כדי לספור כמה פעמים כבר עלית מספר (שאותו תאתחל ל 0)
2. לולאה שרצה כל עוד הקלט שונה מ 0
3. הכנסת הקלט לוקטור אם הוא גדול מ 0 (ושלם? אני משער שתצטרך לבדוק, או שלא, תלוי בהנחיותיך)
4. אחרי הלולאה - מיין את הוקטור מגדול לקטן או קטן לגדול (לא יודע אם רביעי בגודלו הכוונה מלמטה או מלמעלה)
5. הכנס במשתנה הזמני לאחסון המספר הגדול (או הקטן) מסעיף 1 את הערך הראשון בוקטור
6. תתחיל לרוץ בלולאה על הוקטור הממויין, בכל פעם שהערך גדול יותר (או קטן יותר) מהערך השמור, אחסן את הערך הזה במשתנה הזמני (סעיף 5), וקדם את המונה שסופר כמה פעמים כבר עלית מספר (סעיף 1) - ב 1. תנאי הלולאה צריך להיות שלא הגעת לסוף הוקטור וגם שהמונה הזה - קטן מ 3 (כי אחרי שעברת 3 מספרים גדולים יותר מהמספר הראשון, אתה במספר הרביעי בגודלו) - ואז הגענו למספר הרצוי, ואפשר לצאת מהלולאה
7. תדפיס את הערך שבמשתנה שבסעיף 5

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

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

כתבתי ב PHP ונראה לי שעובד

קוד PHP:
<?php

$arr 
= array();

echo 
"Please enter many numbers, ENTER after each number, and 0 when you're done. ";
while ((
$input trim(fgets(STDIN))) != 0)
        if (
$input 0)
                
$arr[] = (int) $input;

if (empty(
$arr))
        die(
"No valid numbers were entered, quitting! \n");

sort($arrSORT_NUMERIC);
$biggest_so_far reset($arr);
$count 0;

foreach(
$arr as $number)
        {
                if (
$number $biggest_so_far)
                        {
                                
$biggest_so_far $number;
                                
$count++;
                        }
                if (
$count == 3)
                        break;
        }

if (
$count == 3)
        echo 
'The 4th value is ' $biggest_so_far;
                else
                        echo 
'There are no 4 different values in the user input, only ' . ($count+1) . '. Largest one being ' $biggest_so_far;
echo 
"\n";
?>

ריצה:
קוד:
$ php 4th.php Please enter many numbers, ENTER after each number, and 0 when you're done. 6 4 9 36 76 36 9 8 6 20 0 The 4th value is 9 $ php 4th.php Please enter many numbers, ENTER after each number, and 0 when you're done. 5 8 5 8 5 8 3 0 There are no 4 different values in the user input, only 3. Largest one being 8
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 30-10-2012, 16:52
צלמית המשתמש של Eran
  משתמש זכר Eran Eran אינו מחובר  
 
חבר מתאריך: 27.02.02
הודעות: 4,536
שלח הודעה דרך ICQ אל Eran
בתגובה להודעה מספר 4 שנכתבה על ידי שימי שמתחילה ב "למה x!=10? אמרנו x!=0 ... היא..."

!@##@%#&$*%^
למה לסבך עניינים?

זה תרגילים ראשונים והכוונה כנראה ליצירת מערך של INT בגודל 4
מספיק לזכור רק 4 מספרים הגדולים ביותר. לא צריך לזכור את כל ההסטוריה ולכן וקטור לא שייך לכאן
זהירות - ספויילר!



@ hwarang תמחק את הוקטור של שימי ותמשיך מכאן...
אולי עכישו יהיה לך יותר קל עם המיון :]
_____________________________________

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://fresh.clanteam.com/list.png]

[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://fresh.clanteam.com/?https://2010-uploaded.fresh.co.il/2010/09/21/52868411.gif,http://www.boredpanda.com/blog/wp-content/themes/mimbo2.2/images/subscribe-panda-605px.png]


נערך לאחרונה ע"י Eran בתאריך 30-10-2012 בשעה 16:57.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #6  
ישן 30-10-2012, 17:53
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 5 שנכתבה על ידי Eran שמתחילה ב "!@##@%#&$*%^ למה לסבך..."

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

אא"כ אתה אומר שוקטור זה משהו שדורש תואר שני בג'אווה (כמו הרבה דברים אחרים בג'אווה "הפשוטה" ש"הכל קל לעשות בה"), ואז, אולי, יש לך נקודה. גם סתם List הוא משהו מסובך יותר מהקוד בדוגמה שלי? (שאני מקווה שאינך מחשיב למסובך. לקוד של כ 10-20 שורות קצרות קשה להיות "מסובך"...)

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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #11  
ישן 16-11-2012, 08:59
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 10 שנכתבה על ידי fap שמתחילה ב "פתרון זהה בפייתון"

אם אתה אומר.

קוד:
$ python Python 2.7.3 (default, Oct 22 2012, 10:21:35) [GCC 4.5.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> sorted([int(i) for i in iter(raw_input, "0")])[-4] 4 9 36 76 36 9 8 6 20 0 20 >>>

המספרים השונים שהוכנסו, ממויינים לנוחותך: 4,6,8,9,20,36,76

מאיזה כיוון אני אמור לספור כדי ש 20 יהיה הרביעי בגודלו?

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

על אי-הקריאות של הקוד [לפחות על ידי מי שלא מכיר את השפה] בדוגמא שמטרתה הייתה להראות... אלגוריתם, אני בכלל לא הולך לדבר... גם לא על אי טיפול בשגיאות משתמש סבירות, כגון אי הכנסת מספיק מספרים:
קוד:
Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list index out of range
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
נמאס לכם לזכור סיסמאות? לחצו כאן!

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

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

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

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

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



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

הדף נוצר ב 0.08 שניות עם 10 שאילתות

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

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