Компьютер экранында 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 квадрат матрицаны алу керек.

Алгоритмдерқұрудыңбірыңғайқұрылымдары. Сызықтық алгоритмдер. Күрделі алгоритмдерді құру үшін қарапайым бірыңғайланған алгоритмдік құрылымдар қолданылады. олар сызықтық, тармақталу және цикл құрылымдарынан тұрады.     Программалау теориясында кез келген программаны үш түрлі құрылымнан құрастыруға болатыны дәлелденген, олар: сызықтық, тармақты және циклдік құрылымдар. осы үшеуі құрылымдық программалаудың негізгі конструкциялары, яғни құраушылары болып саналады. Сызықтық құрылым бірінен кейін бірі орындалып тізбектеле орналасқан бірнеше операторлардан тұрады.     Тармақты – шартқа байланысты екі оператордың бірінің орындалуы.     Цикл – операторлар бөлігінің бірнеше рет қайталана орындалуы.     Оператор – тілдің қарапайым сөйлемі, ол белгілі бір әрекет немесе амал орындап, нүктелі үтір (;) таңбасымен аяқталады.     Негізгі конструкцияларды пайдалану мақсаты – қарапайым құрылымды программа алу болып саналады. Мұндай программалар оңай оқылады, түзетіледі және керек болса, оңай өзгертіледі. Құрылымдық программалауда gotoоператорын қолдануға болмайды, өйткені ол программа логикасын түсінуді қиындатады. Бірақ кейде gotoоператорын қолдану қажет болатын кездер болады.   Сызықтық құрылым Тармақты құрылым Циклдік құрылым         1.2 Төменгіменшіктеулерденсоң, a,b,c,dнешегетең? int a = 5, b = 6, c = 7, d; d = b+ ++a + c-- + a= 6+6+7+6=25 a =6, b = 6, c = 6, d=25 2.1 Алгоритмдеу, программа ұғымдары. Алгоритм – берілген есептің шығару жолын реттелген амалдар тізбегі түріне келтіру. Кез келген есепті қарапайым амалдарды тізбектей орындау арқылы шығаруға болады. Алгоритмді компьютерде орындау үшін оны программа түрінде жазып шығу керек. Программа – алгоритмді машинаға түсінікті нұсқаулар тізімі ретінде жазу. Программа машинаға түсінікті командалардан тұрады. Осы командалар тізбегі орындалу барысында есептің нәтижесі шығады. Әрбір компьютер алдын ала жазылған программамен істейді. Алгоритмдерді компьютерде орындау үшін оларды алдын ала жазып алу керек, яғни ол белгілі бір заңдылықпен өрнектелуі тиіс. Жалпы алгоритмді жазып өрнектеу түрлеріне: 1) табиғи тіл арқылы жазу; 2) графика жолымен жазу; 3) алгоритмдік тілдермен жазу жолдарын жатқызуға болады. Бірақ алгоритмді табиғи тілде өрнектеу компьютерлерде сирек қолданылады, өйткені онда дәлдік, нақтылық болмайды. Алгоритмдерді графика жолымен жазу, онан кейін оны программаға айналдыру істері мемлекеттік стандартпен бекітіліп ақпарат өңдеу жұмысында кеңінен қолданылып келеді. Алгоритмдік, яғни программалау тілдері есептерді шығару жолын баяндау – өрнектеу үлгісі, белгілі бір проблеманы шешу негізінде орындалатын әрекеттерге басшылық, ой еңбегін үнемдеуге мүмкіндік беретін әдіс, есеп шешімін табуды автоматтандыруға қажетті іс – әрекет, жаңа проблеманы шешу кезінде қолданылатын тәсілдер, күрделі процестерді өрнектеу және математикалық дәлдікпен анық етіп жазу құралы бола алады. Бұл әдістемелік құралындағы программалар С және С++ тілдерінде жазылған. 2.2 Төмендегіменшіктеулерденсоң х,у нешегетеңболады? int x=9,y; y=++x%5;x=10 y=0     3.1 Алгоритмдердіңқасиеттеріжәнеалгоритмніңөрнектелужолдары. Алгоритм қасиеттері: § Модульдік (дискреттік)(дискретті, үзілмелі) – алгоритм белгілі бір реттілікпен орналасқан кез келген нақты модульдерден, яғни бөліктерден тұруы тиіс. § Нәтижелілік – алгоритмде қате болмай, оның әрбір қадамы нақты нәтиже беруі тиіс екендігін білдіреді. § Детерминділік (бір мәнділік)  (лат. determinate – анық-тылық, дәлдік) – алгоритмнің кез келген әрекеті әрбір жағдайда анық, басқаша түсінуге болмайтындай деңгейде болуы керек. § Жалпылылық – бір алгоритмді әртүрлі бастапқы мәліметтер беру арқылы пайдалануға болатынын көрсетеді. § Шектеулік – әрбір жеке әрекеттің де және толық алгоритмнің де аяқтала алу мүмкіндігінің болуын анықтайды. Орнектелу жолдары p Сөздер арқылы p Кестелер арқылы p Графиктер арқылы (блок-схема) p Алгоритмдік тіл арқылы жазу 3.2 Төмендегіменшіктеулерденсоң,а мен і нешегетеңболады? int a=5,i=10; a=i++ ---a; i=? a=? a=i++ ---a=10-4=6; a=i++ ---a; i=11 a=4         4.1. Тармақталу алгоритмдері. «Таңдау», «Аттап өту» алгоритмдерін құру жолдары. Тұрмыста кездесетін алгоритмдер əр түрлі болып келеді. Олардың жиі кездесетін түріне алгоритмнің белгілі бір шарттың орындалуына не орындалмауы- на байланысты тармақталып бірнеше жолдарға бөлінуі жатады.Тармақталу алгоритмінің құрылымы қарапайым болып келеді. Мұнда арифметикалық теңсіздік (теңдік) түрінде берілген логикалық шарт тексеріледі. Егер ол орындалса, онда алгоритм бір жолмен, ал орындалмаса екінші жолмен жүзеге асырылады, яғни есепті шығару жолы тармақталып екіге бөлініп кетеді. Тармақталу алгоритмдеріне шартты тексеру блогы міндетті түрде кіреді. Ол ромб түрінде кескінделіп, басқа блоктармен 1 кіру жəне 2 шығу сызықтары арқылы байланысады. Көбінесе тармақталу алгоритмдері екі түрде кездеседі, олар «таңдау» жəне «аттап өту» мүмкіндіктерін іске асыруға көмектеседі.«Таңдау» жолымен тармақталуда берілген шарт тексеріледі (1.1-сурет), егер ол шарт орындалса (орындалуы ақиқат болса), онда 2-амал жүзеге асырылып, содан кейін келесі 3-амалға көшеміз. Ал, егер де шарт орындалмаса, яғни оның орындалу мүмкіндігі жалған болса, онда 1-амал атқарылып, содан кейін3-амал атқарылады. Сонымен, шарттың ақиқат немесе жалған болуына байланысты 1-амал немесе 2-амал орындалады. «Аттап өту» (1.2-сурет) алгоритмінде шарт орындалса, 1-амалды аттап өтіп, бірден 2-амалды, содан кейін 3-амалды орындаймыз. Ал шарт жалған болса, онда 1-амал міндетті түрде орындалып, одан кейін 2- жəне 3-амалдар жүзеге асырылады. Тармақталу кезеңінде шартты тексеру блогы орындалуы барысында, алгоритмнің екі мүмкіндігінің тек біреуі ғана таңдап алынып жүзеге асырылады да, ал екінші таңдап алынбаған тармақ біріктіру нүктесіне дейін орындалмай қалады. Енді осыған нақты мысалдар келтірейік. Сурет 1.1                                                                                  Сурет 1.2 Сурет 1.1.«Таңдау» алгоритмі Сурет 1.2. «Аттап өту» алгоритмі 4.2. Екісанның (х, у) үлкенін табу керек. #include<iostream> using namespace std; int main (){        int x=5,y=9;        if(x>=y)        cout<<x<<endl;        else cout<<y<<endl; return 0;}   5.1 Итерациялық (қадамдық) циклдер. Алғышарттыжәнесоңғышарттыциклдер блок-схемаларынқұру. Олардыңайырмашылықтары мен өзгешеліктері Есеп шығару кезінде бір теңдеуді пайдаланып, ондағы айнымалы мәнінің өзгеруіне байланысты оны бірнеше рет қайталап есептеуге тура келеді. Осындай есептеу процесі бөліктерінің талап орындауын циклдеп атайды, ал қайталанатын бөлігі бар алгоритмдер тобы циклдікалгоритмдерге жатады. Қайталау санының алдын ала белгілі және белгісіз болуына байланысты цикл екі түрге бөлінеді. Қайталау саны алдын ала белгілі цикл –арифметикалық цикл деп, орындалу саны белгісіз цикл - командалық(итерациялық) цикл деп аталады. Арифметикалық цикл.Арифметикалық цикл ең қарапайым цикл болып табылады және практикада жиі қолданылады. Қайталану барысында цикл параметрі арифметикалық прогрессияның заңы бойынша тұрақты шамаға өзгеріп отырады. Итерациялық (қадамдық) цикл. Цикл орындалмас бұрын, оның қайталану саны белгісіз болған жағдайда, қадамдық циклді пайдаланады. Циклді аяқтау үшін белгілі бір шарт тексеріледі. Егер шарт орындалмаса, онда кайталану командасы атқарылады. Ал шарт орындалса, онда цикл қайталанбайды. Қадамдық циклді кескіндегенде модификатор қолданылмайды, себебінеше рет қайталанатынын алдын ала білмейміз.   Қайталану саны белгісіз болғандағы мына есепті қарастырайық. Натурал сандардың тізбегі берілген дедік. Осы натурал сандардың тізбегі 1,2,3,4,... саны берілген К санынан үлкен болғанша цикл орындалу керек. алгқадамдық цикл (бүт s,i,k) басы енгізу (k) s:=0; i:=1; s:=s+i; егер s>k онда i:=i+1 әйтпесе бітті шығару i, s соңы     Бұл есептің сызба-нұсқасы төменгі суретте кескінделген. Ол сегіз блоктан тұрады. Жұмыс басында 2 блокта К-ға мән беріледі. Әрі қарай 3 блокта i айнымалысы 1 мәнін қабылдайды, осы 1 мәнінен бастап натуралды санау басталады да, әрі жалғаса береді. S айнымалысы осы сандардың қосындысы болады, қосындыны орындар алдында оның мәні 0-ге тең деп аламыз. Одан кейін теңдеу 5-ші блокқа көшеді. Бұл блокта S = S + i командасы орындалып, ұяшықтағы S және i айнымалыларының қосындысын орындайды да оның қосындысының мәні S -ке меншіктеліп, S ұяшығына сақталады. Біз басында S-тің мәнін 0-деп алған болатынбыз енді операция орындалғанан кейін S = 1 болады. S ұяшығыдағы алғашқы 0 мәнін өшіріп, оның орнына жаңа 1 санын сақтайды. 5.2 Екісанның (х, у) кішісін табу керек. #include<iostream> using namespace std; int main (){        int x=5,y=9;        if(x>=y)        cout<<y<<endl;        else cout<<x<<endl;        return 0;} 6.1 С/С++ тіліжайлыжалпытүсініктер (шығутарихы). С++ тіліндегі программа құрылымы. Тақырыптықфайлдар. Си тілі өткен ғасырдың 70-жылдары басында АҚШ-та Bell Telephon Laboratories компания-сының қызметкері Дэннис Ритчидің бастауы-мен дүниеге келді. Бұл тілдің негізі Алголдан басталып, Си және ПЛ/1 тілдерімен қатар пайда болды. Си тілінің шығуы UNIX операциялық жүйесін-де программалаумен тығыз байланысты, өйт-кені бұл жүйе ассемлерде және осы Си тілінде жазылып шыққан болатын. Жалпы Си тілінің даму жолына қарасақ:  Алгол-60 - 1960-ж. халықаралық комитет жасап шығарды CPL - (CombinedProgrammingLanguage) Кембриджде және Лондон университетінде 1963 ж. қатарласа жасалды BCPL - (BasicCombinedProgrammingLanguage) Кембриджде Мартин Ричардс 1967 ж. жасап шығарды B - BellLabs қызметкері Кен Томпсон 1970 ж. жасады С - BellLabs қызметкері Дэннис Ритчи 1972 ж. Жасады  Сонымен, 1983 ж. Си тілі стандартын жасау үшін (ANSIC) Америка ұлттық стандарттар институты (ANSI) құрылды. Кез келген Си-программа бір немесе бірнеше функция-лардан тұрады. Олар программа құруға керекті негізгі модульдер болып табылады. Келесі суретте Си программасының жалпы құрылымы көрсетілген. С++ («си плюс плюс» деп аталады) .Бағдарламалаудың көп кездесетін тілі ретінде С++ , Тіл 1980 жылдың басында пайда болды, мұнда Bell Тілдің алғашқы түрлері «С класты С» деген атпен Класты С (кейіннен С++) өңдеу кезінде Страуструп cfront 1983 жылы класты С тілінің атауы С++ 1990 жылы «С++ бойынша қысқаша анықтамалық түсініктеме» шығады, С++ стандартты кітапханасы осымен бірге дамыды. Қарапайым С++ Ешкім де С++ тіліне иелену құқығына ие бола Тілдің объектілік – бағыттаушы ерекшеліктері С++ тілі С-ға объектілік – бағыттаушы мүмкіндіктерді қосады. Программа құрылымы. Программа мәтінінде препроцессорлы өңдеуден кейін бір де бір препроцессорлы деректива қалмайды.Енді программа сипаттамалар мен функциялар жиынынан тұрады. Бұл функциялардың арсында әрқашан фиксирленген main функциясы болуы керек. Осы функция онсыз программа орындалмайтын программаның негізгіфункциясы болып табылады. Бұл негізгі функцияның аты барлық программа үшін бірдей (әрқашан main ) және өз бетінше таңдалына алмайды. Сөйтіп, программаның негізгі мәтіні қарапайым жағдайда (программа бір ған функциядан тұрған жағдайда ) келесідей: Препроцессор директивасы main( ) { Обьектілерді _ сипаттау; Орындалатын _операторлар;} Препроцессордың дерективалары тек программаның басында ғана орналаспайды. Олар қажеттілік жағдайында программа мәтінінің кез келген бөлігінде орналаса алады. Бірақ, жұмыс істеуге арналған тақырыптық файлдарды программаның мәтінінің басында орлаластыру ұсынылады. #include <...> дерективасы программаның мәтініне компилятордың стандатты библеотекасымен бірге берілетін "тақырыптық файлы "каталогынан файл мәтінін қосуға арналған. 6.2 1-ден 100-ге дейінгібүтінсандардың 3-ке қалдықсызбөлінетіндерін\табу керек.         #include<iostream> #include<cmath> using namespace std; int main (){        int i;  for(int i = 1; i <= 100; i++)    if(i%3 == 0)        cout << i << endl; return 0;} 7.1. С/С++ тіліндегі арифметикалық, логикалық амалдардың орындалу жолдары. АрифметикалықЛогикалық амалдар:                                                                           амалдар:   + - қосу;                                                                                  && - және(екі шарт қатар * - көбейту;                                                                            орындалады А&&B); – - алу;                                                                                    // - немесе(екі шарттың бірі / - бөлу;                                                                                  орындалады А//В); % - қалдық табу;                                                                   ! – емес(шартқа кері терістеу 10%3 – нәтижесі 1.                                                              амалы !А).   7.2. 1-ден 100-ге дейінгі бүтін сандардың 5-ке қалдықсыз бөлінетіндерінің қосындысын табу керек.   #include <iostream> #include <cmath> using namespace std; int main() { int s=0, i; for ( i=1; i<=100; i++) { if (i%5==0) { S+=i;} } cout<<”1-100 aralygyndagi 5-ke kaldyksyz bolynetin sandar kosyndysy:”<<S; }     8.1. Символдардың америкалық кодтар стандарты (American Standart Code for Information Interchange - ASCII) және оны пайдалану. Ақпаратты белгілі-бір алфавит арқылы ұсынуды кодтау деп атайды. Бір белгі тобынан екінші белгі тобына көшіру ережесін код деп атайды. Ақпаратты сақтау, қабылдау, ұсыну, және өңдеу әдістері іс жүзінде ақпараттың ұсынылу (кодталу) түріне байланысты болады. Ақпараттың кодталуы кейде шифрлау деп те айтылады, оның кері кодталу (декодирование) процесімен тікелей байланысты. Есептеуіш техникасында ең көп пайдаланатын код— АSСІІ коды-американдық апарат алмасудың стандартты коды. Мысалы: Салт сөзін кодтау үшін әр символының кодын АSСІІ кестесінен табу керек. Оның коды-екі оналтылық сан, оның біріншісі — осы символ орналасқан бағанды, ал екіншісі жолды көрсетеді. Сосын сәйкестендіру кестесінен оны екілік жүйеге ауыстыру керек. С-91, а-A0, л-AB, т-E2 Енді сәйкестендіру кестесі арқылы екілік кодта ұсынамыз. 91-10010001, A0-10100000, AB-10101011, E2-11100010 Бұларды тізбектеп жазсақ: 10010001101000001010101111100010     8.2. 1-ден 100-ге дейінгі бүтін сандардың 3-ке және 5-ке қалдықсыз бөлінетіндерінің қосындысын табу керек.   #include <stdio.h> #include <conio.h> int main() { int i,s=0; for(i=1; i<=100;i++) { if(i%3==0 && i%5==0) s+=i; } cout<<s; return 0; }   9.1. C/С++ тілінің алфавиті. С++ тілінің түйінді сөздері.   С тілінің алфавиті тілдің алфавиті программаның элементтерін құруда қолдануға болатын символдар жиынынан тұрады. Оған әріптер, цифрлар және арнайы белгілер кіреді. Тіл ерекшеліктеріне қарай символдар тобын шартты түрде төмендегі топтарға жіктеуге болады, олар: атау (идентификатор) ретінде қолданылатын символдар ( a,b,c,…,z және цифрлар ); цифрлар ( 0,1,2,…,9 ) ; айыру белгілері ( , . : ; “ _ ); арнайы символдар ( #, &, *…). Идентификатордың ұзындығы әр программаның жүйесінде әр түрлі ANSI стандарты бойынша32 таңбадан аспауы керек. С++-те ше                                  ктеу жоқ. С++ тілінің түйінді сөздері – компилятор үшін арнайы мәні бар қордағы (резервтегі) идентификаторлар. С++тілінің түйінді сөздер тізімі: do, double, else, float, for, break, case, char, if, int, sizeof, string, switch, using, void, while, т.б.Си тілінің түйінді сөздері – программада алдын ала анықталған белгілі бір мағынасы бар сөз тіркестері. Си тілінің түйінді сөздері (служебные или ключевые слова) мәліметтер типтері, операторлар мен стан-дартты функциялар атаулары, жады кластары, модификаторлар (толықтырғыштар), т.с.с., олардың тіл-дің әр түрлі нұсқаларында аздап айырмашылықтары болуы мүмкін. Қордағы (резервтегі) сөздер: auto double int struct break else long switch register tupedef char extern return void case float unsigned default for signed union do if sizeof volatile continue enum short while, т.б. Алғашқытөрттипбүтінсандардысипаттауүшінқолданылады. 9.2. 1-ден 100-ге дейінгі бүтін сандардың 3-ке және 5-ке қалдықсыз бөлінетіндерін табу керек.   #include <iostream> #include <cmath> using namespace std; int main() { int s=0, i; cout<<” 1-100 aralygyndagy 3-ke jane 5-ke kaldyksyz bolinetin sandar:”; for (i=1; i<=10; i++) { if (i%5==0) { cout<<i<<”)”;} if (i%3==0) { cout<<i<<”)”;} }} 10.1Тілдің қарапайым объектілері:идентификаторлар,тұрақтылар(константалар),операциялар және оларды пайдалану. Тілдің қарапайым объектілеріне сан,идентификаторлар,константа,айнымалы және функция,өрнек ұғымдары кіреді. Сандар мен айнымалылар бүтін және нақты болып екіге бөлінеді.Бүтін сандар:+4,-100,15743,0, т.с.с. Қазіргі дербес компьютерлер үшін қолданылатын бүтін сандар (INTEGER) -32768 МЕН +32767 аралығында ғана жазылады.Нақты сандар санның бүтіні мен бөлшегін нүкте арқылы бөлген күйде жазылады.Мысалы:2.65,0.5,-0.862,-6.0.Ал өте үлкен немесе өте кіші нақты сандар көрсеткіші бар экспоненциал сандар ретінде mE±p түрінде жазылады да,олардың диапазоны әлде қайда кең болады.Е немесе е-онның дәрежесі,ал р-дәреженің өз мәні. Константа деп программаның орындалу барысында мәндері өзгеріссіз қалатын шамаларды айтады,олар сандық,символдық немесе тіркестік мәнді тұрақты түрде қабылдайтын шама болып табылады.Тіл ережесі бойынша бірнеше константа типтері болады.Мысалы:символдық.бүтін,нақты константалар,тб. Атау-идентификатор-программадағы тұрақтыларды,типтерді,айнымалыларды,функцияларды,файлдарды және тағы басқаларды белгілеп жазу үшін қажет.Идентификатор-латын әрпінен басталып,әріптер мен цифрлардан тұратын тізбек.Мысалы:а,berta,b5,baga.Идентификатор ұзындығына шек қойылмайды,бірақ оның алғашқы 31 символы ғана мағыналы болып саналады. 10.2 1-ден 200-ге дейінгі бүтін сандардың 7-ге қалдықсыз бөлінетіндерінің қосындысын табу керек. · #include<iostream> #include<cmath> using namespace std; int main() { int s=0,i; for(i=1;i<=200;i++) { if(i%7==0) { s+=i;} } cout«"1-100 aralygindagy 7-ke kaldyksyz bolynetyn sandar kosyndysy:"«s; }   11.1 С/С++ тілдіндегі мәліметтер типтері.Бүтін сандар типтерінің сипаттамалары,компьютер жадында алатын орындары,типтерді түрлендіру. Программалар әр түрлі мәліметтермен жұмыс істейді.Олар қарапайым мәліметтерге реттестірген мәліметтерге массивтер файлдар жатады. Тілде «мәлімет түрі».  char – символдық int – бүтін сан float – нақты сан double – ұзын нақты сан void – мәні жоқ Сhar типті айнымалының өлшемі бір байт, оның мәндері әртүрлі си тілінде бүтінайнымалының өлшемі бір машиналық сөзге тең – 32768 + 32767    Float түйінді сөзі нақты сандардан айнымалыда анықтауға қолданылады. 5, 6, 3133, - 2,01.   Double түйінді сөзі 2 еселенетін дәлдікпен берілген нақты сандарды анықтайды. Void – түйінді сөзі объектінің мәнін бейтарап етіп қалдыру үшін. (нейтрализовать).   Int бүтін сандар типі. Int типін стандарты бекітпеген, ол компьютерге немесе компиляторға байланысты     Типтерді түрлендіру. Егер өрнекте әр түрлі типті операндылар бар болса , оларды бір. 1. Егер операндылардың біреуінің типі double болса, онда қалғаны да 2. Немесе long болса, қалғаны да сол типке келтіріледі. 3. Немесе float типті болса қалғаны сол типке келтіріледі. 4. Немесе unіgnet болса қалғаны сол типке келтіріледі 5. Long болса, қалғаны сол типке келтіріледі 6.  Usignet болса, қалғаны сол типке келтіріледі 7. Int болса, қалғаны сол типке келтіріледі   11.2 Берілген 3 санның (x,y,z) үлкенін табу керек.   #include ˂iostream˃ #include ˂cmath˃ using names pace std; int main ( ) { double x, y, z; cout ˂˂“x ni engiz:” ; cin ˃˃ x; cout ˂˂ “y ni engiz:” ; cin ˃˃ y ; cout ˂˂ “z ni engiz:” ; cin ˃˃ z ;     if (a ˃=b && a ˃=c ) cout ˂˂ “a”; if (b ˃=a && b ˃=c ) cout ˂˂ “b” ; if (c ˃=a&& c˃=b ) cout ˂˂ “c” ; return 0 ; }   12.1 С/С++ тіліндегі мәліметтер типтері.Нақты сандар типтері,типтерді келтіру тәсілдері. Программалар әр түрлі мәліметтермен жұмыс істейді.Олар қарапайым мәліметтерге реттестірген мәліметтерге массивтер файлдар жатады. Тілде «мәлімет түрі».  char – символдық int – бүтін сан float – нақты сан double – ұзын нақты сан void – мәні жоқ Сhar типті айнымалының өлшемі бір байт, оның мәндері әртүрлі си тілінде бүтінайнымалының өлшемі бір машиналық сөзге тең – 32768 + 32767    Float түйінді сөзі нақты сандардан айнымалыда анықтауға қолданылады. 5, 6, 3133, - 2,01.   Double түйінді сөзі 2 еселенетін дәлдікпен берілген нақты сандарды анықтайды. Void – түйінді сөзі объектінің мәнін бейтарап етіп қалдыру үшін. (нейтрализовать). Нақты сандар түріндегі типтер – ондық сандар бүтіні мен бөлшегін бөлетін үтірі жылжымалы және тұрақты түрде жазылады. Үтірі тұрақты ондық сандар кәдімгі математикадағыдай жазылады, бірақ үтір орнына нүкте қойылады. Мысалы: 25,48 – 127,25,0,67 – 8,0. Үтір жылжымалы ондық сандар дәрежелік көрсеткіш берілген экспотенциалды түрде жазылады. Мысалы: - 1, 25 Е + 12 (1,25 * ), 1,3 Е – 05 (1,3 * ) т.б 12.2 Берілген 3 санның (x,y,z) кішісін табу программасын құру керек. #include ˂iostream˃ #include ˂cmath˃ using namespace std ; int main ( ) { int a,b,c min ; cin ˃˃a; cin ˃˃b; cin ˃˃c; if (a <=b && a <=c ) { cout<<a; } if (b <=a && b <=c ) { cout<<b; } if (c <=a && c<=b ) { cout<<c; }   } 13.1 С/С++ тіліндегібүтінсандардыңжазылуы. Ондық, оналтылық, сегіздік, ондықсандардыпайдалану. Си тілінің түйінді сөздері – программада алдын ала анықталған белгілі бір мағынасы бар сөз тіркестері. Си тілінің түйінді сөздері (служебные или ключевые слова) мәліметтер типтері, операторлар мен стан-дартты функциялар атаулары, жады кластары, модификаторлар (толықтырғыштар), т.с.с., олардың тіл-дің әр түрлі нұсқаларында аздап айырмашылықтары болуы мүмкін. Қордағы (резервтегі) сөздер: auto,double, int, struct, break, else, long, switch, register, char, extern, return, void, case, float, default, for, signed, union, do, if, volatile, continue, while, т.б. Алғашқытөрттипбүтінсандардысипаттауүшінқолданылады.   %d – бүтін ондық сан шығарылуы тиіс. %i – бүтін ондық сан шығарылуы тиіс. %u – ондық бүтін сан, таңбасыз. %o – таңбасыз бүтін сегіздік сан. %x – таңбасыз бүтін он алтылық. 13.2 Берілген үш санның арифметикалық ортасын табу керек. #include ˂iostream˃ #include ˂cmath˃ using namespace std ; int main ( ) { int a,b,c, h; cin ˃˃a; cin>>b; cin>>c; h=(a+b+c)/3; cout<<h; } 14.1 С/С++ тіліндегі нақты сандардың жазылуы. Табиғи және экспоненциал сандарды пайдалану. Тұрақтыларды анықтау. С/С++ тілінің стандартты математикалық функцияларды жазу. Нақты сандар (ағылшынша float) кәдімгі табиғи аралас сандар тәрізді санның бүтіні мен бөлшегін нүкте арқылы бөлген күйде жазы-лады. Мысалы: 2.65, 0.5, -0.862, -6.0. Ал өте үлкен немесе өте кіші нақты сандар көрсеткіші бар экспоненциал сандар ретінде mЕ±р түрінде жазылады да, олардың диапазоны әлде қайда кең болады, мұндағы m-санның мантиссасы деп аталады, Е-онның дәрежесі дегенді білді-реді, ал р- дәреженің өз мәні. Тұрақтыларды анықтау мысалдары: a) Атау арқылы: const типi тұрақты = мәні const float m=99999999; const F=765; // типі int болады const char s=‘B’; // символдық тип const Menіng_atjm = “Шаяхметова Ақбота” ; const C=”Turbo С”;   const float Pi = 3.14159; const float Pi2 =2 * Pi;  Егер const Pi = 3.14159; (типі көрсетілмесе) деп сипаттасақ, онда Pi мәні 3 тең болады.   b) Директива арқылы: #define тұрақты мәні  #define pi 3.14159 // pi=3.14159 болады #define EULER 2.718282 // EULER=2.718282 #define директивасының форматы (параметрлері бар макросты анықтаушы) #define макрос_ идентификаторы(аргументері) алмастыратын_мәтін  Макрос идентификаторы мен аргументтер арасында бос орын болмау керек. Макросты шақыруды келесі өрнекпен орындауға болады: макрос_идентификаторы(аргументтер) Мысалы: #define CIRC(x) (3.14159 * (х) * (х)) макорсы шеңбер ауданын есептеуге мүмкіндік береді. Егер программада S = CIRC(4); операторы кездессе, онда аргументі тұрақты болғандықтан (3.14159 * (4) * (4) ) өрнек мәні компиляция кезінде есептеліп S-ке меншіктеледі. Егер макросты шақыру келесі түрде жазылса S = CIRC(a + b); Онда макрос кеңейтілгеннен кейін мәтін түрі: S = (3.14159* (a+b) * (а + b) ) ; болады. Макрос аргументі айнымалы болғантықтан өрнек мәні компиляция кезінде емес программа орындалған уақытта есептеледі. Егер макросты жақша қоймай сипаттасақ онда келесі өрнек есепетеледіде 3.14159 * а + b * а + b нәтижесі қате болады. Екінші мысал, эллипс ауданын есептеу: #define Еll(х,у) (3.14159 * (х) * (у)) Макросты шақыру келесі түрде жазылуы мүмкін: S = Ell(Rl, R2); Есептеулердің алынған нәтижелеріне қарағанда макростар функцияларға эквивалентті . Мысалы , шеңбер ауданын есептеу функциясын келесі формаға келтіруге болады : double circ(double x) { return 3.14159 * х * х; }   Стандартты матемаикалық функциялардың сипаттамалары Математикалық функциялар С тілі функциялары Типтері еˣ ехр(х) double exp (double x) Sinx sin(x) double sin (double x) Arcsinx asin(x) -1<x<1 double asin (double x) Cosx cos(x) double cos (double x) Arccosx acos(x) -1<x<1 double acos (double x) Tgx tan(x) double tan (double x) Arctgx atan(x) -1<x<1 double atan (double x) |x| abs(x) int abs (int x) |x| fabs(x) double abs (double x) Lnx log(x) x>0 double log (double x) Lgx log10(x) x>0 double log10 (double x) √x sqrt(x) x>0 double sqrt (double x) xʸ pow(x,y) double pow (double x, double y) 10ª pow10(a) double pow10 (int a) х бүтін бөлігі floor (x) double floor (double x) кездейсоқ сан алу rand() int rand () 14.2  Берілген 3 оң санның геометриялық ортасын табу керек. #include<iostream> #include<cmath> using namespace std; int main() {        int a,b,c;        float d;        cout<<"3 san engiz:";        cin>>a>>b>>c;        d=pow(a*b*c,1.0/3);     cout<<"\nGeometriyalik ortasi="<<d; } 15.1 Айнымалыларды анықтау,сипаттау,пайдалану жолдары. Айнымалылар деп программаның орындалу барысында әр түрлі мәндерді қабылдай алатын шамаларды айтады. Айнымалы – компьютер жадының ат қойылған аймағы. Оған мән берілгенде, сол аймаққа мәннің екілік коды жазылады. Айнымалы мәнін қолдану үшін оның атын – идентификаторын және мән орналасқан аймақтың адресін білу керек. Олар идентификаторлармен белгіленіп, әр уақытта әр түрлі мәнге ие бола алады. Айнымалылардың белгіленулері: alfa, y, x_3, summa, baga, a1b8, т.с.с. Айнымалы атауы оның орындайтын міндетіне сәйкес, түсінікті және қарапайым болғаны жөн. Айныма-лыларды сипаттау оларды пайдалану алдында кез келген жерде орналасады да, алдында олардың типі көрсетіледі. Оның жазылу форматы, мысалы: іnt a, b=5, d, D; float c alfa=2.15, b4=1.336e2; char symbol, cc; string coz, coilem; Айнымалыларды сипттау үшін алдында сипатталған тұрақтылар мен мәні анықталған айнымалыларды қолануға болды: int xl = 1, х2 = 2 * xl; Айнымалыларды жариялау бөлек оператор болуы мүмкін немесе ол кейбір операторлар ішінде істелінеді , мысалы , цикл операторында : for ( int i = 0; i...)Сипаттау кезінде бірден бастапқы мән меншіктеуге болады, оны айнымалыны инициалдау дейді. Си тілі-нде символдық тіркестерді сипаттау үшін арнайы тип жоқ, олар көбінесе char типтегі элементтерден тұра-тын массив (жиым) ретінде қарастырылады. Жолдық немесе тіркестік символдар ЭЕМ жадында көршілес ұяшықтарда сақталады да, олардың соңында ‘\0’ символы тұрады. Символдар қатарының ұзындығын анықтау үшін strlen сөзі қолданылады. char m1[]=”Таңбалар жолы”; char m[44]=”Только ограничтесь одной строкой”;   Сілемді жариялау үшін сілем атынан кейін квадраттарды жақшаларда элементтердің саны көрсетіледі. Мысалы, float mas[20]; Арифметикалық немесе логикалық амалдар таңбасымен біріктірілген айнымалылар, атаулар, функциялар, жиымдар (массивтер) тізбегі өрнек деп аталады. Математикадағы формулалар, арифметикалық өрнектер, алгебрадағы көпмүшеліктер программалау тілінде тек осы өрнек ұғымы арқылы беріледі. Программалау тілінің белгілі бір іс-әрекетті орындай алатын тиянақты мағынасы бар ең қарапайым сөйлемі оператор деп аталады. 15.2.Берілген 4 санның нешеуі оң сан екенін табу керек. #include<iostream> using namespace std; int main() {        int a,b,c,d,k=0;                    for(i=1;i<=4;i++) {        cin>>a[i]; If(a[i]>0) k++; } cout<<k;          }                                                                  16.1 С тілінің printf, scanf функцияларын жазу, оларды пайдалану мысалдары. Мәлімет шығарудағы символдық басқару кодтары. Берілген төрт санның нешеуі теріс сан екенін табу керек. printf() функциясы мәліметтерді экранға шығару үшін қолданылады. scanf() пернелерден мәлімет енгізу функциясы. Пайдалану мысалдары: 1) printf ("Пи саны мәні=%f\n", M_PI); printf ("\nФормат спецификациялары:\n%10.5d-бүтін,\n%10.5f-жылжымалы нүктелі,\n%10.5e-экспоненциалды түрде,\\n%10s-сөз тіркесі",10.10. 0,10.0,"10"); Осының нәтижесінде экранға мыналар шығарылады. Пи саны мәні=3.141593 Формат спецификациялары: 00010-бүтін, //сол жақта 5 босорын 10.00000-жылжымалы нүктелі, //сол жақта 2 босорын 1.00000е+01-экспоненциалды түрде, //сол жақта босорын жоқ 10-сөз тіркесі //сол жақта 8босорын 2) scanf: scanf("%d%f",&x,&y);   16.2.Берілген 4 санның нешеуі теріс сан екенін табу керек. #include<iostream> using namespace std; int main() {        int a,b,c,d,k=0;                    for(i=1;i<=4;i++) {        cin>>a[i]; If(a[i]<0) k++; } cout<<k;        }   17.1 С/С++ тіліндегі меншіктеу операторлары және құрама операторларды пайдалану жолдары. Меншіктеу операторы символдар арқылы жазылады. Кез келген ; таңбасымен аяқталатын өрнек меншіктеу операторы болып табылады. Өрнектің бір түріне бос оператор жатады, ол жай ; операторы. Жалпы, меншіктеу операторын С/С++ тілінде қысқаша былай жазуға болады. <айнымалы><операция>=<өрнек>; Мысалы: а=а+в; àа+=в;                         а=а*в; àа*=в; а=а-в; à а- =в;                           а=а/в; à а/=в; Мұнда меншіктеу операторы оңнан солға орындалады, яғни в-ның мәні а-ға меншіктеледі. Құрама оператор бірнеше операторды жүйелік жақшаға алып біріктіру үшін қолданылады. Ол функцияларда шартты және циклдік операторларда жиі қолданылады. Мысалы: #include <stdio.h> #include <conio.h> main() { int a=5, b=6, c=7, d; clrscr(); d= (a++-(--b))+(c-a--); //d=2 a=5 printf(“d=%i a=%d”,d,a); getch(); }   17.2.Мыналардан соң айнымалылар мәндері қандай болады? int a=5, b=6, c=7, d; d=b++- --a+c--+a; a=…, b=…, c=…, d=…   d=6-4+7+4=13 a=4 b=7 c=6     18.1 С/С++ тілінің арттыру, кеміту(инкеремент және декремент) операциялары. Тармақталу операторлары және күрделі шарттарды жазу(логикалық оператор). Арттыру және кеміту (инкремент және декремент) операциялары ++ және – түрінде жазылады. Бұлар кез келген операторлардың мәндерін бірге арттыруға немесе кемітуге мүмкіндік береді. Инкремент, яғни арттыру операциясы(++) және декремент(--), кеміту операциясы айнымалы(тек айнымалы мәнін) мәнін бірге арттырады немесе кемітеді. Кейде олар жеке оператор түрінде жазылады: і++ немесе ++і. Инкремент пен декремент екі формада жазылады; префикстік және постфикстік. Постфикстік арттыру х++, ал префикстік арттыру былай жазылады: ++х. Постфикстік формада х айнымалысының мәні оны қолданңғанға дейін өзгереді, ал префикстік формада – айнымалы мәні оны қолданғанға дейін өзгереді. Логикалық операторлар. Екі немес бірнеше шарттық өрнектерді біріктіру үшін логикалық операторлар қолданылады. С/С++ тілінде келесі логикалық амалдар бар. 1) Және(&&) операциясы f1&&f2 2) Немесе (||) операциясы f1||f2 3) Терістеу (!) операциясы !f1   18.2.Мыналардан соң айнымалылар мәндері қандай болады? int a=5, b=6, c=7, d; d=с-- - --a+c--+a; a=…, b=…, c=…, d=… d=7-4+6+4=13 a=4b=6 c=5     19.1 Шартты оператор деген не? Оны пайдалану, мысалдар келтіру. Switchауыстырғыш операторы. Шартты оператордың орындалу схемасы мен жалпы жазылу түрі мынадай: іf(шарт)                                                                                        шарт 1-оператор; еlse                                                                       жоқ                    иә 2-оператор; 2-оператор 1-операторswitch     Мұнда жақша түріндегі өрнек ақиқат болса, 1-оператор орындалады, әйтпесе    2-оператор атқарылады. Кейде қабаттасқан шартты операторлар кездеседі, мысалы: іf(1-шарт) X>Z X>Y 1-оператор; elseif(2-шарт)                                                                                                            иә 2-оператор;                                                             иә else                                                                                                            жоқ MAX=Z; MAX=X; Y>Z 3-оператор; MAX=X: MAX=Z:                                                                                     иә   жоқ   y, z, x сияқты үш санның үлкенін табу үшін қабаттасқан шарт операторын жазамыз. if(x>y) { if (x>z) max=x; else max=z;} else if (y>z) max=y; else max=z;     Программада кездесетін бірнеше нұсқаның бірін орындап алу керек болған жағдайда, switch аусытырғыш операторы қолданылады. Оның жалпы жазылуы: { case белгі1: операторлар; break; case белгі2: операторлар; break; ………………………………….  [default: операторлар;] }   Мұнда switch сөзінен кейінгі өрнек мәні есептеледі, ол бүтін санды типте болуы тиіс. Сол мән case сөздерінен кейін жазылған константалар мәндерімен салыстырылады. Ал бір жолды орындап болған соң, switch операторынан шығу үшін break операторы қолданылады.   switch операторының орындалу схемасы      өрнек 2-белгі <операторлар>  break;   1-белгі <операторлар>  break;   3-белгі <операторлар>  break;     n-белгі <операторлар>  break;                                                                                                                …     19.2.Мыналардан соң айнымалылар мәндері қандай болады? int a=5, b=6, c=7, d; d=с-- - --a+c--+a; a=…, b=…, c=…, d=…   d=7-4+6+4=13 a=4 b=6 c=5   20.1 С++ тіліндегіенгізу (cin) жәнешығару (cout) операторлары. • С++ тіліндегі программаларда енгізу/ шығару әрекеттерін ұйымдастыру үшін, iostream немесе iostream.h тақырыптық файлдары қолданылады.  Мұнда енгізу/шығаруды орындайтын алдын ала анықталған 4 объектіні пай-даланады, олар: cin, cout, cerr және clog • cin объектісі – Си тілінің stdin функциясына сәйкес келетін стандартты (пернеден) енгізу әрекетін орындайды; •  cout объектісі – Си тілінің stdout функция-сына сәйкес келетін стандартты (экранға) шығару әрекетін орындайды;   С++ тілінде келтірілген тақырыптық <iostream.h>файлында енгізу/шығаруды басқару кластары жиынын сипаттау мәліметтері бар. Iostream.h енгізу/шығару кітапханасының стандартты тақырып файлы. Бұл кітапхана программадағы cout ағымы жайлы ақпарат береді. Бұл файлды мәліметті пернетақтадан енгізуге арналған стандартты cin обьект- ағымдары және мәлімет шығаратын cout обьект ағымдары анықталып,ағымға мәлімет беру << және ағымнан мәлімет оқу >>операциялары қарастырылған. Cin –ағылшынша “С” және “input” сөздерінен ал cout – “C” және “output” сөздерінен құралған. Cout <<”бүтін сан енгізіңіз: \n; жолы экранға қос тырнақшадағы сөз тіркесін шығарып , курсорды келесі жолға көшіреді. Cin>>i;жолы пернелерден енгізілген бүтін санды і айнымалысына меншіктейді. Cout << “ сіз” << i << “санын енгіздіңіз,рахмет!”; жолы қос тырнақшадағы тіркестегі өзгеріссіз,ал і айнымалысы орнына оның енгізілген сандық мәнін экранға шығарып береді. Си тілінің енгізу/шығару функцияларына қарағанда с++ тілінің ағымдары әр түрлі типтермен жеңіл әрі жылдам жұмыс істеуді қамтамасыз ете алады.   20.2 Радиусы R берілген деп есептеп, щеңбер ұзындығын, дөңгелектің ауданын және шардың көлемін табатын программа жазу керек.   #include<iostream> #include<math.h> using namespace std; main(){        int pi=3.14,r,s,v,L;        cout<<"r=:";        cin>>r;        L=2*pi*r;        s=pi*r*r;        v=4*pi*pow(r,3)/3;        cout<<"L="<<L<<"\n s="<<s<<"\n v="<<v<<endl;        return 0; }     21.1 Қолданушы функцияларын сипаттау және пайдалану жолдары.   Функция дегеніміз – белгілі бір операциялар тобын атқара- тын программа блогы. Функцияны сипаттағанда екі түрлі форматты немесе екі стильді қолдануға болады, яғни оны сипаттау және анықтау жолдары бар. Функция жалпы түрде былай сипатталады: [<функция типі>] <функция аты> ([<формальды параметрлер спецификациясы>]) { <функция тұлғасы>; } мұндағы [<функция типі>] – функцияның есептелетін нәтижесінің типі; <функцияның аты> – функция идентификаторы, яғни аты; <формальды параметрлер спецификациясы> – бұл болмауы да мүмкін (void) немесе әрбір параметр специфи- кациясы: <типі><параметр аты> – формальды пара- метрлердің типтерін және идентификаторларын анықтайды; <функция тұлғасы> – орындалатын операторлар тізбегі және оның ішінде локальді айнымалының сипатталуы мүмкін.     Си-дегі кез-келген программа - бұл айнымалылар сипаттамасы мен функциялар жиынтығы.    Програмада кем дегенде, бір функция болады және программадағы бір функцияның аты main болуы тиіс. Программаның орындалуы осы main функциясынан басталады. Main функциясының орындалуы барысын-да басқа функциялар шақырылады Функция дегеніміз – белгілі бір операциялар тобын атқаратын программа блогы. Функцияға мәліметтер береміз де, одан белгілі бір нәти-желер аламыз. Функцияның ішкі әрекеті программаның басқа бөліктеріне қатыссыз орындалады. Функциялар арасындағы байланыс мән қайтаратын аргументтер мен сыртқы айнымалылар арқылы орнатылады. Return инструкциясы нәтижені шақыратын функциядан шақырған функцияға қайтару механизмін орындайды және return сөзінен кейін кез келген өрнек тұруы мүмкін. return <өрнек>; Өрнекті жақшаға да жазуға болады, бірақ ол міндетті емес. Си-де функцианың барлық аргументі параметрлер ретінде беріледі, яғни шақырылатын функцияға аргументтің өзі емес оның аргументтерінің мәні беріледі. Си-гі кез келген функцияның прототипі болуы тиіс, яғни функция аты, аргументтерінің типі және қайтарылатын нәтиже типі көрсетілген тақырыбы хабарланады. Прототипі программа денесінде немесе бөлек тақырыптар файлында айқындалады. Функция прототипі компиляторға функция туралы информация береді де, сәйкесінше компилятор типтер сай келуін тексереді. Функция әртүрлі типті мән қайтара алады, int,void,float т.б. 2. Функцияның формальды және нақты аргументтері Айнымалылар жергілікті және сыртқы болуы мүмкін. Жергілікті айнымалылар функция ішінде сипатталады да сонда ғана "көрінеді”. Функция ішінде орналасқан айнымалылар типтері сипатталуы осы функцияның ішінде ғана анықталған болып саналады, (мұнда тек қана main функциясы ерекше жағдайда болып саналады). Программа мәтінінде функ-циялар кез келген ретпен орналасуы мүмкін. Функцияны шақыру үшін функцияның аты және жақшада нақты аргументтері көрсетіледі. Функция өз жұмысын аяқтағаннан кейін есептелген нәтижені return операторы арқылы қайтарады Сыртқы айнымалылар кез келген функция сыртында сипатталады да, сол функцияның кез келген жерінде қолданылады. Кез келген функцияны анықтау үшін форматы: <тип нәтиже><функция аты> (параметр тізімі) { <функция денесі> } 21.2 y=2ctgx+ctg3x-ctgx2 өрнегіндегі ctg функциясын қолданушы функциясы арқылы есептеу программасын жазу керек.     #include<iostream> #include<math.h> using namespace std; float ctg(float x){        return cos(x)/sin(x); } main (){        float x,y;        cout<<"x=";        cin>>x;        y=2*ctg(x)+ctg(3*x)-ctg(x)*ctg(x);        cout<<"\n y="<<y<<endl;        return 0; }     22.1 Төмендегіфункцияныкезкелгенхүшінесептеупрограммасынқұрыңыз:   #include<iostream> #include<cmath> using namespace std; main (){        float x,y;        cout<<"x=";        cin>>x;        if(x<=-1)        y=pow(abs(x),1/2);        else if (x>=-1 && x<=1)        y=log(x+exp(x+1)+1);        else        y=0.4*sin(x*x+1);        cout<<"\n y="<<y<<endl;        return 0; }     23.1ЦиклқұрудыңWhileоператоры (блок-схемасы, жазылуформаты, мысал). Орындалу саны алдын ала белгісіз болатын циклдер құру кезінде шарттары алдын ала немесе соңынан тексерілетін екі цикл түрі бар. Шартты алдын ала тексерілетін цикл операторының орындалу схемасы : шарт while                                     жоқ   оператор                          йә   While (шарт-өрнек)        оператор;   Мұнда шарт ретінде шартты өрнек немесе кез келген типтегі өрнек пайдаланылуы мүмкін. Оператор қарапайым немесе құрама болуы мүмкін. Ол құрама оператор болса, онда операторлар жиыны жүйелі жақшаға алынып жазылады. Whileоператоры орындалғанда, алдымен, жақша ішіндегі өрнек есептеліп тексеріледі. Егер өрнек мәні ақиқат болса немесе жалпы жағдайда 0-ге тең болмаса, онда оператор атқарылады. Содан соң жвқшадағы өрнек тағы да есептеледі. Егер өрнек мәні жалған болса (немесе жалпы жағдайда 0-ге тең болса ), онда Whileцикл операторы өз жұмысын аяқтайды.   23.2 у=sinx + сosx-lnx функциясы мәнін кез келген х үшін табу программасын құру керек.     24.1 Цикл құрудағы For операторы (блок-схемасы, жазылу форматы, мысал). For операторы айнымалы ретінде берілген цикл параметрінің алғашқы, соңғы мәні мен өзгерту қадамы белгілі болғанда, соған сәйкес бір немесе бірнеше операторларды қайталап орындау кезіндее қолданылады. Бұл оператор параметрлі цикл операторы немесе арифметикалық цикл д.а. Параметрлі циклдің орындалу схемасы: x=x0,xk,dx                                                                       x>xk N1-оператор                                         x<=xk                    2-оператор N-оператор     For цикл операторының жалпы жазылу түрі: for(x=x0; x<=xk; x=x+dx) { <1- оператор> <2-оператор> . . . < N-оператор> }   24.2.1-ден 100-ге дейінгі жұп сандардың қосындысын табу керек.   25.1Цикл құрудағы Do while операторы (блок-схемасы, жазылу форматы, мысал). Шартты соңынан тексерілетін do…while циклінің орындалу схемасы:   Do 1-оператор 2-оператор n-оператор     while шарт  йә                        жоқ                                                 do { 1- оператор; 2- оператор; … … … n-оператор; } while (өрнек);    Цикл тұлғасы ретінде қарапйым немесе құрама операатор қолданылуы мүмкін. Жақшадағы өрнек цикл тұлғасынан кейін тексеріледі. Сондықтан do while цикл тұлғасы ең болмағанда бір рет орындалады.Цикл тұлғасынан кейін жазылған өрнек ақиқат болса (немесе жалған жаңдайда ол 0- ге тең болмаса), цикл тұлғасы қайтадан орындалады. Ал өрнек жалған болса (немесе 0-ге тең болса), цикл аяқталады. 25.21-ден 100-ге дейінгі тақ сандардың қосындысын табу керек.     26.1 Көшу (break, continue, goto) операторлары.

Break операторы.

Кейкездециклжұмысыкезіндебелгілібіржағдайларғабайланыстыонытоқтатуғатуракеледі.Мінеосындайуақыттаосы break операторынқолданады.Оператор break міндеттіемессандықаргументкеиеболуымүмкін.Бұлмәнарқылыоғанқаншабір-бірінесалынғанқұрылымдардыңжұмысынбітіріпбарыптоқтаукеректігіберіледі.Егертексолбірғанажүрісорындалыпбітуіқажетболсааргументмәніжазылмайды, яғниүнсіздікбойыншаол 1гетең.

Мысал:|

<?php

$i = 1; 

while ($i++) {

switch ($i) {

case 3:

   echo "Итерациянөмірі:3<br>\n";

   break 1; /* осыбірциклданшығады, яғни switch тан. */

case 5:

   echo "Итерациянөмірі:5<br>\n";

   break 2;/* Екібірінебірісалынған switch және while даншығады. */

}

}

 

// тағыбірмысал: 

for ($var1 = -2; $var1 < 3; $var1++) {

// нольгебөлінетінінтексеру

if ($var1 == 0) {

echo 'Орындалутоқтатылды: себебінольгебөлінбейді.';

break;

}

echo "10/$var1 = ",10/$var1,"<br>";

}  

