Аппараттық және бағдарламалық қамтамасыз етуді орнату

Жазылған және оқылған мәлімдемелерді жазыңыз. Процедуралар Read және ReadLn

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

Ағылшын тіліндегі read (read) және line (line) деген екі сөзден тұратын read (read) және readln операторлары компьютер жадына ақпаратты енгізу үшін бағдарламаларда қолданылады және « оқулар" мәндерін айнымалыға айналдырады.

Осы операторлардың жұмысын және ақпаратты енгізу процедураларын қарастырыңыз.

Біздің бағдарламада readln(a) процедурасы бар. Бағдарламаны орындаған кезде, readln операторына тап болған кезде, компьютер ақпаратты енгізуді күту кезінде үзіліс жасайды. Пернетақтадан a - 16 айнымалысының мәнін енгізгеннен кейін, компьютер бұл мәнді a айнымалысына тағайындайды, яғни. a деп аталатын жад орнына жібереді және бағдарламаның орындалуын жалғастырады. Біз бұл процесті « оқу" мәндерін айнымалыға айналдырады.

Сонымен, процедуралар айнымалылардың мәндерін оқиды және оқиды және оларды оларға жазылған айнымалыларға тағайындайды.

Осындай бірнеше айнымалы болуы мүмкін, содан кейін олар үтірмен бөлінген осы операторларда жазылады, мысалы:

read(a, b, c, n, g, j, i), readln(e, f, k, p, d) т.б.

Read және readln процедураларының айырмашылығы неде?

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

Мысалы:

Бағдарламада: write("a және b мәндерін енгізіңіз"); оқу(a,b);

write("Ақпаратты бір жолға енгізу");

Бағдарламаның бұл бөлігі орындалған кезде экранда бірінші жазу операторында жазылғанның бәрі шығады, содан кейін курсор бір жолда болады, ал компьютер a және b мәндерінің болуын күтеді. енгізілді. Олардың мәндерін енгізейік - 2 және 3, оларды бос орынмен немесе басқаша айтқанда, бос орынмен бөлейік. Осыдан кейін келесі жазу операторында жазылған ақпарат сол жолда шығарылады.

Экранда:

a және b мәндерін енгізіңіз 2 3 Ақпаратты бір жолға енгізіңіз

Бағдарламада:

