русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

For параметрі бойынша цикл


Дата добавления: 2015-06-12; просмотров: 1019; Нарушение авторских прав


Бұл оператор алдын ала қанша рет орындау керек екені белгілі болса ғана қолданылады. Параметр әрбір қадамда бір санына автоматты түрде не өсіп не кеміп отырады. Форматы:

параметр for := өрнек_1 to өрнек_2 do операторпараметр for := өрнек _2 downto өрнек _1 do оператор

Мыса 3. Программа экранға 10 –нан 1-ге дейінгі сандарды беріп олардың қосындысын есептейді:

var i, sum : integer;begin sum := 0; for i := 10 downto 1 do begin writeln(i); inc(sum, i) end; writeln('Сандар қосындысы: ', sum);end.

Бұл циклда i айнымалсы автоматты түрде 1-санына кемиді.

Мысал 4. Программа экранға'a' дан'z'символдарды шығарады:

var ch : char;begin for ch := 'a' to 'z' do write(ch:2)end.

Бұнда символдық түрдегі цикла счетчигі chкезек бойынша 'a' дан'z'символдарды қабылдайды.

ЕСКЕРТУ: Егер цикл денесінде бірден көп операторды орындау керек болса, оларды қызметші сөздер begin және end ортасына орналастыру керек.

 

Басқаруды беру процедуралары.

Паскалда операторлардың орындалуын өзгертетін бірнеше стандартты процедуралар бар:

· break—ішкі жазудағы циклдің орындалуын тоқтатады;

· continue— циклдің келесі итерациясына өтуді орындайды;

· exit— ішкі жазылған программаның немесе ішкі программаның орындалуын тоқтатады;

· halt— программа орындалуын тоқтатады.

· Goto-бару операторы.

 

 

Мысал 5. Тейлор қатарының формуласын қолданып ε дәлдікпенСh x (гиперболалық косинус) функциясының мәнін есептеу программасын құр:

Белгілеулер енгіземіз Cn+1 = Cn *T, мұндағы T— көбейткіш. Т есептейміз:



program ch;const MaxIter = 500; {итерацияның максималдық саны}var x, eps : double; { аргумент және дәлдік} c, y : double; {қатар мүшесі және оның қосындысы} n : integer; { қатар мүшесі номері} done : boolean; {дәлдіктің жету белгісі}begin writeln('Аргументті және дәлдікті енгіз:'); readln(x, eps); done := true; c := 1; y := c; {қатардың бірінші мүшесі және алғашқы қосынды} n := 0; while abs(c) > eps do begin c := c * sqr(x) /(2 * n + 1)/(2 * n + 2); {қатардың келесі мүшесі} y := y + c; { қатар мүшесін қосындыға қосу} inc(n); if n > MaxIter then begin {циклдің авариялық жағдайдан шығуы } writeln('Қатар жинақталады!'); done := false; break end end; if done then writeln('Аргумент ', x, ' функция мәні: ', y, #13#10, eps 'дәлдікпен есептеу', ', n, ' итерация'); readln;end.

CИМВОЛДЫҚ МӘЛІМЕТТЕРМЕН ЖҰМЫС ІСТЕУ ТӘСІЛІ

Клавиатура және дисплей енгізу мен шығарудың стандартты құрылғылары болып табылады да, оларды пайдалану үшін сәйкес INPUT және OUTPUT қызмет сөздерін пайдаланады. Сандық информацияларды енгізгенде және шығарғанда сәйкес READ (рид) және WRITE (райд) операторының көмегімен стандартты процедураларды / INPUT, OUTPUT/ пайдаланған тәрізді символдық информацияларда да сол операторлар және сол процедуралар пайдаланылады. Символдық берілгендерді өңдеу, символдық (белгілік, литерлік) типті беретін CHAR / ағылшынның CHARACTER – символ деген сөзінің қысқартылып алынған/ қызмет сөзі арқылы жүзеге асырылады. CHAR типтегі айнымалының мәні, сол машинада пайданыла алатын кез-келген жеке символдар, белгілер бола алады. Егер программада мынадай бейнелеу болса: А, В: CHAR; онда меншіктеу операторы былай болуы қажет: А:=’к’ , В: :=А, В:= ’5 ’ , А:= ‘*’ және т.с.с. Мұндағы ‘’символдық мән екенін білдіреді. Символдық мән дисплейден немесе принтер арқы

лы

Дәріс №8

Массивтер. Бірөлшемді массивтермен жұмыс

Массив- бір түрлі мәліметтердің белгілі бір тобынан тұратын жүйелі тип. Элементтердің типі массивтің базалық типі деп аталады. Паскальда массив құрылымдық типтегі айнымалы ретінде қарастырылады. Массивке тұтасынан бір ат беріледі. Массивтің элементтері индекспен көрсетіледі. Индекс элементтердің массивтегі орнын көрсетеді.

Айнымалылар тарауында массивті сипаттау форматы:

Var <массив аты>:array[<индекстің типі>] of <базалық тип(элемент типі )>

Жалпыжазылутүрі

type

Массив типінің атаы = array [индекстер саны] of элемент типі;

var

массив аты: массив типінің аты;

Мысалы

Type

GRUP = array [1..8] of integer; { Массив типінің аты, 8 элементті массив, бүтін сан

Var A:GRUP { Массив аты, массив типінің аты

Мұндағы:

• Массив типінің атауы - массив элементтерінің жиынын сипаттайды;

• Индекс типі - тізбектелген немесе шектелген типтерді көрсету;

• Элемент типі - массив элементтерінің типін көрсету.

Массивтің әрбір элементімен жұмыс істеу үшін, массив аты және индексі берілуі тиіс. Массив индексі тік жақшаға алынып жазылады, сол себепті масивтің кез-келген элементіне қатынас алуға болады. Яғни берілген масивтің бірінші элементіне қатынас алу үшін массив атауынан кейін бірінші индексті көрсету қажет: А[1]; массивтің екінші элементіне қатынас алу үшін: А[2];

2-ші мысалэлементтері

 

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
-2 -3 -7
Массивтің бірінші элементі Массивтің екінші элементі Массивтің үшінші элементі Массивтің төртінші элементі Массивтің бесінші элементі Массивтің алтыншы элементі Массивтің жетінші элементі Массивтің сегізінші элементі

 

Массивтің кез-келген бір элементіне нәтиже беру үшін, меншіктеу операторы қолданылады:

Массив аты [индексі] := нәтиже

Мысалы:

а) А массивінің бірінші элементіне - 12 санын меншіктеу үшін: А[1]:=12;

б) А массивінің екінші элемент нәтижесін экранға шығару үшін: writeln (A[2]); (экранға 11 шығады)

в) А массивінің бірінші элементіне нәтижені пернелер тақтасы көмегімен енгізу үшін: readln (A[1]);

г) А массивінің бірінші және үшінші элементтерінің қосындысын Sum айнымалысына меншіктеу үшін: Sum:=A[1]+А[3]; (нәтижесінде Sum айнымалысына 17 саны меншіктеледі).

Массивтің индексінің мәні типтер немесе айнымалылар бөлімінде сипатталған шектеуден аспауы тиіс. Егер массив индексінің мәні сипатталған шектеуден асып кетсе онда, синтаксистік қате тіркеліп, экранда «Index type is not compatible with declaration» деген сөз тіркестері шығарылады.

Массивтер қолданылатын программаларда«{R+}» директивасын жазу арқылы массивтің шектеулерін тексеруге болады. Егер программада {R+} директивасы беріліп, массив индексі шектеуден асып кетсе, онда экранға "Range check error" сөз тіркесі шығарылады.

Бір өлшемді массивтер

Сызықтық (бірөлшемді) массив - элементтері бір индекспен анықталатын массив. Бірөлшемді массивтерде сызықтық кестелердің мәндері сақталады. Бірөлшемді массивтерді сипаттау мысалдары:

Var B:array [0..5]of real;

R:array[1..4] of char;

N:array[‘A’..’Z’]of integer;

• Массивті енгізу және шығару оның элементтерін біртіндеп енгізу және шығару арқылы орындалады. Әдетте бұл үшін параметрлі циклды қолданады. Массивтерді программада қолдану үшін Turbo Pascal программалау тілінде оларды бірден var бөлімінде сипаттау жолы карастырылған.

Жалпы жазылу түрі:

Var

Массив атауы : array {индекс типі] of элемент типі;

Мысалы, бөлшек сандарға арналған он сегіз элементтен тұратын GR массивін сипаттау:

Var

GR : array [1..18] of real;

