ABA


"יש לכם בעיה בפסקל? תרגיל? תרשמו פה!"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #5575 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 5575
TheTom

   00:09   05.04.03   
אל הפורום  
  יש לכם בעיה בפסקל? תרגיל? תרשמו פה!  
 
   אם יש לך תרגיל בפסקל או איזו בעיה בבקשה תרשמו פה..פשוט יש לי מלא זמן ואני משועמם ובא לי לפתור תרגילים )))


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  אני לא מתקשה בזה או משהו אבל אני מחפש את הדרך Fire_Bullet 05.04.03 15:55 1
     תעשה ככה: Benayoun15 05.04.03 16:21 2
         ככה עשיתי: Fire_Bullet 05.04.03 16:23 3
             בשורה הזאת: Fire_Bullet 05.04.03 17:32 5
                 כן זה אמור להיות ככה... TheTom 05.04.03 21:29 6
                     מה אתה עונה לי על ההודעה הזאת?? Fire_Bullet 05.04.03 21:51 7
             הרבה פחות מאופטימלי. dryice 06.04.03 16:07 14
         אני עשיתי גם בדרך שלך וזה לא יוצא לי נכון... Fire_Bullet 05.04.03 16:41 4
             אני חושב שהבנתי למה... Dudenland 05.04.03 23:11 10
     ראיתי שכולם עשו פרוצדורה אז גם אני עשיתי משהו jossepe_4u  05.04.03 22:57 8
         בגלל שלא היה צריך לעשות הרבה שינויים jossepe_4u  05.04.03 23:01 9
             מחזרוזת היא מערך רווחים שהוגדר בצורה מיוחדת.. Vidi 06.04.03 10:44 11
                 תגובה להודעה שלמעלה no_angel 06.04.03 13:38 12
                     צודק... טעות שלי... Dudenland 06.04.03 15:56 13
                         למה התכוניות הענקיות האלה..?? Blood-Runner 07.04.03 00:13 15
                             Bloody? זו את? Vidi 07.04.03 10:10 16
                             כן... כתוב... Fire_Bullet 07.04.03 23:22 17
  אם תצליח לעשות את זה אתה גדול... ShocKi  08.04.03 13:29 18
     השאלה לא ממש מובנת jossepe_4u  08.04.03 14:21 19
         הנה ShocKi  08.04.03 15:43 20
             NP HARD dryice 08.04.03 18:59 21
                 מה? ShocKi  09.04.03 12:21 22
                     סליחה מיהרתי. dryice 09.04.03 13:06 23
                         מה?! ShocKi  09.04.03 16:43 24
                             זה יותר מסובך מזה: dryice 09.04.03 21:52 25
                                 בגלל זה ShocKi  09.04.03 22:02 26

       
Fire_Bullet

   15:55   05.04.03   
אל הפורום  
  1. אני לא מתקשה בזה או משהו אבל אני מחפש את הדרך  
בתגובה להודעה מספר 0
 
   היעילה ביותר, בפסקל, לבנות פונקציה שכל מה שהיא עושה זה מקבלת STRING
ועליה למחוק את כל הרווחים הכפולים, המשולשים וכו'.
לדוגמא:
התוכנה מקבלת את המשפט הבא:
mush++mush+++Hagever
(כל + הוא סימן לרווח)
התוכנה תפלוט:
mush+mush+Hagever

מבין?... אני יודע איך לעשות זאת בכמה דרכים אך אני מחפש את הדרך הפשוטה
ביותר.

תודה מראש


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Benayoun15
חבר מתאריך 7.6.02
1026 הודעות
   16:21   05.04.03   
אל הפורום  
  2. תעשה ככה:  
בתגובה להודעה מספר 1
 
   תרוץ על הסטרינג
ברגע שהוא מוצא רווח תבדוק אם לפניו יש רווח ואם כן תמחוק


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

   16:23   05.04.03   
אל הפורום  
  3. ככה עשיתי:  
בתגובה להודעה מספר 2
 
   עבר עריכה לאחרונה בתאריך 05.04.03 בשעה 16:24
 

program word_del;
var
str: String;

procedure Check_spaces (var str: String);
var
len,i,count,posi: Integer;
begin
len:= Length (str);
for i:=1 to len do
begin
if (str=' ') and (str=' ') then
begin
count:= count+1;
if count=1 then
posi:=i;
end
else
if count>0 then
begin
delete (str,posi,count);
count:=0;
end;
end;
end;
begin
writeln ('enter a sentence:');
readln (str);
check_spaces (str);
writeln (str);
readln;
end.


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

   17:32   05.04.03   
אל הפורום  
  5. בשורה הזאת:  
בתגובה להודעה מספר 3
 
   עבר עריכה לאחרונה בתאריך 05.04.03 בשעה 17:34
 
if (str=' ') and (str=' ') then
זה אמור להיות ככה:
if (str{i}=' ') and (str{i-1}=' ') then


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

   21:29   05.04.03   
אל הפורום  
  6. כן זה אמור להיות ככה...  
בתגובה להודעה מספר 5
 
  


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

   21:51   05.04.03   
אל הפורום  
  7. מה אתה עונה לי על ההודעה הזאת??  
בתגובה להודעה מספר 6
 
   LOL
בגלל שבפורום אין סוגריים מרובעים אז כתבתי לכם שהשורה הזאת היא במקור
( אצלי) כמו שכתבתי עם הסוגריים המסולסלות.

אתה יכול להגיד לי למה הקטע קוד שכתבתי מתחת להודעה זו לא פועל??


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

   16:07   06.04.03   
אל הפורום  
  14. הרבה פחות מאופטימלי.  
בתגובה להודעה מספר 3
 
   אתה משתמש בפונקציה delete והיא הרי עובדת בO(N)
(אין ברירה אחרת)
ועל כן כל התוכנית עובדת בO(N^2) ואילו אפשר לעבוד בO(N.

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

DRYICE


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

   16:41   05.04.03   
אל הפורום  
  4. אני עשיתי גם בדרך שלך וזה לא יוצא לי נכון...  
בתגובה להודעה מספר 2
 
   ככה עשיתי את זה וזה לא מוריד את כל הרווחים...

procedure Check_spaces (var str: String);
var
len,i,count,posi: Integer;
begin
len:= Length (str);
for i:=1 to len do
begin
if (str=' ') and (str=' ') then
begin
delete (str,i-1,1)
end;
end;
end;

למה זה לא פועל ???


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

   23:11   05.04.03   
אל הפורום  
  10. אני חושב שהבנתי למה...  
בתגובה להודעה מספר 4
 
   אני לא שמעתי על האפשרות להשתמש במחרוזת כמערך של תווים.
לכן, יש לך 2 אפשרויות:

1.


function del_spc(str : string) : string;
var
len, i : integer;
begin
len:= length(str);
for i:= 2 to len do
if((copy(str, i, 1) = ' ') and (copy(str, i - 1, 1) = ' ')) then
delete(str, i, 2);

del_space:= str;
end;


זוהי הפונקציה שיכולה לממש את רצונך.

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


str1:= concat(str);

ואז, תחליף את כל הפעולות שביצעת על str ב-str1.
אם אני לא טועה, זה צריך לפתור את הבעיה...

Dudenland


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
jossepe_4u 
חבר מתאריך 18.3.02
258 הודעות
   22:57   05.04.03   
אל הפורום  
  8. ראיתי שכולם עשו פרוצדורה אז גם אני עשיתי משהו  
בתגובה להודעה מספר 1
 
   אבל אם תרצה פונקציה תגיד...
תסתכל בקובץ טקסט הבא
http://rotter.net/User_files/nor/3e8f35240af5b135.txt


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
jossepe_4u 
חבר מתאריך 18.3.02
258 הודעות
   23:01   05.04.03   
אל הפורום  
  9. בגלל שלא היה צריך לעשות הרבה שינויים  
בתגובה להודעה מספר 8
 
   אז הנה הפיתרון בצורת פונקציה
http://rotter.net/User_files/nor/3e8f360d12c4319d.txt


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Vidi
חבר מתאריך 1.10.17
591 הודעות
   10:44   06.04.03   
אל הפורום  
  11. מחזרוזת היא מערך רווחים שהוגדר בצורה מיוחדת..  
בתגובה להודעה מספר 9
 
עבר עריכה לאחרונה בתאריך 06.04.03 בשעה 10:46
 
ע"י המהדר כך שלא תצטרך לכתוב את אורכו ושקלטו יתקבל כפלט אחד אבל בעיקרון אפשר וגם רצוי לעשות כך:
var
variable:string;
אני משתמש בזה מכיוון שלדוגמא אם תשמש פונקציה
copy
להעתיק צאר אחד אז הוא יחזיר לך סטרינג וככה לא תוכל לעבוד על הפקודה עם הפונקציה
ORD
(שעובדת על צארים) על ההערך שהוחזר....

דרך אגב josepe בקשר לקוד שלך:
אתה לא חייב לעשות readln(n) בסוף...
אתה רוצה שזה יחכה נכון? אתה יכול פשוט לעשות
readln;
וככה תוכל להמנע משגיאת
type mismatch...
מקוה שהבנת


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
no_angel
חבר מתאריך 20.3.02
4989 הודעות
   13:38   06.04.03   
אל הפורום  
  12. תגובה להודעה שלמעלה  
בתגובה להודעה מספר 11
 
   מי שאמר שאי אפשר להשתמש במחרוזת כמו מערך
זה לא נכון אחר תאין לך אפשרות לעשות משהו


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

   15:56   06.04.03   
אל הפורום  
  13. צודק... טעות שלי...  
בתגובה להודעה מספר 12
 
   בכל אופן, הפונקציה שנתתי עובדת, ככה שזה לא כל-כך משנה...

Dudenland


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

   00:13   07.04.03   
אל הפורום  
  15. למה התכוניות הענקיות האלה..??  
בתגובה להודעה מספר 13
 
   לא שמעתם על הפונקציה..
pos???
שמוצאת ערך מבוקש במחרוזת...

פשוט לעשו..


x:=pos(' ',str);

ואח"כ פשוט למחוק 2 רווחים זזהו.
מישהו רוצה שאני יכתוב את הכול?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Vidi
חבר מתאריך 1.10.17
591 הודעות
   10:10   07.04.03   
אל הפורום  
  16. Bloody? זו את?  
בתגובה להודעה מספר 15
 


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

   23:22   07.04.03   
אל הפורום  
  17. כן... כתוב...  
בתגובה להודעה מספר 15
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   13:29   08.04.03   
אל הפורום  
  18. אם תצליח לעשות את זה אתה גדול...  
בתגובה להודעה מספר 0
 
   עבר עריכה לאחרונה בתאריך 08.04.03 בשעה 13:31
 
אני צריך לכתוב תוןכנית שקולטת תאריכים (1 -30..) + מספר משמרות רצויות + שם העובד...
ומכינה סידור עבודה.
כל יום 4 אנשים מקסימום... (חובה לפחות תאריך 1 לכל עובד..)

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


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
jossepe_4u 
חבר מתאריך 18.3.02
258 הודעות
   14:21   08.04.03   
אל הפורום  
  19. השאלה לא ממש מובנת  
בתגובה להודעה מספר 18
 
   אם אתה יכול יותר לפרט ולתת דוגמא זה יהיה טוב


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   15:43   08.04.03   
אל הפורום  
  20. הנה  
בתגובה להודעה מספר 19
 
   עבר עריכה לאחרונה בתאריך 08.04.03 בשעה 15:44
 
תוכנית.. שקולטת:
1. שם עובד.
2. מספר משמרות רצויות
3. תאריכי משמרות (לחודש 1) יעני רק לחודש דצמבר או רק לינואר.. ולא ליותר מחודש אחד...
מותר עד 4 עובדים ביום מסוים!, לכן אם למשל 8 אנשים הגישו משמרת לאותו ים התוכנית צריכה לברור ולהחליט על 4 בלבד!. התוכנית צריכה להיות גם מאוזנת..נגיד אם משה ודני הגישו כל אחד 15 תאריכים ומשה קיבל 14 ודני 3 אז זה לא טוב... היא צריכה כאילו לברר ולאזן...
(מינימום משמרת אחת לכל עובד!)

התוכנית תדפיס פלט של
1. יום בחודש ולידו שמות של 4 עובדים העושים משמרת באותו יום...


כאפיש?!


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


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

   18:59   08.04.03   
אל הפורום  
  21. NP HARD  
בתגובה להודעה מספר 20
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   12:21   09.04.03   
אל הפורום  
  22. מה?  
בתגובה להודעה מספר 21
 
  


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


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

   13:06   09.04.03   
אל הפורום  
  23. סליחה מיהרתי.  
בתגובה להודעה מספר 22
 
   הבעיה שתיארת היא NP קשה, כלומר לא ידוע (ולהערכתי לא יהיה
ידוע בעתיד הנראה לעין) איך לפתור את הבעיה באופן יעיל.

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

יש מספר שיטות להתמודד עם בעיה כזאת, שידוע שהיא מאוד קשה:
1) להעביד מחשבים חזקים הרבה זמן ולמצוא פתרון.
2) למצוא בזמן סביר פתרון, שהוא אידיאלי בסבירות גבוהה.(לא תמיד
אפשרי)
3) למצוא בזמן סביר פתרון, שהוא אולי לא אידאלי אבל הוא בוודאי
קרוב אליו עד כדי חסם טוב ידוע.
4) למצוא בזמן סביר פתרון, שהוא אולי לא אידאלי, אבל יש לנו
סיבות טובות להאמין שהוא מאוד קרוב לאידאלי, אפילו שלא ניתן
להוגיח כזה דבר(בעיקר עקב מקרים חריגים)
5) למצוא את הפתרון הנכון, בזמן שהוא לרוב סביר, אבל
לפעמים איום ונורא.