?>

 

Continue операторы.

Орындалыпжатқанкодтыңбөлігінтоқтатып, келесіциклжүрісінекөшуүшіносы continue операторықолданылады.

Оныңжоғарыдаайтыпөткен break операторынанайырмашылығы - олциклжұмысынтоқтатпайды, теккелесіциклжүрісіне - итерацияғакөшеді.

continue операторы break операторысияқтыміндеттіемессандықаргументкеиеболады, бұлмәнарқылықаншабірінебірісалынғанциклдардыорындамайкелесіитерацияғаөтіпкетугеболатыныберіледі.

Мысалы:

<?php   for ($var1 = -2; $var1 < 5; $var1++) { // нольгебөлінетінінтексеру if ($var1 == 0) { echo "нольгебөлугеболмайтындықтанбұлитерацияныөткізіпжібереміз.<br>"; continue; } echo "10/$var1 = ",10/$var1,"<br>"; } ?>

Goto операторы.

Бұлоператоршартсызөтуоператоры, программакодыныңішіндебірбөліктенбасқабөліккеөтуүшінқолданылады.

Оныңпрограммакодындабаратынбөлігіидентификаторжәнеқоснүктеменбелгіленеді.Ал goto жанынасолидентификатордыңатыжазылады.

Мысал:

<?php goto foo;  // баратынидентификатор-метканыңаты echo 'hello'; foo:       // баратынкодбөлігініңметкасы echo 'world'; ?>

 

 

26.2 1-ден 100-ге дейінгі 4-ке қалдықсыз бөлінетін сандардың қосындысын табу керек.

 

27.1 Массивтерді (жиымдарды) сипаттау және жиым элементтерін енгізу/шығару жолдар, блок-схемасы, мысал.

Массив дегеніміз-бір типтегі берілгендер жиыны.басқаша айтқанда массив-бір атауға біріктірілген айнымалылардың реттелген тізбегі. Айнымалылардың массив элементтерінің типтері бірдей болады. Массив бір ғана атпен белгіленеді.мысалы: нақты сандардан құралған тізбекті К атаулы массив деуге болады. Массивтің əр элементі массивтың атымен белгіленеді де,оның индексі қойылады, яғни массив элементтері индекстерібойынша реттеліп жазылады

мысалы

a[20], a[n] деп жазу үшін алдын ала #define n 20 жолы көрсетіледі немесе const n=20 болып жазылады. Біртекті тізбекті жиым түрінде С/С++ тілінде сипаттап, оған бастапқы мән беру, инициалдау үшін былай жазамыз:

int fib[9]={0,1,1,3,5,7,5,6,7} немесе

int fib[ ] = {0,1,1,3,5,7,5,6,7} деп көрсетеміз. fib жиым аты, int типі, ұзындығы, ені 9.

 

 

Жиым элементі (Элемент массива; array element) — жиымды құрастыратын мәліметтер элементі; жиым атауымен және индекспен анықталатын жиымның құрамды бөлігі. Дәстүрлі программалау тілдерінде жиым элементі индекстері a(il,i2,...,in) айнымалы формасында болады, мұндағы: а - жиым атауы, il,i2,...,in — индекстер; мыс., а(і,2), b(k+i), c2(l,j). Кейбір тілдерде, мысалы, Паскаль тілінде жәй жакшалардың орнына квадрат жақшалар қолданылады: а[і,2], b[k+i], c2[lj]

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

main()

{ int i, a[10];

int i;

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

ia[i]=i;

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

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

}

 

Пернетақтадан енгізу мысалы:

 

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

сin>>a[i];

 

 

 


                                    i=0.5,1

 

aiенгізу

 

 

                                                                                                                  

 

27.2 1-ден 100-ге дейінгі бүтін сандардың 5-ке қалдықсыз бөлінетіндерінің көбейтіндісін табу керек.

#include<iostream>

#include<cmath>

using namespace std;

int main(){

       int i,s=0;

       for(i=1;i<=100;i++){

                   if(i%5==0) {

                    s*=i;}}

       cout<<s;

       return 0;

}

 

 

28.1 Жиымдарға кездейсоқ сандарды енгізу тәсілдері.

 

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

С# кітапханасында кездейсоқ сандар беретін Random класы бар, ол System атаулар кеңістігінде анықталған.

Кездейсоқ сандар тізбегін алу үшін алдымен төмендегідей конструктор көмегімен класс экземплярын (данасын) жасау керек:

Random a = new Random(); // 1

Random b = new Random( 1 ); // 2

мұндағы 1-жолдағы параметрсіз конструктор кездейсоқ сандарды уақыт көрсеткіші негізінде қарастырады. Сондықтан ол қайталаған сайын жаңа сандар тізбегін беріп отырады. Ал, 2-жолдағы int типіндегі параметрі барконструктор қайталаған сайын тұрақты сандар тізбегін береді.

Кездейсоқ сандар тізбегін алу үшін алдымен төмендегідей конструктор көмегімен класс экземплярын (данасын) жасау керек:

Random a = new Random(); // 1

Random b = new Random( 1 ); // 2

мұндағы 1-жолдағы параметрсіз конструктор кездейсоқ сандарды уақыт көрсеткіші негізінде қрастырады. Сондықтан ол қайталаған сайын жаңа сандар тізбегін беріп отырады. Ал, 2-жолдағы int типіндегі параметрі барконструктор қайталаған сайын тұрақты сандар тізбегін береді

 

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

Мысалы:

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

void main()

{

int a[100];

int n;

printf (“\nEnter the size of array:”, n);

scanf (“%i”,&n);

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

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

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

getch();}

28.2  F [50] жиымын 0-100 арасындағы кездейсоқ бүтін сандармен толтырып соларды экранға шығару керек.

 

#include<іostream>

#include<cstdlib>

using namespace std;

int main(){

 

int F [50];

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

{F[i]=rand()%100;

cout<<F[i]<<" ";

}

return 0;

}

 

 

29.1 Жиымды сұрыптау (сорттау, реттеу) тәсілдері.

Сұрыптау-берілген объектілер жиынныңұсынылған реттілікпен қайта теріп орналастыру процесі. Жиымдарды сұрыптау әртүрлі болады. Қарапайым сұрыптау тәсілдері n*n рет салыстыруды керек етеді,мұндағы n–жиымы элементтері сан, ал жылдам сұрыптау тәсілі n*ln(n) рет алмастыруды қажет етеді.

Қарапайым тәсілдер 3 топқа бөлінеді:

1.жай таңдау жолымен 2.жай енгізу тәсілімен 3.жай алмастыру тәсілімен.

 

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

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

Қалыптагы сурыптау есептерінде-берілген жиым элементтерін экранга шыгарып сонан соң оларды осуі кемуі бойынша сұрыптап алып,реттелген мандерді экранга кайта шыгару керек.

 

29.2 Көпіршік тәсілімен a[6]={4,8,1,6,7,2} жиымын өсуі бойынша реттеу керек.

#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
main()
{ const n=6; //элементтер саны
int m[n]={4,8,1,6,7,2},i,j,buf,k,a;
clrscr(); cout« "Берілген жиым:\n";
for(i=0; i<n; i++)
cout«setw(6)«m[i];
cout«endl«endl;
a=1; // итерациялар санауышы
for(i=1; i<n; i++)
{
for(j=n-1; j>=i; j--)
{ if (m[j-1]<m[j]) /*егер оң жақтағы элемент сол жақтағы элементтен артық болса, сол жаққа жылжытамыз-көпіршік "жоғары" кетеді */
{ buf=m[j-1]; m[j-1]=m[j]; m[j]=buf;
for (k=0; k<n; k++)
cout«setw(6)«m[k]; //сұрыптау итерациясынан соң
cout«"; итерация # "«a++«endl;
}
}
}
getch();
}

 

 

30.1 Екі өлшемді жиымдарды сипаттау

Екі өлшемді жиымды – матрицаны пайдалану үшін тік жақшалар ішінде олардың екі өлшемінің де енін көрсету керек.

С/C++ тілінде екі өлшемді жиым былай сипатталады:

[<жады класы>] <типі>

<жиым аты> [<1-өлшемі>][<2-өлшемі>]

Жиым элементтері типі ескеріліп, олардың көле-міне жеткілікті етіп жиым үшін компьютер жадын-да қажетті орын бөлініп беріледі немесе жиымның аты осы аймақтың басына сілтейтін нұсқауыш типті константа болып табылады.

Мысалы:

int a[4][3];

алғашқы сан жолдар санын, ал екінші сан бағаналар санын көрсетеді, а жиымы 12 элементтен тұрады. Оларға бастапқы мәнді былай береміз:

 int a[4][3]={ {0,1,2},

                              {3,4,5},

                              {6,7,8},

                              {9,10,11}

        };

ішкі жүйелі жақшаларды қоймаса да болады:

int a[4][3]={0,1,2,3,4,5,6,7,8,9,10,11};

 

Жиым элементтерін программаға енгізу

Екі өлшемді жиымды инициалдау қабаттасқан циклдер арқылы орындалады:

main()

{const int row=3, col=4;

 int a[row][col];

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

for (int j=0; j<col; j++)

       a[i][j]=rand()%100-50;

printf("\nа[3][4] жиым элементтері:");

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

for (j=0; j<col; j++)

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

 getch();

}

//матрица элементтерін қолмен енгізу мысалы

#include <iostream>

using namespace std;

main()

{ int a[4][5]; // 20 san

int i,j;

cout << "jyim elementterin kolmen engizu:\n";

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

for (j=0; j<5; j++)

        { cout << "a[" << i <<"]["<<j<< "] = ";

       cin >> a[i][j];

        }

cout << "\nEngizilgen jyim elementteri:\n";

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

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

        cout << a[i][j] <<"\t";

cout << "\n";

}

system("pause");

}

Массив элементтері типі ескеріліп, олардың көлеміне жеткілікті етіп массив үшін компьютер жадында қажет-ті орын бөлініп беріледі немесе массивтің аты осы ай-мақтың басына сілтейтін нұсқауыш типті константа болып табылады.

  Берілген екі өлшемді массив мынадай түрде инициалданған болсын:

static int a[3][4]={

                                                      {5,3,4,2},

                                                      {3,3,4,5},

                                                      {2,3,3,4}

              };

Осы массивтің әрбір жолдағы элементтер қосынды-ларын және сол қосындылардың орташа мәнін анықтау керек.

#include <iostream> // C++

using namespace std;

main()

{ static int a[3][4]={ {5,4,14,2},

                               {3,13,4,5},

                           {2,13,3,4} };                     

int i,j,s=0; float c=0;

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

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

{ cout << a[i][j] << " " ;

s+=a[i][j];}

cout << i+1 << "-jol kosyndysy: " << s << endl;

c+=s;

}

 cout << "----------------------------------";

 cout << "\n\t\t arifm.ortasi " << c/3 << endl;

 system("pause");

}

 

 

30.2 а[3][4] жиымының берілген мәндерін енгізіп, оларды экранға шығарыңдар.

 

#include<iostream>

using namespace std;

