С++ тілінің базалық жабдықтары

Автор: Пользователь скрыл имя, 11 Февраля 2013 в 11:06, лекция

Описание работы

С++ тілінің базалық жабдықтары. Программа құрылымы. Жиымдар
Қарастырылатын сұрақтар:
1. С++ тілінің базалық жабдықтары
2. Мәліметтер типі
3. Программа құрылымы
4. Айнымалылар мен өрнектер
5. Тармақталу, басқаруды беру операторлары және циклдік операторлар
6. Жиымдар (массивтер)

Работа содержит 1 файл

C++.doc

— 332.50 Кб (Скачать)

1лекция

С++ тілінің базалық жабдықтары. Программа құрылымы. Жиымдар

Қарастырылатын сұрақтар:

  1. С++ тілінің базалық жабдықтары
  2. Мәліметтер типі
  3. Программа құрылымы
  4. Айнымалылар мен өрнектер
  5. Тармақталу, басқаруды беру операторлары және циклдік операторлар
  6. Жиымдар (массивтер)

1. С++ тілінің базалық жабдықтары: тіл құрамы,тіл алфавиті (идентификаторлар, операциялар таңбалары, тұрақтылар) және комментарийлер.

Кез-келген тілдегі мәтінде  төрт негізгі элементті бөліп  көрсетуге болады: символдар, сөздер, сөз тіркестері және сөйлемдер. Алгоритмдік тіл де осындай элементтерден тұрады: символдар, лексемалар, өрнектер, операторлар. Лексемалар символдардан, өрнектер лексемалардан және символдардан, ал операторлар символдардан, лексемалардан,  өрнектерден тұрады (1-сурет):

  • Символдар- негізгі бөлінбейтін таңбалар;
  • Лексема- өзіндік мағынасы бар тіл бірлігі;
  • Өрнек- қандай да бір мәннің есептелу ережесі;
  • Оператор- қандай да бір істің аяқталған сипаттамасы

Тіл алфавиті:

  •   бас және кіші латын әріптері;
  • 0-ден 9-ға дейінгі араб цифрлары;
  • Арнайы белгілер: []  {}  ,  .  ( )  +  -  /  *  \  %  ; :  ? <  >  = !  &  #  ^  “ '
  • бос орынды символдар: бос орын (пробел), табуляция символы, жаңа жолға көшу символы

      Символдардан  лексемалар құралады:

  • идентификаторлар;
  • түйінді сөздер;
  • операция таңбалары;
  • тұрақтылар;
  • бөлгіштер (жақша, нүкте, үтір, бос орынды символдар).

Идентификаторлар– программалық объектінің аты. Әріп немесе сызық таңбасы  идентификатордың бірінші символы  болуы мүмкін, бірақ цифр бола алмайды.

Түйінді сөздер – компилятор үшін арнайы мәні бар резервтелген идентификаторлар.

Операция таңбалары– операндтарға қолда- нылатын бір  немесе бірнеше символдар.

Тұрақтылар -  өзгермейтін  шамалар.

Комментарийлер –  компилятор үшін маңызы жоқ программаның бөлігі және программа мәтінін оқу ыңғайлы болуы үшін қолданылады. Ол  // символынан басталады.

2. Мәліметтерді өңдеу  кез-келген программаның  негізгі  мақсаты болып табылады. Әр түрлі  типтегі мәліметтер әр түрлі  сақталады және өңделеді.

      Негізгі  мәліметтер типтерін сипаттау  үшін келесі түйінді сөздер анықталған:

  • int (бүтін);
  • char (символды);
  • wchar_t (кеңейтілген символды);
  • bool (логикалық);
  • float (нақты);
  • double (екілік нақты).

   Бастапқы төртеуі – бүтін санды сақтау үшін, ал қалғаны-қалқымалы нүктелі сандарды сақтау үшін арналған.

  1. С++ тіліндегі программа препроцессор директивасынан, сипаттамалардан және функциялардан тұрады. Программа құрылымы:

     препроцессор  директивалары

     сипаттамалар

     int main ()

    {бас функция операторлары}

Программаның бірінші қатары- препроцессор директивасы, ол # таңбасынан басталады. Компилятордың бірінші фазасы препроцессор деп, ал препроцессордың нұсқауы (инструкция) директива деп аталады.

Программадағы бір функция main болуы тиіс. Программаның орындалуы осы функцияның бірінші операторынан басталады. Функцияның қарапайым анықталуының форматы:

қайтарылатын_мәннің_типі  аты ([параметрлер])

{функция денесінен құрайтын  операторлар}

Функция қандай да бір мәнді есептеуден басталады, сондықтан оның типі көрсетілуі керек.Қажетті мағлұматтар:

  1. егер функция мән қайтармаса, void типі көрсетіледі;
  2. функция денесі блок болып табылады, сондықтан фигуралы жақшаға алынады;
  3. әрбір оператор үтір-нүктемен аяқталады.

Айнымалыларды хабарлаудың  негізгі формасы- ның түрі:

