Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Рылымдық типті айнымалылар қалай сипатталады? Құрылым элементтерімен жұмыс қалай ұйымдастырылады?





Билет

1-шы,2-ші сұрақ 1-билет пен бірдей

Билет

1.Идентификатор дегеніміз не? С++ тілінде қандай арифметикалық және логикалық амалдар қолданылады? Амалдардың қызметтерін мысалмен көрсетіп түсіндіріңіз

2. Құрылымдық типті айнымалылар қалай сипатталады? Құрылым элементтерімен жұмыс қалай ұйымдастырылады?

3. Бүтін N (>1) саны және N нақты сандар жиыны берілген. Берілген жиынның көршілес екі элементінің көбейтіндісі ең кіші болатын элементтердің номерлерін және оларды өсі ретімен шығарыңыз\

 

Жауабы

 

1.Идентификатор дегеніміз не? С++ тілінде қандай арифметикалық және логикалық амалдар қолданылады? Амалдардың қызметтерін мысалмен көрсетіп түсіндіріңіз

Идентификаторлар — тұрақтыларды, айнымалыларды, өрістерді, типтерді, қасиеттерді, процедураларды, функцияларды, программаларды, модулдерді, кітапханаларды және пакеттерді анықтау үшін қолданылады. Бұл сөздерге программист жасаған және алдын ала анықталған сөздер де жатады. Идентификаторлар келесі ережелерге сай жасалуы керек:идентификатор ұзындығы әр түрлі болуы мүмкін, бірақ 255 символдан аспауы керек;идентификатор әріптерден, сандардан тұруы және асты сызылған болуы мүмкін;идентификатор барлық уақытта әріптен басталуы керек, арасында бос орын (пробел) болмауы керек;идентификатор бас әріптерден, кіші әріптерден немесе аралас тұруы мүмкін. Компилятор регистрді ажыратпайды. Сол себепті ол олардың айырмашылығы жоқ деп қарастырады: MyLabel, MYLABEL, mylabel;екі идентификатор арасында кем дегенде бір бөлгіш (разделитель) болуы тиіс.

Идентификаторлар. Әріптен немесе астын сызу символынан басталатын латын әріптерінің, цифрлар, астын сызу символының (_) тізбегі идентификатор болып табылады. Мысалы: B12 rus hard_Ram_disk MAX rus_32 Паскальдан айырмашылығы, Си/С++ тілінде бас әріп пен кіші әріптер арасында айырмашылық бар. Мысалы: flag, FLAG, Flag – әртүрлі идентификаторлар. Идентификаторлар ұзындығы әртүрлі болуы мүмкін. Тілдің бастапқы ұйымдастырылуына байланысты. /*Borland фирмасының компиляторлары атаудың бастапқы 32 символын қолдануға мүмкіндік береді, кейбір ұстанымдарда идентификатор ұзындығы 8 символдан аспау керек

Си/Си++ тілдерінде төрт базалық арифметикалық (сандық) деректер типтері бар. Оның екеуі бүтін сандық – char, int, екеуі жылжымалы (нақты) үтірлі болып келеді – float, double. Сонымен қатар, программада модификаторлар деп аталатын қызметтік сөздердің көмегімен баяндалатын, осы типтердің кейбір модификацияларын пайдалануға болады. Өлшемнің екі модификаторы бар – short (қысқы) және long (ұзын). Таңбалардың екі модификаторы бар – signed (таңбалы), unsigned (таңбасыз). Таңбалы модификаторлар тек бүтін типтерге қолданылады. Төмендегі кестеде С++ тіліндегі деректердің арифметикалық типтері берілген.

С++ тіліндегі деректердің типтері Деректер типі Өлшем (байт) Мәндер диапазоны Типтің эквивалентті атаулары Char 1 -128...+127 signed char Int 2/4 жүйеге байланысты signed, signed int unsigned char 1 0…255 Жоқ unsigned int 2/4 жүйеге байланысты Unsigned short int 2 -32768…32767 short, signed short int unsigned short 2 0…65535 unsigned short int long int 4 - 2147483648…2147483647 long, signed long int unsigned long int 4 0…429496 7295 unsigned long Float 4 ±(3.4e-38…3.4e+38) Жоқ Double 8 ±(1.7e-308…1.7e+308) Жоқ long double 10 ±(3.4e-4932…1.1e+4932) Жоқ Bool 1 True және false Жоқ Осы кестеге талдау жасай отырып, мынадай қорытынды жасауға болады: – егер базалық тип көрсетілмесе, онда int типі бастапқы болып алынады; – егер таңбалар модификаторы көрсетілмесе, онда signed қабылданады;

– float базалық типімен модификаторлар қолданылмайды; – short модификаторы тек int базалық типіне жарамды. Си/С++ тілінде char типінің шамалары программада символ түрінде де, сондай-ақ бүтін сан түрінде де қарастырыла береді. Бәрі контекстке, яғни осы шамалардың қолданылу тәсіліне байланысты.

Мысалы, char а=65; printf (“%c”, a); /* экранда А символы шығады*/ printf(“%d”, a); /* экранда 65 саны шығады*/ “%c” символы – символдық деректерді енгізу/шығару форматының спецификациясы болып табылады

. Ал “%d” – бүтін санға арналған спецификация. Си/Си++ тілдерінде логикалық шамалар ретінде бүтін сандар қолданылады. Олардың мәндерін логикалық шамаларға интерпретациялау мына ереже бойынша жүзеге асырылады: нөлге тең – жалған, 0-ге тең емес – ақиқат. Си++ тілінің соңғы версияларына bool атты жеке логикалық тип қосылған. Оны бүтін типке жатқызады.

рылымдық типті айнымалылар қалай сипатталады? Құрылым элементтерімен жұмыс қалай ұйымдастырылады?

Си/Си++ тілдерінде құрылым түсінігі Паскальдағы жазба (record) түсінігіне тең. Бұл құрылымдалған деректер типі (түрлі типті элементтердің аталған жиынтығын білдіреді). Құрылым типі әдетте ақпараттық жүйелер, дерекқор әзірлегенде қолданылады. Мынадай құрылым берілсін: Cи/Си++тілдерінде программалау 85 Мұндай құрылым элементтері (фамилия, курс, топ, стипендия) өрістер деп аталады. Әрбір өріске сәйкесінше атау және тип қойылуы керек. Құрылымдық типті баяндау форматы: struct тип_аты {элементтер_анықталуы}; Соңында міндетті түрде нүктелі үтір қойылады (бұл оператор). Қарастырылып отырған мысал үшін сәйкес құрылымдық типті анықтау былайша берілуі мүмкін: struct student {char fam [30]; int kurs; char grup [3]; float stip; }; Осыдан кейін student құрылымдық тип атына айналады, ол кейбір айнымалыларға тағайындалуы мүмкін. Си стандартына сәйкес былай жазылады: struct student stud1, stud2; С++ ережесі struct кілттік сөзін қоспай, мына түрде жазуға мүмкіндік береді: student stud1, stud2; Мұндағы stud1 және stud2 – құрылымдық типті айнымалылар. Құрылымдық айнымалыларды баяндаудың басқа да нұсқалары болады. Тип атын мүлдем бермей-ақ, айнымалыларды бірден баяндауға болады: struct {char fam [30]; А. Ә. Шайқұлова 86 int kyrs; char grup [3]; float stip; } stud1, stud2, *pst; Бұл мысалда құрылымдық типті екі айнымалымен қатар, осындай құрылымға pst нұсқағыш баяндалған. Бұл баяндауда student құрылымдық тип атын сақтап қалуға болады. Құрылымдық шама элементтеріне (өрістерге) қатынас нақтыланған атау көмегімен құрылады. Форматы: құрылым_аты. элемент_аты Жоғарыда баяндалған айнымалылар үшін нақтыланған атауларға мысал: stud1.fam; stud1.stip Құрылым элементтерінің мәндері енгізу, меншіктеу, инициализациялау арқылы анықталады. Инициализациялауға мысал: student stud1={“Каимов”, 3, “Ф32”, 350}; Программада құрылымға нұсқағыш анықталған болсын: student *pst, stud1; Онда меншіктеу операторы орындалғаннан кейін pst= &stud1; stud1 құрылымдық айнымалының әрбір элементіне үш тәсілмен қатынас құруға болады: мысалы, fam өрісі үшін: stud1.fam немесе (*pst).fam немесе pst →fam Соңғы нұсқада құрылым элементіне қатынас құру операциясының белгісі қолданылады: →. Осы секілді, осы айнымалының басқа элементтеріне де қатынас құруға болады. pst →F10, pst→grup, pst→stip. Құрылым өрісінің өзі құрылымдық типті қамтуы мүмкін. Мұндай шамалар көпдеңгейлі бұтақ түрінде көрсетіледі. Cи/Си++тілдерінде программалау 87 Құрылымдар массивін қолдануға да мүмкіндік бар. Мысалы, 100 студент туралы мағлұматтар келесі түрде баяндалған массивте сақталуы мүмкін: student stud[100]; Онда жеке студент туралы мәлімет былай белгіленетін болады: stud [1].fam, stud[5].kurs және т.с.с. Егер 25-ші студент фамилиясының бірінші әріпін алу керек болса, онда былай жазған дұрыс: stud[25].fam[0]. Мысал. N студент туралы мәліметтерді енгізу. Ең жоғарғы стипендия алатын студенттердің тегін анықтау. #include #include void main () { const N=30; int i, float maxs; struct student { char fam [15]; int kurs; char grup [3]; float stip; }; student stud[N]; clrscr (); for (i=0; imaxs) maxs=stud[i].stip; printf (“\n ең жоғарғы стипендия алатын студенттер %f теңге.”, maxs); for (i=0; i

Билет

1.С, С++ тілінің құрылымы қалай сипатталады? Негізгі анықтамалары, синтаксис, семантика. Айнымалылар типтері дегеніміз не және не үшін қолданылады?

2.

Массивтерді сұрыптау алгоритмдері қандай есептерді шешуге арналған? Орын алмастыру әдісі. Орнына қою әдісі (метод вставок). Мысал келтіре отырып айырмашылықтарын көрсетіңіз.

Жауабы

1.С, С++ тілінің құрылымы қалай сипатталады? Негізгі анықтамалары, синтаксис, семантика. Айнымалылар типтері дегеніміз не және не үшін қолданылады

 

Екі өлшемді массивтер дегенді қалай түсінесіз және оған қолданылатын амалдарды мысалмен көрсетіңіз. 2. 1. Енгізу-шығару операторлары. Меншіктеу операторларының қызметі қандай.Идентификатор, айнымалылар және тұрақтылар дегеніміз не? Мысал келтірңіз.

Массивтерді енгізу және шығару (С/С++). Массивтер Массив деп жалпы бір аты бар біртипті элементтердің тізбектелген жиыны. Массив элементі болып құрылымдықпен қоса әр түрлі типтердің деректері болуы мүмкін.Массивтің әр элементі массив атымен және индекспен(массивтегі элемент номері) немесе егер массив көпөлшемді болса, онда индекстермен анықталады.массивтің бөлек элементіне 111 үшін осы массивтің аты және квадрат жақшаға алынған элемент номері, мысалы arr[1,35] немесе arr[7].Индексті позициялар саны массив өлшемділігін анықтайды. Сонымен қатар массив өлшемділігі шектелмейді.Математикада бірөлшемді массив аналогі болып вектор, ал екіөлшемді массив аналогі болып матрица саналады.Массив элементтерінің индекстері қатарланған типке жатуы тиіс.Бір массивтің әр түрлі индекстерінің әр түрлі типтері болуы мүмкін.Ең жиі кездесетін индекс типі бүтін тип болып табылады.Массивтер динамикалық және статикалық болып бөлінеді.Статикалық массив индекс шекаралары және сәйкес оның өлшемдері хабарлаған кезде, яғни программа компиляциясынан бұрын белгілі болады.Сатикалық массивтің типінің жазылу форматы Array[индекстер типі] of <Элементтер типі Мысал. Статикалық массивтерді хабарлау. Type tm=Array[1..10,1..100] of real;Var arr1,arr2:tm;Arr3:Array[20..100] of char;Arr4:Array[‘a’..’z’] of integer; arr1 және arr2 айнымалылары 1000 элементтен — 10 жол және 100 бағаннан тұратын екіөлшемді массив болып табылады. Осы массивтердің әр элементі real типті санды сипаттайды. arr1 және arr2 массивтерін хабарлау үшін tm арнайы типі енгізілген. arr3 және arr4 айнымалылары сәйкес 81 символ және 26 бүтін сан бірөлшемді массиві болып табылады. Динамикалық массив тек оның элементтерінің типі көрсетілетін, ал массив өлшемі программаның орындалу барысында белгілі болатын массив болып табылады. Динамикалық массив қолдану кезінде динамикалық массивтің типін суреттеу форматы 4 версиясынан бастап мүмкін болды: Array of<Элементтер типтері>; Программаның орындалу барысында динамикалық массивтің өлшемін беру SetLength (var S; NewLength:Integer) процедурасы арқылы жүзеге асады.Бұл процедура s динамикалық массивіне NewLength-ке тең жаңа өлшем орнатады.Динамикалық массив және оның элементтерімен операцияларды тек массив өлшемін енгізгеннен соң орындауға болады.Динамикалық массивтің өлшемін берген соң оның ұзындығын,минимал және максимал элементінің номерін анықтау үшін сәйкесінше Length(), Low(), High() функциялары қолданылады. Динамикалық массивтің номірленуі нолден басталады, сондықтан Low() функциясына ноль мәні қайтарылады.

Массивтің сипатталуы. Массивтер бірдей типті және бір атты логикалық байланысқан жадының ұяшықтар тобы болып табылады. Массивтің элементіне қатынас жасау үшін массивтегі осы элементтің массивтің атын және позициясының нөмірін көрсету қажет. Кез келген массивтің бірінші элементі нөлдік реттік нөмерге ие болады. Массивті баяндағанда массивтің атын, әрбір элементінің типін және элементтерінің санын көрсету керек. Массивтің элементтері массивті баяндаудың соңына теңдік белгісін және үтірмен бөлінген инициалданатын мәндер (фигурлы жақшаға алынған) тізімін қою жолымен инициалдауға болады. Төменде келтірілген программа бүтін типті массивті оң 10 мәндермен инициалдайды./* Баяндауда массивті инициалдау */#include main(){ int i, n[10]={2, 27, 64, 18, 95, 14, 90, 70, 6, 3}; for (i=0; i<=9; i++)

Меншіктеу операторы Бұл оператор Delphi тіліндегі программада өте жиі пайдаланылады және «:=» таңбасы арқылы жазылады. Айтылған оператор сол жақтағыайнымалығаоң жақтағы айнымалының мәнін меншіктейді. Мысалы А:= 10; Бос оператор Бос оператор – (;) белгісі арқылы анықталады және программаның ке келген жерінде кездеседі. Бұл оператор нақты бір ісәрекетті орындамайды,бірақ көп кездерде қажетті болып келеді. Құрама оператор Құрама оператор – begin және end операторларының арасында орналасқан, бір бірімен нүктелі үтір арқылы ажыратылған операторлар тобы. Сонымен құрама операторды келесі түрде көрсетуге болады:Begin оператор1; оператор2end;Delphi – де бір біріне қойылған операторлар саны шектелмеген.Қатынау (доступ) операторы Қатынау операторы – белгілі бір объектілердің құрама бөлшектеріне жеңіл, әрі тез қол жеткізуге мүмкіндік береді

Идентификаторлар. Айнымалылар, тұрақтылар және оларды сипаттау. Идентификаторлар (атау) тұрақтыларды, айнымалыларды, олардың түрлерін, функцияларды, программаларды т.б. обьектілерді белгілеу үшін қолданылады. Идентификатор міндетті түрде әріптен басталатын сандар мен әріптердің тізбегі. Мысалы: X, X1, SERN45T3, ALFA99, P31PS161 т.с.с. Идентификатор стандартты және бейстандартты (өзіміз берген атау) болып бөлінеді. Стандартты атаулар тілдің объектілерін белгілеу үшін қажет, оларды тек сол өз мағынасында қолдануымыз керек, мысалы: TRUE, FALSE, BOOLEAN, REAL, ABS, SІN т.б. Паскаль тілінде программа жазуда қолданылатын түйінді сөздер де стандартты идентификаторға жатады, мысалы: ARRAY, PROGRAM, BEGІN, VAR, CONST т.с.с. Өзіміздің тұрақтыларға және айнымалыларға беретін атауларымыз стандартты идентификатордан өзгеше болуы керек, мысалы: SURET1, CENA, MATERІAL, т.с.с. Біздің келтіріп отырған мысалдарымызда тек латын алфавитінің үлкен, не кіші әріптерін ғана пайдалануға рұқсат етілген. Айнымалылар деп программаның орындалу барысында әр түрлі мәндерді қабылдай алатын шамаларды айтады. Олар идентификаторлармен белгіленіп, кез келген уақытта белгілі бір мәнге ие болады. Айнымалылардың белгіленулері: D, X1, X2, GAMMA, SUMMA т.с.с.Айнымалыларды сипаттау VAR түйінді сөзінен басталады, одан кейін типі көрсетілген айнымалылардың атауы көрсетіледі. Мысалы: Var x, y, z: іnteger; a, b, c: real; d, r: char; melі, bol: boolean; Тұрақтылар (константа) деп программаның орындалу барысында өзгеріссіз қалатын шамаларды айтады. Тұрақтыға өзіміз программаның орындалу барысында сандық мән берсек, ал сипаттау бөлімінде идентификаторды белгілегеннен кейін мәнді беретін боламыз. Тұрақтылар ІNTEGER, REAL, BOOLEAN, CHAR түріндегі мәндерді қабылдай алады. Символдық тұрақтылар апостроф ішіндегі таңбалармен жазылады, мысалы, ‘A’. Логикалық түрдегі тұрақтылар - TRUE (ақиқат) немесе FALSE (жалған) мәндерінің біреуіне ие бола алады. Жалпы түрі: Const < айнымалының аты > = < мәні>Мысалы: Const a=3; pі=3.14; g=9.8; Тұрақтыларды анықтау CONST түйінді сөзінен кейін оларды сипаттап жазудан басталады. Әрбір тұрақты сипатталған соң (;) белгісі қойылады. Турбо Паскаль тілінде мән ретінде осыған дейін анықталған тұрақтылар мен стандартты функциялардан тұратын өрнектерді де пайдалануға болады. Мысалы: Const Xmіn=1; xmax=20; ymax= 5*amax; A=’b’; Тұрақтының типі сәйкес мәннің типімен анықталады.

2. Екі өлшемді массивтер дегенді қалай түсінесіз және оған қолданылатын амалдарды мысалмен көрсетіңіз.

Кезкелген элементін беру үшін екі индекс талап етілетін жиым екі өлшемді жиым деп аталатынын еске саламыз. Әдетте, жиымды қатарлары мен бағандары бар кесте түрінде береді. Сонда қатар нөмірі-жиымның бірінші индексін, баған нөмірі-жиымның екінші индексін көрсетеді. Екі өлшемді жиым былай сипатталады:

var жиым аты: array [1..қатар саны, 1..баған саны] of типі

Мұнда, Бейсиктегі сияқты қатар мен баған индекстері бір-бірінен үтірмен ажыратылады.

Программада екі өлшемді жиымды көбінесе қатарлары мен бағандары бірдей кесте түрінде шығарады. Паскальда бұл үшін қосымша келесі қатарға көшуді жүзеге асыру керек болады. Бұдан басқа сандардың ұзындықтары да әртүрлі болып жатады. Мыс, бір сан –екі таңбалы, ал екінші сан-үш таңбалы. Нақты сандар әр түрлі бөлшек бөлігімен(цифрлар санына қарай) шығарылады. Мұндай жағдайда бірдей баған алу үшін шығару операторында сан мен оның бөлшек бөлігін жазуға бөлінген позиция санын көрсету ұсын-ылады. Ол былай орындалады: шығаруға арналған айнымалыдан соң қос нүкте арқылы шығарылатын позицияның жалпы санын көрсететін санды, егер ол нақты сан болса, онда тағы бір қос нүкте арқылы ондық үтірден кейінгі мәнді цифрдың саны көрсетіледі. Санды шығару кезінде сан берілген мәнді цифрға дейін дөңгелек-тенеді.Егер а айнымалысы нақты сан және ол 12.356 мәнге ие болса, онда write(a:6:2) операторының орындалуы нәтижесінде 12.36 санын аламыз(сан алдында қосымша бос орын болады).

 

 

Егер таблицалық шама 2 индексті болса, онда екі өлшемді массив немесе матрица деп атайды.

Матрица бірнеше жол және бірнеше бағаннан тұратын реттелген ақпарат жиыны. Оның элементтері сан, символ, өрнек болуы мүмкін. Матрицаның бірінші индексі, оның жол санын, екінші идексі баған санын анықтайды. Баған және жол индексінің қиылысуы матрицаның элементінің адресін береді. Матрица индексі тік жақшаға алынады (A[2, 4]).

Date: 2016-06-06; view: 1730; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию