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

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


giloman

Recommended Posts

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

נתנו לנו מבחני בגרות של שנים קודמות ויש שם שאלה שכשאני כותב על ה turbo 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.

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

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

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

הבעיה היא שאתה לא עובד נכון עם ה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 שנים), אלא של בתי הספר.

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

ארכיון

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

×
  • צור חדש...