מחרוזת בפסקל

הנה המשימה:

...אם N מספר זוגי התוכנית תייצר מילה אקראית באורך N המורכבת מאותיות גדולות בלבד...
 

gmorphus

New member
איך מייצרים מספר אקראי אתה יודע?

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

אבל אני עדיין לא מצליחה להבין אין לעשות את זה עם אותיות, לדוגמה מA- עד Z, איך זה אמור להיראות בנוסחה 'Something:=random('z'+'a'+?) +'a ?
 
זה בסי ?

אם כן, תמצא מספר בין 0-25.. ותעשה שהCHAR שלך שווה למספר +'a' אם זה אותייות קטנות או מספר +'A' לאותיות גדולות וגם בסי אין בעיה לעשות את זה אחרת, רנדום בין 'a' ל'z' כי סי מתייחסת לזה כמו אינטג'ר או כל מספר אחר (זה דבר מאוד נוח, אפילו בVB אין את זה)
 

zeevg12

New member
אם הבנתי אותך נכון זה ממש פשוט...

uses crt; var i,n:integer; st:string; begin clrscr; randomize; writeLn('enter a number'); readLn(n); if n mod 2=0 then begin for i:=1 to n do begin st:=st+chr(random(26)+65); end; writeLn; end else writeLn('the num is uneven'); readLn; end.​
אני מקווה שזה מה שהתכוונת...אם כן אז מקווה שעזרתי. תומר
 
מה זאת אומרת לא הולך? מה אתה מקבל

כשאתה מנסה להריץ? נורא מוזר לי...כי אצלי זה עובד פרפקט. בעצם כתבתי את הקוד על טורבו פסקל 7 שלי, בדקתי אותו אם הוא רץ טוב ואז העתקתי. אולי תגיד לי מה בדיוק אתה מקבל בהרצה כדי שאוכל להבין מה שגוי בקוד? בכל מקרה הוא כן אמור לקבל את זה כי אמרתי לו שהמפר יהיה ;chr(random(26)+65 וזה בעצם הופך את קוד האסקי שבין 65 ל-97 (כל האותיות הגדולות) לסימנים. תגיד מה לא פועל ואז אוכל לעזור יום טוב! תומר
 
למעלה