אני אישית מאוד מתעניין בפתרונות מהסוג 4,5, כל מיני
חיפושים היוריסטים, אלגוריתמים גנטיים וכו.

DRYICE


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   16:43   09.04.03   
אל הפורום  
  24. מה?!  
בתגובה להודעה מספר 23
 
   לא הבנתי כלום מהסעיפים ובקשר לאיך זה יבחר את האנשים אז בצורה הכי שווה שיכולה להיות...

נגיד.
שלא יהיה לעובד 1 4 משמרות ולעובד 2 יהיו 20 משמרות... (אלא אם הוא הגיש 4 וזה הגיש יותר..)


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


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

   21:52   09.04.03   
אל הפורום  
  25. זה יותר מסובך מזה:  
בתגובה להודעה מספר 24
 
   אם שני אנשים בקשו שיתנו להם 10 משמרות,
ויש לי 14 לתת להם, אני אשאף לתת 7 ו7
אבל אם עובד אחד ביקש 20 ועובד שני ביקש 7 ויש לי 20 משמרות
לתת להם, איך "הוגן" לחלק? 7,13 או 0,20 כדי לרצות אחד מהם
באופן מלא, או אולי משהוא באמצע 6,14 או 4,16.
זה ממש לא ברור.


DRYICE


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   22:02   09.04.03   
אל הפורום  
  26. בגלל זה  
בתגובה להודעה מספר 25
 
   אמרתי מספר משמרות רצויות.. אם אחד ביקש 7... אז הוא יקבל 7 ומטה!... זה לא בעייה...


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


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

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

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



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