програмни грешки

Грешки при програмиране, има два типа на синтаксиса и логика. Синтаксис грешки е неправилното изписване на ключови думи и езикови символи. Всички видове синтактични грешки могат да бъдат намерени в компютъра 99% от случаите.

Логическите грешки, свързани с неправилното прилагане на алгоритъма на програма логика. В 99% от случаите, компютърът ще изпълни програмата, но в резултат на работата ще бъде наред.

Примери за синтактични грешки в Паскал и отстраняването им:

1) Не се постави запетая. След стартиране на програмата, като натиснете +, най-горния ред ще бъдат записани в червено съобщение:

Грешка 85 ";" очакваното.

(Грешка 85: "" не е на разположение.)

2) В описанието на променливите не записва променлива, и то присъства в програмата. След стартиране на програмата, ще получите съобщение:

Грешка 3: Неизвестен идентификатор.

(Грешка 3: неизвестна ID).

Курсорът ще бъде настроен на тази променлива. Необходимо е да се коригира грешката, т.е. за записване на една променлива в раздела за декларация на променлива и да продължите.

3) Не се постави точка след края на оператора в края на програмата. съставител Съобщението е:

Грешка 10: Неочакван край на файла.

(Грешка 10: Грешен края на файла.)

Курсорът е настроен на буквата "е" в думата "край". Необходимо е да се сложи край и да изпълни програмата отново.

Изпълнение на програмата. Ключови бутони

След задаване на програмата, можете да опитате да го изпълни.

За да направите това, натиснете клавишите + (Задръжте , преса ). Същата операция може да се направи, като отидете в главното меню, като натиснете , и след това да преместите курсора, за да изберете Run опция и натиснете <Ввода>.

Сега ние трябва да намерим новата опция от менюто Старт (стартиране) и натиснете <Ввод>.

Ако не е имало грешка при въвеждане, а след това, след няколко секунди, изображението ще се превключи на екрана. Turbo Pascal предоставя на разположение на на работеща програма на потребителя екран. Този екран се нарича прозорец на програмата.

Първите грешки и тяхното отстраняване

1. Не се постави запетая, например, след readln оператор (а). След стартиране на програмата, като натиснете +, най-горния ред ще бъдат записани в червено съобщение:

Грешка 85 ";" очакваното.

(Грешка 85: "" не е на разположение.)

2. Описание на променливите не записва променлива, а програмата е налице, като променливата в. След стартиране на програмата, ще получите съобщение:

Грешка 3: Неизвестен идентификатор.

(Грешка 3: неизвестна ID).

Курсорът ще бъде настроен на тази променлива, в нашия пример, променливата век. Необходимо е да се коригира грешката, т.е. напиши променливата век в раздела за декларация на променлива и да продължите.

3. Не се постави точка след края на оператора в края на програмата. съставител Съобщението е:

Грешка 10: Неочакван край на файла.

(Грешка 10: Грешен края на файла.)

курсора е настроен на буквата "е" в думата "край". Необходимо е да се сложи край и да изпълни програмата отново.

Помощ в "Паскал".

В Turbo Pascal има центрове за услуги, обхващащ всички възможни въпроси за писане на програми. Основното нещо - това е съвети за ключови думи, език.

опции на менюто HELP

Помощ за помощ. Той предоставя информация за това как да използвате помощната информация,. Имайте предвид, че съобщенията помощ бюро всички препратки подчертани. Можете да вземете някоя от тях и на мишката, като кликнете два пъти върху левия бутон за разглеждане доведе до съответното съобщение за помощ (или поставяне на курсора в него със стрелките и пресата трансфер Enter).

Файлове. С тази опция можете да зададете желаната файлове бюрото за помощ.

Съставител директиви. Показва помощ за директивите на компилатора.

Запазени думи. Показва помощ за запазени думи.

Стандартни единици. Показва помощ за стандартните модули.

TURBO PASCAL ЕЗИК. Показва помощ от езика Turbo Pascal.

СЪОБЩЕНИЯ ЗА ГРЕШКИ. Показва помощ за съобщения за грешки.

Лекция №7 процедури. Програмиране рекурсивни алгоритми.

Най-дедуктивния метод на програмиране

Програмистът трябва да види цялата програма, която решава някакъв проблем, а след това се разделя на отделни части на избрания език за програмиране, тези части от програмата, ги обединява в едно цяло и получава програмата.

Така че цялата творческия процес може да се раздели (разбира се, чисто конвенционален) в следните стъпки:

1) Основната идея за решаване на проблема;

2) цялостен дизайн програма;

3) разделяне на отделните елементарни части на програмата;

4) на практика в един език за програмиране на тези части от програмата;

5) в единна програма.

Такъв процес на програмиране се нарича структурна или надолу. По-подробна информация за този процес, ние ще научите по-късно, когато да се научат поне основите на езика за програмиране, но в отделните части на "градивните елементи", които правят програмата, за да се научи този урок.

Подпрограма е група от оператори, към който е достъпен от няколко пъти основната програма. Понякога тя може да бъде 2, 3 пъти, а много често, всеки път, когато се провежда основното програма линия.

Съвсем ясно е, че за да напишете няколко пъти една и съща група от оператори е трудно, се извършва много "технически" работа, а в някои случаи невъзможно (ако трябва да се отнасяме един към времето на цикъла).

За да се улесни тази работа и установените практики.

Това позволява използването на подпрограми.

1) За да бъде основната програма по-видими и компактен;

2) намаляване на размера на паметта се използва компютър;

3) намаляване на времето за отстраняване на грешки на програма.

Паскал съчетания са два вида - процедури и функции.

Да разгледаме следния прост пример, с помощта на които се опитват да се разбере проектирането на процедурите на Паскал.

Пример. Създаване на програма, която проверява дали трите числа са сравнително премиер.

Ние знаем, че числата се наричат ​​сравнително премиер, ако най-голямото им общ делител (ГРУ) е 1. Така че, за да се реши този проблем, ние трябва да се намери НОД на две числа. Ако даден три числа: а, б, в, след това намерете НОД (а, б), и след това намерете ГРУ (НОД (а, б), в).

Два пъти да пиша отчети да намерите НОД ние не искаме, така че операторите ще организира за НОД на процедурата.

Вижте как ще изглежда в програмата.

а, Ь, с, к. цяло число;

Процедура кимане (а, б число ;. Var п цяло число.);

ако к = 1 тогава writeln ( "относително прости числа)

останало writeln ( "Числата не са сравнително премиер")

В секцията Декларации, след описване на променливите, написани с глава процедура: Процедура

Тази дума е услуга и запазени в Паскал. В една и съща линия с него, през пролуката, написано името на процедурата, която трябва да отговаря на всички изисквания за имена, като основните са: да започват с буква и нямат пропуски, т.е. изискванията са същите като на името на програмата (.. името на нашите процедури - кимване):

Процедура кимане (а, б число ;. Var п цяло число.);

Освен това, в скоби написани имена на променливи и типове, стойностите на които ще бъдат въведени в реда на основната програма, в този случай, има две (а, б) имат тип цяло число.

Веднага трябва да се отбележи, че имената на тези променливи може да не съответстват на имената на променливите в основната програма, можем да кажем, тяхната марка M, N, или всяко друго име.

След точка и запетая и запазена дума Var, записани променливи и техните типове, стойностите на които ще бъдат резултат от процедурата, и се отстраняват от него към главната програма. Тази променлива в този пример е една - п. Той ще изведе стойност GCD на номера А и Б. Нейното име също могат да имат едно и също име в основната програма и тя не засяга действието на процедурата.

Забележка. че преди променливите, чиито стойности са въведени от основната програма, не поставяйте думата Var, и в предната част на която се показва стойността на променливата в основната програма, думата е написана. Това е много важно!

Така че, ако си сложиш Var пред а и б, компилаторът ще третира тези променливи като изход и вход на стойност към тях няма да бъдат предприети, и обратно, ако Вар, няма да бъдат написани на изходната променлива, компилаторът ще го приемат като вход и показване на стойността си в основната програма няма да бъде.

Други строителни процедури и строителството като основна програма в Паскал.

Описва променливите, които ще се включат в работата си, но техните имена не трябва да се повтаря имената на тези, описани вече входни и изходни параметри в заглавната част на програмата. По-долу е описана необходимостта оператори.

В нашия пример процедура кимване ще бъде, както следва:

Процедура кимане (а, б число ;. Var п цяло число.);

Основната програма е изработена по обичайния начин, но когато това е необходимо, за да открие най-НОД на числата се отнася до процедурата. Как?

За да направите това, обърнете се към него по име в скоби пише действителните стойности на входните променливи (в този случай променливите А и В), които също имената на изходните променливи (в този случай, к).

От следващия раздел на програмата показва, че първата покана за кимване на ред, определен от ГРУ числа А и Б (кимване (а, б, к)) и резултатът се съхранява в променливата на к, по-нататък, променя стойностите на променливите а и б и отново, причинени процедура кимване които вече намира GCD на номера К и с и резултатът се определя на променливата к.

Можете да видите основната част на програмата:

пиша ( "Enter трите естествени числа"); readln (а, б, в);

ако к = 1 тогава writeln ( "относително прости числа)

останало writeln ( "Числата не са сравнително премиер")

Ние се правят общи заключения за изграждане и функциониране на процедурите

Процедури, поставени в раздела Декларации започва запазени (официално) дума

Процедура непременно подари името, което трябва да отговаря на същите изисквания като имената на променливите, т.е. тя може да бъде една или повече букви, комбинация от букви и числа, но без интервали, да започва с буква и т.н.

След името, написано в скоби променливи - параметри и тип: вход, чиито стойности се използват за изчисляване като аргументи.

Изходни параметри - това са променливи, в която е получена в резултат на процедурата.

входни и изходни параметри на процедури се наричат ​​формални параметри.

Действително, специфични, стойност официално параметри трябва да се получи в основната програма след разговора с нея (толкова дълго, колкото на процедурата те не са нещо повече от "сляпо").

След формални параметри описват променливи, които са необходими, директно на процедура работа.

При тази процедура се параметри. Те се нуждаят от нея, като във всяка друга програма, а също така са описани. Техните имена трябва да са различни от имената на входни и изходни параметри.

Трябва да се отбележи, че процедурата може да бъде такава, че тя няма да бъде на всички възможности, което е достатъчно за тези, които трябва да бъдат въведени от програмата.

Описание на процедурата е както следва:

процедура <имя> (<входные параметры>. <их тип>;

<выходные параметры>. <их тип>);

Той е поставен в основната програма в раздела Декларации.

До входните и изходните параметри на процедурата може да бъде от следните типове:

1) и има входни и изходни параметри.

процедура <имя>(<входные параметры>. <их тип>;

Var <выходные параметры>. <их тип>);

Ние просто се срещна с програма от този тип.

2) да има входни параметри, но не се извежда.

процедура <имя>(<входные параметры>. <их тип>);

3) да има на изходните параметри, но не разполага с вход.

процедура <имя>(VAR <выходные параметры>. <их тип>);

4) нямат нито входни нито изходни параметри.

В зависимост от това, различните процедури в своя дизайн и функциите, които те изпълняват.

Това е последвано от точка на операторите, която се състои от същите правила, както и в други програми.

Процедурата е описана и след това започва основната програма.

Как е подпрограма разговор - процедурата?

Задължително на посоченото име на процедура. В скоби са дадени действителните стойности на входните параметри и променливите в която ще "помни" изходните стойности.

Помислете за пример, в който може да се използва втория тип процедура: като входни параметри, но няма изход.

Пример. Създаване на програма, която определя кои от номерата, определени период [а; Ь] може да бъде представена като сумата от два квадрата на числа?

В тази програма, ние ще трябва да се провери всяко число интервал [а; б] дали тя може да се изрази като сума от квадратите на двата номера, така че би било разумно да се разработи процедура, която щеше да изпитва един номер и след това да получите достъп до него от основната програма, за да се провери всяко число в интервала.

Процедурата е съгласно следния метод. Да предположим, че се има предвид броя н. Ние трябва да намерите две числа, а и б, сумата от техните квадрати е равно на N, т.е. решен в числа уравнението:

Естествено е да изпитате естествени числа от 1 и нагоре. Но до стойност е неизвестна. Ако трябва да се вземат до Броят п, след което тя ще бъде твърде много ненужни и безполезни работа.

За да се изясни този въпрос, е възможно да се организира един цикъл. в която проверка колко числа е необходимо да отговарят на неравенството: Тук, както и взети б най-малкото положително цяло число 1. Да организира такъв цикъл, и да се изчисли колко числа нужда, ние ще знаем колко числа трябва да сърфирате за намиране на решение.

Този цикъл може да бъде:

а * а + 1<=n do

Вече е ясно, че броят на изпитване трябва да направят една линия от 1 до к:

за: = 1 до к направи

Вторият цикъл трябва да бъде за ценности б. Но ако го организира, също от 1 до к, а след това може да се повтори два пъти една и съща стойност, само на различни места, например, броят 20, могат да бъдат дадени следните стойности: