Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Operator i kushtëzuar? Shkrimi i kodit të programit duke përdorur procedurat Hyrja në tastierë.

Operatoriështë një element gjuhësor që specifikon një përshkrim të plotë të veprimit që do të kryhet. Çdo operator është një frazë e plotë e gjuhës së programimit dhe përcakton një fazë të plotë të përpunimit të të dhënave. Operatorët mund të përfshijnë fjalë shërbimi, të dhëna, shprehje dhe operatorë të tjerë. Në anglisht, ky koncept shënohet me fjalën "deklaratë", që do të thotë gjithashtu "fjali".

Çdo operator në çdo gjuhë programimi ka një specifikë sintaksë Dhe semantike. Nën sintaksë operatori kuptohet si një sistem rregullash (gramatika) që përcakton rekordin e tij duke përdorur elementët e alfabetit të një gjuhe të caktuar, i cili, së bashku me simbole të ndryshme, përfshin, për shembull, fjalë shërbimi. Nën semantike operatori kupton kuptimin e tij, d.m.th. ato veprime me të cilat korrespondon rekordi i këtij apo atij operatori. Për shembull, hyrja i:= i + 1është një shembull i një shënimi sintaksor të saktë operatori i caktimit në gjuhën Pascal, semantika e së cilës në këtë rast është si vijon: nxirrni vlerën e qelizës së memories që i përgjigjet ndryshores i, shtoni atë në një, shkruani rezultatin në të njëjtën qelizë memorie.

Në shumicën e gjuhëve të programimit procedural, grupi i operatorëve është pothuajse i njëjtë dhe përbëhet nga një operator caktimi, operatorët e përzgjedhjes, operatorët e ciklit, një operator i thirrjes së procedurës, operatorët kërcyes. Ndonjëherë ka edhe operatorë bosh (pa veprim) dhe të përbërë. Shumë operatorë janë një mënyrë për të përfaqësuar disa konstruksione algoritmike (shih " Ndërtime algoritmike”) në një gjuhë programimi. Le të shqyrtojmë më në detaje grupet e operatorëve, duke përdorur sintaksën e gjuhës Pascal.

operatori i caktimit

Caktimi është një veprim kompjuterik, si rezultat i të cilit ndryshorja merr vlerën e shprehjes së vlerësuar (ajo vendoset në qelizën e memories që korrespondon me variablin). Për të përshkruar një veprim të tillë në gjuhët e programimit, ekziston operatori i caktimit.

Në përgjithësi, operatori i caktimit shkruhet si më poshtë:

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

Për shembull, në gjuhën Pascal, kombinimi i karaktereve: = përdoret si shenjë caktimi. Në një numër të gjuhëve të tjera, shenja e barabartë.

Rezultati i ekzekutimit të operatorit të caktimit është një ndryshim në gjendjen e të dhënave: të gjitha variablat përveç e ndryshueshme, duke qëndruar në anën e majtë të operatorit të caktimit, mos e ndryshoni vlerën e tyre dhe të specifikuar e ndryshueshme merr vlerë shprehjet, duke qëndruar në anën e djathtë të operatorit të caktimit. Në shumicën e rasteve kërkohet që lloji shprehjet përputhej me llojin e ndryshueshme. Nëse nuk është kështu, atëherë operatori ose konsiderohet sintaktikisht i pasaktë, ose lloji i shprehjes konvertohet në llojin e ndryshores (shih " Llojet e të dhënave” ).

Operatorët e përzgjedhjes

Në një mënyrë tjetër, këta operatorë quhen deklarata të kushtëzuara. Deklaratat e kushtëzuara përdoren për të programuar algoritmet që përmbajnë konstruktin algoritmik të degëzuar.

Ekzistojnë disa lloje deklaratash të kushtëzuara në gjuhët e programimit. Deklarata e plotë e kushtëzuar korrespondon me strukturën e plotë algoritmike të degëzimit:

Në një gjuhë programimi, operatori përkatës i kushtëzuar është:

nëse B pastaj S1 tjetër S2

Nëse shprehja B, e cila vlerësohet në fillim të ekzekutimit të deklaratës së kushtëzuar, është e vërtetë, atëherë deklarata do të ekzekutohet S1, përndryshe - operatori S2. Operatorët S1 Dhe S2 mund të jetë i përbërë.

Struktura algoritmike e degëzimit jo të plotë zbatohet duke përdorur një operator të kushtëzuar jo të plotë, i cili ka formën:

nëse B pastaj S

Këtu Bështë një shprehje boolean, dhe Sështë një operator arbitrar. Operatori S do të ekzekutohet nëse shprehja B vlerësohet si e vërtetë.

Nëse operatori i kushtëzuar zbaton vetëm dy degë zgjedhje ("po" dhe "jo"), atëherë duke përdorur operator variant (rast-operator) ju mund të programoni një strukturë me shumë degë. Operatori i variantit duket si ky:

rasti E e

Ky operator ekzekutohet si më poshtë: vlera e shprehjes E kërkohet midis vlerave të listuara në rekordin e operatorit V1, V2, …, Vn, dhe nëse gjendet një vlerë e tillë, atëherë ekzekutohet deklarata përkatëse S1, S2, …, Sn.

Në gjuhë të ndryshme programimi, sintaksa dhe madje edhe semantika e operatorëve të listuar mund të ndryshojnë, por mundësitë që i ofrohen programuesit nga ndërtime të tilla janë afërsisht të njëjta.

Shembulli 1 Në artikullin " Ndërtime algoritmike”2, u dha një shembull i shkrimit të një algoritmi për zgjidhjen e një ekuacioni kuadratik të përgjithësuar duke përdorur ndërtime degëzimi. Këtu është një fragment i programit Pascal që zbaton të njëjtin algoritëm:

nëse a = 0 pastaj

nëse b = 0 pastaj

nëse c = 0 pastaj writeln ("x - çdo")

tjetër writeln ("pa rrënjë")

tjetër shkrim (-c/b)

të fillojë tjetër

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

nëse D< 0 pastaj writeln ("pa rrënjë")

të fillojë tjetër

x1:= -b + sqrt(D);

x2:= -b - sqrt(D);

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

Deklaratat e ciklit

Operatorët e lakut zbatojnë ndërtime algoritmike ciklike, ato përdoren për veprime që përsëriten shumë herë. Në shumë gjuhë programimi, ekzistojnë tre lloje të deklaratave të ciklit: "me parakusht", "me paskusht", "me parametër".

Një strukturë algoritmike e nevojshme dhe e mjaftueshme për ciklin e programimit është një cikli "parakusht", kështu që mund të quhet lloji kryesor i ciklit. Operatori i ciklit me një parakusht ka formën:

ndërsa B bëj S

Operatori S, për ekzekutimin e përsëritur të së cilës krijohet një lak, quhet trup lak. Ekzekutimi i operatorit të ciklit reduktohet në ekzekutimin e përsëritur të trupit të ciklit deri në vlerën e shprehjes logjike B e vërtetë (derisa të bëhet e rreme). Në fakt, deklarata të tilla të ciklit zbatojnë ekzekutimin e përsëritur të deklaratave të kushtëzuara nëse B pastaj S ndërsa kushti është i vërtetë B.

Shembulli 2. Merrni parasysh përdorimin e një operatori të tillë cikli për të llogaritur shumën e shifrave të një numri natyror N:

derisa N > 0 filloni

S:= S + N mod 10;

N:=N div 10

Në një lak me një kusht pas, trupi i ciklit i paraprin kushtit B. Ndryshe nga një cikli me një parakusht, këtu B është gjendja fundore e ciklit. Operatori i ciklit me një kusht postar në Pascal ka formën:

përsëris S deri sa B

Me këtë organizim të ciklit, trupi i ciklit S duhet të ekzekutohet të paktën një herë.

Pothuajse të gjitha gjuhët procedurale kanë operatori i ciklit me parametër. Skematikisht, mund të përfaqësohet si më poshtë:

për< e ndryshueshme > E1 te E2 hap E3 bëj S

Këtu është vlera e ndryshueshme(parametri i ciklit) ndryshon nga vlera e shprehjes E1 në E2 me hapin E3. Për çdo vlerë të tillë të parametrit të ciklit, ekzekutohet operatori S. Në gjuhën Pascal, koncepti i një hapi në përshkrimin e këtij operatori mungon, dhe vetë hapi për një parametër të ciklit të plotë mund të jetë i barabartë me 1 ose -1. Operatori "loop with parameter" përdoret për të programuar unazat me një numër të caktuar përsëritjesh. Nuk është i përshtatshëm për programimin e sytheve përsëritëse (numri i përsëritjeve të të cilave nuk dihet paraprakisht).

deklarata e thirrjes së procedurës

Në artikullin " nënprogramet” përshkruan në detaje këtë lloj nënprogramesh, si procedura. Nënprogramet standarde të gjuhës së programimit që përfshihen në një nga bibliotekat e nënprogrameve, si dhe nënprogramet e përcaktuara nga përdoruesi të përshkruara brenda këtij blloku, thirren duke përdorur operatorin thirrje procedura:

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

Këtu E1, E2,…,En janë variabla ose shprehje që përfaqësojnë parametrat aktualë duke iu referuar procedurës. Procedurat standarde më të përdorura janë procedurat e hyrjes dhe daljes së të dhënave (leximi dhe shkrimi në Pascal).

Thirrja e një procedure është semantikisht ekuivalente me ekzekutimin e bllokut të përshkruar si trupi i procedurës pasi kalon vlerat fillestare të disa variablave (parametrat e vlerës) në të ose zëvendësimi i emrave të disa variablave (parametrat e variablave) me emrat e atyre aktual. variablat e specifikuar kur u thirr procedura.

Shembulli 3 Le të përshkruajmë procedurën abc:

procedura abc(a,b:integer; var c: numër i plotë);

Thirrja e kësaj procedure abc(2,3,x) është ekuivalente me një bllok veprimi:

Deklaratat e kërcimit

Më i famshmi në këtë grup operatorësh është operatori i kërcimit të pakushtëzuar shkoj. Nëse i shtojmë të gjitha ose disa nga deklaratat tashmë ekzistuese të programit etiketat, atëherë në program bëhet i mundur përdorimi i operatorit të tranzicionit të formularit:

shkoj<метка>

Etiketa në këtë rast korrespondon me fillimin e deklaratës nga e cila duhet të vazhdojë ekzekutimi i programit. Një operator i tillë lejon që dikush të shkruajë algoritme në një gjuhë programimi që kanë një strukturë arbitrare komplekse. Por shpesh përdorimi i një tranzicioni të pakushtëzuar është i pajustifikuar, sepse çon në një program konfuz dhe të vështirë për t'u lexuar. Pothuajse i vetmi përdorim kuptimplotë i operatorit shkojështë dalja nga disa sythe të mbivendosur njëherësh, për shembull, kur përpunohen vargje dydimensionale.

Shembulli 4 Supozoni se duhet të përcaktojmë nëse ka një element të barabartë me 0 në grupin dydimensional a:

për i:= 1 te N bëj

për j:= 1 te N bëj

nëse a = 0 pastaj filloni

1: nëse b pastaj shkruaj ("është") tjetër shkruani ("jo");

Një program i zhvilluar sipas rregullave të programimit të strukturuar nuk duhet të përmbajë operatorë degë të pakushtëzuar. Programi i mësipërm pa përdorur deklaratën shkoj mund të rishkruhet kështu:

ndërsa jo b dhe(i< N) filloni

ndërsa jo b dhe(j< N) filloni

nëse a = 0 pastaj b:=e vërtetë;

nëse b pastaj shkruaj ("është") tjetër shkruani ("jo");

Në këtë rast, programi strukturor është më pak vizual se programi me shkoj.

Operatorë të tjerë kërcimi mund të përcaktohen në gjuhët e programimit. Për shembull, në Pascal: thyej(ndërprerja e hershme e lakut, kalimi në deklaratën që duhet të ekzekutohet pas përfundimit të ciklit), vazhdojnë(përfundimi i hershëm i përsëritjes së ciklit aktual dhe kalimi në tjetrin), dalje(ndërprerja e hershme e nënprogramit, dalja prej saj), ndaloj(ndërprerja e parakohshme e programit, kalimi në përfundimin e tij). Operatorë të ngjashëm ekzistojnë në C, C++ dhe Java.

Deklaratë e përbërë

Një deklaratë e përbërë është një grup pohimesh të mbyllura në kllapa (në Pascal, fillojnëfund; në C, C++ - (…)).

Operatori i përbërë është futur në gjuhët e programimit për të lehtësuar përshkrimin e konstrukteve të gjuhës. Për shembull, në Pascal, pjesa e ekzekutueshme e çdo blloku (program, procedurë, funksion) është një deklaratë e vetme e përbërë. Në të njëjtën mënyrë, trupi i çdo operatori të ciklit përbëhet nga vetëm një operator, ndoshta një operator i përbërë. Një alternativë ndaj një deklarate të përbërë mund të jetë një fjalë funksioni që tregon fundin e një deklarate të veçantë, për shembull, FUND NËSE në gjuhën bazë.

Tema “Operatorët e Gjuhëve të Programimit” zakonisht studiohet vetëm në kontekstin e një gjuhe të caktuar programimi. Kur merret në konsideratë, është e rëndësishme të tregohet lidhja midis konstruksioneve algoritmike bazë dhe operatorëve: ndërtimet algoritmike shkruhen në një gjuhë programimi duke përdorur operatorët përkatës. Përjashtim në një kuptim të caktuar është ndërtimi sekuencial, ai përcakton rendin linear në të cilin kryhen veprimet. Veprimet në një program rreptësisht linear zbatohen vetëm nga operatorët e caktimit dhe operatorët e thirrjeve procedurale.

Në fazën fillestare të mësimdhënies së programimit, studentët kanë shumë probleme. Barriera e parë psikologjike që ata duhet të kapërcejnë kur mësojnë operatorin e detyrës. Një nga detyrat kryesore që duhet zgjidhur së bashku me studentët është shkëmbimi i vlerave të dy variablave. Ju mund t'i ftoni studentët të zgjidhin mendërisht problemin se si të ndërrojnë përmbajtjen e dy sirtarëve, për shembull, një tavolinë. Zakonisht në këtë fazë të diskutimit, nxënësit hamendësojnë se nevojitet një kuti e tretë (ndryshore) për të zgjidhur problemin. Sidoqoftë, kur shkruajnë këtë algoritëm, ata shpesh ngatërrojnë se në cilën pjesë të operatorit të caktimit (majtas ose djathtas) duhet të jetë kjo ose ajo ndryshore.

Gabimet në shkrimin e shprehjeve aritmetike dhe logjike lindin për shkak të mosnjohjes së përparësisë së veprimeve që përdoren në shprehje. Në të njëjtën kohë, veprimet kuptohen jo vetëm si aritmetike, por edhe si operacione krahasimi dhe lidhje logjike, dhe në gjuhën C, si një operacion caktimi, i cili është shumë i pazakontë për nxënësit e shkollës. Situata është e ndërlikuar nga fakti se në gjuhë të ndryshme programimi të njëjtat operacione kanë përparësi të ndryshme relative. Ju gjithashtu duhet t'i kushtoni vëmendje korrespondencës midis llojeve të ndryshores dhe shprehjes në pjesën e majtë dhe të djathtë të operatorit të caktimit (shih " Llojet e të dhënave”).

Kur zotëroni operatorët e përzgjedhjes, është e dobishme t'u ofrohet nxënësve të programojnë një algoritëm që përmban një strukturë me shumë degëzime, si duke përdorur një kombinim të operatorëve të kushtëzuar ashtu edhe duke përdorur një operator përzgjedhjeje.

Shembull. në një ndryshore numër të plotë N Shkruani moshën e personit në vite. Shkruani frazën " Unë jam K vjeç”, duke zëvendësuar fjalën vjetvit ose i vitit në varësi të numrit K. Këtu janë dy zgjidhje për këtë problem:

nëse(k mod 100)

pastaj writeln ("Unë jam ",k," vjeç")

rast k mod 10 e

0,5..9:writeln("Unë jam ",k," vjeç");

1:writeln("Unë jam ",k," viti");

2..4:writeln("Unë jam ",k," vjeç");

var k, n: numër i plotë;

readln(k); n:= k mod 10;

nëse(k mod 100)

pastaj writeln ("Unë jam ",k," vjeç") tjetër

nëse n=1 pastaj writeln ("Unë jam ",k," viti")

nëse(n>=) dhe(n<= 4)

pastaj writeln ("Unë jam ",k," vjeç")

tjetër writeln ("Unë jam ",k," vjeç")

Kur shqyrtojmë operatorët e ciklit, është e dobishme të propozohet që e njëjta detyrë të programohet në tre mënyra të ndryshme duke përdorur tre operatorë të ciklit, dhe anasjelltas, sipas gjendjes së problemit, të mësoni të përcaktoni se cili operator i ciklit është më i përshtatshëm në një rast të caktuar. .

Operatori i thirrjes së procedurës është vetëm në shikim të parë i thjeshtë. Këtu është e rëndësishme të shpjegohen rregullat për kalimin e parametrave në procedura dhe funksione, ndryshimi midis parametrave të variablave dhe parametrave të vlerës (në rastin e fundit, ne mund të kalojmë jo vetëm një emër ndryshore, por edhe një konstante apo edhe një shprehje të korrespondencës lloji). Parametrat zyrtarë dhe aktualë duhet të përputhen në lloj, por jo në emër, gjë që nuk është aspak e dukshme për studentët.

Mësimi i operatorit të kushtëzuar dhe veçanërisht të përbërës është një mundësi e mirë për të folur me studentët rreth stilit të programimit. Ka disa mënyra të zakonshme për të shkruar programe të strukturuara në Pascal, por të gjitha ato përmbajnë dhëmbëzim për të akomoduar strukturat e mbivendosura. E rëndësishme për regjistrimin e programeve dhe komenteve.

Si operand i parë - "shprehje1" - mund të përdoret çdo shprehje, rezultati i së cilës është një vlerë e tipit bool . Nëse rezultati është e vërtetë , atëherë ekzekutohet operatori i specifikuar nga operandi i dytë, pra "shprehja2".

Nëse operandi i parë është i barabartë i rremë , atëherë ekzekutohet operandi i tretë - "shprehja3". Operandi i dytë dhe i tretë, d.m.th. "expr2" dhe "expr3", duhet të kthejnë vlera të të njëjtit lloj dhe nuk duhet të jenë të tipit void. Rezultati i ekzekutimit të deklaratës së kushtëzuar është rezultat i "shprehjes2" ose rezultati i "shprehjes3", në varësi të rezultatit të "shprehjes1".

Kufizimet e përdorimit të operatorit

Operatori, bazuar në vlerën "shprehje1", duhet të kthejë një nga dy vlerat - ose "shprehje2" ose "shprehje3". Ekzistojnë një numër kufizimesh në këto shprehje:

  1. Ju nuk mund të përzieni një lloj të përcaktuar nga përdoruesi me një lloj të thjeshtë ose një numër. Është e ligjshme të përdoret NULL për një tregues.
  2. Nëse llojet e vlerave janë të thjeshta, atëherë lloji i operatorit do të jetë tipi maksimal (shih Casting).
  3. Nëse njëra nga vlerat është e tipit enum dhe tjetra është e tipit numerik, atëherë enum zëvendësohet me int dhe zbatohet rregulli i dytë.
  4. Nëse të dyja vlerat janë vlera enum, atëherë llojet e tyre duhet të jenë të njëjta, dhe lloji i operatorit do të jetë një enum.

Kufizimet për llojet e personalizuara (klasat ose strukturat):

  1. llojet duhet të jenë të njëjta ose njëri duhet të trashëgojë nga tjetri.
  2. nëse llojet nuk janë të njëjta (trashëgimia), atëherë fëmija në mënyrë implicite i hidhet prindit, pra lloji i operatorit do të jetë lloji i prindit.
  3. nuk mund të përzieni një objekt dhe një tregues - ose të dyja shprehjet janë objekte ose tregues. Është e ligjshme të përdoret NULL për një tregues.

shënim

Kini kujdes kur përdorni një operator të kushtëzuar si argument për një funksion të mbingarkuar, sepse lloji i rezultatit të operatorit të kushtëzuar përcaktohet në kohën e kompilimit. Dhe ky lloj përkufizohet si lloji më i madh i llojeve "shprehje2" dhe "shprehje3".

Shembull:

void func(double d) ( Print ("argument i dyfishtë: " ,d); )
void func(string s) ( Print ("argumenti i vargut: " ,s); )

bool Shprehja1=e vërtetë;
Shprehja e dyfishtë2=M_PI;
string Expression3= "3.1415926" ;

void OnStart()
{
func(Shprehje2);
func(Shprehje3);

func(Shprehje1?Shprehje2:Shprehje3);
func(!Shprehje1?Shprehje2:Shprehje3);// merrni paralajmërimin e përpiluesit në lidhje me transmetimin e qartë në llojin e vargut
}

// Rezultati:
// argument i dyfishtë: 3.141592653589793

// argumenti i vargut: 3.141592653589793
// argumenti i vargut: 3.1415926

Në paragrafin e mëparshëm, ne u njohëm me strukturën e një programi Pascal, mësuam se si të përshkruanim të dhënat dhe ekzaminuam operatorin e caktimit. Kjo është e mjaftueshme për të shkruar një program për konvertimin e të dhënave. Por rezultati i këtyre transformimeve nuk do të jetë i dukshëm për ne.

Për të nxjerrë të dhëna nga RAM në ekranin e monitorit, përdorni operatorin e daljes së shkrimit:

Këtu, në kllapa, vendoset lista e daljes - një listë shprehjesh, vlerat e të cilave janë shtypur. Mund të jenë shprehje numerike, simbolike dhe logjike, duke përfshirë variabla dhe konstante.

Një grup arbitrar karakteresh të mbyllura në apostrofa konsiderohet një konstante vargu. Konstanta e vargut mund të përmbajë çdo karakter të shtypur në tastierë.

Shembull. Deklarata write ("s=" , s) ekzekutohet si kjo:

  1. Në ekran shfaqen karakteret e mbyllura me apostrofa: s=
  2. në ekran shfaqet vlera e ndryshores së ruajtur në qelizën RAM me emrin s.

Nëse vlera e ndryshores s është 15 dhe ka një tip numër të plotë, atëherë në ekran do të shfaqet: s=15.

Nëse vlera e ndryshores s është 15, por ajo ka një tip real, atëherë në ekran do të shfaqet: s=l.5E+01.

Kur ekzekutohet një deklaratë dalëse, të gjithë elementët e listës së daljes shtypen direkt njëri pas tjetrit. Pra, si rezultat i funksionimit të operatorit të shkrimit (1, 20, 300), në ekran do të shfaqet sekuenca e shifrave 120300, e cila do të perceptohet nga ne si numri 120300, dhe jo si tre konstante numerike të veçanta. . Ka shumë mënyra për t'i bërë të dhënat dalëse më të aksesueshme për perceptim:

Formati i daljesështë një numër i plotë i specifikuar pas dy pikave, i cili përcakton se sa pozicione në ekran duhet të zërë vlera e daljes. Nëse ka më pak shifra në numër sesa pozicionet e rezervuara për të në ekran, atëherë pozicionet e lira mbushen me hapësira në të majtë të numrit. Nëse numri i specifikuar në formatin e daljes pas dy pikave është më i vogël se sa duhet, atëherë ai automatikisht do të rritet në minimumin e kërkuar.

Për të nxjerrë një numër real në formatin e pikës fikse, dy parametra specifikohen në listën e daljes për secilën shprehje:

  1. numrin total të pozitave të alokuara për numrin;
  2. numri i pozicioneve në pjesën thyesore të numrit.

Kur ekzekutohet një deklaratë e re shkrimi, dalja vazhdon në të njëjtën linjë. Për të kaluar në një rresht të ri, përdorni deklaratën writeln. Nuk ka dallime të tjera midis deklaratave të shkruara dhe të shkruara.

4.2.2. Programi i parë Pascal

Duke përdorur operatorët e konsideruar, ne do të hartojmë një program që llogarit perimetrin dhe sipërfaqen e një rrethi me rreze 5.4 cm.

Të dhënat fillestare në këtë problem janë rrezja: r - 5.4 cm Rezultati i programit duhet të jetë vlerat C - perimetri dhe S - zona e rrethit. С, S dhe r janë vlera të tipit real.

Të dhënat fillestare dhe rezultatet lidhen me raportet e njohura nga kursi i matematikës: С = 2πr, S = πr + . Një program që zbaton llogaritjet duke përdorur këto formula do të duket kështu:

Ky program është i saktë dhe e zgjidh problemin. Duke e ekzekutuar atë për ekzekutim, do të merrni rezultatin e mëposhtëm:

E megjithatë, programi që përpiluam ka një pengesë domethënëse: gjen perimetrin dhe zonën e një rrethi për një vlerë të vetme rreze (5.4 cm).

Për të llogaritur perimetrin dhe zonën e një rrethi për një vlerë të ndryshme të rrezes, do t'ju duhet të bëni ndryshime direkt në tekstin e programit, domethënë të ndryshoni operatorin e caktimit. Bërja e ndryshimeve në një program ekzistues të paktën nuk është gjithmonë i përshtatshëm (për shembull, kur programi është i madh dhe ka shumë operatorë caktimi). Më poshtë do të njiheni me operatorin, i cili ju lejon të futni të dhënat fillestare në procesin e ekzekutimit të programit, pa iu drejtuar ndryshimit të tekstit të programit.

4.2.3. Hyrja në tastierë

Për të futur vlerat e variablave në RAM, përdorni operatorin e hyrjes së leximit:

Kur lëshohet një deklaratë leximi, kompjuteri hyn në modalitetin e pritjes së të dhënave: përdoruesi duhet të fusë të dhënat nga tastiera dhe të shtypë tastin Enter. Disa vlera të llojeve numerike të ndryshueshme mund të futen të ndara me hapësira ose presje. Kur futni variabla të karaktereve, hapësirat dhe presjet trajtohen si karaktere, kështu që ato nuk mund të vendosen.

Vlera e parë e një variabli të futur nga përdoruesi vendoset në vendndodhjen e memories, emri i të cilit ndodhet i pari në listën e hyrjes, e kështu me radhë. Prandaj, llojet e vlerave hyrëse (rrjedha hyrëse) duhet të përputhen me llojet e variablave të specifikuara. në seksionin e deklarimit të ndryshoreve.

Shembull. Le te jete

var i, j: numër i plotë; x: real; a: char;

Caktoni variablat i, j, x dhe vlerat 1, 0, 2.5 dhe "A". Për ta bërë këtë, ne përdorim operatorin e leximit (i, j, x, a) dhe organizojmë rrjedhën e hyrjes në një nga mënyrat e mëposhtme:

Këtu, ne jo vetëm që përdorëm ndarës të ndryshëm (hapësirë, presje), por gjithashtu përfaqësonim rrjedhën hyrëse si një, dy dhe katër rreshta.

Për të futur të dhëna nga tastiera, mund të përdorni edhe deklaratën readln, e cila ndryshon nga deklarata readln vetëm në atë që pas ekzekutimit të saj, kursori kalon në një rresht të ri.

Le të përmirësojmë programin n_1 duke organizuar futjen e të dhënave në të duke përdorur deklaratën e leximit. Dhe në mënyrë që përdoruesi të dijë se për çfarë synohet programi dhe të kuptojë saktësisht se çfarë veprimi pret kompjuteri prej tij, ne do të shfaqim mesazhet përkatëse me tekst duke përdorur operatorin writeln:

Rezultati i programit të përmirësuar:

Tani programi ynë mund të llogarisë perimetrin dhe sipërfaqen e një rrethi për çdo vlerë të r. Me fjalë të tjera, nuk zgjidh një problem të vetëm, por një klasë të tërë problemesh. Për më tepër, programi organizon qartë dhe me lehtësi futjen e të dhënave fillestare dhe daljen e rezultateve. Kjo siguron një ndërfaqe miqësore të përdoruesit.

Gjëja më e rëndësishme

Deklaratat e hyrjes read dhe readln përdoren për të futur vlerat e variablave në RAM.

Operatorët e daljes shkrim dhe shkrim përdoren për të nxjerrë të dhëna nga RAM në ekranin e monitorit.

Hyrja e të dhënave fillestare dhe dalja e rezultateve duhet të organizohen qartë dhe me lehtësi; kjo siguron një ndërfaqe miqësore të përdoruesit.

Pyetje dhe detyra

  1. Shkruani një deklaratë që jep hyrjen e vlerës së shumës së ndryshores gjatë ekzekutimit të programit.
  2. Variablave të plotë i, y, k duhet t'u caktohen respektivisht vlerat 10, 20 dhe 30. Shkruani deklaratën hyrëse që korrespondon me rrjedhën hyrëse:
      a) 20 10 30
      b) 30 20 10
      c) 10 30 20
  3. Përshkruani variablat e nevojshëm për të llogaritur sipërfaqen e një trekëndëshi duke pasur parasysh tre anët e tij dhe shkruani një operator që ofron hyrjen e kërkuar.
  4. Cili është rezultati i ekzekutimit të deklaratës?
      a) shkruani (a)
      b) shkruani (1 a")
      c) shkruani (1 a = 1, a)
  5. Çfarë lloji është ndryshorja f nëse numri i mëposhtëm është shfaqur pas ekzekutimit të deklaratës write (f)?
      a) 125
      b) 1.25E+2
  6. Si mund të shfaq një numër real në formatin e pikës fikse?
  7. Shkruani pohimet për futjen e dy numrave dhe nxjerrjen e tyre në rend të kundërt.
  8. Jepet një fragment i programit:

    Lexo nje); lexo (b); c:=a+b; shkruaj(a,b); shkruaj (t)

    Thjeshtoni atë duke zvogëluar numrin e deklaratave hyrëse dhe dalëse.

  9. Jepet një fragment i programit:

    a:=10; b:=a+l: a:=b-a; shkruani (a, b)

    Cilët numra do të shfaqen në ekranin e kompjuterit?

  10. Shkruani një program që njehson sipërfaqen dhe perimetrin e një drejtkëndëshi duke pasur parasysh dy brinjët e tij.

"Printer për printimin e kartave plastike" - Mundësia për të vendosur dy herë më shumë informacion në një kartë plastike. Çmimi. Printer për printimin e kartave plastike. ZEBRA P110i/ P120i. Pasqyrë e gamës së modelit. Printera kartash plastike me ngjyra të plota ekonomike. Performancë e lartë Gama e gjerë e koduesve opsionalë.

"PC Peripherals" - Peripherals. Printera. Regjistro. Kamera dixhitale. Hierarkia e lidhjes do të thotë. Përshtatësit video. Klasifikimi i PU. Autobus Serial Universal. CD-R. Opsionet e përzgjedhjes. Blic i integruar. Pionierët. Natyra. Modemi. Video terminal. Skanera. Pajisjet periferike të PC. Klasifikimi i murinave.

"Mjetet e hyrjes dhe daljes së informacionit" - Skaner. Plotter. CRT. Printera. Tastierë. Kamera dixhitale dhe kamera fotografike. Funksione. Pajisja hyrëse universale. Pajisjet e hyrjes dhe daljes së informacionit. Tabletë grafike. Miu.

"Pajisjet e daljes së informacionit" - Pajisja kompjuterike. Sa më e lartë të jetë rezolucioni i monitorit, aq më e lartë është cilësia e imazhit. Disavantazhet e printerëve me bojë: Konsumi i lartë i bojës; Kostoja e lartë e karburantit. Monitorët me kristal të lëngët me panel të sheshtë (LCD) janë kompakt dhe nuk lëshojnë rrezatim. Pajisjet e daljes së informacionit. Monitori është një pajisje universale e daljes së informacionit.

"Printers" - Lokale. Blloku termik, shkrirësi, shkrirësi - një njësi në të cilën toneri është pjekur në letër. Laser. Matricë (gjilpërë). Me kalimin e kohës, ato humbasin vetitë e tyre dhe i nënshtrohen zëvendësimit të rregullt nga një specialist. Inkjet. Rrjeti. Ndryshuar nga përdoruesi. Karakteristikat e printerëve. Zhvillues, transportues, zhvillues - grimcat më të vogla metalike që transferojnë tonerin në rulin e fotografisë.

"Nënsistemi I/O" - Pika e ndërprerjes. Tabelat. Vendosje e vazhdueshme. atribut. Lejet e skedarit. Lista e lidhur e indekseve. Të dhënat. organizimi fizik. Qasje direkte në kujtesë. Skedar indeks-sekuencial. Montimi. I/O i kontrolluar nga ndërprerje. Lejet e hyrjes në drejtori. Organizimi i punës paralele.

Gjithsej janë 27 prezantime në temë

Kodi i programit është paraqitur në fig. 4.3-9.

Opsioni i rreptë në opsionin eksplicit në sistemin e importeve. Klasa Publike Math Form1 "Funksioni për të futur koordinatat e pikës në TextBox Funksioni vvod(ByVal T As TextBox) Si Single Return CSng(Val(T.Text)) Funksioni fundor "Procedura për të nxjerrë rezultatin në TextBox Sub vivod (ByVal Z As Single, ByVal T As TextBox) T.Text = CStr(Z) Fund Sub "Funksioni për llogaritjen e gjatësisë së një segmenti të linjës nga koordinatat e dy pikave Gjatësia e linjës së funksionit publik (ByVal x1 si e vetme, _ ByVal y1 As Single, ByVal x2 As Single, _ ByVal y2 As Single) As Single Kthimi CSng(Sqrt((x2 - x1) ^ 2 + (y2 - y1) ^ 2)) Funksioni Fund "Procedura për llogaritjen e perimetrit dhe sipërfaqes i një trekëndëshi Sub PS (ByVal x1 Si Single, ByVal y1 Si Single, _ ByVal x2 Si Single, ByVal y2 Si Single, _ ByVal x3 Si Single, ByVal y3 Si Single, _ ByRef P Si Single, ByRef S Si Single ) Dim A, B, C, Pp Si Single A = Gjatësia e segmentit (x1 , y1, x2, y2) "Thirrja e funksionit të llogaritjes gjatë neg. B = Gjatësia e vijës (x2, y2, x3, y3) C = Gjatësia i vijës (x3, y3, x1, y1) P = (A + B + C) : Pp = P / 2 S = CSng( Sqrt(Pp * (Pp - A) * (Pp - B) * (Pp - C))) Fund Sub "Button1 kliko mbajtësi i ngjarjes Private Sub Button1_Click(Dërguesi ByVal As System.Object, _ ByVal e As System. EventArgs) Trajton Button1. Kliko Dim x1 Si Single, x2 Si Single, x3 Si Single Dim y1 Si Single, y2 Si Single, y3 Si Single Dim Per Si Single, Plo As Single 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, TextBox) vivod(Plo, TextBox5) Fund Sub Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click End Fund End Sub End Class

Ekzekutimi i aplikacionit dhe marrja e rezultateve

Rezultati është treguar në fig. 4.3-10.

Dëshmi e korrektësisë së rezultatit

A=
= 2,82843 B =
= 2

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


Pyetje sigurie mbi këtë temë

“Struktura e VB-programeve, moduleve dhe procedurave.

Mjete programimi për algoritmet e strukturës lineare"

1. Çfarë është një model matematikor?

2. Cilët janë hapat kryesorë të përfshirë në zgjidhjen e problemeve kompjuterike?

3. Cilat faza të zgjidhjes së problemeve kompjuterike kryhen pa pjesëmarrjen e një kompjuteri?

4. Si quhet modeli matematikor i një objekti ose dukurie?

5. Cilat janë hapat në procesin e zhvillimit të programit?

6. Çfarë quhet algoritëm?

7. Cilat janë vetitë kryesore të një algoritmi?

8. Cilat janë mënyrat për të përshkruar algoritmet?

9. Cilat simbole grafike përshkruhen zakonisht në diagramet algoritme?

10. Si funksionon një përkthyes?

11. Si funksionon përpiluesi?

12. Çfarë është një algoritëm linear?

13. Çfarë është një algoritëm ciklik?

14. Çfarë është një algoritëm degëzimi?

15. Cili është ndryshimi midis transferimit të rezultateve të ekzekutimit të funksioneve dhe procedurave?

16. A e vërteton marrja e një rezultati të besueshëm korrektësinë e programit?

17. Cilat gabime mund të mbeten të pazbuluara nëse nuk e kontrolloni (shikoni, lëvizni) programin?

18. Si ndryshon testimi i një programi nga korrigjimi i tij?

19. A mund të provojë testimi korrektësinë e një programi?

20. Në cilën fazë të punës në program llogariten rezultatet e testit standard?

21. Listoni hapat kryesorë në procesin e testimit.

22. Cili është ndryshimi midis gabimeve sintaksore dhe gabimeve semantike?

23. Çfarë tregon mungesa e mesazheve të makinës për gabimet sintaksore?

24. Çfarë lloj gabimesh nuk mund të zbulojë përpiluesi?

25. Çfarë është një program?

26. Në cilën fazë është kërkimi dhe eliminimi i gabimeve në program?

27. Çfarë është një sistem programimi?

28. Çfarë është një procedurë?

29. Cilat janë përfitimet e një programi që ka procedura?

30. Cilat mjete proceduriale të programimit janë të disponueshme në VB?

31. Si shkëmbehen të dhënat ndërmjet procedurave individuale të programit?

32. Cilat janë parametrat aktualë dhe formalë?

33. Si të kalohet si parametër: një konstante, një ndryshore, një shprehje?

34. Si përdoren variablat globale?

35. Si përdoren variablat lokale?

36. Cilat janë parametrat formalë?

37. Cilat janë parametrat aktualë?

38. Çfarë ndodh kur thirret një procedurë?

39. Si mund të kalohen parametrat në një procedurë?

40. Cilat parametra kalojnë sipas vlerës?

41. Cilat parametra i kalohen adresës?

42. Çfarë është programimi procedural?

43. Cili është rezultati i ekzekutimit të një funksioni?

44. Si i deklaroni variablat individuale në mënyrë që ato të jenë lokale brenda funksionit?

45. Cili operator përdoret për të dalë herët nga një funksion?

46. Çfarë kontrollohet gjatë thirrjes së funksioneve dhe procedurave?

47. Si duhet të deklarohen parametrat formalë në mënyrë që të kalojë një parametër variabël sipas vlerës?

48. Si është e nevojshme të deklarohen parametrat formalë për të kaluar një parametër variabli sipas adresës?

49. Si thirret një procedurë funksioni nga programi thirrës?

50. Cili mund të jetë rezultati i procedurës?

51. Cili deklaratë përdoret për të dalë herët nga një procedurë?

52. Ku mund të gjenden përshkrimet e funksioneve dhe procedurave?

53. Ku do të jetë i disponueshëm një variabël i deklaruar me deklaratën publike?

54. Ku mund të gjendet operatori privat?

55. Çfarë është një koment dhe rregullat për regjistrimin e tij?

56. Cilat janë vlerat e variablave në fillim të programit?

57. Pse përshkruhen (përcaktohen) procedurat dhe funksionet?

58. Si quhen procedurat?

59. Si quhen funksionet?


Informacione të ngjashme.


Artikujt kryesorë të lidhur