Программалау тілдерінің негізгі элементтері. Мәліметтердің типтері

Автор работы: Пользователь скрыл имя, 14 Ноября 2013 в 19:57, контрольная работа

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

Негізгі түсініктер және программалық объектілерді сипаттаудың тілдік құралдары: сөздігі, қызметші сөздер, идентификаторлар, тұрақтылар мен айнымалылар. Программа құрылымы.Мәліметтердің типтерінің түрлері. Мәліметтердің негізгі базалық типтері. Бүтін, нақты, логикалық, сымволдық типтер. Жадта берілуі. Мәндер аралығы. Жасанды типтер. Құрылымды типтер: массив, жазба, жыйын, жол, файыл, стек.

Файлы: 1 файл

pogramma.docx

— 118.97 Кб (Скачать файл)

end.

 

4- дәріс.

Тақырыбы: Тармақтау және таңдау операторлары.

Мазмұны. Өту және тармақтау операторлары. Таңдау операторы. Тармақты алгоритмдерді программалау мысалдары.

Тармақталу алгоритмін программалау

Тармақталу алгоритмін программалау үшін шарты оператор (тармақтау операторы) және таңдау операторы қолданады.

Шартты оператордың жазылу  форматы:

If  <логикалық өрнек>  then < оператор 1 >

                        else < оператор 2 >;

Оператор 1 және оператор 2 жай  және құрама болуы мүмкін. Егер тармақталудың  шарты ретінде қолданылатын  логикалық  өрнек  True  мәнін қабылдаса,  оператор 1, егер False болса,онда  оператор 2 орындалады.

Шартты оператордың  толық емес түрі:

If  <логикалық өрнек>  then < оператор 1 >;

1-мысал. X,Y,Z үш нақты сандардың ішінен ең үлкенін табу керек.

1-Шешуі. Сатылы толық тармақты  алгоритімді қолданамыз.

Program Max_1;

  Var x,y,z,max:real;

  begin

write ('x,y,z:'); read (x,y,z);

If x>=y

   then if x>=z then max:=z  else max:=z

   else if y>=z then max:=y else max:=z;

writeln ('max snag=',max:4:2);

  end.

2-Шешімі. Толық емес тармақтар тізбегінен тұратын және күрделі логикалық өрнектері бар алгоритмді қолданамыз.

Program max3_2;

Var x,y,z,max:real;

begin

write ('x,y,z:'); read (x,y,z);

    if (x>=y) and (x>=z) then max:=x;

    if (y>=x) and (y>=z) then max:=y;

    if (z>=x) and (z>=y) then max:=z;

    writeln ('max=',max:4:2);

end.

2-мысал. 

а нақты саны берілген. F(a)-ны табу керек, егер


            0, егер x<=0 ,

f(x)=   x2-x , егер 0<x<=1,

            x2-sinpx2  x-тің басқа мәндерінде .

Шешуі. Алгоритмнің құрамында сатылы тармақ құрылымы бар [1].

 

Program Formula;

Var X,F:Real;

Begin

    Writeln (‘нақты сандарды енгіз:’); readln (x);

     If X<=0

     then F:=0

      else If X<=1 then F:=sqr (X)-X

                   else F:=sqr (X)-sin (Pi*X*X);

       Writeln (‘x=’,x,’болғандағы F(x) функциясының мәні’, F,’-ке тең’);

End.

Таңдау операторы көп бағытта тармақтауды программалауға мүмкіндік береді. Бұл оператор берілген өрнектің мәніне байланысты (таңдау селекторы) бірнеше тармақтың біріне өтуді ұйымдастырады.

Таңдау операторының  жазылу форматы:

case K of

A1 : <оператор1>;

   A2 : <оператор2>;

     . . .

AN : <операторN>;

else  <операторN+1>

end;

Мұнда K- тек жай реттік типті (бүтін, символдық, логикалық) өрнек-таңдағыш. A1,...,AN - тармақты белгілеу қызметін атқаратын, таңдағыш типтес тұрақты. Оператордың  орындалуы K өрнегінің есептелуінен басталады, алынған мән тұрақтылармен (белгілермен) салыстырылады да сәйкес оператор орындалады. Егер бірде-бір  белгі К мәнімен сәйкес келмесе, онда else сөзінен кейінгі оператор орындалады.

еlse тармағынсыз толық емес таңдау операторын қолдану мүмкіндігі бар.Тармақ белгілері тізіммен немесе аралықпен берілуі мүмкін.

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

Шешуі

Цикл он екі жылдық болғандықтан, жылдың атауын осы жылды 12-ге бөлгендегі қалдыққа сәйкестендіреміз. Мұнда, 1996-ны 12-ге бөлгенде  бөлінді 4-ке тең болатынын  ескереміз.

Program Goroskop;

  Var Year:integer;

write(‘Жылды енгңзіңіз‘);read(Year);

case Year mod 12 of

0 : Writeln(‘Мешін жылы ‘);

1 : Writeln(‘Тауық жылы ‘);

        2 : Writeln(‘Ит  жылы ‘);

        3 : Writeln(‘Шошқа  жылы ‘);

      4 : Writeln(‘Тышқан  жылы ‘);

      5 : Writeln(‘Сиыр  жылы ‘);

      6 : Writeln(‘Арыстан  жылы ‘);

      7 : Writeln(‘Қоян  жылы ‘);

      8 : Writeln(‘Ұлу  жылы ‘);

      9 : Writeln(‘Жылан  жылы ‘);

      10 : Writeln(‘Жылқы  жылы ‘);

      11 : Writeln(‘Қой  жылы ‘)

  end

end.

Мысал 2. Таңдау операторын қолдана отырып, екі нақты санның үлкенін табатын программа жазу керек.

Шешуі. Мұнда таңдағыш  логикалық шама болады.

Program Maximum;

  Var  Max, X, Y:real;

  Begin

Write(‘Екі тең емес санды  енгізіңіз ‘);

readln(X, Y);

Case X>Y of

 true :Max:=X;

false : Max:=Y;

End;

   Writeln(‘Екі санның  үлкені ‘,Max:12:6)

  End.

Мысал 3. Егер символ орыстың кіші әрпі болса, онда оны бас әріпке түрлендіру керек. Альтернативті ASCII кодтар кестесін қолдануға болады.

Шешімі.

Альтернативті ASCII-да кодтар кестесінде кіші орыс әріптері қатар  орналасқандықтан, әріптің кестенің қандай  бөлігіне түскеніне байланысты сәйкес формула қолданылады [9].

Program Goroskop; 

  Var C:integer;

  Begin

write(‘Символ еңгізіңіз ‘);readln(С);

   case C of

 ‘a’.. ‘ п’:C:=Chr(Ord(C)-32);

          ‘р’ .. ‘я’:C:=Chr (Ord(C)-80)

   End;

   Writeln(C)

  End.

 

5-дәріс.

Тақырыбы:Циклдық операторлар. Негізгі есептеу схемалары

Мазмұны.  Циклдық операторлар. Адыңғы шартты цикл операторы.  Соңғы шартты цикл операторы. Параметрлі цикл. Арифметикалық алгоритмдер. Негізгі есептеулер сүлбелері: Горнер схемасы, катардың мүшесі, ктарды есептеу.

Цикл дегеніміз белгілі бір командалар тізбегінің қандай да бір шартқа байланысты бірнеше рет қайталануы. Циклдық алгоритм құрылымдарының үш түрі белгілі: «Әзір» циклы, «Дейін» циклы және параметрлі цикл («Үшін»циклы). Паскальда осы үш түрлі циклды да жүзеге асыратын операторлар бар.

«Әзір» циклы-ең кеңінен қолданылатын циклдық құрылым. Ол While операторымен жүзеге асады.

Оператордың жазылу форматы:

While <логикалық өрнек> do <цикл денесі>;

Логикалық өрнектің мәні –True болған жағдайда цикл денесі қайталанады. Цикл денесі жай немесе құрама оператор болуы мүмкін.

«Дейін» циклының жазылу форматы:

repeat <цикл денесі> until <логикалық өрнек>;

Цикл денесі логикалық  өрнек  true  мәнін қабылдаған кезде  ғана өз орындалуын тоқтатады. «Дейін»  циклының денесі ең кемінде бір рет  орындалады. Цикл денесі бірнеше операторлардан тұратын болса, оны бөліп көрсету  үшін begin  мен end қолданбауға да болады.

Параметрлі циклдың жазылуының екі нұсқасы бар:

1) for i:=In to Ik do< цикл денесі>;

2) for i:=In downto Ik do<цикл денесі>.

Мұндағы  I-циклдың параметрі-саналатын  жай типті айнымалы;

        In-осы  типтегі цикл параметрінің алғашқы  мәнін анықтайтын өрнек;

        Ik-цикл  параметрінің соңғы мәнін анықтайтын  өрнек.

          <Цикл денесі> жай немесе құрама операторлар болуы мүмкін.

Цикл параметрінің мәні In мен Ik аралығында болған кезде қайталанады. Бұл өрнектер циклдың орындалуының басында тек бір рет есептеледі.

Бірінші нұсқада циклдың  әрбір қайталануында параметр мәні берілген типтегі келесі мәнге өзгеріп  отырады. (бүтін тип үшін 1-ге көбейеді) Екінші нұсқада циклдың әрбір  қайталануы кезінде параметр мәні осы  типтегі алдыңғы мәнге өзгереді (бүтін тип үшн 1-ге азаяды).

Мысал 1. 1-ден N-ге дейінгі натурал сандардың қосындысын есептеу керек.

Шешуі. Есептің шешуі while, repeat және for цикл операторларын қолдану арқылы жасалған үш бөліктен тұрады[3].  

 

Program Natur;

 var a,Summa,N,i:integer;

 begin

   write('N=');readln(N);

   {«әзір» циклы}

a:=1; Summa:=0;

while a<=N do

begin

  Summa:=Summa+a;

  a:=a+1;

end;

writeln('Бірінші қосудың нәтижесі:',Summa);

{«дейін» циклы}

a:=1;Summa:=0;

repeat

    Summa:=Summa+a;

    a:=a+1;

until a>N;

writeln('Екінші қосудың нәтижесі:',Summa);

{параметрлі цикл}

Summa:=0;

 for i:=1 to n do

   Summa:=Summa+i;

writeln('Үшінші қосудың нәтижесі:',Summa);

end.

Бұдан үш нәтиженің де бірдей болатынын көреміз.

Мысал 2. у= функциясын yk=(yk-1+x/ yk-1)/2, мұндағы к=1,2,…, рекуренттік формуламен анықталған тізбектің шектік мәні ретінде есептеуге болады.

Алғашқы Y0 мәні еркін түрде беріледі. Түбірдің ε дәлдікті жуық мәні ретінде |yk-yk-1|< ε теңсіздігі орындалатын бірінші yk алынады.

Шешуі. Сандық тізбектің мәнін есептеу үшін әр қадамда соңғы және оның алдындағы: yk және yk-1 мәндерін сақтайтын екі жай айнымалы ғана жеткілікті. Бұл айнымалыларды  Anew және Aold деп белгілейік. Бұл есепті программалау барысында параметрлі циклды қолдануға болмайды, өйткені циклдың қайталану саны белгісіз. Сондықтан «әзір» циклын қолданайық. 

program Posled;

  var x,eps,Aold,Anew:real;k:integer;

  begin

write('Epsilon санын енгіз:');readln(eps);

