ABA


"צריך עזרה בשאלה בפסקל..."
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #5872 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 5872
psyduck

דרג אמינות חבר זה
   22:10   05.05.03   
אל הפורום  
  צריך עזרה בשאלה בפסקל...  
 
   ככה...יש לי עוד מעט מגן... ואני לא מצליח לעשות פרוצדורה שמקבלת מחרוזת
ומוחקת תווים שמופיעים יותר מפעם אחת.. לדוגמא אם יש
abaabcc
אז הוא יציג לי רק
abc


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  אז ככה.... jossepe_4u  05.05.03 22:48 1
     אתה יכול גם לעשות שימוש nesher  05.05.03 22:55 2
  הבנתי איך עושים את זה.... psyduck 05.05.03 23:23 3
     מישהו יכול בבקשה להעלות Blood-Runner 06.05.03 18:31 4
         התוכנה שלי נראה כביכול טובה אבל ''כשמשגעים'' Fire_Bullet 08.05.03 01:13 5
             אל תעשה רווח nesher  08.05.03 14:13 6
                 למה לא לעשות רווח ?!?!?! Fire_Bullet 09.05.03 21:36 7
                     איך מכניסים קוד לשדה כזה של קוד (קופסה אפורה) Vidi 09.05.03 21:41 8
                         רושמים קוד... Ami 12.05.03 16:20 13
  יש פתרון בO(N) dryice 09.05.03 22:52 9
     לא הבנתי... Fire_Bullet 12.05.03 00:51 10
         קוד C, פשוט: dryice 12.05.03 01:09 11
             הפונקציה שלך לא מספיק טובה... Dudenland 12.05.03 15:52 12
                 טעות שלי, לא קראתי באמת את הכתוב. dryice 12.05.03 17:27 14

       
jossepe_4u 
חבר מתאריך 18.3.02
258 הודעות, דרג אמינות חבר זה
   22:48   05.05.03   
אל הפורום  
  1. אז ככה....  
בתגובה להודעה מספר 0
 
   בוא אני יתן לך דרך חשיבה...
ועוד כמה דקות אני יתן לך פתרון מסודר

אתה צריך להכניס בהגדרה של הפרו' מחרוזת שמתעדכנת
אתה צריך לרוץ על התוים במחרוזת
אתה לוקח מעין "מונה" מסוג CHAR ששומר לך את התו הראשון
מסוגו ... ואתה רץ ... ברגע שאתה מגיע
אתה מבצע את הפרוצדורה Delete

מקווה שהבנת


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

דרג אמינות חבר זה
   22:55   05.05.03   
אל הפורום  
  2. אתה יכול גם לעשות שימוש  
בתגובה להודעה מספר 1
 
   במחרוזת עזר
שבה אתה שם את התווים
אתה בודק אם יש את התו שאתה רוצה להכניס, אם יש הוא עובר לבא
אם אין אז הוא מכניס....
ואז אתה מחזיר את המחרוזת עזר

אם אתה עושה var לפני המחרוזת שמתקבלת בשורה של הגדרת הפרו'
אז פשוט תעביר את מה שבמחרוזת העזר למחרוזת הרגילה וזהו


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

דרג אמינות חבר זה
   23:23   05.05.03   
אל הפורום  
  3. הבנתי איך עושים את זה....  
בתגובה להודעה מספר 0
 
   אבל זה לא עובד לי טוב..
יש לי בעיה אם הריצה של שתי הלולאות...
אני יודע שצריך לעשות while
ואני לא יודע מה לכתוב בתנאי..


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

דרג אמינות חבר זה
   18:31   06.05.03   
אל הפורום  
  4. מישהו יכול בבקשה להעלות  
בתגובה להודעה מספר 3
 
   את התכנית!!

בבקשה..


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

דרג אמינות חבר זה
   01:13   08.05.03   
אל הפורום  
  5. התוכנה שלי נראה כביכול טובה אבל ''כשמשגעים''  
בתגובה להודעה מספר 4
 
   אותה ומכניסים לה הרבה אותיות ומספרים היא כושלת...
http://rotter.net/User_files/nor/3eb984fd1a2e8943.txt

מישהו מוכן להסביר לי מדוע התוכנית לא פועלת באופן מושלם?


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

דרג אמינות חבר זה
   14:13   08.05.03   
אל הפורום  
  6. אל תעשה רווח  
בתגובה להודעה מספר 5
 
   בין הפקודה לסוגריים דבר ראשון


program deleterr;
uses crt;
var
str: String;
procedure deleter(var str: String);
var
i,a,b: Integer;
begin
for b:=1 to 2 do
begin
for a:=1 to length(str) do
begin
for i:=1 to length(str) do
begin
if (a<>i) and (str=str) then
delete (str,a,1);
end;
end;
end;
end;
begin
writeln('enter word:');
readln(str);
deleter(str);
writeln(str);
readln;
end.

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


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

דרג אמינות חבר זה
   21:36   09.05.03   
אל הפורום  
  7. למה לא לעשות רווח ?!?!?!  
בתגובה להודעה מספר 6
 
   עבר עריכה לאחרונה בתאריך 09.05.03 בשעה 21:37
 
התוכניות עובדות בדיוק באותה יעילות.
זה נראה, ויזואלית, יותר מסודר ועושה רושם על בוחנים מסויימים.
לכן אני לא רואה סיבה לא להשתמש ברווחים- ההיפך הוא הנכון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Vidi
חבר מתאריך 1.10.17
591 הודעות, דרג אמינות חבר זה
   21:41   09.05.03   
אל הפורום  
  8. איך מכניסים קוד לשדה כזה של קוד (קופסה אפורה)  
בתגובה להודעה מספר 7
 


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

דרג אמינות חבר זה
   16:20   12.05.03   
אל הפורום  
  13. רושמים קוד...  
בתגובה להודעה מספר 8
 
  




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

דרג אמינות חבר זה
   22:52   09.05.03   
אל הפורום  
  9. יש פתרון בO(N)  
בתגובה להודעה מספר 0
 
   במקום פתרונות איטיים שדורשים O(N^2) זמן, אפשר לפתור בO(N)
צריך שני אינדקסים למחרוזת. אחד לקריאה ואחד לכתיבה.

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

DRYICE


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

דרג אמינות חבר זה
   00:51   12.05.03   
אל הפורום  
  10. לא הבנתי...  
בתגובה להודעה מספר 9
 
   אתה יכול להסביר זאת יותר פשוט?...


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

דרג אמינות חבר זה
   01:09   12.05.03   
אל הפורום  
  11. קוד C, פשוט:  
בתגובה להודעה מספר 10
 
   עבר עריכה לאחרונה בתאריך 12.05.03 בשעה 01:12
 

int shrink(char *str)
{
int read,write;
read=write=0;
while (str[write])
{
read++;
if (str[read]!=str[write]) write++;
str[write]=str[read];
}
retrun 0;
}

DRYICE


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

דרג אמינות חבר זה
   15:52   12.05.03   
אל הפורום  
  12. הפונקציה שלך לא מספיק טובה...  
בתגובה להודעה מספר 11
 
   מה שהיא מבצעת, זה ביטול רציפויות, כלומר רק תווים שהם גם זהים וגם צמודים ימחקו.
לדוגמה, המחרוזת "abbabbc" תשתנה למחרוזת "ababc", וכאמור, זוהי לא המטרה...

Dudenland


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

דרג אמינות חבר זה
   17:27   12.05.03   
אל הפורום  
  14. טעות שלי, לא קראתי באמת את הכתוב.  
בתגובה להודעה מספר 12
 
   אבל אל חשש, גם לבעיה הזאת יש פתרון בO(N)


void foo(char *str)
{
int idx[256]
int i,read,write;
for (i=0;i<256;++i) idx[i]=0;
read=write=0;
while (str[read]) {
if (!idx[str[read]]) {
idx[str[read]]=1;
str[write++]=str[read];
}
read++;
}
str[write]=0;
}

DRYICE
DRYICE


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

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

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



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