Тип <айнымалылар_тізімі>;

Мысалы: int x, y, z;

      Сипаттау  кезінде айнымалыға бастапқы  мән беруге болады, оны инициализация деп атайды. Инициализаторды екі түрлі формада беруге болады:

теңдік белгісімен

=мән немесе

жай жақшамен (мән).

     Тұрақты  хабарлау кезінде инициализациялануы  тиіс. Мысалы:  const char с=‘с’;   

Блок ішінде анықталған айнымалы жергілікті, ал блок сыртында анықталған айнымалы ауқымды деп аталады.

Үйге тапсырма: С++ тілінің  негізгі операциялары: унарлы, бинарлы  және тернарлы.

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

#include <iostream.h>

int main()

{  cout << "Hello world!“<< endl;  

   return 0;}

С++ тіліндегі қарапайым программа

#include <iostream.h>

Мұндағы iostream – енгізу/шығару бибилиотекасының стандартты басты файлы. Бұл библиотека жоғарыдағы келтірілген мысалда cout ағымы жайлы ақпараттан тұрады. #include препроцессор директивасы болып табылады.

cin – мәліметтерді терминалдан  енгізу немесе объектіні стандартты енгізу.

cout – терминалға шығару немесе объектіні стандартты шығару.

cerr –қателер мен ескертулерді шығару үшін қолданылады.

"\n" орнына endl  манипуляторын қолдануымызға болады.

cout << "\n" <<endl;

5. Кез-келген күрделі есептерді  шығару кезінде үш құрылымнан (реттік, тармақталу, цикл) тұратын программаны  құруға болады. Оларды құрылымдық программалаудың базалық құрастырғыштары деп атайды. Екі немесе одан да көп операторлардың тізбектей орындалуын қадағалайтын құрастырғыш реттік деп аталады. Қандай да бір шарттың орындалуынан тәуелді құрастырғышты тармақталу деп атаймыз. Цикл оператордың бірнеше рет орындалуын білдіреді.

Тармақталу операторлары: if, switch.

Циклдік операторлар: while, do while, for.

Басқаруды беру операторлары: goto, break

if шартты операторы есептеу үрдісінің екі бағытта тармақталуы үшін қолданылады.

Оператор форматы:

    if (өрнек) оператор_1; [оператор_2;]

3-сурет.Шартты оператордың құрылымдық  схемасы:

Мысалы:

#include <iostream.h>

int main () {

float x, y; int san;

cout<< “нысананың координаталарын енгізіңіз:\n”;

cin>>x>>y;

if (x*x+y*y<1) san=2;

else

if (x*x+y*y<4) san=1;

else   san=0;

cout<<“\n Ұпай саны”<<san;

return 0;}

switch операторы есептеу үрдісін бірнеше бағытта тармақтау үшін арналған.

Оператор форматы:

switch (өрнек) {

case тұрақты өрнек_1: [1_ оператор_ тізімі]

case тұрақты өрнек_2: [2_ оператор_ тізімі]

case тұрақты өрнек_n: [n_ оператор_ тізімі]

 [default: операторлар]}

Мысалы:

#include <iostream.h>

int main () {

int a, b, c; char op;

cout<< “\n 1-ші операндты енгізіңіз:”; cin>>a;

cout<< “\n Операция таңбасын енгізіңіз:”; cin>>op;

cout<< “\n 2-ші операндты енгізіңіз:”; cin>>b;

bool f=true;

switch (op) {

case ‘+’: c=a+b; break;

case ‘-’: c=a-b; break;

case ‘*’: c=a*b; break;

case ‘/’: c=a/b; break;

default: cout<<“\n Белгісіз операция”; f=false;

}

if (f) cout<<“\n Нәтиже: ”<<c;

return 0;

}

C++ тілінде үш циклдік оператор бар:

Жазылу форматтары:

  while (өрнек) оператор

  do оператор while өрнек;

  for (инициализация; өрнек; модификация) оператор;

Үйге тапсырма: Циклдік  операторларға мысал келтіру.

С++ тілінде 4 басқаруды  беру операторы бар:

  • goto шартсыз өту операторы;
  • break циклдан шығу операторы;
  •   continue циклдың келесі итерациясына көшу операторы;
  • return функциядан қайтару операторы.

goto шартсыз өту операторының форматы:

goto белгі;

    break циклдан шығу операторы  цикл операторларының ішінде қолданылады немесе switch операторынан шығуды қамтамасыз етеді.

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

    return функциядан қайтару  операторы функцияның орындалуын аяқтап, басқаруды шақыру нүктесіне береді.

Бір типті шамалардың тізбегі жиым деп аталады. Сипатталуы:

float   a[10];       // 10 нақты саннан тұратын жиым

Жиым элементтері нөлден бастап нөмірленеді. Инициализацияланатын мәндері  фигуралы жақшаға алынады. Мысалы:

int b[5]= {3, 2, 1};       // b[0]=3, b[1]=2, b[2]=1, b[3]=0, b[4]=0