write(‘X-мәнін енгіз');readln(X);

Aold:=x; Anew:=(Aold+x/Aold)/2;

while abs(Anew-Aold)>=eps do

  begin

     Aold:=Anew;

     Anew:=(Aold+x/Aold)/2;

  end;

writeln('Квадрат түбір (',x,')=',Anew);

end.

Мысал 3. [2;n] интервалында жататын бөлгіштерінің қосындысы ең үлкен болатын натурал санды табу керек.

Шешуі. Алгоритмнің мәнісі  Х-тің Х-тен кіші  болатын барлық бөлгіштері 1 мен X div 2+1 аралығында жатуында. Ең үлкен бөлгіш Х-тің өзі болады. Сондықтан  [2;n] аралығындағы әрбір сан үшін көрсетілген жиындағы барлық бөлгіштерді тауып, олардың қосындысын есептеу керек. Есептеу барысында ең үлкен мәнді таңдау керек.

Алгоритм қос сатылы циклдан  тұратын болады. Олардың орындалуы  мына түрде: сыртқы цикл параметрінің әрбір мәні үшін ішкі цикл толығымен  орындалады.

Program Sum_Del;

var N,I,Max,Sum,K,ch:integer;

begin

   write('N санын енгізіңіз:');readln(n);

   Sum_Max:=1;ch:=1;{шамалардың  бастапқы мәні}

   {Сыртқы цикл:сандарды  біртіндеп қарау} 

  for i:=2 to N do

    begin

       sum:=0;

      {ішкі цикл:бөлгіштерді  іздеу}

       for k:=1 to i div 2+1 do

      іf i mod k=0 then sum:=sum+k;{Бөлгіштерді қосу}

       Sum:=Sum+i;{Қосындыға  ең үлкен бөлгішті қосу}

    {Бөлгіштердің  қосындысының ең үлкенін таңдау}

       if sum>Sum_Max then

      begin

         Sum_max:=Sum;ch:=i;

       end;

   writeln(’Бөлгіштердің  қосындысының ең үлкені:’, ch,’бөлгіштерінің  қосындысы’,Sum_Max);

   end.

Тақырыбы: Деректердің құрылымды типтері. Массивтер.

Мазмұны. Массив типінің сипаттамасы. Массивтің элементтеріне қатынау. Индекс ұғымы.  Массивтерді енгізу және шығару.  Бірөлшемді және екіөлшемді массивтермен амалдар.

Массив- бір типті мәліметтердің белгілі бір тобынан тұратын жүйелі тип. Элементтердің типі массивтің базалық типі деп аталады.

Паскальда массив құрылымдық типтегі айнымалы ретінде қарастырылады. Массивке тұтасынан бір ат беріледі. Массивтің элементтері индекспен  көрсетіледі. Индекс элементтердің  массивтегі орнын көрсетеді.  Индексті айнымалы-бұл массив элементтерінің идентификаторы.  Жазылу форматы:

       <массив  аты>[<индекс>],

    мұндағы индекс  реттік типті өрнек.

Массивті сипаттамасы  массивтің атын, өлшемін және базалық типін анықтайды. Айнымалылар тарауында массивті сипаттау форматы:

Var <массив аты>:array[<индекстің типі>] of  <базалық тип>

Көп жағдайда индекс типі ретінде  бүтін аралық тип қолданылады.

Сызықтық (бірөлшемді) массив - элементтері бір индекспен анықталатын массив. Бірөлшемді массивтерде сызықтық кестелердің мәндері сақталады. Бірөлшемді массивтерді сипаттау мысалдары:

Var B:array [0..5]of real;

    R:array[1..34] of char;

    N:array[‘A’..’Z’]of integer;

Массивті енгізу және  шығару оның элементтерін біртіндеп енгізу және шығару арқылы  орындалады. Әдетте бұл үшін параметрлі циклды қолданады.

Мысал 1. Прогаммада бүтін типті А массивінің 10 мәні енгізіледі және  50 элементтен тұратын нақты типті В массивінің мәндері шығарылады [7]. Программаның сәйкес үзінділері:

Var A:array[1..10] of integer; B:array[1..50] of real;

  i:integer;

Begin

 For i:=1 to 10 do

     Begin

       Write(‘A[‘,I,’]=’);readln(A[i])

      End;

…………………………………………

      For i:=1 to 50 do    

       Begin

        Writeln(‘B[‘,I,’]=’);

        End;

End. 

Мысал 2. Бірөлшемді нақты массивті [0,1] аралығында жататын кездейсоқ  N санмен толтыру керек. Ең үлкен мәнді және оның индексін табу керек (егер мұндай мәндер бірнешеу болса, біріншісін).

Информация о работе Программалау тілдерінің негізгі элементтері. Мәліметтердің типтері