writeln("a, b және c енгізіңіз); readln(a, b, c);

writeln("Жолдың басынан ақпаратты енгізу және шығару");

Экранда:

a, b және c мәндерін енгізіңіз

Жолдың басынан ақпаратты енгізу және шығару

Бүтін сандармен арифметикалық амалдар. Бүтін типті айнымалылар. Нақты түрі

Паскаль тілінде объектілерді санау процесінде қалыптасқан барлық натурал сандарды қамтитын бүтін сандар қолданылады: 1, 2, 3, 4, 5, 6, ...; теріс сандар: ..., -6, -5, -4, -3, -2, -1 және нөл саны: 0. Бүтін сандар келесі қатарды құрайды:

6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, ...

Паскаль тілінде бүтін сандар -32768 мен 32767 аралығында болады.

Айнымалылар, бүтін мәндерді қабылдайтын, сипаттау бөлімінде бүтін (integer) типін көрсетумен жазылады.

Мысалы: var a, b, c, a1, b34, nomb: integer;

Бір бағдарламадағы осы айнымалыларға басқа түрдегі мәндер тағайындауға болмайды.

Паскаль тілінде бүтін және бүтін типті айнымалылармен арифметикалық амалдар

«_» белгісі бос орынды білдіреді. Айнымалы атаулар мен операция атауы (div) арасындағы бос орындар қажет. (Ағылшын тіліндегі division – division сөзінен шыққан).

a-ны b-ге бөлудің қалдығы. a_mod_b

Терілген файлдар үшін файл компонентін айнымалыға оқиды.

Мәтіндік файлдар үшін бір немесе бірнеше мәндерді бір немесе бірнеше айнымалыларға оқиды

Ескертулер:

Жолдық айнымалылар үшін:

Оқу келесі жол соңындағы маркерге дейін (бірақ қосылмаған) барлық таңбаларды немесе Eof(F) True мәніне дейін оқиды. Оқылғаннан кейін оқу келесі жолға өтпейді. Егер алынған жол айнымалы жолдың максималды ұзындығынан ұзын болса, онда ол қысқартылады. Бірінші оқудан кейін Read қызметіне келесі қоңыраулар жол соңындағы маркерді көреді және нөлдік ұзындық жолын қайтарады.

Бірнеше жол мәндерін оқу үшін бірнеше ReadLn қоңырауларын пайдаланыңыз.

Кеңейтілген синтаксис опциясы қосылған кезде Оқу процедурасы нөлмен аяқталатын жолдарды нөлге негізделген таңба массивтеріне оқи алады.

Integer немесе Real түріндегі айнымалылар үшін:

Оқу сандық жолдың алдындағы бос орындарды, қойындыларды немесе жол үзілімдерін өткізіп жібереді. Егер сандық жол болмаса
күтілетін пішімге сәйкес келеді, енгізу/шығару қатесі орын алады, әйтпесе мән айнымалыға тағайындалады. Келесі оқу бос орыннан, қойындыдан немесе сандық жолды аяқтаған жол соңындағы маркерден басталады.

Процедураның мысалын оқыңыз

WinCrt, WinDos пайдаланады;
Var F: мәтін;
Ch: Char;
Баста
(Файл атын пәрмен жолынан аламыз)
Assign(F, ParamStr(1));
қалпына келтіру(F);
EOF(F) болмаса да
Баста
оқыңыз(F, Ch);
Write(Ch); (Файлдың мазмұнын экранда көрсету)
Соңы;
Соңы.

  • Readln
  • Жазыңыз
  • Жазылған

оқу (процедура)

Терілген файлдар үшін файл компонентін айнымалыға оқиды.
- Мәтіндік файлдар үшін бір немесе бірнеше мәндерді оқиды
бір немесе бірнеше айнымалыларға

Хабарландыру

Терілген файлдар

Оқу процедурасы(F , V1 [, V2,...,Vn ]);

Мәтіндік файлдар

Оқу процедурасы([ Var F: Мәтін; ] V1 [, V2,...,Vn ]);

Режим

Windows Real Protected

Ескертпелер

Жолдық айнымалылар үшін:

Оқу келесі жол соңындағы маркерге дейін (бірақ қосылмаған) барлық таңбаларды оқиды Eof(F) Ақиқатқа айналады. Оқылғаннан кейін оқу келесі жолға өтпейді. Егер алынған жол айнымалы жолдың максималды ұзындығынан ұзын болса, онда ол қысқартылады. Бірінші оқудан кейін Read қызметіне кейінгі қоңыраулар жол соңындағы маркерді көреді және нөлдік ұзындықты жолды қайтарады.

Бірнеше жол мәндерін оқу үшін бірнеше ReadLn қоңырауларын пайдаланыңыз.

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

Түрдегі айнымалылар үшін бүтін саннемесе Нағыз:

Оқу сандық жолдың алдындағы бос орындарды, қойындыларды немесе жол үзілімдерін өткізіп жібереді. Егер сандық жол күтілетін пішімге сәйкес келмесе, енгізу/шығару қатесі орын алады, әйтпесе мән айнымалыға тағайындалады. Келесі оқу бос орыннан, қойындыдан немесе сандық жолды аяқтаған жол соңындағы маркерден басталады.

да қараңыз

Мысал

Crt, Dos пайдаланады;

var
F : мәтін;
Ch: Char;

баста
(Файл атауын пәрмен жолынан алыңыз)
Assign(F, ParamStr(1));
Қалпына келтіру(F);
EOF (F) жасамайды
баста
Оқу(F, Ch);
Write(Ch); (Файлдың мазмұнын экранда көрсету)
Соңы ;
Соңы.

Тақырып:Кіріс шығыс. Операторлар Read (Readln), Write (Writeln). Ең қарапайым сызықтық программалар.

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

Тапсырма . Экранды тазартатын және пайдаланушы енгізген екі санның көбейтіндісін есептейтін программа жазыңыз.

ProgramProizv2;
пайдаланады
Crt;(Crt модулін қосу)
Var
number1, (бірінші санды қамтитын айнымалы)
number2, (екінші санды қамтитын айнымалы)
нәтиже (нәтижені қамтитын айнымалы)
: бүтін;
Баста
ClrScr;(Crt модулінен экранды тазалау тәртібін пайдалану)
Write («Бірінші санды енгізіңіз»);
readln(1-сан);
(Пайдаланушы енгізген сан сан1 айнымалысына оқылады)
Write («Екінші санды енгізіңіз»);
(Апострофтар арасында жазылған таңбаларды экранда көрсетеміз)
readln(2-сан);
(Пайдаланушы енгізген сан сан2 айнымалысына оқылады)
нәтиже:= сан1 * сан2;
(Енгізілген сандардың көбейтіндісін табамыз және нәтижені айнымалыға береміз)
Жазыңыз («Сандардың көбейтіндісі», 1 саны, « және «, 2 саны, «тең», нәтиже);
(Есептің жауабы бар жолды көрсетеміз)
Readln;(Экранды кешіктіру процедурасы)
Соңы.

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

  • Неліктен бағдарлама Proizv2 деп аталады?
  • Неліктен Crt модулі Пайдалану бөлімінде орналастырылды?
  • number1, number2, нәтиже айнымалыларының мақсаты қандай?
  • бұл айнымалылар қандай типке жатады? Бұл нені білдіреді?
  • 5 және 7 мәндерін number1 және number2 айнымалыларына сәйкестендірсек, соңғы Write процедурасы орындалғанда компьютер қандай жолды шығарады? Оны дәптеріңе жазып ал.
  • қай жолдарда пайдаланушыдан айнымалы мәндер сұралады?
  • Сандардың көбейтіндісі қай жол?
  • Бұл бағдарламада тағайындау операторы не істейді?

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

Write және WriteLn операторлары

Біз Write және WriteLn операторларын қолдандық, бірақ бұл операторларды пайдалану ережелерін егжей-тегжейлі қарастыруымыз керек.

Write (ағылш. write) – ақпаратты экранда көрсету үшін қолданылатын оператор. WriteLn операторы дәл осындай әрекетті орындайды, бірақ оның Ln (жол – ағылшынша жол, жол) аяқталуы да болғандықтан, экранда қажетті хабарламаны шығарғаннан кейін курсорды келесі жолға қосымша жылжытады.

Жалпы формасы:
Жазыңыз (өрнектер тізімі)
WriteLn (өрнектер тізімі)

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

Мысалы, WriteLn («Табылған нөмір», a) процедурасын орындаған кезде апострофтармен қоршалған жол басып шығарылады, содан кейін а айнымалысының мәні көрсетіледі.

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

Read және ReadLn мәлімдемелері

Еске салайық, компьютерлердің негізгі мақсаты – адам еңбегін үнемдеу. Сондықтан бағдарламаны жазғаннан кейін оны әр түрлі мәліметтерді енгізген сайын қайталап пайдалану мүмкіндігін беру қажет. Тілдегі бұл икемділік Read және ReadLn операторлары арқылы қамтамасыз етіледі. Бұл операторлар ақпаратты пернетақтадан енгізеді.

Жалпы формасы:
Оқу(айнымалы, айнымалы...)
ReadLn(айнымалы, айнымалы...)

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

Мысалы, егер 53 және X мәндері енгізілсе, онда Read (a, b) операторы орындалғанда, a айнымалысына 53 саны, ал Х айнымалысына Х әрпі беріледі. төтенше жағдайды болдырмау үшін Var бөлімінде деректер түрін дұрыс анықтау қажет екенін ескереміз; біздің жағдайда a:integer және b:char.

Read және ReadLn операторларын пайдалануда оқу мен жазу арасында ерекше айырмашылықтар жоқ. Көбінесе параметрсіз ReadLn процедурасы бағдарламаның соңында кешіктіру үшін пайдаланылады: пернені басқанша. бағдарламаның орындалу нәтижесі экранда қалады. Бұл нәтижелерді талдау үшін өте пайдалы.

Ескерту . Экранның кідірісін орнатқанда, алдыңғы енгізуге назар аударыңыз. Егер деректер Read процедурасы арқылы сұралса, кідіріс болмайды.

Осы процедуралардың барлық мүмкін қолданылуын қарастыратын мәселені шешейік.

Тапсырма . Үш санның орташа мәнін табыңыз.

Ескерту . Бірнеше санның орташа мәнін табу үшін осы сандарды қосып, қосындыны осы сандардың санына бөлу керек.

Есептің мәтінін теріп, әрбір жолды мұқият қарастырыңыз. Srednee бағдарламасының атауы тапсырманың мазмұнын көрсетеді. Айтпақшы, бағдарламаның аты мен осы бағдарламаны қамтитын файлдың аты бірдей екеніне келісейік. Содан кейін Crt модулінің қосылымы келеді. Var бөлімі бүтін түрдегі айнымалылар ретінде First, Second, Third, ал Sum нақты тип ретінде сипатталады. Оператор бөлімі Crt модулінде орналасқан ClrScr (Clear Screen) экранды тазалаудың стандартты процедурасынан басталады. Әрі қарай, Write операторын қолданып, біз экранда «Бірінші нөмірді енгізіңіз» хабарын көрсетеміз, оны алғаннан кейін пайдаланушы нөмірді енгізуі керек.

Енді компьютер енгізілген таңбаларды оқып, оларды Бірінші айнымалыда сақтауы керек, бұл келесі ReadLn(Бірінші) операторы орындалғанда орын алады. Содан кейін Write операторын қолдана отырып, біз тағы екі санның мәндерін сұраймыз және оларды Екінші және Үшінші айнымалыларға оқимыз. Содан кейін олардың қосындысын есептеп, алынған санды Sum айнымалысына береміз. Орташа мәнді табу үшін енді алынған санды 3-ке бөліп, нәтижені кейбір айнымалыға сақтау керек.

Нәтижені сақтау үшін басқа айнымалыны жариялау қажет емес. Біздің бағдарламамыздағыдай Sum айнымалысының мәнін 3-ке бөліп, нәтижені қайтадан сол Sum айнымалысына тағайындауға болады. Енді Write процедурасы арқылы есептеу нәтижесін экранға шығаруға болады. Ақырында, ReadLn соңғы процедурасы экрандағы шығуды перне басылғанша кейінге қалдырады.

пернелерді басыңыз +. 5, 7 және 12 айнымалылардың мәндерін енгізіңіз, экранда келесіні көресіз:

5, 7 және 12-нің орташа мәні - 8.00

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

Келесі тізімнен шешу үшін мұғаліммен бірге тапсырмаларды таңдаңыз:

  1. a және b екі санын енгізіңіз. Мәндерін алмасу үшін тағайындау операторын пайдаланыңыз:
    а) аралық айнымалыны қолдану (x:=a; a:=b; b:=x);
    б) аралық айнымалыны қолданбай (a:=a-b; b:=a+b; a:=b-a).
  2. Пайдаланушыдан бүтін санды, нақты санды, ерікті таңбаны және жолды сұрайтын бағдарламаны жазыңыз, содан кейін олардың барлығын бір жолда басып шығарыңыз.
  3. Тегіңізді, атыңызды және әкесінің атын, ал екі жолдан кейін туған күніңізді көрсетіңіз.
  4. Жұлдызшасы бар фигуралардың бірін басып шығару программасын жазыңыз:
    а) шыршалар (бірнеше шырша);
    б) қар бүршіктері (бірнеше қар түйіршіктері);
    в) үй.Мысалы,

    *
    * *
    * *
    ***********
    * *
    * *
    * *
    * *
    ***********

  5. Визит картаңызды құрастырыңыз.


    * Иванов Сергей *
    * Пролетар 74 шаршы метр. 55*
    * Телефон 45-72-88 *
    *******************************

  6. Пайдаланушы мен компьютер арасында еркін тақырыпта диалог құрастырыңыз.
    Мысалы, машина екі сұрақ қояды: «Атың кім?» сен қанша жастасың?»; атын (Антон) және (15) санын енгізгеннен кейін ол «Иә ... 50 жылдан кейін сіз 65 жаста боласыз, ал сіздің атыңыз Антон емес, Антон ата болады» деп көрсетеді.
  7. Қолданушыдан екі сан сұраңыз және осы сандардың қосындысының, айырмасының, көбейтіндісінің және бөлігінің нәтижесін толық жауап ретінде көрсетіңіз.
  8. Пайдаланушыдан екі сан сұраңыз және бүтін бөлу нәтижесін және бүтін бөлудің қалған бөлігін кесте ретінде көрсетіңіз. Мысалы, 5 және 3 сандарын енгізу кезінде экранда келесі кесте пайда болуы керек:

    **************************
    *X*Y*div*mod*
    **************************
    * 5 * 3 * 1 * 2 *
    **************************

  9. Жануардың атын және цифрын сұрайтын программа жазыңыз, содан кейін экранда «Тиін 10 саңырауқұлақ жейді» («Тиін» сөзін және 10 санын енгізгенде) сияқты сөйлемді көрсетіңіз.
  10. Тауарды сатып алу кезінде сатушы (компьютер) мен сатып алушы (пайдаланушы) арасындағы диалогты келесі схема бойынша ұйымдастырыңыз: белгілі бір баға бойынша тауарды ұсыну, сатып алынатын тауардың санын сұрау, сатып алатын ақша сомасын анықтау және көрсету. сатып алушы сатып алу үшін төлеуі керек.
оқыңызжәне ReadLnстандартты енгізу құрылғысынан ақпаратты оқу. Консольдік қосымшаларда бұл құрылғы, мысалы, пернетақта (дәлірек айтқанда, пернетақтадан енгізілген деректер), графикалық қосымшаларда дискідегі файл болуы мүмкін.

Яғни, бұл процедуралар «антиподтар» - олар қарама-қарсы әрекеттерді орындайды.

Read және ReadLn процедуралары ұқсас әрекеттерді орындайды. Олардың арасындағы негізгі айырмашылық мынада: ReadLn процедурасы енгізу аяқталғаннан кейін жол беруді орындайды (ал файлдар жағдайында ол файлды жол бойынша оқиды). Ал Read процедурасы деректерді дәйекті түрде оқиды - жаңа жолсыз.

ЕСКЕРТУ:

Турбо Паскальда бұл есімде жоқ (мүмкін мен ұмытып кеткен шығармын), бірақ пернетақтадан енгізуді тек ReadLn процедурасы арқылы орындауға болады, ал Read процедурасы қандай да бір себептермен жұмыс істемейді.

Консоль шығысының синтаксисі:

процедураОқу(Args: Аргументтер);

Файлға шығару синтаксисі:

процедураоқу( var F: мәтін; Args: Аргументтер);

Аргументтер ( Аргументтер) әр түрлі болуы мүмкін. Бірнеше айнымалылар пайдаланылса, олар үтірмен бөлінген тізімде көрсетіледі. Мысалы:

Var x, y: бүтін; z:нақты; str:жол; begin WriteLn("Үш бос орынмен бөлінген бүтін сандарды енгізіңіз:"); ReadLn(x, y, z); WriteLn("Сіз енгіздіңіз: ", x, ", ", y, ", ", z:0:2); ReadLn(str); WriteLn(str + str); ReadLn; Соңы.

Жоғарыда айтылғандай, консольден енгізілгенде, бұл айнымалылар әр түрлі болуы мүмкін. Бірақ Write/WriteLn процедураларынан айырмашылығы, оны пайдалануға рұқсат етілмейді (және бұл логикалық))).

МАҢЫЗДЫ!
Деректерді енгізген кезде, егер пайдаланушы енгізген мән осы мән енгізілген айнымалының түрінен басқа типте болса, орындау уақытында қате пайда болатынын есте сақтаңыз. Егер, мысалы, жоғарыдағы мысалда пайдаланушы бірінші сан ретінде нақты мәнді енгізсе (мысалы, 3.14), онда бағдарлама бұзылады, себебі x айнымалысының бүтін типі бар.

Файлдан оқу кезінде терілген және мәтіндік файлдармен жұмыс істеуге болады.

Егер Ф(синтаксисті қараңыз) – терілген файл, содан кейін параметрлер (Args) ретінде берілген айнымалылар файл үшін көрсетілген түрге ие болуы керек Ф. Терілмеген файлдарға рұқсат етілмейді. Егер параметр Фкөрсетілмеген, оқу стандартты енгізуден алынған деп есептеледі.

Егер файл Фтүрі бар Мәтін, онда айнымалылар , немесе типті болуы керек.

Егер файлды оқу кезінде оқу үшін қол жетімді деректер болмаса, F айнымалысына бос мән қайтарылады (0 - үшін , бос жол - жолдар үшін).

ReadLn процедурасын пайдаланған жағдайда, яғни деректерді жол бойынша оқу кезінде жолдың соңы белгілі бір таңбалар тізбегімен көрсетіледі (операциялық жүйеге дәл байланысты, DOS / Windows үшін бұл екі таңба - № 10 және № 13).

Жол соңындағы маркер оқу жолының бөлігі емес және еленбейді.

Read/ReadLn процедурасын орындау кезінде қате орын алса, орындау уақытының қатесі жасалады. Бұл әрекет әрқашан қолайлы емес (мысалы, файлды оқу кезінде). Сондықтан кейбір жағдайларда қателерді жасау өшіріледі. арқылы мұны істеуге болады.

ЕСКЕРТУ:

Әртүрлі жөндеу және оқыту бағдарламаларында ReadLn процедурасы орындалған соң консоль қолданбасының автоматты түрде жабылуын болдырмау үшін жиі пайдаланылады. Мұны істеу үшін бағдарламаның соңында жай жазыңыз (жоғарыдағы мысалдағыдай):

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

Мақала ұнады ма? Достарыңызбен бөлісіңіз!
Бұл мақала пайдалы болды ма?
Иә
Жоқ
Пікіріңізге рахмет!
Бірдеңе дұрыс болмады және сіздің дауысыңыз есептелмеді.
Рақмет сізге. Сіздің хабарламаңыз жіберілді
Мәтіннен қате таптыңыз ба?
Оны таңдаңыз, басыңыз Ctrl+Enterжәне біз оны түзетеміз!