Паскаль тілінде программалау


Паскаль тілінде программалау



бет8/8
Дата25.01.2017
өлшемі131,77 Kb.
#7898
түріПрограмма
1   2   3   4   5   6   7   8

Паскаль тілінде программалау

  • Тақырып 12. Кездейсоқ сандар
  • Кездейсоқ сандар
  • Кездейсоқ көріністер: барлық жерде…
    • тиынды лақтыру ("орел" немесе "решка")
    • қардың түсуі
    • броундық қозғалыс
    • телефон байланысында болатын ақаулар
    • радиоэфирдің шуы
  • Кездейсоқ сандар – бұған дейінгі сандардың ретін біліп отырсақ та, келесі санның қандай екені белгісіз болатын сандардың тізбегін айтады.
  • Проблема: компьютерде осыны қалай алуға болады?
  • Мүмкін болатын шешімдері:
  • шу ақауларының сыртқы көздерін пайдалану
  • математикалық түрлендірулерді пайдалану
  • Жалған кездейсоқ сандар
  • Жалған кездейсоқ сандар – бойында кездейсоқ сандардың қасиеті бар, бірақ әрбір келесі сан алдын ала берілген формула бойынша есептелетін сандардың тізбегін айтады.
  • Мысалдар:
    • Кездейсоқ бүтін сандар [0,m) (сызықты конгруэнтті әдіс)
    • Кездейсоқ нақты сандар [0,1]
  • санның бөлшек бөлігі
  • a, c, m - бүтін сандар
  • жай сан
  • 230-1
  • мысал, k = 5
  • Кездейсоқ сандардың орналасуы
  • Модель: қар бұршақтары [a,b] кесіндісінің аралығына түседі
  • a
  • b
  • a
  • b
  • орналасуы
  • бірқалыпты
  • бірқалыпты емес
  • Әр түрлі орналастырулардың саны қанша болуы мүмкін?
  • ?
  • Кездейсоқ сандардың орналасуы
  • Ерекшеліктері:
    • орналасу – бұл бір ғана санның емес бүкіл тізбектің сипаттамасы
    • бірқалыпсыздардың саны – көп
    • кез келген бірқалыпсыз орналасуды бірқалыпты орналасудың көмегімен алуға болады.
  • a
  • b
  • a
  • b
  • бірқалыпты орналасу
  • бірқалыпсыз орналасу
  • Паскальдегі кездейсоқ сандардың генераторы
  • [0,N] интервалындағы бүтін сандар:
  • var x: integer;
  • ...
  • x := random ( 100 ); { интервал [0,99] }
  • [0,1] интервалындағы бүтін сандар:
  • var x: real;
  • ...
  • x := random; { интервал [0,1] }
  • Кездейсоқ сандар
  • Есеп: 400х300 пиксельді тіктөртбұрыштың ішін түстері кездейсоқ нүктелермен бірқалыпты етіп толтыру.
  • Нүктенің кездейсоқ координаталарын қалай алуға болады?
    • x := random ( 400 );
    • y := random ( 300 );
  • Бірқалыптылықты қалай алуға болады? random функциясы қолданылса автоматты түрде қамтамасыз етіледі
  • Кездейсоқ түстерді қалай алуға болады?
    • Pen (1, random(256), random(256), random(256));
    • Point ( x, y );
  • Программа
  • program qq;
  • var x, y, k, code, i: integer;
  • stop: boolean;
  • begin
  • stop := False;
  • repeat
  • x := random(400);
  • y := random(300);
  • Pen(1, random(256), random(256), random(256));
  • Point(x, y );
  • if IsEvent then begin
  • Event(k, code, i);
  • if (k = 1) and (code = 27) then stop := True;
  • end;
  • until stop;
  • end.
  • кездейсоқ координаталар
  • кездейсоқ түс
  • Esc пернесін басып шығып кету
  • "4": Пернетақтадан тіктөртбұрыш бұрыштарының координаталарын енгізіп, тіктөртбұрыштың ішін түстері кездейсоқ нүктелермен толтыру керек.
  • "5": Үшбұрыштың ішін түстері кездейсоқ болатын нүктелермен толтыру. (бірқалыпты немесе бірқалыпты емес).
  • Қосымша көмек: бұрышы 45о болатын теңбүйірлі үшбұрышты алу керек .
  • Тапсырмалар
  • (100,100)
  • (300,200)

Паскаль тілінде программалау

  • Тақырып 13. Функциялар
  • Функциялар
  • Функция – нәтижесі қандай да бір мәнге ие болатын көмекші алгоритм (қосалқы программа).
  • Мысалдар:
    • , , есептеу
    • өрнектерді күрделі формулалармен есептеу
    • сұраққа жауап (жай сан ба, әлде жай сан емес пе?)
  • Неліктен?
    • программаның әр жерінде орналасқан бірдей есептеулерді орындау үшін
    • функциялардың жалпыға бірдей кітапханаларын құру үшін
  • Процедурадан айырмашылығы неде?
  • ?
  • Функциялар
  • Есеп: екі санның үлкенін анықтайтын функция құру және оны қолдануға мысал келтіру
  • Функция:
  • формальды параметрлер
  • function Max (a, b: integer): integer;
  • begin
  • if a > b then Max := a
  • else Max := b;
  • end.
  • бұл функцияны нәтижесі
  • Функциялар
  • Ерекшеліктері:
    • тақырыбы function сөзімен басталады
    • функцияда формальды параметрлер процедурадағыдай сипатталады
    • айнымалы параметрлерді пайдалануға болады
    • тақырыптың соңында қоснүктеден кейін нәтиженің типі көрсетіледі
    • функциялар негізгі программадан ЖОҒАРЫ орналасады
  • Max (a, b: integer): integer;
  • function
  • function Max (a, b: integer): ;
  • integer
  • function qq( a, b: integer; x: real ): real;
  • a, b: integer; x: real
  • function Max ( a, b: integer): integer;
  • var
  • Функциялар
  • Ерекшеліктері:
    • жергілікті айнымалыларды жариялауға және пайдалануға болады
    • нәтиже болатын мән - аты функцияның атымен сәйкес келетін айнымалыға жазылады; оны жариялаудың ҚАЖЕТІ ЖОҚ:
  • function Max (a, b: integer): integer;
  • begin
  • ...
  • end;
  • Max := a;
  • function qq (a, b: integer): float;
  • begin
  • ...
  • end;
  • var x, y: float;
  • Delphi-де:
  • !
  • Result := a;
  • Программа
  • program qq;
  • var a, b, max: integer;
  • begin
  • writeln(‘Екі сан енгіз');
  • read(a, b);
  • max := Max ( a, b );
  • writeln(‘Санның үлкені ', max );
  • end.
  • function Max (a, b: integer): integer;
  • begin
  • ...
  • end;
  • c
  • c
  • c
  • Айнымалылардың, функциялардың және процедуралардың аттары бірдей болмауы керек!
  • !
  • нақты параметрлер
  • функцияны шақыру
  • Логикалық функциялар
  • Есеп: енгізілген санның - жай сан екендігін анықтайтын функция құру.
  • Ерекшеліктері:
    • жауабы – логикалық мән (True немесе False)
    • функцияның нәтижесін if, while шарттарында логикалық шама ретінде қолдануға болады
    • Алгоритм: 2-ден N-1-ге дейінгі аралықтағы бөлгіштердің санын есептейміз, егер олардың саны нөлге тең болмаса енгізілген санның - құрама сан болғаны.
  • count := 0;
  • for i := 2 to N-1 do
  • if N mod i = 0 then
  • count := count + 1;
  • if count = 0 then
  • { N саны – жай сан }
  • else { N саны – құрама сан }
  • for i := 2 to N-1 do
  • if N mod i = 0 then
  • count := count + 1;
  • Қалай жақсартуға болады?
  • ?
  • Логикалық функциялар
  • program qq;
  • var N: integer;
  • begin
  • writeln(‘Бүтін сан енгіз');
  • read(N);
  • if Prime(N) then
  • writeln(N, ' – жай сан')
  • else writeln(N, ' – құрама сан');
  • end.
  • function Prime (N: integer): boolean;
  • var count, i: integer;
  • begin
  • i := 2; count := 0;
  • while i*i <= N do
  • if N mod i = 0 then count := count + 1;
  • i := i + 1;
  • end;
  • Prime := (count = 0);
  • end;
  • функцияны шақыру
  • нәтижесі – логикалық мән
  • шарт дегеніміз – логикалық мән
  • таңдап алу тек -ге дейін
  • Тапсырмалар
  • "4": 1-ден N-ге дейінгі сандардың қосындысын анықтайтын функция құру және оны қолдануға мысал келтіру.
  • Мысал:
  • Сан енгіз:
  • 100
  • қосынды = 5050
  • "5": Шахматты ойлап шығарған адамның N-ші торға неше бидайдың қоюын сұрағанын анықтайтын функция құру. ( 1-шісіне – 1 дән, 2-шісіне – 2 дән, 3-шісіне – 4 бидай дәнін, …)
  • Мысал:
  • Тордың нөмірін енгіз:
  • 28
  • 28-шісі торда 134217728 бидай дәні.
  • Тапсырмалар (2-нұсқа)
  • "4": Екі натурал санның ең үлкен ортақ бөлгішін анықтайтын функция құру және оны қолдануға мысал келтіру.
  • Мысал:
  • Екі сан енгіз:
  • 14 21
  • ЕҮОБ(14,21)=7
  • "5": Синус функциясын қатардың қосындысы секілді есептейтін функция құру. (0.001 дәлдікпен)
  • Мысал:
  • Градус түріндегі бұрышты енгіз:
  • 45
  • sin(45) = 0.707
  • x радиан түрінде!
  • Фильмнің соңы


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет