עזרה בפסקל - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

עזרה בפסקל


sherlock1212

Recommended Posts

טוב תראו זה הדבר הראשון שאני עושה אז לא לצחוק(בבקשה)וזה לא הולך לי כ"כ טוב

program lost;

uses

crt;

var i,a,b: integer;

BEGIN

a:=108;

for i:=1 to 108 do

begin

writeln(a);

a:=a-1;

delay(100);

end;

write('>:');

read(b);

if b=4815162342 then

writeln(a);

a:=a-1;

delay(100);

else;

writeln('booooooom');

END.

יש שתי בעיות שגילתי:

1.המשתנה ב-integer לא יכול להכיל את המספר 4815162342 ולכן אני צריך משהו שהמשתנה שלו יכול להכיל מספר כזה.

2.יש בעיה עם ה-"else" ואני לא יודע מה היא...הפרי פסקל רושם לי שצריך ";" ולא "else"אבל אני צריך את ה"else" הזה.

תודה לעוזרים

קישור לתוכן
שתף באתרים אחרים

תנסה Long במקום int

ותוריד את הנקודה פסיק אחריי ה-else

ובלי שום קשר, התוכנית כתובה ממש גרוע.

קודם כל תודה לשתיכם

דבר שני בקשר לזה שהתוכנית כתובה ממש גרוע זה בגלל שזה הדבר היחיד שאני יודע לעשות בנתיים....

אפשר להגיד שאני לא יודע כלום עדיין בפסקל...אז....

עריכה:

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

קישור לתוכן
שתף באתרים אחרים

יש שתי בעיות שגילתי:

1.המשתנה ב-integer לא יכול להכיל את המספר 4815162342 ולכן אני צריך משהו שהמשתנה שלו יכול להכיל מספר כזה.

2.יש בעיה עם ה-"else" ואני לא יודע מה היא...הפרי פסקל רושם לי שצריך ";" ולא "else"אבל אני צריך את ה"else" הזה.

1. מגדיר את משתנה b כ longint.

2. השתמשת ביותר מפקודה אחת ב then ולא שמת בלוק (begin ו end). ולפני else לא שמים ; !

program lost;

var i,a: integer; b:longint;

begin

a:=108;

for i:=1 to 108 do

begin

writeln(a);

a:=a-1; {dec(a); אפשר להשתמש גם ב }

end;

write('>:');

read(b);

if b=481516234

then begin

writeln(a);

a:=a-1; {dec(a); אפשר להשתמש גם ב }

end { -> else אין ; לפני }

else

writeln('booooooom');

end.

היו לך כמה בעיות תחביר. וגם קראת ליחידה crt אבל לא השתמשת בפקודה לניקוי המסך?

בכל מקרה לא הבנתי את התוכנית הזאת.. אתה המצאת? (מה הסיכויים שמישהו יקלוט את המספר 4815162342 ?)

במשפטי תנאי לא שמים ; אחרי כול פקודה כזכור לי 

שמים ; אחרי כל פקודה, אבל במקרה ויש else אסור שיהיה לפניו ; .

קישור לתוכן
שתף באתרים אחרים

הדרך הנכונה לעשות את זה היא:

for i:=108 to 1

ולהשתמש ב-i ולחסוך את המשתנה a

אבל התוכנית הזאת הזויה לחלוטין.

היא מדפיסה את המספרים מ-108 עד 1

קולטת מספר כלשהו ואם הוא שווה ל-b היא מדפיסה 0 ואם לא היא מדפיסה "בום".

ולמה לעזאזל להוריד מ-a עוד פעם 1 בסוף התוכנית כשכבר לא משתמשים בו?

קישור לתוכן
שתף באתרים אחרים

לא עובר קומפייל או שפשוט לא עושה מה שאתה רוצה ממנו?

זה פשוט לא עובד(זה נותן שיגאה לפני שזה מתחיל הבכלל להדפיס.

1. מגדיר את משתנה b כ longint.

2. השתמשת ביותר מפקודה אחת ב then ולא שמת בלוק (begin ו end). ולפני else לא שמים ; !

היו לך כמה בעיות תחביר. וגם קראת ליחידה crt אבל לא השתמשת בפקודה לניקוי המסך?

בכל מקרה לא הבנתי את התוכנית הזאת.. אתה המצאת? (מה הסיכויים שמישהו יקלוט את המספר 4815162342 ?)

שמים ; אחרי כל פקודה, אבל במקרה ויש else אסור שיהיה לפניו ; .

1.אני עשיתי את זה וזה לא כל כך הלך לי :s05:.

2.עשיתי את זה אבל שהעלתי את זה לאתר מחקתי את זה כי לא הייתי בטוח שצריך...בכל מקרה אני ינסה שוב.

3.השתמשתי בcrt וגם ב-clrscr פשוט לא חשבתי שזה הכרחי להעלות את זה לאתר.

4.כן אני המצאתי וזה קשור לסדרה אבודים אז יש סיכוי שמשהו יכניס את המספר הזה.

5.תודה אני ינסה את זה.

אתה בטוח שהשורה הבאה שכתבת בסוף נצרכת??????

לא נעשה בזה שום שימוש.

נעשה בה שימשוש למקרה שמשהו מכניס מס' אחר,לא?

הדרך הנכונה לעשות את זה היא:

for i:=108 to 1

ולהשתמש ב-i ולחסוך את המשתנה a

אבל התוכנית הזאת הזויה לחלוטין.

היא מדפיסה את המספרים מ-108 עד 1

קולטת מספר כלשהו ואם הוא שווה ל-b היא מדפיסה 0 ואם לא היא מדפיסה "בום".

ולמה לעזאזל להוריד מ-a עוד פעם 1 בסוף התוכנית כשכבר לא משתמשים בו?

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

לא הבנתי מה זה אומר שלא משתמשים בה כי אני צריך את זה שוב למקרה שהכניסו מס' נכון(להוריד מ-a עוד פעם1)....

תודה שוב לכולם

קישור לתוכן
שתף באתרים אחרים

אם רושמים את המספר 4815162342 אז זה רושם עוד הפעם מ108 ל-1....אז הa כן צריך לרדת שוב

העניין הוא שבתוכנית שלך הוא לא יעשה את זה.

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

program lost;
var i,a: integer; b:longint;
begin
for i:=108 to 1 do
begin
writeln(i);
write('>:');
read(b);
if b=481516234 then
writeln(i);
else
begin
writeln('booooooom');
break;
end;
end.

אני מקווה שזה מה שהתכוונת שהתוכנית תעשה, כי אני ממש לא מבין את ההגיון שלה.

קישור לתוכן
שתף באתרים אחרים

העניין הוא שבתוכנית שלך הוא לא יעשה את זה.

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

program lost;
var i,a: integer; b:longint;
begin
for i:=108 to 1 do
begin
writeln(i);
write('>:');
read(b);
if b=481516234 then
writeln(i);
else
begin
writeln('booooooom');
break;
end;
end.

אני מקווה שזה מה שהתכוונת שהתוכנית תעשה, כי אני ממש לא מבין את ההגיון שלה.

לפי מה שהבנתי התוכנית אמורה לכתוב מ108 עד 1 בלי קשר למה שאתה עושה ואז אם אתה מכניס את המספר הזה אז היא תעשה את זה שוב (מ108 עד 1)

מה שתוכנית שלך עושה זה שאחרי כל מספר (108,107...) צריך לכתוב את המספר הזה ואז הוא כותב שוב 108,107 וכו'...

אני חושב שלתוכנית כזאת הוא התכוון:


program lost;
var i,a: integer; b:longint;
begin
for i:=108 downto 1 do
writeln(i);
writeln('>:');
readln(b);
if b=4815162342 then
for i:=108 downto 1 do
writeln(i)
else
writeln('boooooom');
end.

ד"א , ראיתי שהשתמשתם בfor i:=108 to 1 ורציתי לדעת אם זה באמת עובד (אין לי כוח לבדוק), כי לפי מה שאני יודע כשהמספרים יורדים צריך לכתוב downto במקום to...

קישור לתוכן
שתף באתרים אחרים

אני חושב שלתוכנית כזאת הוא התכוון:

זהו שאין לי מושג למה הוא התכוון כי בתוכנית פשוט אין הגיון.

ד"א , ראיתי שהשתמשתם בfor i:=108 to 1 ורציתי לדעת אם זה באמת עובד (אין לי כוח לבדוק), כי לפי מה שאני יודע כשהמספרים יורדים צריך לכתוב downto במקום to...

יש מצב. כמו שכבר אמרתי, מזמן לא כתבתי פסקל וגם אין לי פה קומפיילר בשביל לבדוק.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...