Бір өлшемді жиымдарды өңдейтін программалар және блок-сұлбасын құру. Жиым элементтерін кездейсоқ сандар генераторының көмегімен толтыру керек.
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]
2 3-4-5-1-2-3-79
Оң элементтерінің саны pol=4
b[n] жиымын шығару
-7-3-2-1-5-4321
позицияға 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 позициясына циклдік жылжыту жасаңыз, мұндағы k – A[N] жиымынан қалған элементтердің саны.
4 A[N] жиымы берілген. B[N] жиымын А[N] жиымының элементтерімен мына қос теңсіздікті қанағаттандыратындай етіп толтырыңыз: A[1] немесе A[i] жиымының толтырылмаған элементтерін A[N] жиымынан қалған элементтермен толтыру қажет. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – A[N] жиымынан қалған элементтердің саны.
5 N өлшемді бүтінсанды жиым берілген. Оның жұп сандарына бірінші элементті қосу арқылы түрлендіріңіз. Жиымның бірінші элементін өзгеріссіз
29
қалдырыңыз. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы
– тақ элементтерінің саны.
6 N өлшемді бүтінсанды жиым берілген. Оның тақ сандарына бірінші элементті қосу арқылы түрлендіріңіз. Жиымның бірінші элементін өзгеріссіз қалдырыңыз. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы
– жұп элементтерінің саны.
7 N өлшемді бүтінсанды жиым берілген. Оның жұп сандарына соңғы элементті қосу арқылы түрлендіріңіз. Жиымның соңғы элементін өзгеріссіз қалдырыңыз. Солға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы
– тақ элементтерінің саны.
8 N өлшемді бүтінсанды жиым берілген. Оның жұп сандарына бірінші элементті қосу арқылы түрлендіріңіз. Жиымның бірінші элементін өзгеріссіз қалдырыңыз. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы
– тақ элементтерінің саны.
9 10 элементтен тұратын жиымның ең кіші элементімен ең үлкен элементінің орындарын ауыстырыңыз. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – ең үлкен және ең кіші элементтерінің арасында орналасқан элементтер саны.
10 A[N] жиымы берілген. Оң элементтердің барлығын ең кіші элементке азайту керек. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы
– оң элементтерінің саны.
11 A[N] жиымы берілген. Теріс элементтердің барлығын ең үлкен элементке азайту керек. Солға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – теріс элементтерінің саны.
12 10 элементтен тұратын жиым берілген. Ең кіші элементімен ең үлкен элементінің арасында орналасқан жиым элементтерін кері бағытта орындарын ауыстыру керек. Солға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – ең кіші элементімен ең үлкен элементінің арасында орналасқан элементтер саны.
13 N өлшемді жиым берілген. Солға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – ең кіші элементтің индексі.
14 N өлшемді жиым берілген. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – ең үлкен элементтің индексі.
15 A[N] жиымы берілген. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – A[N] жиымының оң элементтерінің орташа арифметикасының бүтін бөлігі.
16 A[N] жиымы берілген. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – A[N] жиымының теріс элементтерінің орташа арифметикасының бүтін бөлігі.
17 A[N] жиымы берілген. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – A[N] жиымының жұп мәндерінің орташа арифметикасының бүтін бөлігі.
18 A[N] жиымы берілген. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – A[N] жиымының тақ мәндерінің орташа арифметикасының бүтін бөлігі.
19 A[N] жиымы берілген. Жиымның барлық теріс элементтерін оның ең кіші элементіне азайту қажет. Оңға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – оң элементтерінің саны.
20 A[N] жиымы берілген. Жиымның барлық оң элементтерін оның ең үлкен элементіне азайту қажет. Солға қарай k позициясына циклдік жылжыту жасаңыз, мұндағы k – теріс элементтерінің саны.
Б тапсырмасы.
Бір өлшемді жиымды өңдейтін программаны құрыңыз. Жиым элементтеріне қол жеткізуді нұсқауыштың көмегімен жүзеге асыру қажет. Жиым элементтерін кездейсоқ сандар генераторының көмегімен толтырыңыз.
Мысалы. А[N] жиымы берілген. B[N] жиымын А[N] жиымының элементтерін соңынан бастап оңға қарай k позицияға циклдік жылжыту жасап толтырыңыз, мұндағы k – оң элементтерінің саны.
#include
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;
}
тапсырмасының нұсқалары осы зертханалық жұмыстың А тапсырмасының нұсқаларына сәйкес келеді.
Достарыңызбен бөлісу: