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


Жұмыс түрі: Реферат
Тегін: Антиплагиат
Көлемі: 15 бет
Таңдаулыға:
Мазмұны
Кіріспе
- Жиым
- Жиымды сипаттау
Негізгі бөлім
- Жиым элементтерінің қосындысын есептеу
- Жиым элементтерінің ең кішісін және ең үлкенін анықтау
Қорытынды
- Қолданылған әдебиеттер
Кіріспе.
Си-де жиымдар өзінің аргументтері ретінде параметрлер мәнін қабылдайтын болғандықтан, тікелей мүмкіншілік шақырылатын функцияда айнымалыны өзгертуге болмайды.
Жиым - бір типтегі элементтердің реттелген жиыны, жиымдарға реттік номері және олардың индексі арқылы қол жеткізуге болады.
Жиым өлшемін (1-ден кем емес) элементтер саны береді және тік жақшаға алынады. Жиым өлшемін капиляция этапында-ақ білу керек, кезегінде, ол константалық болуы қажет, дегенмен өлшемімен беру маңызды емес.
Қажетті нәтижені алу үшін, шақырылатын программада өзгертілуі тиісті мәнге көрсеткіштерді беру қажет. Бұл жағдайда шақырылатын функция формальды параметрлердің көрсеткіштер ретінде сипатталуы қажет, бұдан параметрлердің мәніне қатынасу олар арқылы жанама түрде жүргізіледі. шақырылатын функцияда оның программасын шақыратын объектіге қатынасуды жүзеге асыратын көрсеткіштер және осы объектілерді өзгертуге мүмкіндік береді.
С++ мұндай операндаларды ақырсыз қоса алмайды, алдымен оған оларды бір типке келтіріп алу қажет. Ол үшін арифметикалық типтерді түрлендіру ережесі бар.
Жиымдарды пайдалану
Жиым (массив) - ақырлы өлшемді бір типті мәліметтер тізбегі. Жиым - күрделі типті нысан. Жиымның әрбір элементі жиымның аты мен индексі (бүтін сан) арқылы анықталады да, әрі сол элементке қол жеткізуге мүмкіндік береді. Бір өлшемді жиымдарды қарастырайық. СИ тіліндегі бір өлшемді жиымдардың индекстері 0-ден басталады . Программадағы бір өлшемді жиымдар былай жарияланады:
<Тип> < жиымның аты >[өлшемі] ;
Мұндағы, өлшем - бір өлшемді жиымдардың элементінің саны.
Жиымның өлшемі константамен немесе константалық өрнекпен анықталады. Жиымның өлшемін айнымалы етіп беруге болмайды, мұндай жағдайда жадыны динамикалық бөлу тәсілі қолданылады.
Бүтін типті жиымды жариялау мысалы:
int a[5] ;
а жиымының бірінші элементі а[0], екіншісі - а[1], …, бесінші элементі - а[4] . Си тілінде индекстің жиымның шегінен шығып кетуі бақыланбайды. Жиымның өлшемін, индексін программист бақылайды.
Массив немесе жиым - бір типтегі элементтердің реттелген жиыны. Олар бір атаумен - идентификатормен аталады да, индексті айнымалы ұғымына сәйкес келеді. Мысалы, мынадай тізбек
- 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++)
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz