Мәлімдемені орындау нәтижесі болып табылады. Шартты оператор? Операторды пайдалану шектеулері

Алдыңғы абзацта Паскаль тіліндегі программаның құрылымымен таныстық, мәліметтерді сипаттауды үйрендік, тағайындау операторын қарастырдық. Бұл деректерді түрлендіру бағдарламасын жазу үшін жеткілікті. Бірақ бұл өзгерістердің нәтижесі бізге көрінбейді.

Деректерді шығару үшін жедел жадыМонитор экранында жазу шығару операторы қолданылады:

Мұнда жақша ішінде шығыс тізімі орналастырылған - мәндері басып шығарылатын өрнектер тізімі. Бұл айнымалылар мен тұрақтыларды қамтитын сандық, символдық және логикалық өрнектер болуы мүмкін.

Апострофтарға алынған символдардың ерікті жиыны жол тұрақтысы болып саналады. Жол тұрақтысы пернетақтада терілген кез келген символдарды қамтуы мүмкін.

Мысал. write ("s=" , s) операторы келесідей орындалады:

  1. Экранда апострофпен алынған белгілер көрсетіледі: s=
  2. Экранда s деп аталатын жедел жад ұяшығында сақталған айнымалының мәні көрсетіледі.

Егер s айнымалысының мәні 15 болса және ол бүтін типті болса, онда экранда: s=15 көрсетіледі.

Егер s айнымалысының мәні 15 болса, бірақ ол нақты типті болса, онда экранда мыналар пайда болады: s=l.5E+01.

Шығару операторы орындалғанда, шығыс тізімінің барлық элементтері бірден бірінен кейін басып шығарылады. Осылайша, жазу (1, 20, 300) операторының нәтижесінде экранда 120300 сандар тізбегі көрсетіледі, оны біз үш бөлек сандық тұрақты ретінде емес, 120300 саны ретінде қабылдаймыз. Шығарылатын деректерді қабылдау үшін әртүрлі жолдармен қол жетімді ете аласыз:

Шығару пішіміекі нүктеден кейін көрсетілген бүтін сан, ол экранда көрсетілген мән қанша орын алу керектігін анықтайды. Егер санда экранда ол үшін сақталған орындардан аз сандар болса, бос орындар санның сол жағындағы бос орындармен толықтырылады. Қос нүктеден кейін шығыс пішімінде көрсетілген сан қажеттіден аз болса, ол автоматты түрде талап етілетін минимумға дейін көбейтіледі.

Нақты санды бекітілген нүкте пішімінде шығару үшін әрбір өрнек үшін шығыс тізімінде екі параметр көрсетіледі:

  1. нөмірге бөлінген лауазымдардың жалпы саны;
  2. санның бөлшек бөлігіндегі позициялар саны.

Жаңа жазу операторы орындалғанда, шығару сол жолда жалғасады. Жаңа жолға өту үшін writeln операторын пайдаланыңыз. Жазу және жазу операторларының арасында басқа айырмашылықтар жоқ.

4.2.2. Паскаль тіліндегі алғашқы программа

Жоғарыда қарастырылған операторларды пайдалана отырып, біз радиусы 5,4 см шеңбердің шеңбері мен ауданын есептейтін бағдарлама жасаймыз.

Бұл мәселедегі бастапқы деректер радиус: r - 5,4 см.Бағдарламаның нәтижесі C - шеңбер және S - шеңбердің ауданы мәндері болуы керек. C, S және r нақты типті шамалар.

Бастапқы деректер мен нәтижелер математика курсынан белгілі қатынастармен байланысты: C = 2πr, S = πr +. Осы формулалар арқылы есептеулерді орындайтын бағдарлама келесідей болады:

Бұл бағдарлама дұрыс және мәселені шешеді. Оны іске қосқан кезде сіз келесі нәтиже аласыз:

Дегенмен, біз құрастырған бағдарламаның айтарлықтай кемшілігі бар: ол бір радиус мәні (5,4 см) үшін шеңбердің шеңбері мен ауданын табады.

Басқа радиус мәні үшін шеңбердің шеңбері мен ауданын есептеу үшін бағдарлама мәтініне тікелей өзгертулер енгізу керек, атап айтқанда тағайындау операторын өзгерту. Қолданыстағы бағдарламаға өзгертулер енгізу, аз дегенде, әрқашан қолайлы бола бермейді (мысалы, бағдарлама үлкен болғанда және тағайындау операторлары көп болғанда). Төменде бағдарлама мәтінін өзгертпей, бағдарлама жұмыс істеп тұрған кезде бастапқы мәліметтерді енгізуге мүмкіндік беретін оператормен танысасыз.

4.2.3. Пернетақтадан енгізу

ЖЖҚ-ға айнымалы мәндерді енгізу үшін оқуды енгізу операторын пайдаланыңыз:

Оқу операторы орындалғанда, компьютер деректерді күту режиміне өтеді: пайдаланушы пернетақтадан деректерді енгізіп, Enter пернесін басу керек. Сандық түрдегі айнымалылар үшін бірнеше мәндерді бос орындар немесе үтірлер арқылы бөлуге болады. Таңбалардың айнымалы мәндерін енгізу кезінде бос орындар мен үтірлер таңбалар ретінде қарастырылады, сондықтан оларды енгізу мүмкін емес.

Пайдаланушы енгізген бірінші айнымалы мән аты енгізу тізімінде бірінші орналасқан жад орнына орналастырылады және т.б. Сондықтан кіріс мәндерінің түрлері (енгізу ағыны) айнымалыда көрсетілген айнымалылар түрлеріне сәйкес келуі керек сипаттама бөлімі.

Мысал. Болсын

var i, j: бүтін; x: нақты; a:char;

i, j, x айнымалыларын және 1, 0, 2.5 және «A» мәндерін тағайындайық. Ол үшін read (i, j, x, a) операторын қолданамыз және келесі жолдардың бірімен енгізу ағынын ұйымдастырамыз:

Мұнда біз әртүрлі бөлгіштерді (бос орын, үтір) қолданып қана қоймай, кіріс ағынын бір, екі және төрт жол ретінде көрсеттік.

Сондай-ақ, readln операторын пернетақтадан деректерді енгізу үшін пайдалануға болады, оның оқу операторынан айырмашылығы тек орындалғаннан кейін курсор жаңа жолға ауысады.

n_1 бағдарламасын оған оқу операторы арқылы мәліметтер енгізуді ұйымдастыру арқылы жетілдірейік. Пайдаланушы бағдарламаның не үшін арналғанын білуі және компьютер одан қандай әрекет күтетінін түсінуі үшін біз сәйкесті көрсетеміз. мәтіндік хабарлар writeln операторының көмегімен:

Жақсартылған бағдарламаның нәтижесі:

Енді біздің бағдарламамыз кез келген r мәні үшін шеңбердің шеңбері мен ауданын есептей алады. Басқаша айтқанда, ол бір ғана мәселені емес, барлық кластағы есептерді шешеді. Сонымен қатар, бағдарлама бастапқы деректерді енгізуді және алынған нәтижелерді шығаруды анық және ыңғайлы түрде ұйымдастырады. Бұл ыңғайлы пайдаланушы интерфейсін қамтамасыз етеді.

Ең бастысы

ЖЖҚ-ға айнымалы мәндерді енгізу үшін read және readln енгізу операторлары қолданылады.

ЖЖҚ-дан монитор экранына мәліметтерді шығару үшін жазу және жазу шығару операторлары қолданылады.

Бастапқы деректерді енгізу және нәтижелерді шығару анық және ыңғайлы ұйымдастырылуы керек; бұл ыңғайлы пайдаланушы интерфейсін қамтамасыз етеді.

Сұрақтар мен тапсырмалар

  1. Бағдарлама жұмыс істеп тұрған кезде жиынтық айнымалының мәнін енгізуге мүмкіндік беретін операторды жазыңыз.
  2. i, y, k бүтін айнымалыларына сәйкесінше 10, 20 және 30 мәндерін беру керек. Енгізу ағынына сәйкес кіріс операторын жазыңыз:
      а) 20 10 30
      ә) 30 20 10
      в) 10 30 20
  3. Үшбұрыштың ауданын оның үш жағына қарай есептеу үшін қажетті айнымалыларды сипаттаңыз және қажетті кіріс деректерін беретін мәлімдеме жазыңыз.
  4. Өтінішті орындаудың нәтижесі қандай?
      а) жазу (а)
      ә) жазу (1 а «)
      в) жазу (1 a=1, a)
  5. Жазу (f) операторын орындағаннан кейін экранда келесі сан шыққан болса, f айнымалысы қандай типке жатады?
      а) 125
      b) 1,25E+2
  6. Нақты санды бекітілген нүкте пішімінде қалай көрсетуге болады?
  7. Екі санды енгізу және оларды кері ретпен шығару операторларын жазыңыз.
  8. Міне, бағдарламаның үзіндісі:

    оқу(a); оқу(b); c:=a+b; жазу(a, b); жазу (c)

    Енгізу және шығару мәлімдемелерінің санын азайту арқылы оны жеңілдетіңіз.

  9. Міне, бағдарламаның үзіндісі:

    a:=10; b:=a+l: a:=b-a; (а, б) жазу

    Компьютер экранында қандай сандар көрсетіледі?

  10. Тік төртбұрыштың ауданы мен периметрін оның екі қабырғасына қарай есептейтін программа жазыңыз.

Мәліметтерді шығару
ЖЖҚ-дан монитор экранына мәліметтерді шығару:
жазу
(<выражение 1> ,< выражение 2> , ...,< выражение N>)
шығыс тізімі
Өрнектер – символдық, сандық, логикалық,
айнымалылар мен тұрақтыларды қосады
Мысалы:
жазу("s=", s).
s=15 үшін экранда: s=15 көрсетіледі.
Экранда тырнақшадағы ақпарат көрсетіледі
өзгеріссіз

