Жиымдар (массивтер)


Мазмұны

Кіріспе

  • Жиым
  • Жиымды сипаттау

Негізгі бөлім

  • Жиым элементтерінің қосындысын есептеу
  • Жиым элементтерінің ең кішісін және ең үлкенін анықтау

Қорытынды

  • Қолданылған әдебиеттер

Кіріспе.

Си-де жиымдар өзінің аргументтері ретінде параметрлер мәнін қабылдайтын болғандықтан, тікелей мүмкіншілік шақырылатын функцияда айнымалыны өзгертуге болмайды.

Жиым - бір типтегі элементтердің реттелген жиыны, жиымдарға реттік номері және олардың индексі арқылы қол жеткізуге болады.

Жиым өлшемін (1-ден кем емес) элементтер саны береді және тік жақшаға алынады. Жиым өлшемін капиляция этапында-ақ білу керек, кезегінде, ол константалық болуы қажет, дегенмен өлшемімен беру маңызды емес.

Қажетті нәтижені алу үшін, шақырылатын программада өзгертілуі тиісті мәнге көрсеткіштерді беру қажет. Бұл жағдайда шақырылатын функция формальды параметрлердің көрсеткіштер ретінде сипатталуы қажет, бұдан параметрлердің мәніне қатынасу олар арқылы жанама түрде жүргізіледі. шақырылатын функцияда оның программасын шақыратын объектіге қатынасуды жүзеге асыратын көрсеткіштер және осы объектілерді өзгертуге мүмкіндік береді.

С++ мұндай операндаларды ақырсыз қоса алмайды, алдымен оған оларды бір типке келтіріп алу қажет. Ол үшін арифметикалық типтерді түрлендіру ережесі бар.

Жиымдарды пайдалану

Жиым (массив) - ақырлы өлшемді бір типті мәліметтер тізбегі. Жиым - күрделі типті нысан. Жиымның әрбір элементі жиымның аты мен индексі (бүтін сан) арқылы анықталады да, әрі сол элементке қол жеткізуге мүмкіндік береді. Бір өлшемді жиымдарды қарастырайық. СИ тіліндегі бір өлшемді жиымдардың индекстері 0-ден басталады . Программадағы бір өлшемді жиымдар былай жарияланады:

<Тип> < жиымның аты >[өлшемі] ;

Мұндағы, өлшем - бір өлшемді жиымдардың элементінің саны.

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

Бүтін типті жиымды жариялау мысалы:

int a[5] ;

а жиымының бірінші элементі а[0], екіншісі - а[1], …, бесінші элементі - а[4] . Си тілінде индекстің жиымның шегінен шығып кетуі бақыланбайды. Жиымның өлшемін, индексін программист бақылайды.

Массив немесе жиым - бір типтегі элементтердің реттелген жиыны. Олар бір атаумен - идентификатормен аталады да, индексті айнымалы ұғымына сәйкес келеді. Мысалы, мынадай тізбек

  1. 1 1 2 3 5 8 13 21

Фибоначчи тізбегінің 9 элементін құрайды (алғашқы екі санды таңдап алып, келесі санды алдыңғы екеуін қосу жолымен алады) . Ал мынау жай сандар тізбегінің алғашқы 7 элементі:

1 3 5 7 11 13 17

Си тілінде жиымды сипаттап, оған бастапқы мән беріп инициалдау үшін былай жазамыз:

int fib[8] ={0, 1, 2, 3, 5, 8, 13, 21}; немесе

int fib[] ={0, 1, 2, 3, 5, 8, 13, 21}; деп көрсетеміз. мұндағы fib - жиым аты, оның элементтерінің типі int, ал ені, яғни ұзындығы - 9, жиым элементтерінің индекстері 0-ден бастап нөмірленеді, сол себепті 9 элемент 8 индекспен көрсетіледі. Мәндері көрсетілсе, индексті жазбаса да болады. Ал былай болса,

int fib[8] ={0, 1, 2, 3}; қалған элементтер 0 болып саналады.

n=10; k=2; fib[n-k] ={0, 1, 2, 3}; десе де болады.

Жоғарыдағы тізбектің 7-ші элементін бір бүтін айнымалыға меншіктеу үшін былай жазамыз.

int а = fib[6] ; // а = 13

Жиымды сипаттау кезінде оның ені нақты санмен көрсетіледі, мыс., a[20], a[n] деп жазу үшін алдын ала

define n 20 жолы көрсетіледі немесе

const n=20; болып жазылады.

Жиым элементтерін енгізу немесе оларды түрлендіру үшін цикл операторы қолданылады. Төменде 10 элементі бар жиымды 0-ден 9-ға дейінгі сандармен толтырып, сонан кейін оларды кері бағытта экранға шығару мысалы көрсетілген:

main ()