Көп өлшемді жиымдардың сипатталуы:

int   a[m][n];   

Мысалы:

#include <iostream.h>

int main () {

const int n=10;

int i, sum;

int a[n]={3, 4, 5, 4, 4};

for (i=0, sum=0; i<n; i++) sum+=a[i];

cout<<“\n Элементтер қосындысы: ”<<sum;

return 0;}

2лекция

Қолданушы анықтайтын мәліметтер типтері. Функциялар және мәліметтердің  динамикалық құрылымы

Қарастырылатын сұрақтар:

  1. Типтерге жаңа ат беру (typedef), тізімдеу (enum), құрылым (struct), біріктіру (union)
  2. Функцияны хабарлау және анықтау. Функциялардың шаблондары.
  3. Сызықты тізім, стектер, кезектер, бинарлы бұтақтар.

С++ тілі  программистке  өз мәліметтер типін және олармен  жұмыс істеу ережелерін анықтауға  мүмкіндік береді. Қолданушы анықтайтын мәліметтер типтері:

  1. typedef
  2. enum
  3. struct
  4. union.

Программа анығырақ болу үшін typedef  түйінді сөзінің  көмегімен типке жаңа ат беруге болады:

typedef тип жаңа_ ат [өлшемі]

typedef тип үшін тип  спецификаторын анықтайды. Бұл хабарлау қолданушы анықтаған типтерге қысқа және мағыналы аттар беру үшін қолданылады.

Мысалы:

typedef  char name [100];

name str[10];  //100 символды 10 қатардан тұратын жиым

  Программа жазу кезінде әр түрлі мәнді бірнеше тұрақтыны анықтау қажет болады. Ол үшін тізімделген мәліметтер типін қолданған жөн.

Форматы: enum [тип_ аты] {тұрақтылар  тізімі};

Мысалы:

#include <iostream.h>

enum emonths{

January=1,

February,

March,

April,

May,

June,

July,

August,

September,

October,

November,

December} months;

int main () {

int ipresent_month;

int idiff;

cout<<“Ағымдағы айдың нөмірін енгізіңіз (1:12):”;

cin>> ipresent_month;

months=December;

idiff=months- ipresent_month;

cout<<“жылдың аяғына дейін қанша ай қалды:”<<idiff;

return 0;

}

Нәтижесі:

Ағымдағы айдың нөмірін енгізіңіз: 4

Жылдың аяғына дейін  қанша ай қалды: 8

Басқа мысал:

enum{two=2, three, four, ten=10, eleven};

three, four тұрақтыларына 3, 4 мәндері,  eleven- 11 мәні меншіктеледі.

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

Форматы:

struct [тип аты]

{ 1_тип  1_ элемент;

   2_тип   2_ элемент;

    ………………….

   n_тип   n_элемент;}[сипаттамар тізімі];

Құрылымның мүшелеріне (.) арқылы енуге  болады. 

Мысал ретінде пәтерді сипаттаушы құрылымды қарастырайық. Бұл құрылым төмендегі белгілерді сақтайды: бөлмелер саны, пәтер ауданы, нөмірі, пәтер қожайыны.

Struct apartment 
{   int count_rooms; 
    int area; 
    int number; 
    char fio[20]; };

Мұндағы struct–түйінді сөз, apartment–құрылым аты, ал count_rooms,  area, number және fio – құрылым мүшелері

Қандай да бір пәтерді  сипаттау қажет болса, онда былай жазуға болады:

 ap.count_rooms = 4; 
ap.area = 90; 
ap.number = 112; 
ap.fio = "Ivanov I.I";

Мысалы:

#include <iostream.h>

struct student {

char fio[30];

char top[10];

int ulg;

} a[i];

int main () { int a[3], i;

cout<<“massiv:”;

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

{cin>>a[i].fio;

cin>>a[i].top;

cin>>a[i].ulg;}

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

{if(a[i].ulg>90)

cout<<“Үздік студенттердің фамилиясы”<<a[i].fio;}

return 0;}

Біріктірулер – құрылымның жеке жағдайы, барлық өрістері бір адресте  орналасады.

Форматы:

union тег{

  1_тип  1_ элемент;

   2_тип   2_ элемент;

    ………………….

   n_тип   n_элемент;};

Тег – мәліметтердің  жаңа типінің аты, оның жазылуы міндетті емес. Біріктірудің мүшелеріне (.) арқылы енуге болады. 

Функция-бұл қандай да бір аяқталған әрекетті орындайтын сипаттамалар мен операторлардың тізбегі. Функцияның параметрлері болады және мән қайтара алады. Функция шақырылған мезеттен бастап орындала бастайды. Кез-келген функция хабарлануы және анықталуы тиіс. Хабарлау бірнеше, ал анықталу жалғыз ғана болады. Қайтарылатын мән мен параметрлер типі бірігіп функция типін анықтайды.

Форматы:

тип <функция аты>( параметрлер тізімі) {функция денесі}

Информация о работе С++ тілінің базалық жабдықтары