- Учителю
- Паскаль программалау тілі тарауы бойынша есептер шығару
Паскаль программалау тілі тарауы бойынша есептер шығару
А.Тайманов атындағы №34 мектеп-гимназиясы
Облыстық жас мамандар мектебі
Тақырыбы: «Паскаль программалау тілі тарауы бойынша есептер шығару»
Өткізген: Мурзагалиева Г.Ш.
Орал қаласы
Сабақтың тақырыбы: Паскаль программалау тілі тарауы бойынша есептер шығару.
Сабақтың мақсаты: Оқушылардың Паскаль программалау тілі тарауы бойынша білімдерін нақтылау, бекітіу;
Көрнекілігі: Презентация. Топшамалар.
Сабақ барысы:
-
ұйымдастыру;
-
үй тапсырмасын тексеру; тарау бойынша тест. 5 сұрақ. Компьютерде орындау.
-
Еске түсіру.
Паскаль программалау тілінде программа құрылымы:
program ex_1; (аты)
var x, y, z: real; (сипаттау бөлімі)
begin
(операторлар бөлімі)
end.
«Шартты оператор»
Тармақталу алгоритмін ұйымдастыру үшін шартты оператор қолданылады: Бұл оператордың жазылуы:
if <шарт> then <1 оператор> else <2 оператор> ;
қысқарған түрі:
if <шарт> then <1 оператор> ;
Мысалы:
1.
есебін шешу программасын жазайық.
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.
Бекіту: Жоғарыдағы тапсырмаларда осы үш тақырыптағы операторлар түгел қолданылады. Практикалық жұмыстарды орындау.