int main()

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

cout«"jyim elementterin engiz:";

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

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

cin»a[i][j];

}

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

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

cout«" "«a[i][j];

cout«endl;

}

}

 

 

31.1 Квадрат түріндегі матрицаны өңдеу тәсілдері

Матрица(нем. Matrіse, лат. matrіx — аналық) —математикада кез келген жиынның элементтерінен құрылған және m жол мен n бағаннан тұратын тік төртбұрышты А кестесі. Матрицаны түзетін нысандар оның элементтері деп аталады. Матрицаның элементтері оның жолдары немесе бағаналарының бойымен орналасады. Матрицаның элементтері аіj түрінде қос индекспен өрнектеледі, мұндағы бірінші индекс і — Матрицаның аіj элементі орналасқан жолының нөмірін, екінші индекс j — оның аіj элементі орналасқанбағананың нөмірін көрсетеді. Матрица символдық түрде не дөңгелек жақша, не қос тік сызық арқылы өрнектеледі. Мұндай матрицаны (m n) өлшемді тікбұрыштыматрица деп, ал егер m=n болса, квадрат матрица деп, n санын оның реті деп атайды.

Матрица

 

 

Матрица мынадай түрде беріледі:

А(0,0)       A(0,1)       A(0,2)      A(0,3)       ...   A(0,j) …   A(0,n-1)

A(1, 0)      A(1,1)       A(1, 2)     A(1, 3)      ...   A(1, j)       …   A(1, n-1)

A(2, 0)A(2, 1)     A(2,2)      A(2, 3)      ...   A(2, j)      …   A(2, n-1)

A(3, 0)A(3, 1)     A(3, 2)     A(3, 3)      ...   A(3, j)      …   A(3, n-1)

…   …   … … …  A(i, j)        …   …

A(n-2,0)A(n-2,1) A(n-2,2)  A(n-2,3) ... A(n-2,j)   …   A(n-2,n)

A(n-1,0)A(n-1,1) A(n-1,2)  A(n-1,3)   ...   A(n-1, j)  …  A(n-1, n-1)

          

Бас диагональ элементтері белгісі:                            i=j

Бас диагональдан жоғары тұрған элементтері белгісі: i<j

Бас диагональдан төмен тұрған элементтері белгісі: i>j

Қосалқы диагональ элементтері белгісі:                    i+j=n-1

Қосалқы диагональдан жоғары элементтер белгісі: i+j<n-1

Қосалқы диагональдан төмен элементтер белгісі:   j+j>n-1

 

 

Мысалы:

Компьютер экранында 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 квадрат матрицаны алу керек.

#include <stdio.h>

#include <conio.h>

#define nmax 100

void main()

{

int a[nmax][nmax];

int i,j,n,s=0;

clrscr();

printf("n manin engiz->");

scanf("%d",&n);

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

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

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

}

}

printf("\nOndelgen massiv \n");

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

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

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

}

printf("\n");

}

getch();

}

31.2 a[4][4] жиымының бас және қосалқы диагоналдарында орналасқан элементтерін экранға шығару керек.

 

#include<iostream>

#include<iomanip>

#include<cstdlib>

#define n 4

using namespace std;

int main()

{int i,j,a[n][n],k,b[100];

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

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

a[i][j]=rand()%21-10;

cout«setw(4)«a[i][j];

}

cout«endl;

}

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

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

if(i==j || i+j==n-1)

cout«setw(4)«a[i][j];

}

}

}

32.1 Адрестік операциялар және нусқауыштар

Адрестік операциялар үшін С/C тілінде екі арнайы оператор қолданылады.

& – адресті анықтау үшін қолданылатын операция;

 * – адрес арқылы қатынас жасау үшін қолданыла-тын операция.

& операциясы берілген айнымалының адресін қайтарады. Мысалы, программа мәтінінде sum айнымалысы былай сипатталған болсын:

int sum;

онда &sum жазуы осы айнымалының компью-тер жадындағы орналасқан ұясының адресі болып табылады.

 

 Нұсқауыш мәліметтердің адресін сақтайтын айны-малы болып табылады. Жалпы алғанда, нұсқауыш адрестің символдық кескінделуі болып саналады. Қарастырылатын мысалда &sumsum атты айныма-лыға сілтейтін нұсқауыш болып табылады. Нақты адрес ретінде белгілі бір сан тұрады, ал &sumнұс-қауыш типті константа болып табылады.

Си тілінде нұсқауыш типті айнымалылар да бар. Нұсқауыш типті айнымалылар мәні болып белгілі бір шаманың адресі саналады.

 

Жиымдар және оларға қолданылатын нұсқауыштар

 Жиымдарды сипаттағанда, элементтер типі және жалпы жағдайда компьютер жадының қажетті класы көрсетіледі. Қарапайым айнымалыларда қарастыры-латын қасиеттер жиымдарды де сипаттау кезінде қолданылуы мүмкін. Мысалы:

int b[30];

main()

{ float a[30];

static char c[20];

extern b[];

......

}

32.2 A[5] жиымының оң элементтерін шығару керек.

#include<iostream>
#include<iomanip>
#include<cstdlib>
#define n 5
using namespace std;
int main()
{int i,j,a[n],k=0;
for(i=0;i<n;i++){
a[i]=rand()%21-10;
cout«setw(5)«a[i];
}
for(i=0;i<n;i++){
if(a[i]<0)
cout«endl«a[i];}}

33.1Қолданушы (тұтынушы) функцияларын жазу, пайдалану тәсілдері. Жасанды (формалды) және нақты параметрлер.

Функция. Функцияны сипаттау.

Си-дегі кез-келген программа - бұл айнымалылар сипаттамасы мен функциялар жиынтығы.

Програмада кем дегенде, бір функция болады және программадағы бір функцияның аты main болуы тиіс. Программаның орындалуы осы main функциясынан басталады. Main функциясының орындалуы барысын-да басқа функциялар шақырылады

Програмада кем дегенде, бір функция болады және программадағы бір функцияның аты main болуы тиіс. Программаның орындалуы осы main функциясынан басталады. Main функциясының орындалуы барысын-да басқа функциялар шақырылады

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

Функциялар арасындағы байланыс мән қайтаратын аргументтер мен сыртқы айнымалылар арқылы орнатылады. Return инструкциясы нәтижені шақыратын функциядан шақырған функцияға қайтару механизмін орындайды және return сөзінен кейін кез келген өрнек тұруы мүмкін.

 

return <өрнек>;

 

Өрнекті жақшаға да жазуға болады, бірақ ол міндетті емес.

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

Айнымалылар жергілікті және сыртқы болуы мүмкін. Жергілікті айнымалылар функция ішінде сипатталады да сонда ғана "көрінеді”. Функция ішінде орналасқан айнымалылар типтері сипатталуы осы функцияның ішінде ғана анықталған болып саналады, (мұнда тек қана main функциясы ерекше жағдайда болып саналады). Программа мәтінінде функ-циялар кез келген ретпен орналасуы мүмкін. Функцияны шақыру үшін функцияның аты және жақшада нақты аргументтері көрсетіледі. Функция өз жұмысын аяқтағаннан кейін есептелген нәтижені return операторы арқылы қайтарады

Сыртқы айнымалылар кез келген функция сыртында сипатталады да, сол функцияның кез келген жерінде қолданылады. Кез келген функцияны анықтау үшін форматы:

 

<тип нәтиже><функция аты> (параметр тізімі)

{

<функция денесі>

}

 

Функция аргументтерінің берілу тәсілдері

Аргументтерінің айнымалы-мән ретінде берілу тәсілі:

Аргументтер мән ретінде берілгенде функцияның ішінде аргумент аттас жергілікті айнымалы құрылады да оның мәні функцияда өзгеруі мүмкін, бірақ аргументтің мәні өзгермейді. Айнымалы-сілтеме арқылы берілу тәсілі: Аргументтегі айнымалы сілтеме арқылы берілгенде функция аргументтің мәнін емес, оның адресіналады. Ал мұнда құрылған жергілікті айнымалы көрсеткіш болады. Бұл, жадыны үнемдеуге мүмкіндік береді және функцияның орындалу барысында айнымалы аргумент мәні өзгереді. Бұл жағдайда функция аргумент айнымалы сілтеме арқылы бірнеше мән қайтара алады. Әртүрлі типті аргументті функцияларды қарастырайық: Функция аргументтері Char, int, float, double, массив типті бола алады.

 

Mысалы:

# include<iostream.h>

int sum1(int i,int b,int d)

{ int result;

result = i+b+d;

return result;

}

main ()

{

int sum1(int i,int b,int d);

int p,d1,l;

int a,b,c;

cin>>p>>d1>>l;

cout<<"\n summa p,d1,l="<<sum1(p,d1,l)<<endl;

cin>>a>>b>>c;

cout<<"\n summa a,b,c="<<sum1(a,b,c)<<endl;

return (0);}

 

33.2 Бүтін сандармен берілген A[8] жиымы элементтерінің арифметикалық ортасын табу керек.

 

#include <iostream>

using namespace std;

int main(){

int a[8];

int s=1;

float c=0;

for (int i = 0; i<8; i++){

cin>>a[i];

}

for (int i = 0; i<8; i++){

s+=a[i];

c+=s;

}

cout<<c/8;

return 1;

}

 

 

34. 1 C/C++ тіліндегі айнымалылардың әрекет ету аймағы. Рекурсивті функцияларды пайдалану.

Өзін өзі шақыратын функция рекурсия деп аталады. Рекурсия тереңдігі дегеніміз – функция мәнін есептеуде өзін-өзі шақыру саны. Рекурсивті программалау стек принципіне сүйенеді.

Рекурсия түрлері мынадай:

- сызықтық рекурсия;

- параллель рекурсия;

- қосалқы рекурсия;

- жоғары ретті рекурсия.

 

 

Рекурсивті алгоритмдер мысалдары:

§ 6!- алты факториялды есептеу алгоритмі:

#include <stdio.h>

double fact(int n);

int n=6;

double f;

f=fact(n);

printf(‘6!=%10.0f\n”,f);

return (0);

}

double fact(int n)

{

if (n<1) return(1.0)

else

return(n*fact(n-1);

}

 

§ Евклид алгоритмі бойынша екі санның ең үлкен ортақ бөлгіші табу

алгоритмі:

#include <stdio.h>

#include <math.h>

double euob(double n, double m);

int main ()

{

double f;

double n=1470;

double m=693;

f=euob(n,m);

printf("f=%10.0f \n”, f);return(0);

}

double euob(double n, double m)

{

w=floor(fmod(n,m);

if (w==0) return(m);

else return(euob(m,w));

}

 

34.2 Бүтін сандармен берілген A[8] жиымының оң элементтерінің геометриялық ортасын табу керек.

#include <iostream>

#include <cmath>

using namespace std;

int main(){

int a[8];

int s=1;

float c=0;

for (int i = 0; i<8; i++){

cin>>a[i];

}

for (int i = 0; i<8; i++){

if (a[i]>0)

c++;

s*=a[i];

i++;

}

cout<<pow(s,1.0/c);

return 1;

}

35.1 С/С++ тіліндегі символдарды енгізу-шығару функциялары.Сөз тіркестерін өңдеу, тіркестерді енгізу-шығару функциялары.

1.Символдарды енгізу-шығару функциялары

•Символдарды біртіндеп енгізу-шығару үшін printf(), scanf() функцияларының %c форматы қолданылады.

Бұлардан бөлек те енгізу-шығару функциялары бар:

•getchar() – параметрсіз функция. Пернелерден символдарды бір-бірлеп енгізеді. Сөз тіркесі Enter пернесі басылғанша енгізіле береді, оған дейін       оны өзгертуге болады.

•putchar(с) – с символын экранға шығарады.

•Мысалы, латын алфавиті әріп

2. Сөз тіркестерін өңдеу

• PASCAL тілінде сөз тіркестерін өңдеу кезінде қолданылатын арнайы тип – string бар. Ал Си тілінде мұндай арнайы тип жоқ. Сөз тіркестері char типті бір өлшемді жиым ретінде қарасты-рылады, яғни сөз тіркесі – нөлдік байтпен аяқталатын char типті бір өлшемді жиым.

•Нөлдік байт – барлық биттері де нөлге тең байт, ол '\0' символдық константасымен анықталады (тіркес соңы белгісі немесе нөл-терминатор). Сондықтан егер тіркесте k символ болса, онда жиымды сипаттауда k+1 элемент көрсетілуі тиіс.

•Мысалы, chara[7] деген сипаттау тіркестің 6 символдан тұратынын, ал соңғы байт нөлдік екенін білдіреді. 

•С тіліндегі тіркестік (жолдық) константа – қос тырнақшаға алынған символдар жиыны.

•Мысалы, "Берілген тапсырма" тіркесі, оның соңына нөлдік байтты компилятор автоматты түрде өзі қосып жазады.

•Айнымалы мәні болатын сөз тіркесін сипаттау кезінде бірден көрсетуге болады, мысалы,

chars1[10]="123456789",s2[]="Болат";

•Соңғы сөз ұзындығы тіркестің символдары санымен анықталады.

 Символдар тіркестерін немесе тіркестерді бірнеше тәсілмен өңдеуге болады, олардың негізгілері:

•тіркестік константаларды қолдану;

•char типті жиымды қолдану;

•char типке сілтейтін нұсқауыштарды пайдалану;

•символдық тіркестерден тұратын жиымдарды қолдану.

Символдық константа осы сөз тіркестері жазылған жады аймағына сілтейтін нұсқауыш болып табылады.

• Символдық тіркестер жиымын беру кезінде компилятор компьютер жадының қажетті көлемін анықтау үшін жиымды сипаттағанда, оны тіркестік константа арқылы инициалдауға болады. Мысалы: 

char c[]="максимал баллды есептеу";

•Әдеттегі жиым қолданылатын жағдай сияқты бұл жиым аты - c осы жиымның алғашқы элементіне сілтейтін нұсқауыш болып табы-лады. Мысалы:

c = = &c[0];

 *c = ='м';

*(c+1) = = c[1] = = 'а';

Загрузка…

3. Сөз тіркестерін енгізу-шығару функциялары

•Символдар тіркесін пернелерден енгізу үшін екі стандартты функция – scanf()немесе gets() қолданылады, ал олардың прототиптері stdio.h тақырыптық файлында болады.

•scanf() функциясы тіркестік айнымалылар мәнін %s форматымен енгізеді, бірақ ол тіркесті тек бірінші.

35.2 Пернетақтадан енгізілген сөз тіркесінде неше "а" әріпі бар екенін табу керек.

#include<iostream>
#include<string>
using namespace std;
int main()
{
int k = 0;
string s;
cin »s;
for(int i = 0; i < s.length(); i++)
{
if(s[i] == 'a') k++;

}
cout«k;
return 0;
}

36.1 Сөз тіркестерін өңдейтін әртүрлі функцияларды пайдалану және оларға мысалдар келтіру.

Сөз тіркестерімен жұмыс істейтін басқа функциялар

1) strlen(str) функциясы str сөз тір-кесіндегі символдар санын (соңғы нөлді есепке алмайды), яғни жолдың ұзындығын анықтайды, оның типі int, тақырыптық файлы <string.h>

 

2)strcat(stroka1,stroka2) функциясы тір-кестерді біріктіру үшін қолданылады. Ол stroka1 және stroka2 тіркестерін бірік-тіріп, нәтижені stroka1 айнымалысына меншіктейді.

Мысал. Бірнеше сөз тіркестерінің ұзындығын анықтайтын программа құру керек.

// strlen(str) функциясын пайдалану

#include <iostream>

#include <string.h>

/ strlen(str) функциясын пайдалану

#include <iostream>

#include <string.h>

using namespace std;

main ()

{char t[]="studentter zhaili malimetter.";

cout<<strlen(t)<<endl;

cout<<strlen("studentter zhaili malimetter.")<<endl;

cout<<strlen("Al-Farabi at.universitet.")<<endl;

cout<<strlen("")<<endl;

system("pause");

}

36.2 Енгізілген сөз тіркесіндегі ең соңғы сөзді экранға шығару керек.

#include <iostream>
#include <string>
using namespace std;
int main()
{
string soz;
while(cin.peek() != '\n')
cin » soz;
cout « soz « endl;
return 0;
}

37.1 Файлдардан мәлімет енгізу, шығару амалдарын орындау. Файлдарда қолданылатын функциялар.

Файл – сыртқы есте сақтау құрылғыларында (магниттік дискілерде) орналас
тырылған және мәлімет өңдеу, тасымалдау кездерінде біртұтас күйде қарасты
рылатын мәліметтер жиыны.
Файлдармен жұмыс істеу үшін оларды, алдымен, ашу керек, яғни файл туралы
мәліметті – атын, адресін программаға белгілі ету қажет.
С тілінде файл ашу fopen() функциясы арқылы орындалады. Ол сыртқы
құрылғыдағы физикалық файлды, мысалы, D:\NUR.DAT, программадағы оның
логикалық атымен байланыстырады. Логикалық ат дегеніміз – файлға нұсқауыш, яғни
файл туралы мәлімет сақталатын жады аймағына сілтеме жасау. Файлға нұсқауыш
сипатталуы тиіс.
Сонымен, файлдармен жұмыс істегенде нұсқауыштар қолданылады. Файлға
нұсқауыш мынадай түрде сипатталады:
FILE *fp;
мұндағы FILE типі – <stdio.h>тақырыптық файлында анықталған құрылым. Бұл
нұсқауышты көрсетілген файлмен сол файл ашылғаннан бастап, байланыстырып
қоюға болады. Ол үшін келесі функция пайдаланылады:
fopen ("файл адресі/аты","қатынасу типі");
ол файлға нұсқауыш мәнін қайтарады немесе қате болса, NULL мәнін береді.
Мысалы, мынадай оператор орындалуы нәтижесінде
fp = fopen ("ex1.txt", "w");
жұмыс бумасындағы ex1.txt файлы оған мәлімет жазу (write) үшін ашылады, ал
программада бұл файлды fpнұсқауышы арқылы пайдаланамыз (яғни fopen()
функциясы файлдың сыртқы атын оның программада қолданылатын ішкі логикалық
атымен байланыстырады).
Сонымен, файлды ашатын fopen() функцияcының жалпы жазылуы:
fp = fopen(name,mode)
мұнда fp– файлға сілтейтін нұсқауыш; name– файлдың адресін де көрсетуге
болатын аты, көбінесе символдық тіркес арқылы жазылады; mode– файл қандай
режимде қолданылатынын көрсететін параметр, бұл да символдар тіркесімен төмен
дегідей түрде жазылады: "r" – файлды оқу үшін ашу (файл бұрын ашылған болуы тиіс); "w" – бос файлды информация жазу үшін ашу; "a" – файл соңына мәлімет қосып жазу үшін оны ашу; "r+"– файлдан информация оқу және оған информация жазу үшін ашу); "w+"– бос файлдан информация оқу және оған мәлімет жазу үшін файл ашу
(бұрын файл болса, ол өшіріледі); "a+"– файлдан информация оқу және оның соңына информация қосып жазу
үшін ашу). "t" – файл мәтіндік (текстік) режимде ашылады, ол rt, wt, at, т.с.с. болып
көрсетіле береді. "

fgets және fputs функцияларын пайдалану
Сөз тіркестерімен жұмыс істегенде fgetsжәне fputsфункциялары
қолданылады:

fgetsфункциясының жалпы жазылу түрі:
fgets(нұсқауыш,MAXLEN,fp);
нұсқауыш– компьютер жадындағы орынға сілтейтін нұсқауыш; MAXLEN –
оқылатын тіркестің максимальды ұзындығы; fp -файл нұсқауышы.
Мысалы:
#define L 20
main()
{
FILE *fp;
char *st[n];
fp=fopen("stroka","r");
while(fgets(st,L,fp)!=NULL)
puts (st);
}
Файлдарға сөз тіркестерін жазу үшін fputsфункциясы келесі түрде
қолданылады:
status=fputs(қатар нұсқауышы, fp);
status –бүтін сан, оның мәніeofфункциясында жазылады,
егерfputs()функциясы файлдың соңына шыққан болса немесе қате тапса,
fputsфункциясы жазылатын жолдың соңына /0символын жазбайды.

fwrite және fread функцияларын пайдалану
Құрылымдарды пайдаланатын файлдармен жұмыс істеу кезінде
fread()/fwrite()функцияларын пайдаланған ыңғайлы. Олардың жазылуы:
fread(ptr, size, n, fp);
мұнда fpфайлынан әрқайсысы sizeбайттан тұратын мәліметтің nблогы ptv
нұсқауышы көрсетіп тұрған жады аймағына оқылады (оқылатын блок үшін алдын ала
орын дайындап қою қажет).
fwrite(ptr,size,n,fp);
мұнда ptrнұсқауышы көрсетіп тұрған жады аймағында орналасқан әрқайсысы
sizeбайттан тұратын мәліметтің nблогы ашық тұрған fpфайлына жазылады.

37.2 Бір файл ашып, соған 5 бүтін сан жазып шығу керек.

#include <stdio.h>
#include <conio.h>
main() 202
{ int k,i,n=5;
char fname[]="d:\\text.txt\0";
clrscr();
FILE *fp;
fp=fopen(fname,"w");
printf("Енгізілген сандар %s файлына жазылады\n",fname);
puts("Cан соң Enter басыңыз\n");
for(i=0; i<n;i++)
{scanf("%i",&k);
fprintf(fp,"%d ",k);
}
fclose(fp);
printf("Енгізілген сандар %s файлына жазылды\n",fname);
getch();
}

38.1 С/С++ тілі ортасында жиымдарды өңдеу.

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

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

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

· Элементтер қосындысын табу:

S=0;

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

S+=a[i]; // s айнымалысында қосындыны жинақтау

· Элементтер көбейтіндісін табу:

S=0;

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

S*=a[i]; // s айнымалысында көбейтіндіні жинақтау

· Белгілі бір шартты қанағаттандыратын элементтер санын анықтау. Мысалы, бүтін сандар жиымындағы жұп сандардың қанша екенін анықтау мысалы:

k=0;

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

if (a[i]%2==0) k++; // егер сан екіге қалдықсыз бөлінсе, // санауышты бірге арттыру

· Берілген мәнге тең жиым элементін анықтау. Элементті анықтау дегеніміз – оның жиымындағы номерін анықтау. Жиымның нөлге тең алғашқы элементінің номерін анықтау, егер ондай элемент болмаса, соған сәйкес мәлімет беру мысалы:

i=0; // жиым элементінің номері

do

i++;

while (( a[i]==0) || (i==n));

if (a[i]==0) cout<<”алғашқы нөлдік элемент номері =”<< i;

else cout<<”Ондай элемент жоқ”;

Егер нөлге тең элементтердің барлығының да номерін анықтау керек болса, онда for циклін пайдаланып, мынадай түрде программа құруға болады:

сout<< “Нөлге тең элементтер номерлері:”

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

if (a[i] ==0) cout<<i<<” ”; // номерлерді шығару

 

· Жиымның ең үлкен (максимал) элементі мен оның номерін анықтау. Max айнымалысы максимал элементтің мәнін, ал k- оның индексі номерін сақтайды. Мысалы:

max=a[0]; k=0; // іздеуді алғашқы элементтен бастаймыз

for(i=1; i<n; i++) // келесіден соңына дейін қарап шығу

if (a[i]>max) // алдыңғысынан үлкен элементтің

{max=a[i]; // мәнін және номерін (индексін)

k=i; // есте сақтаймыз

}

Осы тәрізді a[i]<min болған кезде ең кіші (минимал) элемент анықталады.

· Жиым элементтерінің мәндерін өзгерту. Мысалы, an жиымы жұмысшылар жалақыларын сақтайды делік. Жалақысы ең кіші айлық мөлшерін (minzp) төмен жұмыскерлерге осы (minzp) мөлшерінде жалақы тағайындау керек.

minzp=40000;

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

if (a[i]<minzp)

a[i] = minzp;

38.2 Берілген b[10] жиымы элементтерінің 3-тен артық элементтерінің геометриялық ортасын табу керек.

#include<iostream>

#include<cstdlib>

#include<cmath>

#define n 10

using namespace std;

main(){ int a[n],i,k=0;

 float p=1.0;

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

{a[i]=rand()%10;

cout<<a[i]<<" ";}

i=0;

do

 { if (a[i]>3) 

{ k++; p*=a[i];}

i++;

 }

 while (i<n);

 p=pow(p,1.0/k);

 cout << "Geometria orta="<< p;

 return 0;

}

39.1 С/С++ тілінде екі өлшемді жиымды сипаттау.

Екі өлшемді жиымды – матрицаны пайдалану үшін тік жақшалар ішінде олардың екі өлшемінің де енін көрсету керек.

С/C++ тілінде екі өлшемді жиым былай сипатталады:

[<жады класы>] <типі>

<жиым аты> [<1-өлшемі>][<2-өлшемі>]

Жиым элементтері типі ескеріліп, олардың көле-міне жеткілікті етіп жиым үшін компьютер жадын-да қажетті орын бөлініп беріледі немесе жиымның аты осы аймақтың басына сілтейтін нұсқауыш типті константа болып табылады.

Мысалы:

int a[4][3];

алғашқы сан жолдар санын, ал екінші сан бағаналар санын көрсетеді, а жиымы 12 элементтен тұрады. Оларға бастапқы мәнді былай береміз:

 int a[4][3]={ {0,1,2},

                              {3,4,5},

                              {6,7,8},

                              {9,10,11}

        };

ішкі жүйелі жақшаларды қоймаса да болады:

int a[4][3]={0,1,2,3,4,5,6,7,8,9,10,11};

39.2 Екі өлшемді A[3][3] жиымының қосалқы диагоналындағы элементтерінің қосындысын табу керек.

#include <iostream>

#include <conio.h>

using namespace std;

int main()

{

int a[3][3],i,j,s2=0;

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

{

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

   {

       a[i][j]=3*i+j;

       cout<<a[i][j]<<" ";

   }

   cout<<endl;

}

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

   s2+=a[i][3-i-1];

cout<<"Kosalky= "<<s2<<endl;

getch();

return 0;

}

40.1. Төмендегі s функциясын берілген t мәндері үшін есептеу программасын құрыңыз.

#include<iostream>

#include<conio.h>

#include<cmath>

using namespace std;

main(){

       int t;

       double s;

       cout<<"san engiz"<<"\n";

       cin>>t;

       if(t>=15.6)

       s=0.5*pow(t,2)-sin(t);

       if(t<=10 && t<=15.6)

       s=exp(t+1);

       if(t<10.5)

       s=0.4*sin(pow(t,2)+1);

       cout<<"s="<<s;

}

 

41.1 Төмендегі функцияны берілген нахты х және бүтін n мәндері үшін есептеу алгоритмі мен программасын құрыңыз.
y=sinx+sinx2+sinx3+... +sinxn

 

#include<iostream>

#include<cmath>

using namespace std;

int main() {

float x,y=0;

int n,i;

cout<<"x="; cin>>x;

cout<<"n="; cin>>n;

for(i=1;i<=n;i++) {y+=sin(pow(x,i)); }

cout<<"y="<<y;

return 0; }

 

 

42.1 A[10]  жиымының ең үлкен мәнін ж\е сол мәннің нөмірін анықтау керек.

#include<iostream>

#include<cstdlib>

using namespace std;

int main() {

cons tint n=10;

int a[n], i, max=-10000, k=0;

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

a[i]=rand()%10;

cout<<a[i]<<” “;

if(a[i]>max) {

max=a[i];

k=i;}

}

cout<<”max=”<<max<<”\n”;

cout<<”k=”<<k;

return 0;}

 

43.110 элементі бар жиымды 0-ден 9-ға дейінгі сандармен толтырып,сонан кейін оларды кері бағытта экранға шығару қажет.

#include<iostream>

#include<cstdlib>

using namespace std;

int main() {

cons tint n=10;

int a[n],I;

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

a[i]=rand()%10;

cout<<a[i]<<” “; }

cout<<”\n”;

for(i=n-1; i>=0; i--)

cout<<a[i]<<“ “;

return 0; }

 

44.1 Берілген матрицаны x[5][5] теріс ж\е оң болып келетін кездейсоқ бүтін сандармен толтырып,оның оң элементтерінің арифм.орт. мәнін анықтайтын программа құру керек.

 

#include<iostream>

#include<cstdlib>

using namespace std;

int main() {

cons int n=10;

int a[n][n], i, j, d, s=0;

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

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

a[i][j]=rand()%=10-5;

cout<<a[i][j]<<” “; }

cout<<”\n”; }

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

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

s+=a[i][j]; }

d=s/n;

cout<<” arifm ortasi “ <<d;

return 0; }

 

45.1 А[10] жиымын кездейсоқ бүтін сандармен (-10;10) толтырып, сол жиымдағы оң элементтердің геометриялық ортасын анықтау қажет.

 

#include<iostream>

#include<cmath>

#include<cstdlib>

using namespace std;

main(){

       const int n=10;

       int i,s=1,k=0;

       float d;

       int a[n];

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

                   a[i]=rand()%10-5;

                              cout<<a[i]<<" ";

                              cout<<"\n";}

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

                                          if(a[i]>0){

                                          s*=a[i];}}

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

                                          d=s/k;                                   

                              cout<<" geometrialyk ortasy "<<d;}

                                  

                              return 0;

                   }

46.1 Бүтін сандардан тұратын А(3,3) жиымы берілген. Сол жиымдағы бас диагональ элементтері максимумын табу алгоритмі мен программасын құру керек.

#include<iostream>

#include<cstdlib>

using namespace std;

main(){

       const int n=3;

       int a[n][n],i,j,max=INT_MIN;

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

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

                              a[i][j]=rand()%10;

                              cout<<a[i][j]<<" ";}

                              cout<<"\n";}

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

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

                              if(i==j && a[i][j]>=max) {max=a[i][j];

                               }}}

                              cout<<"bas dioganal elemetterinin ulkeni: "<<max;

                              return 0;}

47.1 а1 , а2 ... а10 нақты сандар жиымы берілген. Соларды программаға енгізіп, жиым элементтерініңқосындысын табу алгоритмі мен программасын жасау керек

 

#include<iostream>

#include<cstdlib>

using namespace std;

main(){

const int n=10;

int i;

float a[n],S=0;

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

          a[i]=rand()%100;

                cout<<a[i]<<" ";}

 

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

                      S+=a[i];}

                      cout<<"\n"<<"jium elementterinin kosindisi: "<<S;

                      return 0;}                 

 

48.1 C: дискісінде file2.txt файлын ашып, оған 6 бүтін сан жазу керек (сандар пернелерден енгізіледі).

 

#include<iostream>

#include<fstream>

using namespace std;

int main(){

int i,a[5];

const int n=6;

ofstream f;

f.open("C:/file2.txt");

if(!f.is_open())

cout<<"fileldi ashy mumkin emes";

else

cout<<" 6 Butin san engiz: ";

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

cin>>a[i];

f<<a[i];}

f.close();

return 0;}

49.1 Пернелерден енгізілетін n бүтін санының факториалын есептейтін (n!=1*2*3*…*n) программаны функция құру арқылы есептеу керек

#include<iostream>

using namespace std;

double fakt(int k)

{

double p=1;

for ( int j=1; j<=k; j++)

p*=j;

return (p);

}

main(){

int i,n,S;

cout<<"n= ";

cin>>n;

S=fakt(n);

cout<<"S= "<<S;

return 0;       

}

50.1 Нақты a, b, c, dсандары берілген. Осы сандардың терістерін квадраттап, ал оң сандарын түбірден шығарыңыз.

#include<iostream>

#include<cmath>

using namespace std;

main(){               

float a,b,c,d,w,x,y,z;

cout<<"a= "; cin>>a;

cout<<"b= "; cin>>b;

cout<<"c= "; cin>>c;

cout<<"d= "; cin>>d;

if(a<0) { w=a*a; cout<<"a teris, ony kvsdtsttsdym - "<<w<<endl;}

else {w=sqrt(a); cout<<"a on, ony tubirden shygardym -"<<w<<endl;}

if(b<0) {x=b*b; cout<<"b teris, ony kvsdtsttsdym - "<<x<<endl;}

else {x=sqrt(b); cout<<"b on, ony tubirden shygardym -"<<x<<endl;}

if(c<0) {y=c*c; cout<<"c teris, ony kvsdtsttsdym - "<<y<<endl;}

else {y=sqrt(c); cout<<"c on, ony tubirden shygardym -"<<y<<endl;}

if(d<0) {z=d*d; cout<<"d teris, ony kvsdtsttsdym - "<<z<<endl;}

else {z=sqrt(d); cout<<"d on, ony tubirden shygardym -"<<z<<endl;}

return 0;

}

 

51.1 Бүтін оң және теріс сандардан тұратын a[n] жиымының жұп нөмірлі элементтерінің қосындысын табу керек, мұнда n саны енгізіледі, ал жиым элементтерінің мәндері кездейсоқ бүтін сандардан тұруы тиіс.

#include <iostream>
#include <cstdlib>
#define n 50
using namespace std;
int main()
{
int i, a[n], s=0;
for (i=0; i<n; i++)
{
a[i]=rand()%100-50;
cout«a[i]«" ";
if (i%2==0)
s+=a[i];
}
cout«endl«"S="«s;
}

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


#include <iostream>
#include <cstdlib>
#define n 10
using namespace std;
int main()
{
int i, j,t, a[n], b[n], c[n];
cout«"a[i]=";
for (i=0; i<n; i++)
{
a[i]=rand()%100-50;
cout«a[i]«" ";
}
cout«endl<"b[i]=";
for(j=0; j<n; j++)
{
b[j]=rand()%100-50;
cout«b[j]«" ";
}
cout«endl«"c[i]=";
for(t=0; t<n; t++)
{
c[t]=a[t]+b[t];
cout«c[t]«" ";
}
}

53.1 Программаға бір сөйлем енгізіп, сол сөйлемді кері бағытта экранға шығаратын пограмма құру керек.

 

#include<iostream>

#include<cstdlib>

#include<cstring>

using namespace std;

int main()

{

       char s[80];

       cout<<"Vvedite stroku:"<<endl;

    cin.get(s,80);

    cout<<endl;

    int i,l,t,j;

    l=strlen(s);

for(i=0;i<l--;i++)

{

    t=s[i];

    s[i]=s[l];

    s[l]=t;

}

cout<<"Vid naoborot:"<<endl<<s;

}

 

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

#include<iostream>

#include<cstdlib>

#include<cstring>

using namespace std;

int main()

{

       int l,i,c=0;

       char s[80];

       cout<<"Vvedite stroku:"<<endl;

       cin.get(s,80);

l=strlen(s);

cout<<"Dlina stroki:"<<l<<endl;

  for(i=0;i<l-1;i++)

    if((s[i]==' ')&&(s[i+1]!=' '))

       c=c+1;

    if(s[0]!=' ')

                    c=c+1;  

 

55.1 Бүтін сандардан тұратын А[3][3] жиымы берілген. Сол жиымдағы бас диагональда орналасқан элементтерді экранға шығару алгоритмі мен программасын құру керек.

 

Const mm = 30;

 

var

a: array[1..mm, 1..mm] of integer;

i, j, m, s: integer;

 

begin

Write('Введите число строк матрицы: ');

Readln(m);

Randomize;

Writeln(#13#10, 'Исходнаяматрица');

for i := 1 to m do

begin

for j := 1 to m do

begin

a[i, j] := Random(101) - 50;

Write(a[i, j]:4)

end;

Writeln

end;

{ *** 1 *** }

Writeln('*** Элементыглавнойдиагонали ***');

for i := 1 to m do Write(a[i, i]:4);

Writeln;

 


Дата добавления: 2018-04-15; просмотров: 3185; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!