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 2025 Paperzz