Шығаруды ұйымдастыру опциялары
Опция
шығаруды ұйымдастыру
Бөлгіштер жоқ
Қорытындылау операторы
жазу(1, 20, 300).
Нәтиже
120300
Бөлгіштерді қосу жазу (1, ',' , 20,
– үтірлер
’, ’, 300)
1, 20, 300
Бөлгіштерді қосу жазу (1, ‘ ‘, 2, ‘ ‘, 3)
– бос орындар
1 20 300

Шығару пішімі
Шығару пішімі позициялар санын орнатуға мүмкіндік береді
экранда көрсетілген мән орналасқан.
жазу(s:x:y)
x – нөмірге бөлінген позициялардың жалпы саны;
y – санның бөлшек бөлігіндегі позициялар саны.
Қорытындылау операторы
Орындау нәтижесі
оператор
write(‘s=‘, s:2:0);
s=15
write(‘s=‘, s:3:1);
s=15,0
write(‘s=‘, s:5:1);
s=
writeln
15.0
- жаңа жолдан шығару!

Бірінші бағдарлама
n_1 бағдарламасы;
const pi=3,14;
var r, c, s: нақты;
БАСТА
r:=5,4;
c:=2*pi*r;
Бағдарламаның нәтижесі:
s:=pi*r*r;
writeln("c="", c:6:4);
writeln("s=", s:6:4)
Турбо Паскаль
7.0 нұсқасы
Соңы.
c =33,9120
s =91,5624

Пернетақтадан енгізу
ЖЖҚ-ға айнымалы мәндерді енгізу:
оқу
(<имя переменной1>, …, <имя переменной N>)
енгізу тізімі
Оқу мәлімдемесін орындау:
1) компьютер деректерді күту режиміне өтеді:
2) пайдаланушы деректерді пернетақтадан енгізеді:
бірнеше айнымалы мәндер
сандық түрлерін енгізуге болады
бос орын немесе үтір арқылы бөлінген;
таңба айнымалыларын енгізу кезінде
Бос орындар мен үтірлерді қолдануға болмайды;
3) пайдаланушы Enter пернесін басады.

Пернетақтадан енгізу
!
Енгізілген мән түрлері сәйкес келуі керек
сипаттама бөлімінде көрсетілген айнымалы типтер
айнымалылар.
var i, j: integer;x: real;a: char;
оқу(i, j, x, a);
енгізу ағынын ұйымдастыру опциялары:
1 0 2,5 А 1,0 1
2.5, А 0
2.5
А
readln операторы орындалғаннан кейін курсор келесіге жылжиды
жаңа жол.

Жақсартылған бағдарлама
n_1 бағдарламасы;
const pi=3,14;
var r, c, s: нақты;
БАСТА
writeln («Шеңбердің шеңбері мен ауданын есептеу»);
write("Enter r>>");
readln(r);
c:=2*pi*r;
Бағдарламаның нәтижесі:
s:=pi*r*r;
writeln("c="", c:6:4);
Паскаль 7.0 нұсқасы
writeln("s=", s:6:4) Турбо
Шеңбердің шеңберін және ауданын есептеу
r >> 8.5 енгізіңіз
Соңы.
c =53,3800
s =226,8650

Ең бастысы
ЖЖҚ-ға айнымалы мәндерді енгізу үшін
read және readln енгізу операторлары қолданылады.
ЖЖҚ деректерін экранда көрсету үшін
Монитор жазу және жазу шығару операторларын пайдаланады.
Бастапқы деректерді енгізу және нәтижелерді шығару қажет
анық және ыңғайлы ұйымдастырылуы; бұл қамтамасыз етеді
пайдаланушы интерфейсінің ыңғайлылығы.

Сұрақтар мен тапсырмалар
1) Бағдарлама фрагменті берілген:
a:=10; b:=a+1: a:=b–a; (а, б) жазу
Компьютер экранында қандай сандар көрсетіледі?
2) Есептеуге қажетті айнымалыларды сипаттаңыз
үш қабырғасының бойымен үшбұрыштың ауданы, және
енгізуді қамтамасыз ететін мәлімдеме жазыңыз
қажетті бастапқы деректер.
3) Есепті орындаудың нәтижесі қандай?
а) жазу (а)
ә) жазу («а»)
в) жазу("a=", a)
4) i, j, k бүтін айнымалыларды тағайындау керек
тиісінше мәндер 10, 20 және 30.
Енгізуге сәйкес кіріс операторын жазыңыз
ағын:
а) 20 10 30
ә) 30 20 10
в) 10,30,20

Операторорындалатын әрекеттің толық сипаттамасын көрсететін тіл элементі болып табылады. Әрбір оператор программалау тілінің толық фразасы болып табылады және мәліметтерді өңдеудің кейбір толық аяқталған кезеңін анықтайды. Операторлар функционалдық сөздерді, деректерді, өрнектерді және басқа операторларды қамтуы мүмкін. IN Ағылшын тілі бұл тұжырымдама«ұсыныс» дегенді білдіретін «мәлімдеме» деген сөзбен белгіленеді.

Кез келген программалау тіліндегі әрбір оператордың өзіндік ерекшелігі бар синтаксисЖәне семантика. астында синтаксисоператор деп алфавит элементтері арқылы оның жазылуын анықтайтын ережелер жүйесі (грамматика) түсініледі. осы тілден, ол әртүрлі белгілермен қатар, мысалы, қызметтік сөздерді қамтиды. астында семантикаоператор оның мағынасын түсінеді, яғни. нақты оператордың жазбасына сәйкес келетін әрекеттер. Мысалы, жазу i:= i + 1синтаксистік дұрыс белгілеудің мысалы болып табылады тағайындау операторыПаскаль тілінде оның семантикасы бұл жағдайда келесідей: i айнымалысына сәйкес жады ұяшығының мәнін шығарып, оны біреуімен қосып, нәтижені сол жад ұяшығына жазыңыз.

Процедуралық программалау тілдерінің көпшілігінде операторлар жиыны дерлік бірдей және тағайындау операторынан, таңдау операторларынан, цикл операторларынан, процедураны шақыру операторынан және өту операторларынан тұрады. Кейде бос (әрекетсіз) және құрама операторлар да ажыратылады. Көптеген операторлар белгілі бір алгоритмдік құрылымдарды көрсету тәсілі болып табылады («қараңыз»). Алгоритмдік конструкциялар” ) бағдарламалау тілінде. Паскаль тілінің синтаксисін пайдаланып оператор топтарын толығырақ қарастырайық.

Тағайындау операторы

Тағайындау – компьютердің әрекеті, нәтижесінде айнымалы есептелген өрнектің мәнін алады (ол айнымалыға сәйкес жад ұяшығына орналастырылады). Бағдарламалау тілдерінде мұндай әрекетті сипаттау үшін бар тағайындау операторы.

Жалпы, тағайындау операторы былай жазылады:

<переменная> <знак присваивания> <выражение>

Мысалы, Паскаль тілінде таңбалар комбинациясы тағайындау белгісі ретінде қолданылады: =. Бірқатар басқа тілдерде бұл теңдік белгісі.

Тағайындау операторын орындау нәтижесі деректер күйінің өзгеруі болып табылады: басқа барлық айнымалылар айнымалы, тағайындау операторының сол жағында орналасқан, олардың мағынасын өзгертпейді, бірақ көрсетілген айнымалымәнін алады өрнектер, тағайындау операторының оң жағында пайда болады. Көп жағдайда бұл түрі талап етіледі өрнектертүріне сәйкес келеді айнымалы. Егер бұлай болмаса, онда оператор не синтаксистік тұрғыдан дұрыс емес деп есептеледі, не өрнек түрі айнымалының түріне түрлендіріледі («қараңыз»). Деректер түрлері” ).

Таңдау операторлары

Бұл операторлар басқаша аталады шартты мәлімдемелер. Шартты операторлар алгоритмдік тармақталу құрылымын қамтитын алгоритмдерді бағдарламалау үшін қолданылады.

Программалау тілдерінде шартты операторлардың бірнеше түрі бар. Толық шартты мәлімдеме толық тармақталудың алгоритмдік құрылымына сәйкес келеді:

Бағдарламалау тілінде сәйкес шартты оператор келесі формаға ие:

егер В содан кейін S1 басқа S2

Егер өрнек Б, шартты мәлімдемені орындаудың басында есептелетін, «true» мәніне ие болады, содан кейін оператор орындалады S1, әйтпесе - оператор S2. Операторлар S1Және S2қосынды болуы мүмкін.

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

егер В содан кейінС

Мұнда Блогикалық өрнек болып табылады және С- ерікті оператор. Оператор С B өрнегі ақиқат болса, орындалады.

Шартты оператор тек екі таңдау тармағын («иә» және «жоқ») жүзеге асырса, онда пайдаланылады нұсқа операторы (іс-оператор) көп тармақты құрылымды бағдарламалауға болады. Вариант операторы келесідей көрінеді:

іс Е ның

Орындалды осы операторсияқты: өрнектің мағынасы Еоператор жазбасында көрсетілген мәндер арасында іздеді V1, V2, …, Vn, ал егер мұндай мән табылса, онда сәйкес оператор орындалады S1, S2, …, Sn.

Әртүрлі бағдарламалау тілдерінде аталған операторлардың синтаксисі және тіпті семантикасы әртүрлі болуы мүмкін, бірақ мұндай конструкциялар арқылы бағдарламалаушыға берілетін мүмкіндіктер шамамен бірдей.

1-мысал.мақалада « Алгоритмдік конструкциялар”2 тармақталған конструкциялар арқылы жалпыланған квадрат теңдеуді шешу алгоритмін жазуға мысал келтірілді. Міне, сол алгоритмді орындайтын Паскаль тіліндегі бағдарламаның фрагменті:

егер a = 0 содан кейін

егер b = 0 содан кейін

c = 0 болса содан кейін writeln("x - кез келген")

басқа writeln («түбірлері жоқ»)

басқа writeln(-c/b)

басқаша басталады

D:= b*b - 4*a*c;

егер D< 0 содан кейін writeln («түбірлері жоқ»)

басқаша басталады

x1:= -b + sqrt(D);

x2:= -b - sqrt(D);

writeln(x1:0:2,""", x2:0:2)

Цикл операторлары

Цикл операторлары циклдік алгоритмдік құрылымдарды жүзеге асырады, олар бірнеше рет қайталанатын әрекеттер үшін қолданылады. Көптеген программалау тілдерінде циклдік операторлардың үш түрі бар: «алғы шартпен», «соңғы шартпен», «параметрмен».

Циклдерді бағдарламалау үшін қажетті және жеткілікті алгоритмдік құрылым «алғы шарты бар» цикл болып табылады, сондықтан оны циклдің негізгі түрі деп атауға болады. Алғы шарты бар цикл операторы келесідей көрінеді:

ал В істеуС

Оператор С, ол үшін қайталанатын орындау үшін цикл құрылады деп аталады цикл денесі. Цикл операторының орындалуы логикалық өрнектің мәніне дейін цикл денесінің қайталанатын орындалуына дейін қысқарады. Бақиқат (ол жалған болғанша). Іс жүзінде ұқсас цикл операторлары шартты операторларды қайталап орындауды жүзеге асырады егерБ содан кейін S, шарт шын болса да Б.

Мысал 2. Натурал санның цифрларының қосындысын есептеу үшін осындай цикл операторын пайдалануды қарастырайық Н:

кезінде N>0 бастаңыз

S:= S + N мод 10;

N:= N див 10

Пост шарты бар циклде циклдің денесі В шартының алдында тұрады. Алғы шарты бар циклден айырмашылығы, мұнда B - циклды аяқтау шарты. Паскаль тіліндегі постшартты цикл операторының келесі формасы бар:

қайталау С дейінБ

Циклдің осылай ұйымдастырылуымен циклдің денесі Скемінде бір рет орындалуы керек.

Барлық дерлік процедуралық тілдерде бар параметрі бар цикл операторы. Оны схемалық түрде келесідей көрсетуге болады:

үшін< айнымалы > E1 дейін E2 қадам E3 істеуС

Мағынасы осында айнымалы(цикл параметрі) E3 қадамдарымен E1 өрнегі мәнінен E2-ге өзгереді. Цикл параметрінің әрбір осындай мәні үшін S операторы орындалады.Паскаль тілінде бұл оператордың сипаттамасында қадам түсінігі жоқ, ал бүтін цикл параметрі үшін қадамның өзі не 1-ге, не тең болуы мүмкін. –1. «Параметрі бар цикл» операторы белгілі бір қайталану саны бар циклдарды бағдарламалау үшін қолданылады. Ол қайталанатын циклдарды бағдарламалауға жарамайды (қайталану саны алдын ала белгісіз).

Процедураны шақыру операторы

мақалада « Ішкі бағдарламалар” процедуралар сияқты ішкі бағдарламаның осы түрін егжей-тегжейлі сипаттайды. Кәдімгі кітапханалардың біріне кіретін стандартты бағдарламалау тілінің процедуралары, сондай-ақ осы блоктың ішінде сипатталған пайдаланушы процедуралары оператордың көмегімен шақырылады. процедураны шақыру:

<имя процедуры>(E1,E2,…,En)

Мұндағы E1,E2,…,En айнымалылар немесе бейнелейтін өрнектер нақты параметрлерпроцедураға қол жеткізу. Ең жиі қолданылады стандартты процедуралармәліметтерді енгізу және шығару процедуралары болып табылады (Паскаль тілінде оқу және жазу).

Процедураны шақыру семантикалық тұрғыдан процедураның денесі ретінде сипатталған блокты оған кейбір айнымалылардың (мән параметрлері) бастапқы мәндерін бергеннен кейін немесе кейбір айнымалылардың (айнымалылардың параметрлері) аттарымен алмастыруымен орындауға тең. процедураны шақыру кезінде көрсетілген нақты айнымалылар.

3-мысал. abc процедурасын сипаттайық:

abc(a,b:integer) процедурасы; var c: бүтін сан);

Бұл процедураны abc(2,3,x) шақыру әрекет блогына баламалы:

Секіру операторлары

Бұл операторлар тобының ең танымал операторы - шартсыз өту операторы бару. Бар бағдарлама мәлімдемелерінің барлығына немесе кейбіріне қоссаңыз тегтер, содан кейін бағдарламада форманың өту операторын пайдалану мүмкін болады:

бару<метка>

Бұл жағдайда белгі бағдарламаның орындалуын жалғастыру керек оператордың басына сәйкес келеді. Бұл оператор бағдарламалау тілінде еркін күрделі құрылымы бар алгоритмдерді жазуға мүмкіндік береді. Бірақ көбінесе шартсыз өтуді пайдалану негізсіз, өйткені шатасуға, жамандыққа әкеледі оқуға болатын бағдарлама. Оператордың жалғыз дерлік мағыналы қолданылуы барубірден бірнеше кірістірілген циклдардан шығу болып табылады, мысалы, екі өлшемді массивтерді өңдеу кезінде.

4-мысал.Екі өлшемді a массивінің 0-ге тең элементі бар-жоғын анықтау керек делік:

үшін i:= 1 дейінН істеу

j үшін:= 1 дейінН істеу

а = 0 болса содан кейін бастаңыз

1: егерб содан кейінжазу («бұл») басқа write («жоқ»);

Құрылымдық бағдарламалау ережелеріне сәйкес жасалған бағдарламада шартсыз өту операторлары болмауы керек. Жоғарыда көрсетілген бағдарлама операторды пайдаланбай барукелесідей қайта жазуға болады:

болмаған кездеб және(и< N) бастаңыз

болмаған кездеб және(ж< N) бастаңыз

егер a = 0 содан кейін b:= шын;

егерб содан кейінжазу («бұл») басқа write («жоқ»);

Бұл жағдайда құрылымдық бағдарлама бар бағдарламаға қарағанда аз көрнекі болады бару.

Басқа секіру операторлары бағдарламалау тілдерінде анықталуы мүмкін. Мысалы, Паскаль тілінде: үзіліс(циклдің ерте үзілуі, цикл аяқталғаннан кейін орындалуы керек операторға көшу), жалғастыру(ағымдағы цикл итерациясын ерте аяқтау және келесіге көшу), Шығу(ішкі бағдарламаны ерте үзу, одан шығу), тоқтау(бағдарламаны ерте үзу, оның соңына көшу). Ұқсас операторлар C, C++ және Java тілдерінде бар.

Құрама оператор

Құрама оператор - оператор жақшаға алынған операторлар тобы (Паскаль тілінде - БАСТАСоңы; C, C++ тілінде - (...)).

Құрама оператор тіл конструкцияларын сипаттауды жеңілдету үшін бағдарламалау тілдеріне енгізілді. Мысалы, Паскаль тілінде әрбір блоктың орындалатын бөлігі (программа, процедура, функция) бір құрама оператор болып табылады. Дәл осылай кез келген цикл операторының денесі бір ғана оператордан, мүмкін құрама оператордан тұрады. Құрама операторға балама белгілі бір оператордың соңын көрсететін функционалдық сөз болуы мүмкін, мысалы, АЯҚТАЛУ ЕГЕРНегізгі тілде.

«Бағдарламалау тілінің операторлары» тақырыбы әдетте белгілі бір бағдарламалау тілі контексінде ғана зерттеледі. Оны қарастырған кезде негізгі алгоритмдік конструкциялар мен операторлар арасындағы байланысты көрсету маңызды: алгоритмдік конструкциялар сәйкес операторлар арқылы программалау тілінде жазылады. Ерекшелік, белгілі бір мағынада, дәйекті дизайн болып табылады; ол әрекеттердің сызықтық тәртібін анықтайды. Қатаң сызықтық бағдарламадағы әрекеттер тек тағайындау операторлары мен процедураны шақыру операторлары арқылы жүзеге асырылады.

Бағдарламалауды үйренудің бастапқы кезеңінде мектеп оқушылары көптеген мәселелерге тап болады. Олардың ең бірінші психологиялық кедергісі – тапсырма операторын үйрену кезінде. Студенттермен бірге шешу қажет негізгі тапсырмалардың бірі - екі айнымалының мәндерін ауыстыру. Сіз мектеп оқушыларынан екі жәшіктің, мысалы, үстелдің мазмұнын ауыстыру мәселесін ойша шешуді сұрай аласыз. Әдетте, талқылаудың осы кезеңінде студенттер мәселені шешу үшін үшінші қорап (айнымалы) қажет екенін түсінеді. Дегенмен, бұл алгоритмді жазғанда, олар тағайындау операторының қай бөлігінде (сол немесе оң жақта) белгілі бір айнымалы болуы керек екенін жиі шатастырады.

Арифметикалық және логикалық өрнектерді жазудағы қателер өрнекте қолданылатын амалдардың басымдылығын білмеуден туындайды. Сонымен бірге амалдар тек арифметикалық емес, салыстыру амалдары мен логикалық жалғауларды, ал Си тілінде мектеп оқушыларына өте әдеттен тыс тапсырма беру амалын білдіреді. Жағдай әртүрлі бағдарламалау тілдерінде бірдей операциялардың салыстырмалы басымдықтары әртүрлі болуымен қиындайды. Сондай-ақ тағайындау операторының сол және оң жағындағы айнымалы типтері мен өрнек арасындағы сәйкестікке назар аудару керек («қараңыз»). Деректер түрлері”).

Таңдау операторларын меңгеру кезінде студенттерге шартты операторлардың комбинациясын қолдана отырып және таңдау операторын қолдана отырып, көп тармақты құрылымды қамтитын алгоритмді бағдарламалау тиімді.

Мысал.Бүтін айнымалыға НАдамның жасын жылдармен енгізіңіз. «Фразаны теріңіз Мен К жастамын”, сөзін ауыстырады жылдарқосулы жылнемесе жылдыңсанына байланысты Қ. Бұл мәселенің екі шешімі бар:

егермод 100) жылы

содан кейін writeln("Мен ",к," жастамын")

іск мод 10 ның

0,5..9:writeln("Мен ",k," жастамын");

1:writeln("Мен ",k," жастамын");

2..4:writeln("Мен ",к," жастамын");

var k, n: бүтін;

readln(k); n:= k мод 10;

егермод 100) жылы

содан кейін writeln("Мен ",к," жастамын") басқа

егер n=1 содан кейін writeln("Мен ",к," жастамын")

егер(n >=) және(н<= 4)

содан кейін writeln("Мен ",к," жастамын")

басқа writeln("Мен ",к," жастамын")

Цикл операторларын қарастырған кезде бір тапсырманы үш цикл операторының көмегімен үш түрлі әдіспен бағдарламалауды ұсыну пайдалы, ал керісінше мәселенің шарттарына сүйене отырып, белгілі бір жағдайда қай цикл операторы қолайлы екенін анықтауды үйрену.

Процедураны шақыру операторы бір қарағанда қарапайым. Мұнда процедуралар мен функцияларға параметрлерді беру ережелерін, айнымалы параметрлер мен мән параметрлері арасындағы айырмашылықты түсіндіру маңызды (соңғы жағдайда біз тек айнымалының атын ғана емес, сонымен қатар тұрақты немесе тіпті сәйкес келетін өрнекті де бере аламыз). түрі). Формальды және нақты параметрлер түрі бойынша сәйкес болуы керек, бірақ аты бойынша емес, бұл студенттерге түсінікті емес.

Шартты және әсіресе құрама сөйлемді зерттеу студенттермен бағдарлама жазу стилі туралы сөйлесудің жақсы мүмкіндігі болып табылады. Паскаль тілінде құрылымдық бағдарламаларды жазудың бірнеше кең таралған тәсілдері бар, бірақ олардың барлығы кірістірілген құрылымдарды орналастыру үшін шегіністерді қамтиды. Бағдарламалар мен түсініктемелерді жазу үшін маңызды.

Бағдарлама коды суретте көрсетілген. 4.3-9.

Option Strict On Option Explicit On Imports System.Math Public Class Form1 "Мәтіндік жолдағы нүктенің координаттарын енгізу функциясы vvod(ByVal T ретінде TextBox) Бірыңғай қайтару ретінде CSng(Val(T.Text)) Аяқтау функциясы "Процедура нәтижені TextBox Sub vivod ішінде шығару (ByVal Z ретінде Single, ByVal T ретінде TextBox) T.Text = CStr(Z) End Sub "Екі нүктенің координаталарынан сегменттің ұзындығын есептеу функциясы Жалпы функция Сегмент ұзындығы(ByVal) x1 Жалғыз, _ ByVal y1 As Single, ByVal x2 As Single, _ ByVal y2 As Single) ретінде Жалғыз қайтару CSng(Sqrt((x2 - x1) ^ 2 + (y2 - y1) ^ 2)) Аяқтау функциясы "Процедура үшбұрыштың периметрі мен ауданын есептеу Sub PS( ByVal x1 As Single, ByVal y1 As Single, _ ByVal x2 As Single, ByVal y2 As Single, _ ByVal x3 As Single, ByVal y3 As Single, _ ByRef P As Single , ByRef S As Single) Dim A, B, C, Pp As Single A = Segment Length(x1 , y1, x2, y2)"Терістің ұзындығын есептеу функциясын шақыру. B = Сегменттің ұзындығы (x2, y2, x3, y3) C = Сегменттің ұзындығы (x3, y3, x1, y1) P = (A + B + C) : Pp = P / 2 S = CSng(Sqrt(Pp * (Pp - A)) * (Pp - B) * (Pp - C))) End Sub "Батырмадағы шерту оқиғасын өңдеу процедурасы Button1 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim x1 Жалғыз, x2 Жалғыз, x3 Жалғыз Dim ретінде y1 Жалғыз, y2 Жалғыз, y3 Жалғыз Dim ретінде, Plo Жалғыз ретінде x1 = vvod(TextBox1) : x2 = vvod(TextBox2) : x3 = vvod(TextBox3) ) y1 = vvod(TextBox6) : y2 = vvod(TextBox7) : y3 = vvod(TextBox8) PS(x1, y1, x2, y2, x3, y3, Per, Plo) vivod(Plo, TextBox4) : vivod(Plo, TextBox5) End Sub Private Sub Button2_Click(System.Object ретінде ByVal жіберуші, _ ByVal e System.EventArgs ретінде) Түймешіктер2.Click End End Sub End Class

Қолданбаны іске қосу және нәтижелерді алу

Нәтиже суретте көрсетілген. 4.3-10.

Нәтиженің дұрыстығын дәлелдеу

A=
= 2,82843 B =
= 2

C = = 2 P = A + B + C = 6,828427; Рр = Р/2 = 3,414213 S= = 2


Тақырып бойынша қауіпсіздік сұрақтары

«VB бағдарламаларының, модульдердің және процедуралардың құрылымы.

Сызықтық құрылым алгоритмдерін бағдарламалау құралдары»

1. Математикалық модель дегеніміз не?

2. Компьютерде есептерді шығарудың негізгі кезеңдері қандай?

3. Компьютерлік есептерді шығарудың қандай кезеңдері компьютердің қатысуынсыз жүзеге асырылады?

4. Заттың немесе құбылыстың математикалық моделі қалай аталады?

5. Бағдарламаны жасау процесінің ретті қадамдары қандай?

6. Алгоритм дегеніміз не?

7. Алгоритмнің қандай негізгі қасиеттері болуы керек?

8. Алгоритмдерді сипаттаудың қандай жолдары бар?

9. Алгоритм диаграммаларында әдетте қандай графикалық белгілер бейнеленген?

10. Аудармашы қалай жұмыс істейді?

11. Компилятор қалай жұмыс істейді?

12. Қандай алгоритм сызықтық деп аталады?

13. Қандай алгоритм циклдік деп аталады?

14. Қандай алгоритм тармақталу деп аталады?

15. Функциялар мен процедуралардың нәтижелерін берудің айырмашылығы неде?

16. Сенімді нәтиже алу бағдарламаның дұрыстығын дәлелдей ме?

17. Бағдарламаны тексермесеңіз (қарамасаңыз, айналдырсаңыз) қандай қателер анықталмай қалуы мүмкін?

18. Бағдарламаны тестілеу оны жөндеуден қалай ерекшеленеді?

19. Бағдарламаның дұрыстығын тестілеу арқылы дәлелдеуге бола ма?

20. Бағдарламаның қай кезеңінде анықтамалық тест нәтижелері есептеледі?

21. Тестілеу процесінің негізгі кезеңдерін атаңыз.

22. Синтаксистік қателер мен семантикалық қателердің айырмашылығы неде?

23. Құрылғыда синтаксистік қате туралы хабарлардың болмауы нені көрсетеді?

24. Аудармашы қателердің қандай түрлерін анықтай алмайды?

25. Бағдарлама қандай?

26. Бағдарламадағы қателерді іздеу және жою қай кезеңде жүзеге асады?

27. Бағдарламалау жүйесі дегеніміз не?

28. Процедура дегеніміз не?

29. Процедуралары бар бағдарламаның артықшылықтары қандай?

30. VB-де қандай процедуралық программалау құралдары бар?

31. Жеке бағдарлама процедуралары арасында деректер алмасу қалай жүзеге асырылады?

32. Нақты және формальды параметрлер дегеніміз не?

33. Параметр ретінде қалай беріледі: тұрақты, айнымалы, өрнек?

34. Жаһандық айнымалылар қалай қолданылады?

35. Жергілікті айнымалылар қалай қолданылады?

36. Формальды параметрлер дегеніміз не?

37. Нақты параметрлер қандай?

38. Процедураны шақырғанда не болады?

39. Параметрлерді процедураға қалай беруге болады?

40. Мән бойынша қандай параметрлер беріледі?

41. Мекенжайға қандай параметрлер беріледі?

42. Процедуралық бағдарламалау құралдары дегеніміз не?

43. Функцияны орындаудың нәтижесі қандай?

44. Жеке айнымалылар функция ішінде жергілікті болуы үшін қалай жариялануы керек?

45. Функциядан ерте шығу үшін қай оператор қолданылады?

46. Функциялар мен процедураларды шақыру кезінде не басқарылады?

47. Айнымалы параметрді мән бойынша беру үшін формальды параметрлерді қалай жариялау керек?

48. Айнымалы параметрді мекенжайға беру үшін формальды параметрлерді қалай жариялау керек?

49. Шақырушы программадан функция процедурасы қалай шақырылады?

50. Процедураның нәтижесі қандай болуы мүмкін?

51. Қандай мәлімдеме процедурадан ерте шығу үшін қолданылады?

52. Функциялар мен процедуралардың сипаттамасын қайда орналастыруға болады?

53. Жалпы оператор арқылы жарияланған айнымалы қай жерде қолжетімді болады?

54. Жеке оператор қайда орналаса алады?

55. Пікір дегеніміз не және оны жазу ережелері?

56. Бағдарламаның басындағы айнымалылардың мәндері қандай?

57. Неліктен процедуралар мен функциялар сипатталады (анықталады)?

58. Процедуралар қалай аталады?

59. Функциялар қалай аталады?


Қатысты ақпарат.





Жоғарғы