2006 – פתרונות למתכונת א 1 שאלה משפט הבא בביצוע Tennis:=3 3 Units:=0 Num:=tens*10+units While… Tennis:=tens+1 4 Units:=tebs-3 Num:=tens*10+units While… Tennis:=tens+1 5 Units:=tebs-3 Num:=tens*10+units While… Writeln(num) tens units num ? ? ? פלט Num<99 and tennis+units<>7 0 30 true 1 41 true 2 52 false 52 52 הפלט הוא.א וסכום30 - גדול מ:ספרתי הראשון שמקיים תנאים הבאים- מטרת הקטה למצוא מספר דו.ב . מספרת אחדות3- כמו כן ספרת עשרות גדולה ב, 7-ספרותיו שווה ל . 2 שאלה ) לכן יחזר אמת, יקבל שקרT ( writeln(BOL(5 ,9)) .א ) לכן יחזר שקר, יקבל אמתT ( writeln( BOL(2 ,9)) .ב 3 שאלה Program ex3; Var x,a,b,I, new:integer; Begin For i:=10 to 99 do Begin Readln(x); A:=x mod 10; B:=x div 10; New:=a*1000+b*100+a*+10+b; Writeln(new); End End. )4י- דרך ג(של דניאלה-4 שאלה Program ex4_c; Count n=100; Var a:array[1..n] of integer; x,count:integer; Begin Count:=0; For i:=1 to n do Begin Readln(x); If x<0 then A[i]:=0 Else A[i]:=1; End; For i:=1 to n-1 do Begin If a[i]<>a[i+1] then Count:=count+1; end; writeln(count); End דרך ב-4 שאלה – דרך א4 שאלה Program ex4_b; Program ex4_a; Var Var x,a,b,siman:integer; x,a,b,siman1,siman2,count:integer; Begin Begin Siman:=0; Readln(a); Readln(a); If a<>0 then Siman1:=1 For i:=2 to 100 do Else Siman1:=2; Begin Count:=0; Readln(b); For i:=2 to 100 do If a*b<0 then Begin Siman:=siman+1; Readln(b); a:=b; If b<>0 then end; Siman1:=1 writeln(siman); Else End. Siman1:=2 If siman1<>siman2 then count:=count+1; a:=b; end; writeln(count); End. 5 שאלה -3 5 5 9 3 -19 משפט הבא בביצוע For … M[y,y+1]:=y y M[1,2] M[2,3] M[3,4] 8 2 12 2 0 5 1 19 0 8 -9 -17 M[4,5] 1 1 2 2 M[y,y+1]:=y 3 3 M[y,y+1]:=y 4 M[y,y+1]:=y Y:=3 M[y+1,5]:=m[5,y+1] 4 3 15 6 2 3 3 15 20 5 0 3 15 5 -98 7שאלה דרך ב Program ex7b; Var n:integer; Function max_num(x:integer); Var a,b,c,max,mini:integer; Begin A:=x mod 10; B:=x div 10 mod 10; C:=x div 100; If (a>=b) and (a>=c) then Max:=a Else If (b>=a) and (b>=c) then Max:=b Else Max:= c; If (a<=b) and (a<=c) then Mini:=a Else If (b<=a) and (b<=c) then mini:=b Else mini:= c; if (a<=max) and (a>=mini) then max_num:=max*100+a*10+mini else if (b<=max) and (b>=mini) then max_num:=max*100+b*10+mini else max_num:=max*100+c*10+mini End; Begin Readln(n); While n>0 do begin if (n div 100>=1) and (n div 100<=9) then writeln(max(n)); readln(n); end. דרך א Program ex7a; Var n:integer; Function max(x:integer); Var a,b,c:integer; Begin A:=x mod 10; B:=x div 10 mod 10; C:=x div 100; If (a>=b) and (b>=c) then Max:=a*100+b*10+c Else If (a>=c) and (c>=b) then Max:=a*100+c*10+b Else If (b>=a) and (a>=c) then Max:=b*100+a*10+c Else If (b>c) and (c>a) then Max:=b*100+c*10+a Else If (c>a) and (a>b) then Max:=c*100+a*10+b Else Max:=c*100+a*10+b End; Begin Readln(n); While n>0 do begin if (n>=100) and (n<=999) then writeln(max(n)); readln(n); end. דרך ג Function max_num(x:integer); Var a:array[1..3] of integer;:integer; Begin A[1]:=x mod 10; A[2]:=x div 10 mod 10; A[3]:=x div 10; End; Max:=a[1]; Mini:=a[1]; Medium:=a[1]; For i:=2 to 3 do Begin If a[i]>=max ten Max:=a[i]; If a[i]<=mini ten mini:=a[i]; if (a[i]>=mini) and (a[i]<=max) then medium:=a[i]; end; max_num:=max*100+medium*10+min; end; 8 שאלה 2 בקבוק כמספר, 1 ניתן לסמן סוג שהוא פחית כמספר – קטן2 , גדול-1 :כנ''ל לגבי גודל , מונה פחיות גדולות-Cp_big , מונה בקבוקים גדולים-Cb_big , מונה פחיות קטנות גדולות-Cp_small , מונה בקבוקים קטנים-Cb_small Program ex8; Var sug,size, Cb_big, Cp_big, Cb_small, Cp_small,sum,shkalim,agorot:integer; Begin Readln(sug); Cb_big:=0; Cp_big:=0; Cb_small:=0; Cp_small:=0; Sum:=0; While sug<>9 do Begin Readln(size); Case sug of 1: case size of 1: begin sum:=sum+15 ; cb_small:=cp_small+1; end; 2: begin sum:=sum+25 ; cb_big:=cp_big+1; end ; 2: Program ex8; Var sug,size, Cb_big, Cp_big, Cb_small, Cp_small,sum,shkalim,agorot:integer; Begin Readln(sug); Cb_big:=0; Cp_big:=0; Cb_small:=0; Cp_small:=0; Sum:=0; While sug<>9 do Begin Readln(size); Case sug of 1: begin if size=1 then begin sum:=sum+15 ; cb_small:=cp_small+1; end else begin sum:=sum+25 ; cb_big:=cp_big+1; end ; 2: begin if size=1 then case size of 1:begin sum:=sum+10 ; cp_small:=cp_small+1; end; 2: begin sum:=sum+20 ; cp_big:=cp_big+1; end ; end; writeln(sug); end; writeln(sum); if (cb_big>=5) and (cp_big>=3) then begin writeln('more then 5 big bottle and 3 big pahiot'); sum:=sum+3; shkalim:= sum div 100; agorot:=sum1 mod 100; if agorot>0 then shkalim:=shkalim+1; end; writeln(shkalim); end. begin sum:=sum+10 ; cp_small:=cp_small+1; end else begin sum:=sum+20 ; cp_big:=cp_big+1; end ; end; writeln(sug); end; writeln(sum); if (cb_big>=5) and (cp_big>=3) then begin writeln('more then 5 big bottle and 3 big pahiot'); sum:=sum+3; shkalim:= sum div 100; agorot:=sum mod 100; if agorot>0 then shkalim:=shkalim+1; end; writeln(shkalim); end. 10 שאלה 9 שאלה פונקציות בפיתרון/משימות בהתאם לפרוצדורות-חלוקה לתת Program ex10; Const n=10; Type my_arr=array[1..n] of integer; Var cars:my_arr; Procedure ipus(var cars:my_arr); הלא מאותחלCARS הפרוצדורה מקבלת מערך צוברים:ט''כ CARS הפרוצדורה מאתחלת באפסים מערך צוברים:ט''י Var i:integer; Begin For i:=1 to n do Cars[i]:=0; End; Procedure kelet(var cars:my_arr); Var I,j,car:integer; מאופסCARS הפרוצדורה מקבלת מערך צוברים:ט''כ הפרוצדורה קולטת מספרי רכבים לפי סדר הגעתם ובהתאם:ט''י מעדכנת מספר נקודות כולל עבור כל רכב במערך צוברים CARS Program ex9; Const n=6; Type my_arr=array[1..n] of integer; Var ulamot:my_arr; Procedure ipus(var ulamot:my_arr); הלאulamot הפרוצדורה מקבלת מערך צוברים:ט''כ מאותחל הפרוצדורה מאתחלת באפסים מערך צוברים:ט''י ulamot Var i:integer; Begin For i:=1 to n do ulamot [i]:=0; End; Procedure kelet(var ulamot:my_arr); ulamot הפרוצדורה מקבלת מערך צוברים:ט''כ מאותחל באפסים הפרוצדורה קולטת כרטיסים לקונה ובהתאם:ט''י Begin For i:=1 to 7 do For j:=1 to n do Begin Readln(car); Cars[car]:=cars[car]+(n+1-j); End; End; Function max_point(cars:my_arr):integer; CARS הפונקציה מקבלת מערך צוברים:ט''כ הפונקציה מחזירה מספר נקודות המקסימלי שהצטברו בשבוע:ט''י Var I,max:integer; Begin Max:=cars[1]; For i:=2 to n do If cars[i]>max then Max:=cars[i] Max_point:=max; End; Procedure Winners(cars:my_arr); ulamot מעדכנת כמות המקומות במערך צוברים Var n_ulam,tic:integer; Begin Readln(n_ulam); While (n_ulam >0) and (n_ulam<=6) do Begin Readln(tic); Ulamot[n_ulam]:= Ulamot[n_ulam]+tic; Readln(n_ulam); End; End; Procedure pelet(ulamot:my_arr); Ulamot הפרוצ' מקבלת מערך צוברים:ט''כ הפרוצ' מדפיסה עולמות שהקרנה לא תתקיים:ט''י ,כמה מקומות פנויים ישנם באולמות אחרים,בהם כמה פיצות וארגזים יש לחלק לילדים Var I,pizot,argazim:integer; Begin For i:=2 to n do CARS הפרוצדורה מקבלת מערך צוברים: ט''כIf ulamot[i]<10 then הפרוצדורה מדפיסה מספרי רכבים אשר ניצחו:ט''י Writeln('no show in ulam num:',i) Var I,max:integer; Else Begin Writeln('free places:',200-a[i]); Max:= max_point(cars); Pizot:=ulamot[1] div 8; For i:=1 to n do If ulamot[1] mod 8>0 then If cars[i]=max then Pizot:=pizot+1; Writeln('num of car:',i) Argazim:= ulamot[1] div 20; End; If ulamot[1] mod 20>0 then Procedure pahot_20(cars:my_arr); Argazim:= Argazim+1; CARS הפרוצדורה מקבלת מערך צוברים:ט''כ ' נק20-הפרוצדורה מדפיסה מספרי רכבים אשר צברו פחות מ: ט''יEnd; Begin{main} Var I:integer; Ipus(ulamot); Begin Kelet(ulamot); For i:=1 to n do pelet(ulamot); If cars[i]<20 then End. Writeln('num of car:',i) End; Begin{main} Ipus(cars); Kelet(cars); Winners(cars); Pahot_20(cars); End.
© Copyright 2024 Paperzz