עבור לתוכן

צריך עזרה בפסקל

Featured Replies

פורסם

מחר יש לנו מבחן על כל החומר שיכלל בבגרות

נתנו לנו מבחני בגרות של שנים קודמות ויש שם שאלה שכשאני כותב על ה turbo pascal 7 זה פשוט לא עובד , אחרי הקליטה של המחרוזת הוא יוצא ...

בדקתי על דף וזה נראה בסדר

אודה אם מישהו יעזור לי

התרגיל הוא - לקחת מחרוזת st שכוללת רווחים ולהעתיק אותה לst1 רק שלא יהיו רווחים

הנה מה שרשמתי

program tirgul;
uses crt;
var
i,counter:integer;
st,st1:string ;
begin
clrscr;
readln(st);
counter:=0;
for i:= 1 to length(st) do
if st[i] = ' ' then
begin
counter:=counter +1 ;
st1[i]:=st[i+counter];
end
else
st1[i]:=st[i+counter];
writeln(st1);
readln;
end.

פורסם

אם התא שווה לרווח אז לא עושים כלום פשוט מדלגים

ואת זה

if st[i] = ' ' then
begin
counter:=counter +1 ;
st1[i]:=st[i+counter];
end
else
st1[i]:=st[i+counter];

צריך לשנות ל...

if (st[i]=' ') then
counter=counter+1;
else
st1[i-counter]=st[i];

ואז כל פעם שיש רווח אז הוא מדלג

ואם אין אז הוא מכניס לתא הבא במחרוזת ST1

השינוי הכרחי מכבן שיכולה ליהיות חריגה ממערך

פורסם
  • מחבר

אם התא שווה לרווח אז לא עושים כלום פשוט מדלגים

ואת זה

if st[i] = ' ' then
begin
counter:=counter +1 ;
st1[i]:=st[i+counter];
end
else
st1[i]:=st[i+counter];

צריך לשנות ל...

if (st[i]=' ') then
counter=counter+1;
else
st1[i-counter]=st[i];

ואז כל פעם שיש רווח אז הוא מדלג

ואם אין אז הוא מכניס לתא הבא במחרוזת ST1

השינוי הכרחי מכבן שיכולה ליהיות חריגה ממערך

אם תיהיה חריגה אז הוא לא יכניס לשם כלום ...

אם

[st[i+counter שווה לכלום אז הוא יכניס כלום ולא ידפיס כלום ...

אשמח אם תסביר יותר לעומק ...

נ.ב

ניסיתי את הדרך שלך ועדיין זה יוצא לאחר קליטת המחרוזת הראשונה

program tirgul;
uses crt;
var
i,counter:integer;
st,st1:string ;
begin
clrscr;
readln(st);
counter:=0;
for i:= 1 to length(st) do
if st[i] = ' ' then
counter:=counter +1
else
st1[i-counter]:=st[i];
writeln(st1);
readln;
end.

יכול להיות שזה באג ? ?

פורסם

תנסה להגדיר גודל של המערך

פורסם
  • מחבר

הגדרתי לו 6

רשמתי ab cd ולא עזר

אתה מוכן רק להגיד אם הדרך של התנאי אצלי הייתה עובדת או לא ?

פורסם

אני לא בטוח כי יש שם חריגה ממערך

לדוגמה אם יש רווח אחד ו6 תאים אז הוא יפנה לתא 7 בסוף שהוא לא מוגדר

פורסם

התנאי שלך בסדר (קצת מסובך מידי בלי סיבה אבל שיהיה)

הבעיה היא שאתה לא עובד נכון עם הstring, אתה צריך להשתמש בפונקציות copy, insert וכו' ככה:

program tirgul;
uses crt;
var st1,st2:string;
i,x:integer;
begin
clrscr;
x:=1;
readln(st1);
for i:=1 to length(st1) do
if st1[i]<>' ' then
begin
insert(copy(st1,i,1),st2,x);
x:=x+1;
end;
writeln(st2);
readln;
end.

פורסם

בואנה אנשים עוד לומדים פסקל ?

משרד החינוך הזה חי בסרט

כמו להוציא רשיון על סוס עם כרכרה

פורסם

התנאי שלך בסדר (קצת מסובך מידי בלי סיבה אבל שיהיה)

הבעיה היא שאתה לא עובד נכון עם הstring, אתה צריך להשתמש בפונקציות copy, insert וכו' ככה:

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

פורסם

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

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

פורסם

בואנה אנשים עוד לומדים פסקל ?

משרד החינוך הזה חי בסרט

כמו להוציא רשיון על סוס עם כרכרה

תתפלא, אבל כן.

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

פורסם

בדיוק, משום מה המנהלת של בית הספר שלנו החליטה שפסקל עדיף על פני C\VB\C++ וכדומה.

פורסם

VB אי אפשר ללמד. לא בוחנים על זה.

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

פורסם

C יותר רלבנטית מפסקל , הרבה יותר

חלקים של windows בכל הגרסאות , ובטח שגם linux כתובים ב- C\C++

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

פורסם

אתה מדבר על פסקל?!

איפה אתה חיי אנשים לומדים אסמבלר!

ארכיון

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

דיונים חדשים