Берілген тоғыз элементтен тұратын А массивіне бөлшек сандар енгізіп, оларды дисплей бетіне ретімен шығару программасын қарастырылған:

{$R+}

PROGRAM MASSIV; {Программа атауы}

Туре {Типтерді сипаттау бөлімі}

Mas = array [1 .. 9] of real;{Шарт бойынша массив muni}

Var {айнымалыларды сипаттау бөлімі}

A: Mas; { Mas munmi A - массив}

I: integer; {циклді басқару айнымалысы}

BEGIN {негізгі программа басы}

WRITELN('A - массивінің 9 элементін енгізіңіз:');

FOR l:=1 TO 9 DO {I - бойынша цикл}

READ(A[I]); {А[І] массивіне нақты сандарды енгізу операторы}

FOR l:=1 TO 9 DO {I - бойынша цикл}

WRITELN А[М,']=',А[І]);

{А[І] массивінің элементін дисплейге шығару операторы}

END. {Негізгі программа соңы}

Бір өлшемді массивтерді өңдеу мысалдары.

Кездейсоқ сан арқылы массив элементтерін экранға шығару және барлық элементтерінің сандарының қосындысын табу керек (pr17).

program pr17;

const n1=100; { массивтің максимальды өлшемі}

type mas = array[1..n1] of integer;

var a:mas;

i, {массив элементтерінің индексі}

n,s:integer;

begin

writeln(' Массив элементтерінің санын жаз:');

read(n);

{ Кездейсоқ сан арқылы массивті өңдеу}

randomize;{ Кездейсоқ сан датчигін инициализациялау}

for i:=1 to n do

a[i]:=random(10);

writeln('Алынған массив');

for i:=1 to n do

write (a[i]:5);

writeln;

s:=0; { Қосындыны табу }

for i:=1 to n do

s:=s+a[i];

writeln('s=',s);

end.

Мысал pr18. Массив элементтерінің ең үлкенін,оң элементтердің қосындысын табу керек және үлкен элементін оң элементтердің қосындысымен ауыстыру керек.

program pr18;

const n1=100; { массивтің ең үлкен өлшемі}

type

mas = array[1..n1] of integer;

var

a:mas;

i, { массив элементтерінің индексі}

n,s,

imax:integer;{ең үлкен элемент индексі}

begin

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

read(n);

{Массивті енгізу}

for i:=1 to n do

begin

write (' ',i,'-ші элементті шығар:');

read(a[i])

end;

s:=0;

imax:=1;{бірінші элементті ең үлкені деп тұжырымдаймыз}

for i:=1 to n do

begin

{егер элемент оң болса, онда оны қосындыға қосамыз}

if a[i]>0 then s:=s+a[i];

{егер кезекті элемент алдыңғыдан үлкен болса оның индексін ойда сақтаймыз}

if a[imax]<a[i] then imax:=i;

end;

writeln('массивтің ең үлкен элементі =',a[imax]);

a[imax]:=s;{үлкен элементті қосындымен ауыстыру }

writeln('s=',s);

writeln('Өңделген массив:');

for i:=1 to n do

writeln (a[i]);

end.

 

Екі өлшемді массивтер

Екі өлшемді массивтер математика түсінігінде матрица. Турбо-Паскаль тілінде екі өлшемді массив дегеніміз элементтері бір өлшемді массивтер болатын массив:

b: array[1..n] of array[1..m] of integer; немесе:

b: array[1..n,1..m] of integer; жазуға болады. Көбінесе екінші жазу қолданылады.

Бұндағы n – матрицаның жолдар саны, m – бағандар саны. Негізінен жол номері ретінде i символы, ал баған нөмері ретінде – j символы қолданылады. Онда жоғарыда келтірілген массив элементтері мына атпен беріледі b[i,j].

Екі өлшемді массивтер және элементтерінің жазылуы мысалы:

type

massiv1=array[1..n] of real;

massiv2=array[1..5,1..6] of integer;

var

f:array[1..10] of massiv1;

mas:array[0..10,1..30] of char;

b:massiv2;

asd:array[1..20,1..10] of byte;

begin

..............

f[i,j]:=13.13;

mas[0,1]:='a';

b[5,6]:=7;

asd[i,8]:=0;

...............



<== предыдущая лекция | следующая лекция ==>
While(уайл) шарты бойынша цикл. | Мысал 1.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.224 сек.