Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2-blok.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
559.25 Кб
Скачать

Void main()

{int a[100],n; randomize(); clrscr();

printf("\nЖиым ұзындығы:",n);

scanf("%i",&n);

printf("\nЖиым элементтері:",n);

for(int I=0;I<n;I++)

{a[I]=rand()%100-50;

printf(" %i ", a[I]);

}

getch();

}

int randом(n) – 0..n аралығынан кез келген кездейсоқ бүтін сан береді. Бұл функцияны да пайдалану <stdlib.h> файлы арқылы орындалады.

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

main ()

{ int i,j,a[3][4];

clrscr();

randomize();

printf(“Жиым элементтері:\n");

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

{for (j=0; j<4; j++)

a[i][j]=random(50);

printf(" %2i",a[i][j]);

}

getch();

}

10.1.Жиымдарды өңдеу тәсілдері(мысалдар)

Жиымдарды өңдеу есептерінің түрлері:

1) Есептердің 1-түріне жиым элементтерінің барлығын немесе көрсетілгендерін бірдей бір тəсілмен өңдеу есептері жатады. 2) Есептердің 2-түріне (класына) жиым элементте-рінің орналасу реттілігін өзгерту тəсілдері жатады. 3) Есептердің 3-класына бірнеше жиымдарды қатар өңдеу немесе бір жиымның ішкі элементтерін бірнеше топқа бөліп жеке-жеке өңдеу тəсілдері жатады. Жиымдар бір тəсілмен – синхронды өңделеді немесе əр түрлі тəсілмен – асинхронды түрде өңделеді. 4) Жиымның берілген санға тең элементін табу, яғни іздеу есептері жатады.

1 түрдегі есеп. Массивтің жұп индексті элементтері қосындысын анықтау.

// a[n] жиымының жұп индексті эл-ттері қосындысы

#include<conio.h>

# include<stdio.h>

#include<stdlib.h>

#define n 50

void main(){

int a[n],I; randomize();

for(int I=0;I<n;I++)

{a[I]=random(100)-50;

printf(" %i ", a[I]); }

int Sum=0;

for(I=0;I<n;I+=2)

Sum+=a[I]; //жұп индексті эл-тер 0,2,4... қосындысы

printf("\nSum= %i ", Sum);

getch();}

Е сеп: Бүтін сандардан құралған Аn жиымы берілген. Сол жиымның оң элементтері қосындысын табу керек мұнда n = 10).

#include <conio.h> //sum_mas1.cpp

#include <stdlib.h>

main ()

{int i=0,s=0, n=10;

int a[n];

clrscr();

while (i<n)

{ printf("a[%i]=",i);

scanf("%i",&a[i]);

if ( a[i]>0)

s+=a[i];

i++;}

printf(“s = %d\n",s);

getch();}

2-түрдегі есептер

Массив ішіндегі екі элементтің бір-бірімен орнын ауыстыру үшін қосымша тағы бір айнымалы керек. Мысалы, a[I] жəне a[J] элементтерінің орнын ауыстыру үшін қосымша R айнымалысы керек:

1 – есеп. Массивтің қатар тұрған екі элементін: 1жəне 2, 3 жəне 4, 5 жəне 6, т.с.с. элементтерін бір- бірімен орын ауыстыру

for(int i=0;i<n-1;i+=2)

{int r=a[i];

a[i]=a[i+1];

a[i+1]=r;}

3 Түрдегі есептер

Жиымдарды синхронды түрде өңдеуде жиымдар элементін қарастыру кезінде индекстер бірдей түрде өзгереді (при синхронной обработке массивов индексы при переборе массивов меняются одинаково).

1 есеп. Бүтін сандардан құралған n элементтерден тұратын 2 массив берілген. Жаңа c массивін мынадай формула арқылы алу керек: c[I]=a[I]+b[I].

for (int I=0; I<n; I++)

c[I]=a[I]+b[I];

Жиымдарды асинхрондық өңдеу кезінде əр жиым индексі өз реттілігімен өзгеріп отырады.

2 есеп. Бүтін сандардан құралған массивтегі теріс элементтердің барлығын массивтің бас жағына орналастыру керек.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]