Автор: Пользователь скрыл имя, 21 Ноября 2012 в 06:09, курсовая работа
Паскаль тілін 1973 жылы швейцар математигі Никлаус Вирт жасап шығарады да, атақты француз математигі, физигі, философы және алғашқы есептеу машинасы - арифмометрді /1641/ жасаған Блез Паскальдің құрметіне "Паскаль" деп ат қойды.
Паскаль тілі оқып үйренуге жеңіл, түрлі салалық информациямен жұмыс істеуде нәтижелі болғандықтан, дүние жүзінде көп тараған тілдердің бірі болып табылады.
Паскаль тілі:
· алгоритм құрылымын сақтап құрылған;
· жоғары деңгейлі программалау тілдерінің жақсы қасиеттерін жинақтаған;
· қазіргі замандағы көптеген программалау тілдерінің негізі болып саналады;
Сондықтан бұл тілдің нақты ЭВМ - нің мүмкіндігіне байланысты бірнеше түрлері бар.
Курстық жұмысымның тақырыбы Крамер әдісімен теңдеулер шешуге программа құру.
КІРІСПЕ 3
I. ЕСЕПТІҢ БЕРІЛУІ. КРАМЕР ФОРМУЛАЛАРЫ 4
II. ЕСЕПТІ ШЕШУДЕГІ ҚОЛДАНЫЛҒАН ПРОГРАММАЛАУ
ОРТАСЫ. ТУРБО ПАСКАЛЬ ПРОГРАММАЛАУ ТІЛІ. 8
2.1. Компьютерді Турбо Паскальда жұмыс істеуге даярлау 8
2.2. Паскаль тілінің негізгі элементтері 9
2.3. Бағыттаушы қызметші сөздер 10
2.4. Сипаттаушы қызметші сөздер 11
2.5. Стандартты функциялар 12
2.6. Паскаль тілінде программалау. Программа құрылымы. Қарапайым программ 13
2.7 Берілгендерді сипаттау 16
2.8 Сызықтық алгоритм 17
2.9. Шартты Оператор. Жай Шарт. 23
2.10 Құрама оператор 26
2.11 Құрама шарттар 27
ҚОРЫТЫНДЫ 30
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР 31
ҚОСЫМША 32
var x, y: real;
begin write(‘x=?’);
readln(x);
if x<1 then y:=sqr(x)+3
else y:=sin(x)+4;
write(‘ y’,y:6:3)
end.
2.2. мысал. Экранға екі санның үлкенін шығару керек.
program Esep–1;
var x, y: Integer;
begin
Writeln ('екі санды енгіз');
{ бос орын тастап екі бүтін сан енгіземіз}
readln (x,y);
If x>y then writeln (x)
{ егер х, у-тен үлкен болса, онда х-ті шығарамыз }
else writeln (y)
{ әйтпесе y – ті шығарамыз}
readln; end.
2.3-мысал. Клавиатурадан енгізілген сандар (0;5) интервалына жататындығын не жатпайтыныдығын анықтайтын программа жазайық.
program Esep–2;
var x: integer;
begin
writeln (‘x санын енгіз ‘);
readln (x);
if (x>0 and x <5)
then writeln (x, ’(0,5) – ге жатады ‘)
else writeln (x, ‘ (0,5) – ге жатады’)
end.
2.4-мысал. a*b-(a-b)*a/b өрнегінің мәнін 0.01 дәлдікпен студенттің есептегенін дұрыстығын тексеру керек.
program urnek;
a,b,c,t,z:real;
begin
writeln(‘ а мен b енгіз ’)
readln(a);
readln(b);
c:=a*b-(a-b)*a/b;
t:=round(c*100)/100;
write (‘0.01 дәлдікпен есептелген мән, студенттің есептегені=?’);
readln(z);
if z=t then write(‘жарайсың дұрыс!’);
else write (‘дұрыс емес!’);
end.
Мұндағы t - өрнек мәні 0.01 - ге дейінгі дәлдікпен меншіктелінетін айнымалы (мәнді есептеу мен дәлдіктеуді машина орындайды);
Z-студенттің 0.01 дәлдікпен дайындаған жауабы.
2.10 Құрама оператор
Кейде then, else қызметші сөздерінен соң бірнеше операторлар енгізілуі мүмкін. Паскальда осы сияқты бір серияда орындалатын операторлар тізбегі бір оператор түрінде қарастырылады да, оны құрама оператор деп атайды. Құрама оператор да Begin, END операторлық жақшаларына алынып жазылады және END -тен соң нүкте қойылады.
Мысалы:
begin x:=5.2; y:=3*x+7
write(‘y=”;y’)
end.
2.5-мысал ах2+вх +с=0 теңдеуінің нақты облыстан алынған түбірлерін табу керек.
Программа:
program kvi :
uses crt;
var a,в,с,d,х1,х2: real;
begin clrscr: write (‘а,в,с=’);
readen (а,в,с); d:=в*в-4*а*c
if d<0 then write (‘нақты облыста түбір жоқ’)
else begin
x1:= (-в+sqr(d))/(2*а);
x2:= (-в-sqr (d))/(2*a);
write (‘х1=’,х1:5:3,’ x2=’, x2:5:3)
end.
Программа then - нен соң екі оператор енгізілгендіктен, олар begin-end операторлық жақшаларына алынады.
2.11 Құрама шарттар
2.6 мысал. I облыста М(х,у) нүктесі радиусы 5-ке тең дөңгелекте жататынын анықтайтын тексері керек.
Программа:
Program D1 ;
uses crt ;
var x, y: real;
begin clrscr;
writeln (‘x, y=?’); readln(x,y);
if (x*x+y*y <=25) and (x>=0)
and (y>=0) then write (‘ true’)
else write (‘false’)
end.
2.7 мысал. Функцияның мәндерін есептеу алгоритмін жазыңдар.
y= ó=4, õ<3, ó=3
program мән; uses crt;
var x,y: real;
begin clrscr;
read(x);
if x<2.0
then y:=x*x
else if x<3.0
then y:=4.0
else y:=2*(x-1);
write (¢y=¢,y)
end .
2.8 мысал. Қайсыбір айнымалы литерлік шама латын алфавитінің әрпі екендігін анықтайтын программа жазыңдар.
Программа:
program латын;
var sim: char;
begin
read(sim); (*Char типі реттелгендіктен, шарт былай жазылады*)
if (Sim >=¢A¢) and (Sim<=¢Z¢)
then
write (‘Sim’,Sim,’латын алфавитінің әрпі’ )
else write (¢символ латын алфатиінің әрпі емес¢)
end.
Есептер шығару барысында екі емес, көптеген варианттарды қарастыруға тура келеді. Мұны бірнеше шартты операторды пайдалану арқылы іске асырылады. Мұндай жағдайда then және else қызметші сөздерінен кейін жаңа шартты оператор жазылады.
2.9- мысал. а, в,с бүтін сандары берілген. Егер а£в£с болса, онда барлық сандарды олардың квадраттарымен, егер а>в>с болса, онда олардың әрқайсысының ішіндегі үлкенімен алмастырыңдар, қарсы жағдайда әрқайсысының таңбасын өзертіңіз.
Шешуі:
Есептердің шартын төмендегідей етіп жазып көрейік:
егер а£в£с болса а:= а2, в:=в2, с:=с2,
егер а>в>с болса, онда а:=с, в:=с;
басқа жағдайда а:=-а, в:= в, с:= -с
program Esep;
var а,в,с: integer;
begin
writeln (‘а,в, с сандарын енгіз);
readln (a,в,с);
if (a£в) and (в£с)
then begin
a:= sqr (a); в: = sqr (в); c: = sqr (c)
end.
else if (а>в) and (в>c)
then begin a: =c; в:=c end;
else begin a:=-a; в:=- в; c:=-c end;
writeln ( a:3; в:3; c:3) ;
readln
end.
Ескерту. Бірінің ішінде бірі орналастырылған операторлар қысқартылған шартты оператор болса ( біздің қарастырылған мысалдағыдай), онда шартты операторлардың арасындағы шекара туралы түсінбестік тууы мүмкін. Мұндай жағдайда қызметші сөз ең else жақын if -ке тиісті деп есептеу керек.
ҚОРЫТЫНДЫ
Паскаль тілінде программа жазғанда мынадай мәселелерді ескеру керек:
1. Басқа тілдердегідей Паскаль тілінде де, "қызметші" сөздер бар. Мысалы: begin, end т.б. Олардың атын басқа мақсаттарға пайдалануға болмайды. Оларды басқа символдарды
Паскаль тілінде программа жазғанда мынадай мәселелерді ескеру керек:
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР
ҚОСЫМША
uses crt;
var i,j,k,l,m,n,h,g1,g2:integer;
s,x1,x2,x3,d:real;
a:array[1..9,1..10] of integer;
x:array[1..9] of real;
begin
clrscr;
l:=0; h:=0;
writeln('****************
writeln('*****Vvedite razmer massiva*****');
write('n= ');
readln(n);
write('m= ');
readln(m);
writeln('*****Vvedite massiv *****');
for i:=1 to n do
for j:=1 to m do begin
write('a[',i,',',j,']= ');
readln(a[i,j]);
end;
clrscr;
writeln('*****Dano massiv*****');
for i:=1 to n do begin
for j:=1 to m do
write(a[i,j]:4);
writeln;
end;
writeln('*********************
writeln;
for i:=1 to n-1 do begin
l:=l+1;h:=h+1; g1:=-a[l,h];
for j:=h to n-1 do begin
g2:=a[j+1,i];
for k:=l to m do
a[j+1,k]:=a[i,k]*g2+a[j+1,k]*
end;
end;
{for i:=1 to n do begin
for j:=1 to m do
write(a[i,j]:4);
writeln;
end;}
writeln;
writeln;
writeln;
x[m-1]:=a[n,m]/a[n,n];
for i:=n-1 downto 1 do begin
s:=0;
for j:=i+1 to n do
s:=s+a[i,j]*x[j];
x[i]:=(a[i,m]-s)/a[i,i];
end;
for i:= 1 to n do
writeln('x[',i,']= ',x[i]:4:2);
readln;
end.
Информация о работе Сызықық есептеу жүйесін крамер әдісімен шешу