{

int ia[10] ;

int index;

for (index = 0; index <10; index ++)

ia[index] = index ;

for (index = 9; index >=0; index --)

printf(“ %i”, ia[index] ) ;

Си тілінде жиымды жиымға бірден теңестіруге болмайды, мыс., а 0 , а 1 , а 2 , . . . , а 9 және с 0 , с 1 , с 2 , . . . , с 9 жиымдары үшін а=c деп жазуға болмайды. Олардың элементтерін цикл ішінде бір-біріне біртіндеп теңестіру керек.

int a[9], c[9] ;

a=c; // қате

Мұның орнына мынадай цикл жазу керек:

int a[9], c[9] ;

for (int i=0; i<9; ++i)

a[i] =c[i] ;


Бір өлшемді жиыммен жұмыс істеу

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

Программа былай жазылады:

#include <stdio. h>

#include <conio. h>

void main(void)

{ int a[4] ={-1, -20, 4, 100}; // жиымды инициалдап сипаттау

// индексі 0- ден 3- ке дейін өзгереді

int i, index, max, kp, ko;

clrscr() ;

puts("\n БАСТАПҚЫ ЖИЫМ\n") ;

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

printf("%d ", a[i] ) ; // бастапқы жиымның элем баспаға шығару max=a[0] ; kp=0; ko=0;

for (i=1; i<4; i++)

{ if (a[i] >max) {

max=a[i] ; index=i; }

}

a[index] =zam; a[0] =max;

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

{

if (a[i] <0) ko=ko+1;

else kp=kp+1;

}

puts("\n ПРОГРАММАНЫҢ ЖҰМЫСЫНЫҢ НӘТИЖЕЛЕРІ\n") ;

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

printf("%d ", a[i] ) ; // Жиымның элементтерін ш ы ғ а р у

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

printf(" \n Жиымның теріс элементері: %d, \

\n\n Press any key . . . ", ko) ;

getch() ;

}

Есеп

Бүтін оң және теріс сандардан тұратын a[n] массивінің жұп нөмірлі элементтерінің қосындысын табу керек, мұнда n саны енгізіледі, ал жиым элементтерінің мәндері кездейсоқ бүтін сандардан тұрады. rand() функциясы 0 . . . 32767 аралығындағы бүтін сан береді. Оны қолдану үшін stdlib. h директивасын қолдану қажет. Жиым элементтері екі разрядты оң және теріс сандардан тұруы үшін алынған кездейсоқ сан 100-ге көбейтіліп онан 50 алып тасталынған.

//сумма четных элементов массива

#include<stdio. h>

#include<stdlib. h>

#include<math. h>

main()

{

int a[50] ;

int n;

printf("\nРазмерность массива : ") ;

scanf("%d", &n) ;

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

{

a[i] = rand() % 100 - 50; // случайные числа до 32767

printf("%i ", a[i] ) ; // далее остаток от 100 и - 50

}

int sum=0;

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

sum+=a[i] ; //элементы с индексами 0, 2, 4 . . .

printf("\nсумма четных элементов массива : %i", sum) ;

}

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

// Сумма положительных //элементов массива А[10]

// массив вводится

#include <conio. h>

#include <stdlib. h>

#define n 10

main ()

{int i=0, s=0;

int a[n] ;

textcolor(RED) ;

textbackground(WHITE) ;

clrscr() ;

while (i<n)

{

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

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

if (a[i] >0)

s=s+a[i] ;

i=i+1;

}

printf("нaтиже= %d\n", s) ;

printf("\nаяkтау yшiн Enter") ;

getch() ;

}

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

// Определение max a[n] и его индекса

#include <stdio. h>

#include <stdlib. h>

#include <conio. h>

main ()

{

int max, n, k, i, a[100] ;

printf("\nРазмерность массива : ") ;

scanf("%d", &n) ;

printf("Элементы массива:") ;

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

{a[i] = rand() % 100 - 50; // случайные числа до 32767

printf(" %i ", a[i] ) ; } // далее остаток от 100 и - 50

// определение максимума

max=a[0] ; k=0;

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

if (a[i] >max)

{max=a[i] ; k=i; }

printf("\nmax = %d его индекс=%d\n", max, k+1) ;

getch() ;

}

Есеп: Бүтін сандардан тұратын А[15] бірөлшемді массиві берілген. Массивтің оң элeменттерінің геометриялық ортасын анықтау керек.

/* Дан целочисленный массив A[15], определить геом. среднее элементов > 0 */

#include <conio. h>

#include <stdio. h>

#include <stdlib. h>

#include <math. h>

#define n 15

main ()

{

int a[n], i;

printf("\nЭлементы массива:") ;

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

... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Көп өлшемді жиымдар
Delphi программалау тілінде массивтермен жұмыс
Си және Си тілініңи көрсеткіштері мен массив элементтері
Бір және екі өлшемді массив элементтерін енгізу
ОҚУ ТӘЖІРБИЕСІНІҢ ЕСЕБІ (1304000 – Есептеу техникасы және бағдарламамен қамтамасыз ету мамандығы)
Орта мектепте Паскаль программалау тілін оқытуды жетілдіру жолдары
Программа жұмысын басқару операторлары
Информатика бойынша сыныптан тыс жұмыстар ұйымдастыру
ТИПТІҢ АТЫ ТИП
Информатика және ЭЕМ
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz