Презентация, доклад на тему Pascal programlaşdırma dilinə aid təqdiamt .

Содержание

Pascal dilində proqramlaşdırmaMövzu1. Giriş© Polyakov K.Y, 2006-2007

Слайд 1Pascal dilində proqramlaşdırma
© Polyakov K.Y. 2006-2007
Giriş
Budaqlanma
Mürəkkəb şərt
Dövrler
Şərtə görə dövrlər
Seçım operatoru

Qrafika
Funksiyaların qrafikləri
Proseduralar
Rekursiya
Animasiya
Təsadüfi

ədədlər
Funksiyalar
Pascal dilində proqramlaşdırma© Polyakov K.Y. 2006-2007GirişBudaqlanmaMürəkkəb şərtDövrlerŞərtə görə dövrlərSeçım operatoruQrafikaFunksiyaların qrafikləriProseduralarRekursiyaAnimasiyaTəsadüfi ədədlərFunksiyalar

Слайд 2 Pascal dilində proqramlaşdırma
Mövzu1.
Giriş
© Polyakov K.Y, 2006-2007

Pascal dilində proqramlaşdırmaMövzu1. Giriş© Polyakov K.Y, 2006-2007

Слайд 3
Alqoritm
Alqoritmin xassələr:
diskretlik: ayri-ayri addımlardan ibarətdir (komanda)
aydınlıq: ancaq istifadəçiyə tanışolan komandalardan ibarət

olmalıdır (İSK aid olanlar)
Müəyyənlık: eynibir ilkin verilenelr üçün her zaman eyni cavabı verir
Nəticəlilik: müəyyən sayda addımlardan sonra sona çatır
Kütləvilik: müxtəlif ilkin verilənlərlə dəfələrlə yerinə yetirilə bilər
konkretlik: hər bir mümkün olan ikin verilənlər üçün dəqiq nəticə verilir

Alqoritm – istifadəçi üçün dəqiq planlaşdırılımış əməliyyatlar ardıcıllığıdır.

AlqoritmAlqoritmin xassələr:diskretlik: ayri-ayri addımlardan ibarətdir (komanda)aydınlıq: ancaq istifadəçiyə tanışolan komandalardan ibarət olmalıdır (İSK aid olanlar)Müəyyənlık: eynibir ilkin

Слайд 4
Proqram
Proqram –
hər hansı bir proqramlaşdırma dilində yazılmış alqoritmdir
Kompyuter üçün

komandalar ardıcıllığıdır

Komanda– kompyuterin yerine yetirəcəyi əməliyyatların təsviridir.
ilkin verilənleəri haradan alaq?
onlarla ne etmək olar?

ProqramProqram – hər hansı bir proqramlaşdırma dilində yazılmış alqoritmdir Kompyuter üçün komandalar ardıcıllığıdırKomanda– kompyuterin yerine yetirəcəyi əməliyyatların

Слайд 5
Proqramlaşdırma dilləri
Maşın yönümlü (aşağı səviyyəli) – hər bir komanda prosessorun bir

əmrinə uygun gəlir (assembler)
Yüksek səviyyəli – istifadəçi tərəfindən asan başa düşülə bilən,danışıq dilinə (ingilis dilinə) yaxın olan və konkret olaraq kompyuterin növünden asılı olmayan
Yeni öyrənənlər üçün : Beyzik,Loqo,Pascal
Peşəkarlar üçün: Си, Фортран, Паскаль
Süni intilllekt meselelri üçün: Пролог, ЛИСП
Internet üçün: JavaScript, Java, Perl, PHP, ASP
Proqramlaşdırma dilləriMaşın yönümlü (aşağı səviyyəli) – hər bir komanda prosessorun bir əmrinə uygun gəlir (assembler)Yüksek səviyyəli –

Слайд 6
Pascal dili
1970 – Niklaus Virt (Швейцария)
tələbələri öyretmek üçün istifadə edib

«yuxarıdan aşağıya» prinsipi ilə proqram tərtibi





müxtəlif strukturlu verilənlər(massıvlər, strukturlar, çoxluqlar)
Pascal dili1970 – Niklaus Virt (Швейцария) tələbələri öyretmek üçün istifadə edib «yuxarıdan aşağıya» prinsipi ilə proqram tərtibi

Слайд 7
Proqramın sturkturu necədir?
program ;
const …;{sabitlər}
var …; {dəyişənlər}

begin
… {proqramın əsas

hissəsi}
end.

{proseduralar və funksiyalar}

fiqurlu mötırizələrdə olan şərhlər emal olunmur

Proqramın sturkturu necədir?program ;const …;{sabitlər}var …; {dəyişənlər}begin … {proqramın əsas hissəsi}end.{proseduralar və funksiyalar}fiqurlu mötırizələrdə olan şərhlər emal

Слайд 8
Proqramın sturkturu nədən ibarətdir?
sabit – adı olan sabit kəmiyyət.
Dəyişən – adı

olan dəyişən kəmiyyət(yaddaşın oyuğu).
proseduralar – bəzi əməliyyatları təsvir edən yardımçı alqoritmlər (şevrənin çəkilməsi).
funksiya – hesablamaları aparmaq üçün yardımçı alqoritmlər (kvadrat kökün hesablanamsı, sin).
Proqramın sturkturu nədən ibarətdir?sabit – adı olan sabit kəmiyyət.Dəyişən – adı olan dəyişən kəmiyyət(yaddaşın oyuğu).proseduralar – bəzi

Слайд 9
Proqramın,dəyişənlərin,sabitlərin adları (identifikatolar)
Adlar aşağıdakılardan ibarət ola bilər
Latın herifləri (A-Z)


Rəqəmlər


Altdan xətt _
Böyük

və kiçik həriflər fərqlənmir

Adlarda istifadə oluna bilməz:
Rus əlifbasının hərifləri
boşluq
Mötərizələr(), +, =, !, ? və digər simvollar.

Adlar rəqəmlə başlaya bilməz

Hansı adlar düzgün sayıla bilər?
AXby R&B 4Wheel Вася “PesBarbos” TU154 [QuQu] _ABBA A+Bər

Proqramın,dəyişənlərin,sabitlərin adları (identifikatolar)Adlar aşağıdakılardan ibarət ola bilərLatın herifləri (A-Z)RəqəmlərAltdan xətt _Böyük və kiçik həriflər fərqlənmirAdlarda istifadə oluna

Слайд 10
Sabitlər
const
i2 = 45; { tam ədəd }
pi =

3.14; { həqiqi ədəd }

qq = 'Вася'; { simvollar sətri }

L = True; { məntiqi kəmiyyət }

целая и дробная часть отделяются точкой

можно использовать русские буквы!

Iki qiymət ala bilər:
True (doğru , «hə»)
False (yalan, «yox»)

Sabitlərconst 	  	i2 = 45; { tam ədəd }	pi = 3.14; { həqiqi ədəd }	qq =

Слайд 11
Dəyişənlər
Dəyişən – adı,tipi və qiyməti ola bilən kəmiyyətdir.Dəyişən qiymətini proqramın yerinə

yetirləməsi zamanı dəyişə bilər.

Dəyişənin tipləri:
integer {tam }
real { həqiqi }
char { simvol }
string { simvollar sətri }
boolean { məntiqi }

Dəyişənlərin elan edilməsi (yaddaşın ayrılması):

var a, b: integer;
Q: real;
s1, s2: string;

DəyişənlərDəyişən – adı,tipi və qiyməti ola bilən kəmiyyətdir.Dəyişən qiymətini proqramın yerinə yetirləməsi zamanı dəyişə bilər.Dəyişənin tipləri:integer			{tam }real			{

Слайд 12
Dəyişənin qiymətini necə dəyişmək olar?
Operator– Yüksək səviyyəli proqramlaşdırma dilinin komandasıdır.
Mənimsətmə operatoru-

dəyişənin qiymətini dəyişmək üçündür .

program qq;
var a, b: integer;
begin
a := 5;
b := a + 2;
a := (a + 2)*(b – 3);
end.


a

?

5

5


b

?

5+2

7


a

5

7*4

28

Hümunə:

Dəyişənin qiymətini necə dəyişmək olar?Operator– Yüksək səviyyəli proqramlaşdırma dilinin komandasıdır.Mənimsətmə operatoru- dəyişənin qiymətini dəyişmək üçündür .	program qq;	var

Слайд 13
Mənimsətmə operatoru
Umumi struktur:
Riyazi ifadəyə daxil ola bilər:
Sabitlər
Dəyişən adları
Riyazi işarələr:
+

- * / div mod

Fuksiyaya müraciət
Mötərizələr( )

vurma

Bölmə

Tam bölmə

Qalığın alınması

:= ;

Mənimsətmə operatoruUmumi struktur:Riyazi ifadəyə daxil ola bilər:SabitlərDəyişən adlarıRiyazi işarələr:	 	 + -  *  /

Слайд 14 program qq;
var a, b: integer;
x, y: real;
begin
a :=

5;
10 := x;
y := 7,8;
b := 2.5;
x := 2*(a + y);
a := b + x;
end.


Hansı operatorlar doğru deyil?

Dəyişənin adı :=-işarəsindən solda yerləşməlidir

Ədədin tam və kəsir hissəsi nöqtə ilə ayrılmalıdır

Tam tipli dəyişənə həqiqi tipli ədəd mənimsətmək olmaz


program qq;	var a, b: integer;		 x, y: real; 	begin	 a := 5;   10 := x;

Слайд 15
Proqramın “əllə” yerinə yetirilməsi
program qq;
var a, b: integer;
begin
a := 5;

b := a + 2;
a := (a + 2)*(b – 3);
b := a div 5;
a := a mod b;
a := a + 1;
b := (a + 14) mod 7;
end.









Proqramın “əllə” yerinə yetirilməsiprogram qq;var 	a, b: integer;begin a := 5; b := a + 2; a

Слайд 16
Əməliyyatların yerinə yetirilmə ardıcıllığı
Mötərizənin içi hesablanır
vurma, bölmə, div, mod soldan sağa
Toplama

və çıxma soldan sağa

z := (5*a*c+3*(c-d))/a*(b-c)/ b;

x:=(a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));



2 3 5 4 1 7 8 6 9

2 6 3 4 7 5 1 12 8 11 10 9

Əməliyyatların yerinə yetirilmə ardıcıllığıMötərizənin içi hesablanırvurma, bölmə, div, mod soldan sağaToplama və çıxma soldan sağaz := (5*a*c+3*(c-d))/a*(b-c)/

Слайд 17
İki ədədin cəmi
Tapşırıq. İki ədədi daxil et və cəmi ekrana çapa

ver

Sadə həll:

program qq;
var a, b, c: integer;
begin
read(a,b);
c:=a + b;
writeln(c);
end.

İki ədədin cəmiTapşırıq. İki ədədi daxil et və cəmi ekrana çapa verSadə həll:	program qq;	var a, b, c:

Слайд 18
Giriş operatoru
read ( a ); { a dəyişənin qiymətini daxil

etmək}

read ( a, b );{a və b dəyişənlərinin qiymətlərinin daxil etmək}

İki ədədi necə daxil etmək lazımdır?
boşluklarla:
25 30
Enter-lə:
25
30

Giriş operatoruread ( a );  { a dəyişənin qiymətini daxil etmək}read ( a, b );{a və

Слайд 19
Çıxış operatoru
write ( a ); {a dəyişəninin qiymətini çapa verilməsi}
writeln

( a );{a dəyişəninin qiymətini çapa verilməsi və yeni sətrə keçid}

writeln ( 'Привет!' ); { metnin çapı}

writeln ( 'Ответ: ', c ); { mətnin və c dəyişənin çapı}

writeln ( a, '+', b, '=', c );

Çıxış operatoruwrite ( a );  {a dəyişəninin qiymətini çapa verilməsi}writeln ( a );{a dəyişəninin qiymətini çapa

Слайд 20
Çapın formatları
program qq;
var i: integer;
x: real;
begin
i := 15;

writeln ( '>', i, '<' );
writeln ( '>', i:5, '<' );
x := 12.345678;
writeln ( '>', x, '<' );
writeln ( '>', x:10, '<' );
writeln ( '>', x:7:2, '<' );
end.

>15<
> 15<

>1.234568E+001<
> 1.23E+001<
> 12.35<

Cəmi simvolların sayı

Cəmi simvolların (ayrılan yer) sayı

Nöqtədən sonra rəqəmlərin sayı (kəsr hissə)

Çapın formatlarıprogram qq;var i: integer;  x: real;begin i := 15; writeln ( '>', i, '', i:5,

Слайд 21
Məsələnin tam həlli
program qq;
var a, b, c: integer;
begin
writeln(‘İki tam

ədəd daxil edin');
read ( a, b );
c := a + b;
writeln ( a, '+', b, '=', c );
end.

Протокол:
Введите два целых числа
25 30
25+30=55

Programın çap etdiyi sətir

Istifadəçinin daxil etdiyi verilənlər

Məsələnin tam həlli	program qq;	var a, b, c: integer;	begin  writeln(‘İki tam ədəd daxil edin');  read (

Слайд 22
Xətti alqoritmin blok-sxemi
başlanğıc
son
c := a + b;
Daxil et a, b
“başlanğıc” bloku
Giriş

bloku

“əməliyyat” bloku

Çıxış bloku

“son” bloku

Çapa ver c

Xətti alqoritmin blok-sxemibaşlanğıcsonc := a + b;Daxil et a, b“başlanğıc” blokuGiriş bloku“əməliyyat” blokuÇıxış bloku“son” blokuÇapa ver c

Слайд 23
Məsələ
"4": Üç ədəd daxil edilir.Bu ədədlərin cəmini və hasilini hasablayan proqram

yazın.
Nümunə:
üç ədəd daxil edin:
4 5 7
4+5+7=16
4*5*7=140
"5": üç ədəd daxil edilir.Bu ədədlərin cəmini ,hasilini və ədədi ortasını hesablayan proqram yazin.
nümunə:
Üç ədəd daxil edin:
4 5 7
4+5+7=16
4*5*7=140
(4+5+7)/3=5.33
Məsələ

Слайд 24Pascal dilində proqramlaşdırma
Mövzu 2. Budaqlanma
© Polyakov K.Y, 2006-2007

Pascal dilində  proqramlaşdırmaMövzu 2. Budaqlanma© Polyakov K.Y, 2006-2007

Слайд 25
Budaqlanan alqoritmlər
Tapşırıq. .Verilmiş iki tam ədəddən ən böyüyünü çapa verən proqram

yazın
Məsələnin məqsədi: iki ədəddən birincisi böyük olarsa ,onu əks halda ikinci ədədi çapa vermək lazımdır.
osobennost: məslənin həlli müəyyən şərtdən asılsıdr (əgər … onda …).

Budaqlanan alqoritm-alqoritmin addımlarının yerinə yetirliməsi ardıcılığının müəyyən şərtdən asılı olmasıdır.

Budaqlanan alqoritmlərTapşırıq. .Verilmiş iki tam ədəddən ən böyüyünü çapa verən proqram yazınMəsələnin məqsədi: iki ədəddən birincisi böyük

Слайд 26
I variant . Blok-sxem

Budaqlanmanın tam forması
“həll“ bloku

I variant . Blok-sxemBudaqlanmanın tam forması “həll“ bloku

Слайд 27
I variant. Proqram


max := a;
max := b;
Şərt operatorunun tam forması
program qq;
var

a, b, max: integer;
begin
writeln(‘iki tam ədəd daxil et');
read( a,b );
if a > b then begin

end
else begin

end;
writeln(‘ən böyük ədəd', max);
end.
I variant. Proqram	max := a;max := b;Şərt operatorunun tam forması	program qq;	var a, b, max: integer;	begin  writeln(‘iki

Слайд 28
Şərt operatoru
if then begin
{şərt ödənərsə yerinə yetirilən

operatorlar}
end
else begin
{şərt ödənilmədikdə, yerinə yetirilən operatorlar}
end;

Əsas :
else açar sözündən sonra ; işarəsi qoyulmur
else …açar sözü istfadə olunmaya da bilər (şərt operatorunun tam olmayan forması)
Əgər blokda bir operator istifadə olunursa,begin-end açar sözlərini istifadə etməmək olar

Şərt operatoru	if then begin  {şərt ödənərsə yerinə yetirilən    operatorlar}    end

Слайд 29
Hansı səhvdir?
if a > b then begin
a := b;


end
else
b := a;
end;

if a > b then begin
a := b;
else begin
b := a;
end;

if a > b then begin
a := b;
end;
else begin
b := a;
end;

if a > b then begin
a := b;
end
else b > a begin
b := a;
end;

begin

end

begin

end

Hansı səhvdir?	if a > b then begin  a := b;  end else  b :=

Слайд 30
II variant. Blok-sxem

Tam olmayan forma

II variant. Blok-sxemTam olmayan forma

Слайд 31
II varinat .Proqram


program qq;
var a, b, max: integer;
begin
writeln(‘iki tam

ədədi daxil et');
read ( a, b );
max := a;
if b > a then
max := b;
writeln (‘ən böyük ədəd ', max);
end.

Tam olmayan forma

II varinat .Proqram		program qq;	var a, b, max: integer;	begin  writeln(‘iki tam ədədi daxil et');  read (

Слайд 32
Variant 2b. Program


program qq;
var a, b, max: integer;
begin
writeln(‘iki tam

ədəd daxil et');
read ( a, b );
max := b;
if ??? then
???
writeln (‘ən böyük ədəd', max);
end.

max := a;

a > b

Variant 2b. Program	program qq;	var a, b, max: integer;	begin  writeln(‘iki tam ədəd daxil et');  read (

Слайд 33
Səhvi tapın.
if a > b then begin
a :=

b;
else b := a;

if a > b then begin
a := b;
end;
else b := a;

if a > b then
else begin
b := a;
end;

if a > b then
a := b;
else b := a; end;

a := b

end

a := b



if b >= a then
b := a;


Səhvi tapın.	if a > b then begin   a := b;  else b := a;

Слайд 34
Tapşırıq
"4": Verilmiş üç ədədin ən böyüyünü tapın.
nümunə:
3 ədəd: daxil

edin:
4 15 9
Ən böyüyü 15
"5": Verilmiş beş ədəddən ən böyüyünü tapın.
Пример:
Введите пять чисел:
4 15 9 56 4
Наибольшее число 56
Tapşırıq

Слайд 35Pascal dilində proqramlaşdırma
Mövzu 3. Mürəkkəb şərtlər
© Polyakov K.Y, 2006-2007

Pascal dilində  proqramlaşdırmaMövzu 3. Mürəkkəb şərtlər© Polyakov K.Y, 2006-2007

Слайд 36
Mürəkkəb şərtlər
Tapşırıq. Şirket işə 25-40 до 40 лет включительно. Ввести возраст

человека и определить, подходит ли он фирме (вывести ответ "подходит" или "не подходит").
Особенность: надо проверить, выполняются ли два условия одновременно.
Mürəkkəb şərtlərTapşırıq. Şirket işə 25-40 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он

Слайд 37
I variant.Alqoritm
başlanğıc
Daxil et x
‘uyğundur'
son




да
нет
x >= 25?


да
нет
x

I variant.AlqoritmbaşlanğıcDaxil et x‘uyğundur'sonданетx >= 25?данетx

Слайд 38
I variant. Proqram



program qq;
var x: integer;
begin
writeln(‘Yaş həddini daxil et');

read ( x );
if x >= 25 then
if x <= 40 then
writeln (‘uyğundur')
else writeln (‘uyğun deyil')
else
writeln (‘uyğun deyil');
end.
I variant. Proqram		program qq;	var x: integer;	begin  writeln(‘Yaş həddini daxil et');  read ( x );

Слайд 39II variant.Alqoritm
başlanğıc
Daxil et x
‘uyğundur'


да
нет
x >= 25 и
x

II variant.AlqoritmbaşlanğıcDaxil et x‘uyğundur'данетx >= 25  иx

Слайд 40
Вариант 2. Программа


Mürəkkəb şərt
program qq;
var x: integer;
begin
writeln(‘Yaş həddini d/et');

read ( x );
if (x >= 25) and (x <= 40) then
writeln (‘uyğundur')
else writeln (‘uyğun deyil')
end.
Вариант 2. ПрограммаMürəkkəb şərt	program qq;	var x: integer;	begin  writeln(‘Yaş həddini d/et');  read ( x );

Слайд 41
Mürəkkəb şərt
Mürəkkəb şərt – bir necə sadə şərtlərin məntiqi əməllərlə birləşməsidir:
not

– deyil (inkar, inversiya)
and – VƏ (məntiqi vurma, konyuksiya, hər iki şərtin ödənməsi)
or – VƏ YA (məntiqi toplama, dizyunksiya, heç olazsa bir şərtin ödənməsi)
xor – isklyu ИЛИ (her iki şərtin deyil,ancak bir şərtin ödənnilməsi)
Sadə şərtlər (münasibət)
< <= > >= = <>

Bərabər

Bərabər deyil

Mürəkkəb şərtMürəkkəb şərt – bir necə sadə şərtlərin məntiqi əməllərlə birləşməsidir:not – deyil (inkar, inversiya)and – VƏ

Слайд 42
Mürəkkəb şərtlər
Yerinə yetirilmə ardıcılığı
Mötərizədə olan ifadələr
not
and
or, xor
=, =,

<>
Əsas qaydalar – hər bir sadə şərt mötərızəyə alınmalıdır
Nümunə:

4 1 6 2 5 3

if not (a > b) or (c <> d) and (b <> a)
then begin
...
end

Mürəkkəb şərtlərYerinə yetirilmə ardıcılığıMötərizədə olan ifadələrnotandor, xor=, =, Əsas qaydalar – hər bir sadə şərt mötərızəyə alınmalıdırNümunə:4

Слайд 43Doğru və yalan a := 2; b := 3; c :=

4;
not (a > b)
(a < b) and (b < c)
not (a >= b) or (c = d)
(a < c) or (b < c) and (b < a)
(a < b) xor not (b > c)
x –ın hansı qiymətləri üçün doğrudur:
(x < 6) and (x < 10)
(x < 6) and (x > 10)
(x > 6) and (x < 10)
(x > 6) and (x > 10)
(x < 6) or (x < 10)
(x < 6) or (x > 10)
(x > 6) or (x < 10)
(x > 6) or (x > 10)


Mürəkkəb şərtlər

True

True

FALSE

(-∞, 6)


(6, 10)

(10, ∞)

(-∞, 10)

(-∞, 6) ∪ (10,∞)

(-∞, ∞)

(6, ∞)

x < 6

x > 10

x < 10

x > 6

True

True

Doğru və yalan a := 2; b := 3; c := 4;not (a > b)(a < b)

Слайд 44
Tapşırıq
"4": Ayın nömrəsinə əsasən bu ayın hansı fəslə aid olduğunu çapa

verin.
Nümune:
ayın nömrəsini daxil et:
4
yaz
"5": Ввести возраст человека (от 1 до 150 лет) и вывести его вместе с последующим словом "год", "года" или "лет".
Пример:
Введите возраст: Введите возраст:
24 57
Вам 24 года Вам 57 лет
Tapşırıq

Слайд 45Pascal dilində proqramlaşdırma
Mövzu 4. Dövrler
© Polyakov K.Y, 2006-2007

Pascal dilində  proqramlaşdırmaMövzu 4. Dövrler© Polyakov K.Y, 2006-2007

Слайд 46
Dövrlər
Dövr – eyni ardıcıllıglı əməliyyatların təkrarlanmasıdır.
Addımlarının sayı məlum olan dövrlər
Addımlarının sayı

məlum olmayan dövrlər (şərtə görə dövr)
Tapşırıq. 1-dən 8 -ə qədər tam ədədlərin kvadratlarını və kublarını çapa verin (a –dan b-yə qədər).
Əsas xüsusiyyəti : eyni əməliyyatlar 8 dəfə təkrarlanır
DövrlərDövr – eyni ardıcıllıglı əməliyyatların təkrarlanmasıdır.Addımlarının sayı məlum olan dövrlərAddımlarının sayı məlum olmayan dövrlər (şərtə görə dövr)Tapşırıq.

Слайд 47
Alqoritm

Başlanğıc
i, i2, i3
son
xeyir
Bəli
i

:= i * i;
i3 := i2 * i;

Dövr dəyişəninə ilkin qiymət verək

Təkrarlanma sayını yoxlayaq

Kvadrat və kubu hesablayırıq

Nəticəni çapa veririk

Növbəti I dəyişəninə keçırık

AlqoritmBaşlanğıci, i2, i3sonxeyirBəlii

Слайд 48
Alqoritm (dövr bloku ile)

başlanğıc
i, i2, i3
son

i2 := i * i;
i3 :=

i2 * i;

i := 1,8

Dövr bloku

Dövrün gövdəsi

Alqoritm (dövr bloku ile)başlanğıci, i2, i3soni2 := i * i;i3 := i2 * i;i := 1,8Dövr blokuDövrün

Слайд 49
Program


program qq;
var i, i2, i3: integer;
begin


for i:=1 to 8

do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
end.

Dövr dəyişəni

Ilkin qiymət

Son qiymət

Programprogram qq;var i, i2, i3: integer;begin  for i:=1 to 8 do begin  i2 := i*i;

Слайд 50
Dəyişənin qiymətinin azalması ilə dövr
Tapşırıq. 8-dən 1- ə qədər olan tam

ədədlərin kvadratlarını və kubunu çapa verən program yazın (yəni tərisnə).
Əsas xüsusiyyət :dövr parametrinin qiyməti azalmalıdırр.
Həlli:

for i:=8 1 do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;

downto

Dəyişənin qiymətinin azalması ilə dövrTapşırıq. 8-dən 1- ə qədər olan tam ədədlərin kvadratlarını və kubunu çapa verən

Слайд 51
Dəyışənə görə dövr
for := to

qiyməti> do begin
{dövrün gövdəsi}
end;

Dəyişənin qiymətinin 1 artırılır :

for := downto
do begin
{dövrün gövdəsi}
end;

Dəyişənin qiymətinin 1 azaldılır:

Dəyışənə görə dövr	for := to   do begin  {dövrün gövdəsi}    end;Dəyişənin qiymətinin

Слайд 52
Dəyişənə görə dövr
Əsas xüsusiyyətlər:
Dövr dəyişəni ancaq tam ədəd olmalıdır (integer)
Addım ancaq

1 ola bilər (to) və ya -1 (downto)
Dövrün gövdəsində bir operator istifadə olunursa , begin- end operatorlarını yazmamak da olar:
Dövrü dəyişənin son qiyməti ilkin qiymətdən kiçik olarsa,onda dövr bir dəfə də olsun yerinə yetirilmir (to) (bu şərt dövr yerine yetirilmədən yoxlanılır)

for i:=1 to 8 do
writeln(‘salam');

Dəyişənə görə dövrƏsas xüsusiyyətlər:Dövr dəyişəni ancaq tam ədəd olmalıdır (integer)Addım ancaq 1 ola bilər (to) və ya

Слайд 53
Parametra görə dövrlər
Əsas xüsusiyyətlər:
İ dövr dəyişənini qiymətini dəyişmək olmaz (niyə?)
Dəyişənin ilkin

və son qoyməti dövrün gövdəsində dəyişdirildikdə addımların sayı dəyişməz:

n := 8;
for i:=1 to n do begin
writeln(‘salam');
n := n + 1;
end;

Dövr yoxdur

Parametra görə dövrlərƏsas xüsusiyyətlər:İ dövr dəyişənini qiymətini dəyişmək olmaz (niyə?)Dəyişənin ilkin və son qoyməti dövrün gövdəsində dəyişdirildikdə

Слайд 54
Dövr dəyişənə görə
Əsas xüsusiyyətlər:
Bəzi sisitemlərdə dəyişənin ilkin после выполнения цикла во

многих системах устанавливается первое значение переменной цикла, при котором нарушено условие:

for i:=1 to 8 do
writeln('Привет');
writeln('i=', i);

for i:=8 downto 1 do
writeln('Привет');
writeln('i=', i);

i=9

i=0

НЕ ДОКУМЕНТИРОВАНО

?

Dövr dəyişənə görəƏsas xüsusiyyətlər:Bəzi sisitemlərdə dəyişənin ilkin после выполнения цикла во многих системах устанавливается первое значение переменной

Слайд 55
Dövr neçə dəfə təkrarlanacaq
a := 1;
for i:=1 to 3 do a

:= a+1;

a = 4

a := 1;
for i:=3 to 1 do a := a+1;

a = 1

a := 1;
for i:=1 downto 3 do a := a+1;

a = 1

a := 1;
for i:=3 downto 1 do a := a+1;

a = 4

Dövr neçə dəfə təkrarlanacaqa := 1;for i:=1 to 3 do a := a+1;a = 4a := 1;for

Слайд 56for i:=1 to 9 do begin
if ???

then begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
end;


Addımı necə dəyişək?

Tapşırıq. 1-9 qədər tək ədədlərin kvadrat və kublarını çapa verən program yazın.
Əsas xüsusiyyət: dövr dəyişəninin qiyməti 2 addımı ilə dəyişməlidir
Problem : Pascal dilində addım ancaq 1 və ya -1 ola bilər.
Həlli:

i mod 2 = 1

i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);

Ancaq tək ədədlər üçün yernə yetirilir

for i:=1 to 9 do begin  if   ???   then begin

Слайд 57
Addımı necə dəyişək? – II
ideya: cəmi 5 ədəd şap olunmalıdır, k

dəyişəni 1-dən 5 -ə kimi dəyişəcək , i dəyişəninin ilkin qiyməti 1 olacaq,və hər dəfə dövrdə i dəyişənin qiyməti 2 vahid artacaq
Həlli:

???
for k:=1 to 5 do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
???
end;

i := i + 2;

i := 1;

Addımı necə dəyişək? – IIideya: cəmi 5 ədəd şap olunmalıdır, k dəyişəni 1-dən 5 -ə kimi dəyişəcək

Слайд 58
Addımı necə dəyişək? – III
İdeya: Cəmi 5 ədəd çapa vermək lazımdır.адо

вывести всего 5 чисел, переменная k изменяется от 1 до 5. Зная k, надо рассчитать i.


Решение:

i = 2k-1

for k:=1 to 5 do begin
???
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;

i := 2*k – 1;

Addımı necə dəyişək? – IIIİdeya: Cəmi 5 ədəd çapa vermək lazımdır.адо вывести всего 5 чисел, переменная k

Слайд 59
Задания
"4": Ввести a и b и вывести квадраты и кубы чисел

от a до b.
Пример:
Введите границы интервала:
4 6
4 16 64
5 25 125
6 36 216
"5": Вывести квадраты и кубы 10 чисел следующей последовательности: 1, 2, 4, 7, 11, 16, …
Пример:
1 1 1
2 4 8
4 16 64
...
46 2116 97336

Задания

Слайд 60Pascal dilində proqramlaşdırma
Mövzu 5. Şərtə görə dövrlər
© Polyakov K.Y, 2006-2007

Pascal dilində  proqramlaşdırmaMövzu 5. Şərtə görə dövrlər© Polyakov K.Y, 2006-2007

Слайд 61
Цикл с неизвестным числом шагов
Пример: Отпилить полено от бревна. Сколько раз

надо сделать движения пилой?
Задача: Ввести целое число (<2000000) и определить число цифр в нем.
Идея решения: Отсекаем последовательно последнюю цифру, увеличиваем счетчик.




Проблема: Неизвестно, сколько шагов надо сделать.
Решение: Надо остановиться, когда n = 0, т.е. надо делать "пока n <> 0".
Цикл с неизвестным числом шаговПример: Отпилить полено от бревна. Сколько раз надо сделать движения пилой?Задача: Ввести целое

Слайд 62

Алгоритм

начало
count
конец
нет
да
n 0?

count := 0;

count := count + 1;
n

:= n div 10;

обнулить счетчик цифр

ввод n


выполнять "пока n <> 0"

Алгоритмначалоcountконецнетдаn 0?count := 0;count := count + 1;  n := n div 10;обнулить счетчик цифрввод nвыполнять

Слайд 63Программа
program qq;
var n, count: integer;
begin
writeln('Введите целое число');
read(n);
count :=

0;
while n <> 0 do begin
count := count + 1;
n := n div 10;
end;
writeln('В числе ', n, ' нашли ',
count, ' цифр');
end.

while n <> 0 do begin
count := count + 1;
n := n div 10;
end;

, n1: integer;

n1 := n;

n1,

выполнять "пока n <> 0"

Программаprogram qq;var n, count: integer;begin writeln('Введите целое число'); read(n); count := 0; while n 0 do begin

Слайд 64
Цикл с условием
while do begin
{тело цикла}


end;

Особенности:
можно использовать сложные условия:
если в теле цикла только один оператор, слова begin и end можно не писать:

while (a {тело цикла}
end;

while a < b do
a := a + 1;

Цикл с условием	while do begin  {тело цикла}    end;Особенности:можно использовать сложные условия:если в теле

Слайд 65
Цикл с условием
Особенности:
условие пересчитывается каждый раз при входе в цикл
если условие

на входе в цикл ложно, цикл не выполняется ни разу
если условие никогда не станет ложным, программа зацикливается

a := 4; b := 6;
while a > b do
a := a – b;

a := 4; b := 6;
while a < b do
d := a + b;

Цикл с условиемОсобенности:условие пересчитывается каждый раз при входе в циклесли условие на входе в цикл ложно, цикл

Слайд 66
Сколько раз выполняется цикл?
a := 4; b := 6;
while a

b do a := a + 1;

2 раза
a = 6

a := 4; b := 6;
while a < b do a := a + b;

1 раз
a = 10

a := 4; b := 6;
while a > b do a := a + 1;

0 раз
a = 4

a := 4; b := 6;
while a < b do b := a - b;

1 раз
b = -2

a := 4; b := 6;
while a < b do a := a - 1;

зацикливание

Сколько раз выполняется цикл?a := 4; b := 6;while a < b do a := a +

Слайд 67
Замена for на while и наоборот
for i:=1 to 10 do begin

{тело цикла}
end;

i := 1;
while i <= 10 do begin
{тело цикла}
i := i + 1;
end;

for i:=a downto b do
begin
{тело цикла}
end;

i := a;
while i >= b do begin
{тело цикла}
i := i - 1;
end;

Замена while на for возможна только тогда, когда можно заранее рассчитать число шагов цикла.

Замена цикла for на while возможна всегда.

Замена for на while и наоборотfor i:=1 to 10 do begin {тело цикла}end;i := 1;while i =

Слайд 68
Задания
"4": Ввести целое число и найти сумму его цифр.
Пример:
Введите

целое число:
1234
Сумма цифр числа 1234 равна 10.
"5": Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры.
Пример:
Введите целое число: Введите целое число:
1234 1224
Нет. Да.
Задания

Слайд 69
Последовательности
Примеры:
1, 2, 3, 4, 5, …
1, 2, 4, 7, 11, 16,


1, 2, 4, 8, 16, 32, …

an = n

a1 = 1, an+1 = an+1

a1 = 1, an+1 = an + n

an = 2n-1

a1 = 1, an+1 = 2an

b1 = 1, bn+1 = bn+1

c1 = 2, cn+1 = 2cn

ПоследовательностиПримеры:1, 2, 3, 4, 5, …1, 2, 4, 7, 11, 16, …1, 2, 4, 8, 16, 32,

Слайд 70
Последовательности
Задача: найти сумму всех элементов последовательности,
которые по модулю больше

0,001:

Элемент последовательности (начиная с №2):

b := b+1;

c := 2*c;

z := -z;

ПоследовательностиЗадача: найти сумму всех элементов последовательности,  которые по модулю больше 0,001: Элемент последовательности (начиная с №2):b

Слайд 71
Алгоритм

начало
S
конец
нет
да
|a| > 0.001?


S := S + a;

S := 0; b :=

1; c := 2; z := -1; a := 1;

начальные значения

a := z*b/c;
b := b + 1; c := 2*c; z := -z;

первый элемент

a := 1;

S := 0;

новый элемент

изменение

АлгоритмначалоSконецнетда|a| > 0.001?S := S + a;S := 0; b := 1;  c := 2; z

Слайд 72
Программа
program qq;
var b, c, z: integer;
S, a: real;
begin

S := 0; z := -1;
b := 1; c := 2; a := 1;
while abs(a) > 0.001 do begin
S := S + a;
a := z * b / c;
z := - z;
b := b + 1;
c := c * 2;
end;
writeln('S =', S:10:3);
end.

z := - z;
b := b + 1;
c := c * 2;

переход к следующему слагаемому

S := 0; z := -1;
b := 1; c := 2; a := 1;

начальные значения

увеличение суммы

расчет элемента последовательности

Программаprogram qq;var b, c, z: integer;  S, a: real;begin  S := 0; z := -1;

Слайд 73
Задания
"4": Найти сумму элементов последовательности с точностью 0,001:


Ответ:
S =

1.157
"5": Найти сумму элементов последовательности с точностью 0,001:
Ответ:
S = 1.220
Задания

Слайд 74
Цикл с постусловием
Задача: Ввести целое положительное число (

цифр в нем.
Проблема: Как не дать ввести отрицательное число или ноль?
Решение: Если вводится неверное число, вернуться назад к вводу данных (цикл!).
Особенность: Один раз тело цикла надо сделать в любом случае => проверку условия цикла надо делать в конце цикла (цикл с постусловием).

Цикл с постусловием – это цикл, в котором проверка условия выполняется в конце цикла.

Цикл с постусловиемЗадача: Ввести целое положительное число ( проверку условия цикла надо делать в конце цикла (цикл

Слайд 75
Цикл с постусловием: алгоритм

начало
конец
да
нет
n > 0?


тело цикла
условие ВЫХОДА
блок "типовой процесс"
ввод

n

основной алгоритм

Цикл с постусловием: алгоритм началоконецданетn > 0?тело циклаусловие ВЫХОДАблок

Слайд 76
Программа
program qq;
var n: integer;
begin
repeat
writeln('Введите положительное число');

read(n);
until n > 0;
... { основной алгоритм }
end.

repeat
writeln('Введите положительное число');
read(n);
until n > 0;

until n > 0;

условие ВЫХОДА

Особенности:
тело цикла всегда выполняется хотя бы один раз
после слова until ("до тех пор, пока не…") ставится условие ВЫХОДА из цикла

Программаprogram qq;var n: integer;begin  repeat   writeln('Введите положительное число');   read(n);  until n

Слайд 77
Сколько раз выполняется цикл?
a := 4; b := 6;
repeat a :=

a + 1; until a > b;

3 раза
a = 7

a := 4; b := 6;
repeat a := a + b; until a > b;

1 раз
a = 10

a := 4; b := 6;
repeat a := a + b; until a < b;

зацикливание

a := 4; b := 6;
repeat b := a - b; until a < b;

2 раза
b = 6

a := 4; b := 6;
repeat a := a + 2; until a < b;

зацикливание

Сколько раз выполняется цикл?a := 4; b := 6;repeat a := a + 1; until a >

Слайд 78
Задания (с защитой от неверного ввода)
"4": Ввести натуральное число и определить,

верно ли, что сумма его цифр равна 10.
Пример:
Введите число >= 0: Введите число >= 0:
-234 1233
Нужно положительное число. Нет
Введите число >= 0:
1234
Да
"5": Ввести натуральное число и определить, какие цифры встречаются несколько раз.
Пример:
Введите число >= 0: Введите число >= 0:
2323 1234
Повторяются: 2, 3 Нет повторов.

Слайд 79Pascal dilində proqramlaşdırma
Mövzu 6. Seçim operatoru
© Polyakov K.Y, 2006-2007

Pascal dilində  proqramlaşdırmaMövzu 6. Seçim operatoru© Polyakov K.Y, 2006-2007

Слайд 80
Оператор выбора
Задача: Ввести номер месяца и вывести количество

дней в этом месяце.
Решение: Число дней по месяцам:
28 дней – 2 (февраль)
30 дней – 4 (апрель), 6 (июнь), 9 (сентябрь), 11 (ноябрь)
31 день – 1 (январь), 3 (март), 5 (май), 7 (июль), 8 (август), 10 (октябрь), 12 (декабрь)
Особенность: Выбор не из двух, а из нескольких вариантов в зависимости от номера месяца.
Оператор выбораЗадача: Ввести номер месяца и вывести количество

Слайд 81Алгоритм
начало
конец

оператор выбора
ни один вариант не подошел
ввод M

да
нет
M = 1?
D := 31;
нет
M

= 2?

D := 28;

да

нет

M = 12?

D := 31;

да

вывод D

ошибка




Алгоритмначалоконецоператор выборани один вариант не подошелввод MданетM = 1?D := 31;нетM = 2?D := 28;данетM = 12?D

Слайд 82
Программа
program qq;
var M, D: integer;
begin
writeln('Введите номер месяца:');
read

( M );
case M of
2: begin D := 28; end;
4,6,9,11: begin D := 30; end;
1,3,5,7,8,10,12: D := 31;
else D := -1;
end;
if D > 0 then
writeln('В этом месяце ', D, ' дней.')
else
writeln('Неверный номер месяца');
end.

case M of
2: begin D := 28; end;
4,6,9,11: begin D := 30; end;
1,3,5,7,8,10,12: D := 31;
else D := -1;
end;

ни один вариант не подошел

Программаprogram qq;var M, D: integer;begin  writeln('Введите номер месяца:');  read ( M );  case M

Слайд 83
Оператор выбора
Особенности:
после case может быть имя переменной или арифметическое выражение целого

типа (integer)
или символьного типа (char)

case i+3 of
1: begin a := b; end;
2: begin a := c; end;
end;

var c: char;
...
case c of
'а': writeln('Антилопа');
'б': writeln('Барсук');
else writeln('Не знаю');
end;

Оператор выбораОсобенности:после case может быть имя переменной или арифметическое выражение целого типа (integer)  или символьного типа

Слайд 84
Оператор выбора
Особенности:
если нужно выполнить только один оператор, слова begin и end

можно не писать
нельзя ставить два одинаковых значения

case i+3 of
1: a := b;
1: a := c;
end;

case i+3 of
1: a := b;
2: a := c;
end;

Оператор выбораОсобенности:если нужно выполнить только один оператор, слова begin и end можно не писатьнельзя ставить два одинаковых

Слайд 85
Оператор выбора
Особенности:
значения, при которых выполняются одинаковые действия, можно группировать
case i of


1: a := b;
2,4,6: a := c;
10..15: a := d;
20,21,25..30: a := e;
else writeln('Ошибка');
end;

перечисление

диапазон

смесь

Оператор выбораОсобенности:значения, при которых выполняются одинаковые действия, можно группироватьcase i of 1:

Слайд 86
Что неправильно?
case a of
2: begin a := b;
4:

a := c;
end;

case a of
2: a := b
4: a := c
end;

;

case a of
2..5: a := b;
4: a := c;
end;

case a of
0..2: a := b;
6..3: a := c;
end;

3..6:

case a+c/2 of
2: a := b;
4: a := c;
end;

case a of
2: a := b; d := 0;
4: a := c;
end;

begin

end;


Что неправильно?case a of 2: begin a := b; 4: a := c;end;case a of 2: a

Слайд 87
Задания (с защитой от неверного ввода)
"4": Ввести номер месяца и вывести

количество дней в нем, а также число ошибок при вводе.
Пример:
Введите номер месяца: Введите номер месяца:
-2 2
Введите номер месяца: В этом месяце 28 дней.
11 Вы вводили неверно 0 раз.
В этом месяце 30 дней.
Вы вводили неверно 1 раз.
"5": Ввести номер месяца и номер дня, вывести число дней, оставшихся до Нового года.
Пример:
Введите номер месяца:
12
Введите день:
25
До Нового года осталось 6 дней.
Задания (с защитой от неверного ввода)

Слайд 88Pascal dilində proqramlaşdırma
Mövzu 7. Qrafika
© К.Ю. Поляков, 2006-2007

Pascal dilində proqramlaşdırmaMövzu 7. Qrafika© К.Ю. Поляков, 2006-2007

Слайд 89
Система координат

(0,0)
(x,y)
X
Y

x
y

Система координат(0,0)(x,y)XYxy

Слайд 90
Управление цветом
Цвет и толщина линий, цвет точек:
Pen (

1, 255, 0, 0 );
Цвет и стиль заливки:
Brush ( 1, 0, 255, 0 );
Цвет текста:
TextColor ( 0, 0, 255 );

толщина линии

R(red)
0..255

G(green)
0..255

B(blue)
0..255

0 – выключить
1 - включить

R

G

B

R

G

B

Управление цветомЦвет и толщина линий, цвет точек:   Pen ( 1, 255, 0, 0 );Цвет и

Слайд 91
Точки, отрезки и ломаные
Pen (1, 0, 255, 0); Line (x1, y1,

x2, y2);

Pen (1, 0, 0, 255);
Point (x, y);

Pen (1, 255, 0, 0); MoveTo (x1, y1); LineTo (x2, y2);
LineTo (x3, y3);
LineTo (x4, y4);
LineTo (x5, y5);

Точки, отрезки и ломаныеPen (1, 0, 255, 0); Line (x1, y1, x2, y2);Pen (1, 0, 0, 255);Point

Слайд 92
Фигуры с заливкой
Pen (1, 0, 0, 255);
Brush (1, 255, 255, 0);
Rectangle

(x1, y1, x2, y2);

Pen (1, 255, 0, 0);
Brush (1, 0, 255, 0);
Ellipse (x1, y1, x2, y2);

Brush (1, 100, 200, 255);
Fill (x, y);

Фигуры с заливкойPen (1, 0, 0, 255);Brush (1, 255, 255, 0);Rectangle (x1, y1, x2, y2);Pen (1, 255,

Слайд 93
Текст
TextColor (0, 0, 255);
Brush (1, 255, 255, 0);
Font (20, 30, 600);
MoveTo

(x, y);
writeln ('Привет!');

Привет!

(x, y)


размер
10 пикселей

угол
поворота

насыщенность:
400 – нормальный
600 – жирный

30о

ТекстTextColor (0, 0, 255);Brush (1, 255, 255, 0);Font (20, 30, 600);MoveTo (x, y);writeln ('Привет!');Привет!(x, y)размер10 пикселейуголповоротанасыщенность: 400

Слайд 94
Пример


(200, 50)
(100, 100)
(300, 200)



program qq;
begin
Pen(2, 255, 0, 255);

Brush(1, 0, 0, 255);
Rectangle(100, 100, 300, 200);
MoveTo(100, 100);
LineTo(200, 50);
LineTo(300, 100);
Brush(1, 255, 255, 0);
Fill(200, 75);
Pen(2, 255, 255, 255);
Brush(1, 0, 255, 0);
Ellipse(150, 100, 250, 200);
end.


Пример(200, 50)(100, 100)(300, 200)program qq;begin  Pen(2, 255, 0, 255);  Brush(1, 0, 0, 255);  Rectangle(100,

Слайд 95
Задания
"4": "Лягушка"







"5": "Корона"






Задания

Слайд 96
Штриховка
(x1, y1)
(x2, y2)



N линий (N=5)
h



Rectangle (x1, y1, x2, y2);
Line( x1+h,

y1, x1+h, y2);
Line( x1+2*h, y1, x1+2*h, y2);
Line( x1+3*h, y1, x1+3*h, y2);
...

h := (x2 – x1) / (N + 1);
Rectangle (x1, y1, x2, y2);
x := x1 + h;
for i:=1 to N do begin
Line( round(x), y1, round(x), y2);
x := x + h;
end;

var x, h: real;

x

округление до ближайшего целого

x

Штриховка(x1, y1)(x2, y2)N линий (N=5)hRectangle (x1, y1, x2, y2);Line( x1+h,  y1, x1+h,  y2);Line( x1+2*h, y1,

Слайд 97

Как менять цвет?
(x1, y1)
(x2, y2)


Brush ( 1, c, c, c );
Fill

( ???, ??? );

серый: R = G = B

Шаг изменения c:

x

(x-1, y1+1)




var c, hc: integer;


hc := 255 div (N + 1);
c := 0;
for i:=1 to N+1 do begin
Line (round(x), y1, round(x), y2);
Brush (1, c, c, c);
Fill (round(x)-1, y1+1);
x := x + h; c := c + hc;
end;

Как менять цвет?(x1, y1)(x2, y2)Brush ( 1, c, c, c );Fill ( ???, ??? );серый: R =

Слайд 98
Штриховка
(x1, y1)

(x2, y2)
(x3, y2)



a
h
(x3+a, y1)



Line( x1+h, y1, x1+h-a, y2);
Line(

x1+2*h, y1, x1+2*h-a, y2);
Line( x1+3*h, y1, x1+3*h-a, y2);
...

h := (x3 – x2) / (N + 1);
a := x1 – x2;
x := x1 + h;
for i:=1 to N do begin
Line( round(x), y1, round(x-a), y2);
x := x + h;
end;

x

x-a

Штриховка(x1, y1)(x2, y2)(x3, y2)ah(x3+a, y1)Line( x1+h,  y1, x1+h-a,  y2);Line( x1+2*h, y1, x1+2*h-a, y2);Line( x1+3*h, y1,

Слайд 99
Штриховка

(x1, y1)
(x2, y2)


hx
hy



y

x
y
Line( x1, y1+hy, x1+hx, y1+hy) ;
Line( x1,

y1+2*hy, x1+2*hx, y1+2*hy);
Line( x1, y1+3*hy, x1+3*hx, y1+3*hy);
...

hx := (x2 – x1) / (N + 1);
hy := (y2 – y1) / (N + 1);
x := x1 + hx; y := y1 + hy;
for i:=1 to N do begin
Line( x1, round(y), round(x), round(y));
x := x + hx; y := y + hy;
end;

Штриховка(x1, y1)(x2, y2)hxhyyxyLine( x1, y1+hy,  x1+hx,  y1+hy) ;Line( x1, y1+2*hy, x1+2*hx, y1+2*hy);Line( x1, y1+3*hy, x1+3*hx,

Слайд 100
Задания
"4": Ввести с клавиатуры число линий штриховки и построить фигуру, залив

все области разным цветом.







"5": Ввести с клавиатуры число окружностей и построить фигуру, залив все области разным цветом.
Задания

Слайд 101Pascal dilində proqramlaşdırma
Mövzu 8. Funksiyaların qrafikləri
© Polyakov K.Y, 2006-2007

Pascal dilində  proqramlaşdırmaMövzu 8. Funksiyaların qrafikləri© Polyakov K.Y, 2006-2007

Слайд 102
Построение графиков функций
Задача: построить график функции y = 3 sin(x) на

интервале от 0 до 2π.
Анализ:
максимальное значение ymax = 3 при x = π/2
минимальное значение ymin = -3 при x = 3π/2
Проблема: функция задана в математической системе координат, строить надо на экране, указывая координаты в пикселях.
Построение графиков функцийЗадача: построить график функции y = 3 sin(x) на интервале от 0 до 2π.Анализ: максимальное

Слайд 103
Преобразование координат
(x,y)

X
Y
x
y
Математическая
система координат
Экранная система координат (пиксели)

(xэ,yэ)



(0,0)
(0,0)
a
b
k – масштаб (длина изображения

единичного отрезка на экране)

xэ = a + kx
yэ = b - ky

Преобразование координат(x,y)XYxyМатематическая система координатЭкранная система координат (пиксели)(xэ,yэ)xэyэ(0,0)(0,0)abk – масштаб (длина изображения единичного отрезка на экране)xэ = a

Слайд 104
Программа


h – шаг изменения x
w – длина оси ОХ в пикселях
на

экране

оси координат

цикл построения графика



program qq;
const a = 50; b = 200; k = 50;
xmin = 0; xmax = 6.2832;
var x, y, h: real;
xe, ye, w: integer;
begin
w := round((xmax - xmin)*k);
Line(a-10, b, a+w, b);
Line(a, 0, a, 2*b);
x := xmin; h := 0.05;
while x <= xmax do begin
y := 3*sin(x);
xe := a + round(k*x);
ye := b - round(k*y);
Point (xe, ye);
x := x + h;
end;
end.

Программа2πh – шаг изменения xw – длина оси ОХ в пикселяхна экранеоси координатцикл построения графикаprogram qq;const a

Слайд 105
Как соединить точки?
Алгоритм:
Если первая точка
перейти в точку (xэ,yэ)
иначе
отрезок

в точку (xэ,yэ)

Программа:



начальное значение

выбор варианта действий


логическая переменная

var first: boolean;
...
begin
...
first := True;
while x <= xmax do begin
...
if first then begin
MoveTo(xe, ye);
first := False;
end
else LineTo(xe, ye);
...
end;
end.

Как соединить точки?Алгоритм:Если первая точка перейти в точку (xэ,yэ)иначе  отрезок в точку (xэ,yэ)Программа:начальное значениевыбор варианта действийлогическая

Слайд 106
Задания
"4": Построить график функции y = x2 на интервале [-3,3].







"5": Построить график функции (эллипс)


Задания

Слайд 107Pascal dilində proqramlaşdırma
Mövzu 9. Proseduralar
© Polyakov K.Y, 2006-2007

Pascal dilində  proqramlaşdırmaMövzu 9. Proseduralar© Polyakov K.Y, 2006-2007

Слайд 108
Процедуры
Задача: Построить фигуру:
Особенность: Три похожие фигуры.
общее: размеры, угол поворота
отличия: координаты,

цвет
ПроцедурыЗадача: Построить фигуру:Особенность: Три похожие фигуры.общее:  размеры, угол поворотаотличия: координаты, цвет

Слайд 109
Процедуры
Процедура – это вспомогательный алгоритм, который предназначен для выполнения некоторых действий.
Применение:
выполнение

одинаковых действий в разных местах программы
разбивка программы (или другой процедуры) на подзадачи для лучшего восприятия
ПроцедурыПроцедура – это вспомогательный алгоритм, который предназначен для выполнения некоторых действий.Применение:выполнение одинаковых действий в разных местах программыразбивка

Слайд 110
Процедуры
Порядок разработки:
выделить одинаковые или похожие действия (три фигуры)
найти в них общее

(размеры, форма, угол поворота) и отличия (координаты, цвет)
отличия записать в виде неизвестных переменных, они будут параметрами процедуры

(x+100, y)

(x, y-60)




procedure Tr( x, y, r, g, b: integer);
begin
MoveTo(x, y);
LineTo(x, y-60);
LineTo(x+100, y);
LineTo(x, y);
Brush(1, r, g, b);
Fill(x+20, y-20);
end;

заголовок

MoveTo(x, y);
LineTo(x, y-60);
LineTo(x+100, y);
LineTo(x, y);
Brush(1, r, g, b);
Fill(x+20, y-20);

тело процедуры

координаты

цвет

параметры

ПроцедурыПорядок разработки:выделить одинаковые или похожие действия (три фигуры)найти в них общее (размеры, форма, угол поворота) и отличия

Слайд 111Программа
program qq;




begin
Pen(1, 255, 0, 255);
Tr(100, 100, 0,

0, 255);
Tr(200, 100, 0, 255, 0);
Tr(200, 160, 255, 0, 0);
end.

(100,100)

100

60

процедура

фактические параметры

вызовы процедуры

procedure Tr( x, y, r, g, b: integer);
begin
...
end;

формальные параметры

Программаprogram qq;begin  Pen(1, 255, 0, 255);  Tr(100, 100, 0, 0, 255);  Tr(200, 100, 0,

Слайд 112
Процедуры
Особенности:
все процедуры расположены выше основной программы
в заголовке процедуры перечисляются формальные параметры,

они обозначаются именами, поскольку могут меняться
при вызове процедуры в скобках указывают фактические параметры (числа или арифметические выражения) в том же порядке

procedure Tr( x, y, r, g, b: integer);

Tr (200, 100, 0, 255, 0);

x

y

r

g

b

ПроцедурыОсобенности:все процедуры расположены выше основной программыв заголовке процедуры перечисляются формальные параметры, они обозначаются именами, поскольку могут менятьсяпри

Слайд 113
Процедуры
Особенности:
для каждого формального параметра после двоеточия указывают его тип
если однотипные параметры

стоят рядом, их перечисляют через запятую
внутри процедуры параметры используются так же, как и переменные

procedure A (x: real; y: integer; z: real);

procedure A (x, z: real; y, k, l: integer);

ПроцедурыОсобенности:для каждого формального параметра после двоеточия указывают его типесли однотипные параметры стоят рядом, их перечисляют через запятуювнутри

Слайд 114
Процедуры
Особенности:
в процедуре можно объявлять дополнительные локальные переменные, остальные процедуры не имеют

к ним доступа


program qq;
procedure A(x, y: integer);
var a, b: real;
begin
a := (x + y)/6;
...
end;
begin
...
end.

procedure A(x, y: integer);
var a, b: real;
begin
a := (x + y)/6;
...
end;

локальные переменные

var a, b: real;

ПроцедурыОсобенности:в процедуре можно объявлять дополнительные локальные переменные, остальные процедуры не имеют к ним доступаprogram qq; procedure A(x,

Слайд 115Параметры-переменные
Задача: составить процедуру, которая меняет местами значения двух переменных.
Особенности:
надо, чтобы изменения,

сделанные в процедуре, стали известны вызывающей программе

program qq;
var x, y: integer;





begin
x := 1; y := 2;
Exchange ( x, y );
writeln ( ’x = ’, x, ’ y = ’, y );
end;

procedure Exchange ( a, b: integer );
var c: integer;
begin
c := a; a := b; b := c;
end;


эта процедура работает с копиями параметров

x = 1 y = 2

Параметры-переменныеЗадача: составить процедуру, которая меняет местами значения двух переменных.Особенности:надо, чтобы изменения, сделанные в процедуре, стали известны вызывающей

Слайд 116Параметры-переменные
Применение: таким образом процедура (и функция) может возвращать несколько значений,
Запрещенные варианты

вызова
Exchange ( 2, 3 ); { числа }
Exchange ( x+z, y+2 ); { выражения }

procedure Exchange ( a, b: integer );
var c: integer;
begin
c := a; a := b; b := c;
end;

var

параметры могут изменяться





Параметры-переменныеПрименение:  таким образом процедура (и функция) может возвращать несколько значений,Запрещенные варианты вызоваExchange ( 2, 3 );

Слайд 117
Задания
"4": Используя процедуры, построить фигуру.







"5": Используя процедуры, построить фигуру.


равносторонний треугольник

Задания

Слайд 118Pascal dilində proqramlaşdırma
Mövzu 10. Rekursiya
© К.Ю. Поляков, 2006-2007

Pascal dilində  proqramlaşdırmaMövzu 10. Rekursiya© К.Ю. Поляков, 2006-2007

Слайд 119
Рекурсивные объекты
Рекурсивный объект – это объект, определяемый через один или несколько

таких же объектов.

У попа была собака, он ее любил.
Она съела кусок мяса, он ее убил.
В ямку закопал, надпись написал:

Сказка о попе и собаке

Примеры:

Сказка о попе и собаке:

Факториал:


если

если

Рисунок с рекурсией:

Рекурсивные объектыРекурсивный объект – это объект, определяемый через один или несколько таких же объектов. У попа была

Слайд 120
Дерево Пифагора
Дерево Пифагора из N уровней – это ствол и отходящие

от него симметрично два дерева Пифагора из N-1 уровней, такие что длина их стволов в 2 раза меньше и угол между ними равен 90o.


6 уровней:



Дерево ПифагораДерево Пифагора из N уровней – это ствол и отходящие от него симметрично два дерева Пифагора

Слайд 121
Дерево Пифагора
Особенности:
когда остановиться?
деревья имеют различный наклон
когда число оставшихся уровней станет равно

нулю!


(x1, y1)

(x0, y0)



α

α+45o


α-45o

L

x1 = x0 + L·cos(α)
y1 = y0 – L·sin(α)

наклон "дочерних" деревьев

α + π/4
α – π/4

Дерево ПифагораОсобенности:когда остановиться?деревья имеют различный наклонкогда число оставшихся уровней станет равно нулю!(x1, y1)(x0, y0)αα+45oα-45oLx1 = x0 +

Слайд 122Процедура

угол α
длина ствола

procedure Pifagor(x0, y0, a, L: real;

N: integer);
const k = 0.6; { изменение длины }
var x1, y1: real; { локальные переменные }
begin
if N > 0 then begin
x1 := x0 + L*cos(a);
y1 := y0 - L*sin(a);
Line (round(x0), round(y0),
round(x1), round(y1));
Pifagor (x1, y1, a+pi/4, L*k, N-1);
Pifagor (x1, y1, a-pi/4, L*k, N-1);
end;
end;

рекурсивные вызовы

закончить, если N=0

Рекурсивной называется процедура, вызывающая сама себя.

Процедураугол αдлина стволаprocedure Pifagor(x0, y0, a, L: real;

Слайд 123
Программа

program qq;
procedure Pifagor(x0, y0, a, L: real;

N: integer);
...
end;
begin
Pifagor (250, 400, pi/2, 150, 8);
end;

угол α

длина ствола

число уровней

x0

y0

Pifagor (250, 400, 2*pi/3, 150, 8);

Программаprogram qq; procedure Pifagor(x0, y0, a, L: real;

Слайд 124"4": Используя рекурсивную процедуру, построить фигуру:







"5": Используя рекурсивную процедуру,

построить фигуру:


Задания


Слайд 125Pascal dilində proqramlaşdırma
Mövzu 11. Animasiya
© К.Ю. Поляков, 2006-2007

Pascal dilində  proqramlaşdırmaMövzu 11. Animasiya© К.Ю. Поляков, 2006-2007

Слайд 126
Анимация
Анимация (англ. animation) – оживление изображения на экране.
Задача: внутри синего квадрата

400 на 400 пикселей слева направо двигается желтый квадрат 20 на 20 пикселей. Программа останавливается, если нажата клавиша Esc или квадрат дошел до границы синей области.

Проблема: как изобразить перемещение объекта на экране?
Привязка: состояние объекта задается координатами (x,y)
Принцип анимации:
рисуем объект в точке (x,y)
задержка на несколько миллисекунд
стираем объект
изменяем координаты (x,y)
переходим к шагу 1

АнимацияАнимация (англ. animation) – оживление изображения на экране.Задача: внутри синего квадрата 400 на 400 пикселей слева направо

Слайд 127
Как "поймать" нажатие клавиши?
Событие – это изменение в состоянии какого-либо объекта

или действие пользователя (нажатие на клавишу, щелчок мышкой).
IsEvent – логическая функция, которая определяет, было ли какое-то действие пользователя.
Event – процедура, которая определяет, какое именно событие случилось.

if IsEvent then begin
Event(k, x, y);
if k = 1 then
writeln('Клавиша с кодом ', x)
else { k = 2 }
writeln('Мышь: x=', x, ' y=', y);
end;

var k, x, y: integer;

Слайд 157Логические функции
Задача: составить функцию, которая определяет, верно ли, что заданное число

– простое.
Особенности:
ответ – логическое значение (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;

Логические функцииЗадача: составить функцию, которая определяет, верно ли, что заданное число – простое.Особенности:ответ – логическое значение (True

Слайд 158Логические функции
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;


вызов функции

результат – логическое значение

условие – это логическое значение

Логические функцииprogram qq;var N: integer;begin writeln('Введите целое число'); read(N); if Prime(N) then    writeln(N, '

Слайд 159
Задания
"4": Составить функцию, которая определяет сумму всех чисел от 1 до

N и привести пример ее использования.
Пример:
Введите число:
100
сумма = 5050
"5": Составить функцию, которая определяет, сколько зерен попросил положить на N-ую клетку изобретатель шахмат (на 1-ую – 1 зерно, на 2-ую – 2 зерна, на 3-ю – 4 зерна, …)
Пример:
Введите номер клетки:
28
На 28-ой клетке 134217728 зерен.
Задания

Слайд 160
Tapşırıq (II variant)
"4": Составить функцию, которая определяет наибольший общий делитель двух

натуральных и привести пример ее использования.
Пример:
Введите два числа:
14 21
НОД(14,21)=7
"5": Составить функцию, которая вычисляет функцию синус как сумму ряда (с точностью 0.001)

Пример:
Введите угол в градусах:
45
sin(45) = 0.707

x в радианах!

Tapşırıq (II variant)

Слайд 161
Конец фильма

Конец фильма

Что такое shareslide.ru?

Это сайт презентаций, где можно хранить и обмениваться своими презентациями, докладами, проектами, шаблонами в формате PowerPoint с другими пользователями. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами.


Для правообладателей

Яндекс.Метрика

Обратная связь

Email: Нажмите что бы посмотреть