Паскаль программалау тілі тарауы бойынша есептер шығару

Автор публикации:

Дата публикации:

Краткое описание: ...



А.Тайманов атындағы №34 мектеп-гимназиясы




Облыстық жас мамандар мектебі




Тақырыбы: «Паскаль программалау тілі тарауы бойынша есептер шығару»





Өткізген: Мурзагалиева Г.Ш.









Орал қаласы



Сабақтың тақырыбы: Паскаль программалау тілі тарауы бойынша есептер шығару.

Сабақтың мақсаты: Оқушылардың Паскаль программалау тілі тарауы бойынша білімдерін нақтылау, бекітіу;

Көрнекілігі: Презентация. Топшамалар.

Сабақ барысы:

  1. ұйымдастыру;

  2. үй тапсырмасын тексеру; тарау бойынша тест. 5 сұрақ. Компьютерде орындау.

  3. Еске түсіру.

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


program ex_1; (аты)

var x, y, z: real; (сипаттау бөлімі)

begin

(операторлар бөлімі)

end.


«Шартты оператор»

Тармақталу алгоритмін ұйымдастыру үшін шартты оператор қолданылады: Бұл оператордың жазылуы:

if <шарт> then <1 оператор> else <2 оператор> ;

қысқарған түрі:

if <шарт> then <1 оператор> ;


Мысалы:

1.

[pic] [pic] [pic]

есебін шешу программасын жазайық.

program ex_1;

var x, y, z: real;

begin

write(үш нақты санды енгіз:');

readln(x, y, z);

if x < 0 then x:= x*x*x*x else x:=x*x*x;

if y < 0 then y:= y*y*y*y else y:=y*y*y;

if z < 0 then z:= z*z*z*z else z:=z*z*z;

writeln(x:7:2, y:7:2, z:7:2)

end.

"Циклдік Оператор "

І. Шартты алдын ала тексеру.

While <шарт> do

Begin

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

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

...

<n оператор;>

End;

ІІ. Шартты соңынан тексеру.

Repeat

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

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

...

<n оператор;>

Until <шарт>;

ІІІ. Арифметикалық цикл немесе қайталану саны белгілі цикл.

For <айнымалы>:=min to max do <оператор>;

For <айнымалы>:=max downto min do <оператор>;

Program Pr1;

Var n, x: integer;

Begin

Write (‘элемент санын енгіз: ’); Readln (n);

While x <=n do

Begin

Writeln (x*x+x+17);

X:=x+1;

End;

End.

Program Pr2;

Var n, x: integer;

Begin

Write (‘элемент санын енгіз: ’); Readln (n);

Repeat

Writeln (x*x+x+17);

X:=x+1;

Until x>n;

End;

Program Pr3;

Var n, x: integer;

Begin

Write (‘элемент санын енгіз: ’); Readln (n);

For x:=0 to n do

Writeln (x*x+x+17);

End.


«Жиымдар»

Жиымбұл бір атаумен белігілеп, біріктірілген біртекті реттелген элементер жиыны.

Ерекшеліктері:

    • барлық элементтерінің типі бірдей болады

    • жиымның бір атауы болады

    • жадыда барлық элементтері бірінен соң бірі реттеліп орналасады

Мысалдар:

    • сыныптағы оқушылар тізімі

    • үйдегі пәтерлер

    • қаладағы мектептер

    • Бір жылдағы ауа-райының температурасы туралы мәлімет

Неге ұйымдастырамыз?

  • жиымның атын анықтау үшін

  • жиымның типін анықтау үшін

  • элементтерінің санын анықтау үшін

  • жадыдан орын бөлу үшін

Бүтін сандардың жиымы:

var A : array[ 1 .. 5 ] of integer ;


Констант арқылы өлшемін көрсету:

const N=5;

var A: array[1.. ] of integer;

"1": Перентақта арқылы 5 элементтен тұратын элементерді енгізіп, жиымның барлық элементердің орташа арифметикалық мәнін табыңдар.

Мысалы:

бес сан енгізіңдер:

4 15 3 10 14

орташа арифметикалық мәні: 9.200

"2": Пернетақтадан 5 элемент енгізіп, жиымның ең кіші элементін табыңдар.

Мысалы:

бес сан енгізіңдер :

4 15 3 10 14

Кіші мәні: 3

Символдық жиым жұмыстың қиындығы қандай?

Символдық жиым:

var B: array[1..N] of char;

  • Әрбір символ – бөлек нысан;

  • Сипаттау бөлімінде көрсетілген массивтің ұзындығы жиымның N –ға тең

Не қажет:

  • Символдар тізбегін біртұтас түрде қарастырылуы

  • Жолдың ұзындығы айнымалы болуы


Символьдық жолдар

var s: string;

а

л

е

м

!

¤

¤

¤

¤

¤

¤

¤

Жолдың ұзындығы:

n := length ( s );

Мысалы: Символдық жолды пернетақтадан енгізіп, барлық "а" әріпін "б" әріпіне алмастыру керек.

program qq;

var s: string;

i: integer;

begin

writeln(‘жолды енгізіңдер');

readln(s);

for i:=1 to Length(s) do

if s[i] = 'а' then s[i] := 'б';

writeln(s);

end.

Есеп: Атын, әкесінің атын және фамилиясын енгізу. «фамилия-инициалы» форматына түрлендіру.

Мысал:

Атынды, әкеңнің атын және фамилияңды енгіз:

Алуа Данияровна Қуанова

Нәтиже:

Қуанова А.Д.

Алгоритм:

    • Бірінші бос орынды тауып, атын бөліп алу

    • Негізгі жолдан атты бос орынмен бірге өшіру

    • Бірінші бос орынды тауып алып әкесінің атын бөліп алу

    • Әкесінің атын өшіріп тастау

    • Фамилияны бірінші әріптермен біріктіру…


Мысал:

program qq;

var s, name, otch: string;

n: integer;

begin

writeln('Атыңды, әкеннің атын және тегіңді енгіз');

readln(s);

n := Pos(' ', s);

name := Copy(s, 1, n-1); { атты ерекшелеу }

Delete(s, 1, n);

n := Pos(' ', s);

otch := Copy(s, 1, n-1); {әкесінің атын қиып алу}

Delete(s, 1, n); {фамилия қалады }

s := s + ' ' + name[1] + '.' + otch[1] + '.';

writeln(s);

end.


Тапсырмалар:

1. Массивтің теріс элементтерінің санын және оң элементтерінің көбейтіндісін табу керек.

Program _8;

var a:array[1..100,1..100] of integer;

j,i,k,p,n,s,m:integer;

begin

write('Жол санын еңгіз= '); readln(n);

write('қатар санын еңгіз= '); readln(m);

randomize;

for i:=1 to n do begin

for j:=1 to m do begin

a[i,j]:=random(9)+1;

write(a[i,j],' ');

end; writeln;end;

p:=1;k:=0;

for i:=1 to n do

for j:=1 to m do

if a[i,j]<0 then k:=k+1

else p:=p*a[i,j];

write ('k=',k,' p=',p);

readkey; end.

2. A(5,5) массиві берілген. Матрицаның бас диагоналінің астындағы бөлігін мына түрде өзгерту керек: егер матрицаның осы бөліктегі A[i,j] элементі A[j,i] элементінен үлкен болса, онда осы екі элементтің қосындысының жартысына тең болатындай A[i,j] элементіне жаңа мән бер.

Program_;

type m=array[1..100,1..100] of real;

var A:m;procedure vvod(m,n:integer;var x:m);

var i,j: integer;

begin

writeln('массив элементтерін енгіз');

for i:=1 to m do

for j:=1 to n do

read(x[i,j]);

end;procedure mat(m,n:integer;var x:m);

var i,j: integer; t:real;

begin

writeln('өзгертілген A[i,j] матрицасы мына түрде болады');

for i:=1 to m do

for j:=1 to n do

if i>j then if x[i,j] > x[j,i] then x[i,j]:=(x[i,j]+x[j,i])/2;

for i:=1 to m do

for j:=1 to n do

write( A[i,j]:2:1,' '); end;

begin

vvod(5,5,A);

mat(5,5,A);

end.

3. Матрицаның басты диоганалінің элементтерінің көбейтіндісін және оның санын есептеу керек.

Program _16;

uses crt;

var a:array[1..100,1..100] of integer;

p,n,k,m:integer;

i,j:longint;

begin

readln(n);

for i:=1 to n do

begin

for j:=1 to n do begin

a[i,j]:=random(9)+1;

write(a[i,j]:n); end;

writeln; end;

writeln;

p:=1; m:=n;

for i:=1 to n-1 do begin

for j:=1 to m-1 do begin

p:=p*a[i,j];

k:=k+1; end;

m:=m-1; end;

writeln('p=',p,' k=',k);

readkey;

end.

3. Жиымның жұп элементтерінің қосындысын және ондай элементердің санын табыңдар.

Program Ex_4;

Var A : Array[1..100] Of Integer;

N, i, S, K : Integer;

begin

Write('Жиым элементерінің саны? '); ReadLn(N);

For I := 1 To N Do

Begin

Write(' A[', I, '] '); ReadLn(A[I]);

End;

s:=0; k:=0;

For I := 1 To N do

if a[i] mod 2 = 0 then begin s:=s+a[i]; k:=k+1 end;

writeln('Қосынды ', s, '; саны ', k)

end.

Бекіту: Жоғарыдағы тапсырмаларда осы үш тақырыптағы операторлар түгел қолданылады. Практикалық жұмыстарды орындау.