1.6 Екі өлшемді массив көмегімен есеп шығару
Есеп. Кітапханада математика бөлімінде n қатардан тұратын, әр қатарда m кітаптан бар. Әр кітаптың бағасы әр түрлі. Кітапханада берілген кітаптардың барлығының қосындысын және бағасы 2000 теңгеден аспайтын кітаптар санын, жатық жолдағы ең қымбат кітаптарды табу керек. Екінші және үшінші орындағы кітаптарды ауыстыру керек.
Берілген есепті алдында айтылған кезеңдер бойынша талдайық:
1-кезең Есептің қойылуы
1.1 Есептің мазмұнын түсіну, есепке талдау жүргізу, оның мақсаты;
1.2 Бастапқы берілгендерді анықтаймыз
n-қатар, m-кітап бар, max-ең қымбат кітап, k-кітап саны, S-барлық кітап бағаларының қосындысы.
1.3 Аралық шамалар: n,m
1.4 Есептің нәтижесі ретінде
sum =?
S=?
K=?
Max=?
1.5 Нәтижелерді алу формасы
sum :нақ.
K:бүтін
Max: нақты.
2-кезең Есептің математикалық моделіретінде алынатын формулалар:
Кітаптың бағаларының қосындысын табу үшін:
S= деп алуға болады.
K-2000 теңгеден арзан кітаптар саны.
Max[ ]-ең үлкен элементті анықтау.
a[n,2]:=a[n,3] екінші және үшінші тік жолдағы орналасқан кітаптарды ауыстыру формуласы.
3-кезең Есептеу жүргізудудің ең тиімді жолын көрсету.
Матрицаның барлық элементтерінің қосындысын табу.
Құны 2000-теңгеден арзан тұратын кітаптарды анықтау.
Кітаптардың бағаларының ішіндегі ең үлкенін анықтау.
Екінші және үшінші тік жолдағы кітаптардың орнын ауыстыру (меншіктеу операторын пайдалану арқылы)
4-кезең есептің алгоритімін жазу керек.
басы
соңыS
,K, maxm
ax:= m
ax< k
:=k+1
<2000S
:=S+
1
J:=m
i:=1,n,1
S:=0
j:=1,n,1
K, n, m, max
i:=1,m,1
5-кезең Есептің алгоритіміне сай программасын құру.
Program esep1
Usescrt
Var n: integer;
m: integer;
k: integer;
max: integer;
S: integer;
a: array[1..n, 1..m] of integer;
begin
clrscr;
S:=0;
writeln (‘Массив элементтерін еңгіз’);
for i:=1 to n do
for j:=1 to m do
Begin
read (a[i, j]);
S:=S+ a[i, j]
End;
k:=0
Begin
for i:=1 to n do
for j:=1 to m do
if a[i, j]<2000 then
writeln (k=’);
if max
write (max);
for i:=1 to n do
for j:=1 to m do
write (a[i,j],’);
writeln;
end;
begin
for i:=1 to n do
for j:=1 to m do
k= a[i, j];
a[i, 2]= a[i, 3];
a[i, j]=k;
end;
writeln;
for i:=1 to n do
begin
for j:=1 to m do
write (a[i, j])
2000>2000s>
Достарыңызбен бөлісу: |