Коммерциялық емес акционерлік қоғам алматы энергетика



бет13/21
Дата07.02.2022
өлшемі1,2 Mb.
#94147
түріПрограмма
1   ...   9   10   11   12   13   14   15   16   ...   21
Байланысты:
is 3
инт тен лек 5-6
А тапсырмасы.

Бір өлшемді жиымдарды өңдейтін программалар және блок-сұлбасын құру. Жиым элементтерін кездейсоқ сандар генераторының көмегімен толтыру керек.




Мысалы. А[n] жиымы берілген. B[n] жиымын А[n] жиымының элементтерімен соңынан бастап толтыру (кері бағытта) және К позициясына оңға қарай циклдік жылжыту жасау керек, К – оң элементтерінің саны. 2.4 суретінде есептің шешімінің блок-сұлбасы келтірілген.

1


басы

2
a[n] жиымын генерациялау





j=n-1

4


i=1;n;1

9






b[j]=a[i]







j=j-1

7


a[i]>=

4






pol=pol+1


4

27


9

14

i=1;

b[n] жиымын

10

15

j=j-1

соңы




11




j=n;1;-1

9









b[j]=b[j-1]







b[0]=buf

9

2.4 сурет – Тапсырма шешімінің блок-сұлбасы


Программа келесі түрде болады:


#include

  • include




  • include #define n 10

int main ()


{ int buf,j,pol,i,b[n], a[n]; for (i = 0; i < n; i++)


a[i]=rand()%10-5; pol=0;


printf ("\n \n Генерацияланған жиым a[n] \n"); for (i=0;i< n;i++)


printf ("%d ",a[i]); j=n-1;


for (i=0;i< n;i++) {b[j]=a[i];


j=j-1;
if (a[i]>=0)pol++;}

printf ("\n Оң элементтерінің саны \n pol=%d",pol); printf ("\n \n b[n] жиымын шығару \n");


for (i=0;i< n;i++) printf ("%d ",b[i]); for (i=0;i


{ buf=b[n-1];


for(j=n-1;j>0;j--)

28

b[j]=b[j-1];

b[0]=buf; }


printf ("\n %d позициясына b[n] жиым элементтерін жылжыту \n", pol); for (i=0;i< n;i++)


printf ("%d ",b[i]);


printf ("\n");
system("PAUSE");

return 0;}




Программа жұмысының нәтижесі.

Генерацияланған жиым a[n]



  1. 2 3-4-5-1-2-3-79

Оң элементтерінің саны pol=4


b[n] жиымын шығару



  1. -7-3-2-1-5-4321

  1. позицияға b[n] жиым элементтерін жылжыту

-43219-7-3-2-1-5


А тапсырмасының нұсқасы.

Тапсырманы орындау кезінде жиым элементтерін кездейсоқ сандар генераторының көмегімен толтыру керек.


1 A[N] жиымы берілген. B[N] жиымын А[N] жиымының элементтерімен келесі түрде: алдымен индексі жұп элементтерімен, содан соң индексі тақ элементтерімен толтыру қажет. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – оң элементтерінің саны.


2 A[N] жиымы берілген. B[N] жиымын А[N] жиымының элементтерімен келесі түрде: алдымен индексі жұп элементтерімен, содан соң индексі тақ элементтерімен толтыру қажет. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – теріс элементтерінің саны.


3 A[N] жиымы берілген. B[N] жиымын А[N] жиымының элементтерімен мына қос теңсіздікті қанағаттандыратындай етіп толтырыңыз: A[1] < A[i] < A[10]. B[N] жиымының толтырылмаған элементтерін A[N] жиымынан қалған элементтермен толтыру қажет. Солға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы kA[N] жиымынан қалған элементтердің саны.


4 A[N] жиымы берілген. B[N] жиымын А[N] жиымының элементтерімен мына қос теңсіздікті қанағаттандыратындай етіп толтырыңыз: A[1] немесе A[i] жиымының толтырылмаған элементтерін A[N] жиымынан қалған элементтермен толтыру қажет. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – A[N] жиымынан қалған элементтердің саны.


5 N өлшемді бүтінсанды жиым берілген. Оның жұп сандарына бірінші элементті қосу арқылы түрлендіріңіз. Жиымның бірінші элементін өзгеріссіз



29

қалдырыңыз. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы



  1. – тақ элементтерінің саны.

6 N өлшемді бүтінсанды жиым берілген. Оның тақ сандарына бірінші элементті қосу арқылы түрлендіріңіз. Жиымның бірінші элементін өзгеріссіз қалдырыңыз. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы





  1. – жұп элементтерінің саны.

7 N өлшемді бүтінсанды жиым берілген. Оның жұп сандарына соңғы элементті қосу арқылы түрлендіріңіз. Жиымның соңғы элементін өзгеріссіз қалдырыңыз. Солға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы



  1. – тақ элементтерінің саны.

8 N өлшемді бүтінсанды жиым берілген. Оның жұп сандарына бірінші элементті қосу арқылы түрлендіріңіз. Жиымның бірінші элементін өзгеріссіз қалдырыңыз. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы





  1. – тақ элементтерінің саны.

9 10 элементтен тұратын жиымның ең кіші элементімен ең үлкен элементінің орындарын ауыстырыңыз. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – ең үлкен және ең кіші элементтерінің арасында орналасқан элементтер саны.


10 A[N] жиымы берілген. Оң элементтердің барлығын ең кіші элементке азайту керек. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы





  1. – оң элементтерінің саны.

11 A[N] жиымы берілген. Теріс элементтердің барлығын ең үлкен элементке азайту керек. Солға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – теріс элементтерінің саны.


12 10 элементтен тұратын жиым берілген. Ең кіші элементімен ең үлкен элементінің арасында орналасқан жиым элементтерін кері бағытта орындарын ауыстыру керек. Солға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – ең кіші элементімен ең үлкен элементінің арасында орналасқан элементтер саны.


13 N өлшемді жиым берілген. Солға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – ең кіші элементтің индексі.


14 N өлшемді жиым берілген. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – ең үлкен элементтің индексі.


15 A[N] жиымы берілген. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы kA[N] жиымының оң элементтерінің орташа арифметикасының бүтін бөлігі.


16 A[N] жиымы берілген. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы kA[N] жиымының теріс элементтерінің орташа арифметикасының бүтін бөлігі.


17 A[N] жиымы берілген. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы kA[N] жиымының жұп мәндерінің орташа арифметикасының бүтін бөлігі.



30


18 A[N] жиымы берілген. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы kA[N] жиымының тақ мәндерінің орташа арифметикасының бүтін бөлігі.

19 A[N] жиымы берілген. Жиымның барлық теріс элементтерін оның ең кіші элементіне азайту қажет. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – оң элементтерінің саны.


20 A[N] жиымы берілген. Жиымның барлық оң элементтерін оның ең үлкен элементіне азайту қажет. Солға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – теріс элементтерінің саны.




Б тапсырмасы.

Бір өлшемді жиымды өңдейтін программаны құрыңыз. Жиым элементтеріне қол жеткізуді нұсқауыштың көмегімен жүзеге асыру қажет. Жиым элементтерін кездейсоқ сандар генераторының көмегімен толтырыңыз.




Мысалы. А[N] жиымы берілген. B[N] жиымын А[N] жиымының элементтерін соңынан бастап оңға қарай k позицияға циклдік жылжыту жасап толтырыңыз, мұндағы k – оң элементтерінің саны.

#include



  • include




  • include #define n 10

int main ()


{ int buf,j,pol,i,b[n], *pa,*pb,*p, a[n];
for (i = 0; i < n; i++) a[i]=rand()%10-5;
pol=0;

pa=&a[0];


pb=&b[9];

printf ("\n \n Генерацияланған жиым a[n] a[n] \n"); for (i=0;i< n;i++)


printf ("%d ",*pa++);


pa=&a[0];
for (i=0;i< n;i++)

{*pb=*pa;


if (*pa>=0)pol++;
--pb;
++pa; }

printf ("\n Оң элементтерінің саны \n pol=%d",pol); printf ("\n \n b[n] жиымын шығару \n"); pb=&b[0];


for (i=0;i
printf ("%d ",*pb++);
pb=&b[9];
p=&b[0];


31

for (i=0;i

{ buf=*pb; for(j=0;j

*p=buf;

p=&b[0]; pb=&b[9]; }

printf ("\n %d позициясына b[n] жиым элементтерін жылжыту\n", pol); pb=&b[0];


for (i=0;i< n;i++)


printf ("%d ",*pb++);
printf ("\n");
system("PAUSE");

return 0;


}



  • тапсырмасының нұсқасы.




  • тапсырмасының нұсқалары осы зертханалық жұмыстың А тапсырмасының нұсқаларына сәйкес келеді.





Достарыңызбен бөлісу:
1   ...   9   10   11   12   13   14   15   16   ...   21




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет