Сызықық есептеу жүйесін крамер әдісімен шешу

Автор: Пользователь скрыл имя, 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

Работа содержит 1 файл

крамер.doc

— 303.50 Кб (Скачать)

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 мысал. Функцияның   мәндерін  есептеу   алгоритмін жазыңдар.

                                         õ<2 ,ó=õ2


                               y=   ó=4, õ<3, ó=3

                                      õ>3, ó=2(õ-1)

 

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  т.б.  Олардың   атын   басқа   мақсаттарға   пайдалануға болмайды. Оларды   басқа символдарды 

Паскаль тілінде программа  жазғанда мынадай мәселелерді ескеру керек:

  1. Басқа тілдердегідей Паскаль тілінде де "қызметші сөздер "  бар. Мысалы: begin, end т.б. Олардың атын басқа мақсаттарға пайдалануға болмайды. Оларды басқа символдардан ажырату үшін ерекше әріптермен жазады, ал жазбаша программа құрған кезде олардың астын сызып отырады.
  2. Паскальдың кейбір варианттарында бас әріптер мен кіші әріптер өзара ажыратылмайды. Мысалы: А, а әріптері бірдей таңба болып есептеледі.
  3. Программаның көпшілігінде айнымалылар, константалар, процедуралар бір-бірімен бірінші алты немесе сегіз символ арқылы ажыратылады. Сондықтан ұзындығы 6-8 символдан көп айнымалылардың, константалардың, процедуралардың қажеті шамалы.

 

 

 

 

 

 

 

 

 

 

 

 

 

ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР

 

  1. Лапчик М.М. «Вычисления. Алгоритмизация. Программирование» Москва «Просвещение»  1988г.
  2. Гусева А.Н.  « Учимся информатике: задачи и методы их решения» Диалог - МИФИ 1988 г.
  3. И.А. Бабушкин, Н.А. Бушмелева, С.М. Окулов, С.Ю. Черных «Практикум по Турбо Паскалю» Выпуск 1,2,3  № 44,46,48 1997 г.
  4. Н. Культин «Турбо Паскаль для начинающих» БХВ –      Петербург 2000 г.
  5. С.А. Абрамов, Г.Г. Гнездилова, Е.Н. Капустина, М.И. Селюн «Задачи по программированию» Москва «Наука» 1988 г.
  6. Н. Культин «С++ в примерах и задачах »  БХВ –      Петербург 2000 г.

 

 

 

 

 

 

 

 

ҚОСЫМША

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('****************Kramer****************');

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]*g1;

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.

 

 

 




Информация о работе Сызықық есептеу жүйесін крамер әдісімен шешу