Mga computerSoftware

Turbo Pascal. Habang ... do - loop na may isang precondition

Turbo Pascal, bagaman ay hindi mga paboritong application sa buong mundo para sa programming, ngunit ang mga tagalikha, ang paggawa ng kanilang mga unang hakbang sa pagsulat ng software, simulan ang kanilang mga kakilala sa medium na ito. Nagbibigay ito ng ideya ng mga ramifications, operator, mga pag-andar, at mga pamamaraan, pati na rin ang maraming iba pang mga bagay. Halimbawa, sa pag-aaral programmer mukha cycles sa Turbo Pascal: Habang, Para at Ulitin.

Ang konsepto ng cycle at variant nito

Ang isang cycle ay isang paulit-ulit na aksyon. Sa environment na ito, gamitin ang:

  • na may parameter (Para sa ... sa ... do);
  • may precondition (Habang ... do);
  • isang postcondition (Ulitin ... hanggang).

Ang unang uri ay ginagamit kapag ito ay kilala kung gaano karaming mga hakbang sa paglutas ng problema. Subalit, may mga isang bilang ng mga gawain, kung saan walang impormasyon tungkol sa kung gaano karaming beses ay paulit-ulit o pagkilos na iyon. Sa kasong ito, Pascal Habang cycle ay magiging lubhang kailangan, tulad ng, sa prinsipyo, at Ulitin.

Ang istraktura ng ikot

Ano ang kakanyahan ng trabaho sa Pascal Habang, Para at Ulitin cycles? Sa ganoong constructions magtalaga ng isang header at isang katawan. Ang unang bahagi ng mga tinukoy na mga variable na "trabaho" ay tinukoy sa pamamagitan ng ang mga kondisyon sa petsa ng pagkabisa sa kung saan ang katawan ay pinaandar. Sa pangalawang bahagi ng inireseta expression na gagamitin sa kaso ng mga kondisyon, ie. E. Ang tunay Ang, sa halip ng False Ang.

Kapag pag-ulit ay ginanap sa huling linya ng code, pagkatapos ito ay bumalik sa header, kung saan ang mga kondisyon ay nasubukan. Kung katotohanan operasyon ay paulit-ulit, at sa kaganapan ng anumang paglabag ng programa ang "Lumabas" mula sa cycle at gumaganap ng karagdagang mga operasyon.

Sumusunod ang hitsura Habang loop. Pascal ABC at naturang program nangangailangan ng pagsulat tulad ng code:

  • Habang kondisyon gawin;
  • Simulan;
  • Ang loop katawan;
  • End.

Sa kaganapan na ang loop isasagawa 1 operator (1 pagkilos), pagkatapos ay ang "bracket» magsimula ... end maaaring nakaligtaan.

flowchart cycle

Ang Turbo Pascal Habang ang mga sumusunod na tampok:

  • sa loob ng istraktura ay maaaring maging mahirap na gamitin kondisyon;
  • matapos ang salita ay hindi dapat maging isang comma (ito ay itinuturing na isang bug sa Turbo Pascal at Pascal ABC);
  • variable, pare-pareho o expression na nagsisilbing kapag ang isang reply False output kanila subroutines dapat kinakailangang maging lohikal na uri, ie. e. Boolean.

Ito ay ang mga sumusunod block diagram ng iba't-ibang cycle. Ipinapakita nito ang pagkakasunod-sunod ng mga aksyon pagpapatupad.

Ang algorithm ng ikot

.. Sa pinakasimpleng programming kapaligiran, m at h in Pascal ABC, Habang loop nagpapatakbo sa mga sumusunod na prinsipyo:

  • .. Given iteration, ie, pag-uulit, ay magaganap nang maraming beses hangga't ang kalagayan ay totoo (True);
  • sa lalong madaling ang kalagayan ay hindi nasiyahan at nagbibigay sa False sagot (o kung hindi man "Mali"), ang operator sa labas ng loop;
  • sa lalong madaling nangyari ito, ang programa "nagpunta" sa disenyo lumilitaw pagkatapos cycle.

Ito ay isang makabuluhang pagkakaiba mula Habang Ulitin, t. E. Ang isang pre-cycle mula sa postconditions.

Ito ay mahalaga upang isama sa loop hangganan pagbabago sa isang naibigay na variable header Habang. Sa anumang kaso, dumating man ang sitwasyon na nagbibigay sa False. Kung hindi magkakaroon ng loop, at pagkatapos ay mayroon na kumuha ng mga karagdagang hakbang upang lumabas mula sa compiler. Ang ganitong mga error ay itinuturing na bastos at hindi mapatatawad.

Paano upang lumabas mula sa programa habang umiikot?

Kadalasan ang sitwasyon ay nangyayari kapag ang operator ay nagbibigay Habang Pascal loop sa nakasulat na code programa. Ano ang ibig sabihin nito? Pag-ulit ay paulit-ulit na isang walang-katapusang bilang ng mga beses, dahil ang kalagayan ay palaging totoo. Halimbawa, ang code fragment:

  • Habang 2> 1 gawin;
  • Sumulat (1).

Sa kasong ito, upang ihinto ang pagpapatupad ng mga gawain, pindutin lamang CTRL + F2.

Mayroong 2 mga paraan upang kontrolin ang pag-uugali ng naturang programa. Halimbawa, kung ang isang pagpapawalang Magpatuloy code na magbabalik control sa simula ng cyclic istraktura (dito sa loop exit na kondisyon ay na subaybayan, ie. E pagpapatupad ng kasalukuyang pag-ulit ay nagambala). Pagkatapos control ay inilipat sa isang Habang loop sa nakaraang test.

Break operator ay maaaring ihinto ang pagpapatupad ng buong cycle at ilipat ang control sa susunod na pag-ulit. Dito, ang output ng ang konstruksiyon ay hindi kinokontrol. Ipinapakita ng larawan ang mga halimbawa ng paggamit ng mga operator.

Pagtugon sa mga hamon

Isaalang-alang Habang nasa operasyon cycle. Pascal ay nagmumungkahi upang malutas ang problema iba-iba. Isaalang-alang ang isang simpleng upang maunawaan ang mga operasyon Hayaan. Malulutas gawain sa Pascal ABC programa. Ngunit ipapakita at ang imahe ng classical Turbo Pascal na kapaligiran para sa paghahambing.

Task 1: ibinigay ang function Y = 5-X ^ 2/2. Lumikha ng isang talahanayan ng mga halaga sa mga palugit sh = 0,5 sa ibabaw ng interbal na [-5, 5].

algorithm ay:

  • magtakda ng isang variable X sa isang paunang halaga na katumbas ng 5 (ie simula ng gap ..);
  • kalkulahin ang Y na halaga, habang ang variable x ay hindi maabot ang dulo ng sinabi interval;
  • ipakita ang mga halaga ng pag-andar at ang absisa (X);
  • X dagdagan sa pamamagitan ng isang paunang-natukoy na hakbang.

Narito ang code sa Pascal ABC programa.

Paano gumagana ang code sa Turbo Pascal program. Ang larawan sa ibaba ay naglalarawan ito.

Task 2: ibinigay ng isang array A na binubuo ng buong positibo at negatibong numero. Naglalaman ito ng 10 mga item. Ang kailangan upang bumuo ng isang matrix kung saan ang positibong elemento ng array A ay ipinapakita sa pagkakaroon ng isang mas index. Ipakita ang kabuuan ng mga kahon sa bilang ng mga bagong matrix.

algorithm ay:

  • Kailangan mong sumulat ng isang routine na "trabaho" lamang sa ang mga elemento ng array A pagkakaroon ng isang mas index. Sa loop variable na halaga naaayon sa pagkakapare-pareho ng index ay incremented ng dalawa.
  • Kung ang numero ay isang pantay na index mula sa matrix A ay tumutugon sa kalagayan x> 0, ang counter array ay incremented ng 1. Ang kasalukuyang halaga ng counter variable ay ang index ng bilang kopya sa array B.
  • Sa una, ang mga variable na summa, ay responsable para sa paghahanap ng sum ng squares ng positive integers, ay nakatakda sa 0. Pagkatapos, ang operasyon ay natupad: sa nakaraang sum ay idinagdag ang bagong mga halaga ng isang parisukat.
  • Huwag matakot, kung hindi lahat ng positibong numero ay inilipat mula sa isang array sa isa pa. Ikaw ay may na maging maingat. Maraming mga baguhan programmer upang muling isulat ang code sa isang pagkasindak. Ito ay kinakailangan upang maingat na suriin ang kundisyon: positibong numero na nasa kahit "lokal", ibig sabihin, na may mga indeks na multiples ng 2 ...

Manual pagsunod ay kinakailangan upang matiyak na ang mga pagkalkula ng katapatan. Kung minsan, gamit ang pamamaraang ito ay maaaring makilala ang mga error na hindi mahuli ang mata sa ilalim ng normal na inspeksyon ng mga nakasulat na code.

Kung dalhin namin ang manual kalkulasyon, ito ay posible upang matiyak na ang programa ay gumagana nang maayos. Ito, sa turn, sinabi na ang code generation algorithm ay tama, ang pagkakasunud-sunod ng mga aksyon ay humahantong sa isang lohikal na dulo.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 tl.delachieve.com. Theme powered by WordPress.