Особенное место в Turbo Pascal занимают циклы.Те започват да учат веднага след практикуването на уменията за входно-изходна информация на екрана. В крайна сметка, повечето от задачите се свеждат до факта, че циклите с параметъра и други конструкции спомагат за улесняване на писането и функционирането на конкретен блок от програмата.
Разнообразие от цикли
Има три вида:
- с параметър
- с предварително условие
- с пост-условие.
Параметрите на веригите, в противен случай те се наричат За ... до ...направи или За ... downto .... направете, повторете определена последователност от действия. По принцип, други сортове се използват за същата цел, но само в цикъла броят на стъпките е известен предварително.
В две други конструкции (Докато и Повторение) броят на повторенията първоначално е неизвестен. Затова при изучаването на дадена задача вече е необходимо да се разбере кой цикъл ще се използва.
Основни определения по темата
Циклы с параметрами – многократно повторяющиеся итерация. Броячът е основният индикатор, с който се изпълнява зададената конструкция. Границите на пропастта показват степента, до която ще се изпълняват определени повторения. Между другото, изобщо не е необходимо първоначалната стойност да е равна на 1. Потребителят самостоятелно задава двете граници на празнината. Тялото на цикъла е набор от команди, за които вече е определен броят на повторенията.
Терминът "контури с параметри" означава, че вот тази конструкция се проверява състоянието, след което се извършва набор от итерации. Броячът се увеличава (или намалява) и всичко се повтаря. Тялото на цикъла ще се използва, докато условието е вярно.
За ... да ... направи: алгоритъм на работа, синтаксис
Както вече споменахме, цикли с параметър се използват в задачи, които определят "интервала", в който да се работи. Така че, това може да бъде масив от числа, дни от седмицата, редове на стихотворение и т.н.
Има 2 вида конструкции: да се увеличи броячът и да се намали. Първата конструкция ще бъде написана по следния начин:
за out.променлива : = граница 1 да се граница 2 направете
започнете
контурно тяло;
край;
Тук: реф. променлива деклариран от потребителя в началото на програма или блок; граница 1 и граница 2 - началната и крайната стойност на интервала; в тяло цикъл предписани са редица действия, които трябваизпълнявани от програмата. Трябва да се помни, че ако тялото на цикъла съдържа само 1 команда, тогава скобите на оператора begin ... end могат да бъдат пропуснати. В тази версия на дизайна броячът, а именно <init.variable>, ще се увеличи със стъпка, равна на 1.
за out.променлива : = граница 1 в центъра граница 2 направете
започнете
контурно тяло;
край;
Тук реф. променливата ще намалява на стъпки от 1.
Схемата на цикличната операция с параметъра For ... to ... do ще изглежда така:
- Задава се стойността на горната граница на процепа, т.е. граница 2.
- Променлива на източника присвоява се стойността на параметъра граница 1.
- Състоянието се проверява: референтна променлива ≤ граница 2.
- При получаване на резултата Вярно (Вярно) тялото на цикъла се изпълнява.
- Броячът се увеличава с 1.
- Стъпки 3-5 се изпълняват точно, докато условието е вярно: референтна променлива> граница 2... Веднага след като това се случи, цикълът излиза и управлението се прехвърля към командата след дадената конструкция.
В For ... downto ... do алгоритъмът на работа е подобен на горния, с изключение на някои точки:
- В третия параграф се проверява състоянието: референтна променлива ≥ граница 2.
- В 5-ия ред на алгоритъма броячът се намалява с 1.
- В шести параграф команди 3-5 ще се изпълняват, докато условието не бъде изпълнено: източник променлива <граница 2.
Всичко останало е еднакво и в двата алгоритма за работа.
Блокова диаграма на контура с параметър
Циклите с параметър имат следната форма на блок-схема (въпреки че тя вече е представена по-горе). Тук е показана и опростена организация на структурата.
Основни изисквания за цикъл с параметър
Цикли с параметри изискват определен вид условия.
- Граници за контра и пропуски (т.е. реф.променлива, граница 1 и граница 2) трябва да са от същия тип данни. Ако има само съвместимост между началната и крайната стойност на сегмента и оригиналната променлива, тогава програмата може да се държи неправилно, тъй като границите ще бъдат преобразувани според типа данни на оригиналния параметър.
- Типът данни, към който трябва да принадлежат стойностите на параметрите, трябва да е цяло число. Силно обезкуражено е да се използва истински тип.
- Нежелателно е насилствено да се променя стойността на параметъра out.variable в тялото на цикъла. В противен случай потребителят едва ли ще може да проследи възможните грешки, които са се появили.
- За разлика от други видове цикли, За ... да ... направи или За ... downto ... do стъпка не може да се промени към параметър, различен от 1.
Турбо Паскал: Как да се измъкнем от примката
Често има задачи, в които имацикъл, тоест провереното условие винаги е вярно. Процедурата за прекъсване помага за изваждането на цикли с предварително условие, последващо условие, параметър Тоест работата им се прекратява предсрочно.
Цикли с параметър Pascal (програмиранекоето приема "вечната" истина на състоянието) може да бъде спряно с помощта на Продължи. Тук работата е организирана по следния начин: текущата итерация завършва изпълнението си предсрочно, контролът се прехвърля към следващата команда, но без да излиза от цикъла.
Процедурата за изход е необходима, за даза да завършите работата на един или друг блок в програмния код. Извиква се вътре в процедура (функция) и в същия момент изпълнението на това „парче“ незабавно спира. Ако Exit е в основния блок на програмата, тогава тя излиза.
Процедурата за спиране свежда принципа на работа до следното: програмата се прекратява напълно.
Примери за задачи с решение
Ще бъде полезно за потребителя след изучаване на тематаПримери за "цикли с параметър в паскал" първо проучете и след това се упражнявайте да пишете кода сами. Простите задачи помагат на бъдещия програмист да научи теорията на практика и след това да я приложи успешно. По темата „Цикли с параметър“ могат да се намерят лесни и сложни примери за проблеми с решение. Ето 3 проблема, при които се анализират алгоритмите на работа и се дават обяснения и коментари за всяко решение.
Задача 1
Даден е двумерен масив от естествени числа в диапазона [0..199], избран на случаен принцип. Намерете броя на всички двуцифрени числа, чиято сума от цифри е кратна на 2.
Алгоритъм на действията:
- Създайте двуизмерен масив.
- Проверете всеки номер за съответствие с условията:
а) ако 9 <X <100, тогава го разделете изцяло на 10, като използвате div;
б) изберете втората цифра на числото, като разделите с mod;
в) добавете маркираните числа;
г) разделете на mod дадената сума на 2;
д) ако резултатът е 0, то броячът се увеличава с 1.
Проблем 2
Даден е едномерен масив от цели числа. Намерете броя на положителните числа.
Алгоритъм на действията:
- Създайте масив от цели числа, създадени с рандомизиране.
- Вмъкнете условен оператор IF в цикъла с параметъра, който ще провери посочения елемент за съответствие с условието: X> 0.
- Ако условието е изпълнено, то броячът се увеличава с 1.
- След цикъла, получената стойност на брояча трябва да се покаже на екрана.
Данните в скоби {} сакоментари. В ред 11 можете да покажете масива на екрана по два начина: оставете интервал между числата или отделете определен брой клетки за всеки елемент (в този случай има 5 от тях).
В ред 12 променливата на брояча също може да бъде увеличена по два начина: или добавете 1 към предишната стойност, или използвайте стандартната функция на Inc.
Задача 3
Получава се квадратна матрица. Намерете броя на положителните елементи на главния диагонал.
Обяснения:
В масив от числа основният диагонал се простира отгорния ляв ъгъл в долния десен ъгъл. Нейната особеност е фактът, че индексите на редове и колони са еднакви. Следователно е достатъчно да организирате 1 цикъл, за да се движите през линиите, без да преминавате през останалите елементи.
Алгоритъм на действията:
- Създайте квадратна матрица.
- Задайте променливата, отговорна за броене на положителни елементи, на стойност "0".
- Създайте цикъл за създаване на квадратна матрица.
- Организирайте цикъл, за да проверите състоянието: ако числото на главния диагонал> 0, тогава броячът се увеличава с 1.
- След края на цикъла, покажете стойността на променливата, съхраняваща броя положителни елементи на екрана.
Противопоставянето на два езика за програмиране: C и Turbo Pascal
Като правило, уважаващият себе си програмист знаеняколко езика. Например, това може да е C ++, Turbo Pascal, Delphi, Java и др. Конфронтацията между двамата беше ясно изразена още през 80-те години. (С и турбо паскал). В края на 20 век същата борба се наблюдава между C ++ и Java.
Във виртуално пространство сред три дузиниИма три най-ярки двойки езици за програмиране, чието противопоставяне изуми най-големите умове на киберпространството: Algol-60 и Fortran, Pascal и C, Java и C ++. Разбира се, тези чувства са субективни, но по едно или друго време някой от двойката беше лидер. Това се дължи на изискванията на индустрията и необходимостта от определен софтуерен продукт. През 70-те. Fortran "управлява света", през 80-те - Turbo Pascal, през 90-те - C ++. Разбира се, никой от тях не е „умрял“. По-скоро те са се превърнали в усъвършенствани софтуерни продукти.
Когато изучавате езици за програмиране, ще забележите, че синтаксисът е сходен в някои теми. Така че циклите с параметър в C са подобни на подобни конструкции в Pascal, с изключение на някои точки.
Интересното е, че разработчиците на Turbo Pascal (OldLight) използва резултатите от разработките на американски учени, докато в Новия свят те активно използват резултатите от изследвания на европейски специалисти. В Европа разработчиците се застъпват повече за чистотата и компактността на програмните езици, а американските умове са по-склонни да използват новомодни тенденции при писането на код.