Имя типа (переменная или значение)
Пример var Ch:char; By:byte; Ch:=’1’; By:=byte(ch); { by=49} Операторы Ввод данных Операторы считывания обеспечивают ввод чисел, строк и символов: Read (<список ввода>); Readln (<список ввода>); –перевод на другую строку список ввода - это последовательность из одной или более переменных типа char, string а также любого целого или вещественного числа. При вводе с клавиатуры 2 числа считаются разделенными, если между ними есть хотя бы один пробел. После ввода данных следует нажать клавишу ENTER. ----------------------------- Read(a,b); 123 1.23! Или 123! 1.23! {a=123, b=1.23 } При вводе символов нет разделителей! Read(ch1,ch2); AB! {ch1=’A’, ch2=’B’} A B { ch1=’A’, ch2=#13} От смешанных списков вводе с клавиатуры лучше отказаться! Вывод данных Операторы для вывода и печати результатов Write (<Список Вывода [:n[:m]]; Writeln(<Список Вывода [:n[:m]]; список вывода - это последовательность из одной или более переменных типа char, string, Boolean а также любого целого или вещественного числа. Можно выводить текстовые данные в апострофах. N- кол-ва позиций при выводе на печать текста или целого числа. У вещественных чисел можно задавать общее число выводимых знаков(включая знак, точку, букву Е) а число цифр, стоящих после запятой, цифройM. При необходимости вывода вещественных чисел в ЕХР формате надо задавать только одно значения N, а если n меньше чем длина параметра то nигнорируется! Для вывода на принтер должно быть доступно устройство LST. Для этого надо подключить модуль PRINTER с помощью зарезервированного слова uses. Пример Uses Printer; Var ------ BEGIN Write(234); { выводится значение 234} Write(A+B-2); { выводится результат выражения } Write(Lst,’Результат вычислений’, Result); {результат выводится на принтер} I:=123, rr=:123.456; B:=true; Writeln(i:8); { 123} { выравнивается по правому краю} Writeln(r:8:2); { 123.46} Общая ширина поля дробная часть Writeln(i,I,i); {123123123} { выравнивается по правому краю} Writeln(r); {в поле шириной 17 символов выводится десятичное представление r в формате с плавающей точкой #.##########E*## +1.2345600000E+02} Writeln(B:6,not B:7); { True False} Найдите ошибки в программе: CONST A,B: integer; Result: byte; BEGIN Write (‘Введите 2 числа:’ ); Readln(A,B); Result:= A DIV B; Writeln (‘Отношение равно:’ Result); END. Составной оператор Это последовательность операторов программы заключенная в операторные скобки BEGIN … END. Это дает возможность писать программу по современным технологиям без операторов go, to. Турбо паскаль не накладывает никаких ограничений на характер операторов, входящих в составной оператор. Среди них может быть и составной оператор. Глубина вложенности произвольна. Begin -------------------------- Begin -------------------------- Begin - -------------------------- End; --------------------------- End; ----------------------------- End; Условный оператор Позволяет проверить то или иное условие и в зависимости от результата проверки выполнить то или иное действие. IF <условие> THEN <оператор 1>ELSE <оператор 2> Условие это произвольное выражения логического типа. Оператор 1 и Оператор 2 - любой оператор Турбо Паскаль. Работает по принципу сначала вычисляем условие если результат True то выполняем оператор 1 а оператор 2 пропускаем если оператор False то оператор 2 выполняется а оператор 1 пропускается! Пример 1: ----------------------------- If X<2 then write(‘ X<2 ’) ELSE write(‘ X>=2 ’); INC(X); ------------------------------------------------------- Пример 2: If X>5 then write(X); DEC(X); -------------------------------------------------------- Оператор 1 и оператор 2 могут быть любого типа, в том числе и условными. Но не каждый из условных операторов может иметь часть ELSE. Эта неоднозначность решается так: любая встретившаяся часть ELSE соответствует ближайшей к ней “сверху” части THENусловного оператора. Пример 3: VAR A,b,c,d:integer; --------------------------------- {a:=1; b:=2; c:3; d:=4;} 1) If a>b then If c<d then If c<0 then c:=0 ELSE A:=b; {a=1} 2) If a>b then If c<d then If c<0 then c:=0 ELSE ELSE ELSE A:=b; {a=2}
Лучше составной оператор ставить между Begin и End. IF key=’Y’ THEN begin {выполняются операторы, если ответом был Y} End ELSE begin {эти операторы выполняются независимо от ответа} End; Пример 4: Вычислить функцию: X2+1, если X<0 Y= X-2,1, если Х>P/2 SIN X, если 0<=X<=P/2 Для произвольного Х. Program TS; Var X,Y: real; BEGIN Write(‘ Введите X ‘); Readln(X); If X<0 then Y:=sqr(X)+1 ELSE If X>PI/2 then Y:=X-2.1 ELSE Y:=Sin(X); Writeln(‘При х=’, X:5:2,’ Y=’,Y:8:2); END. Пример 5: Составить программу определения произведения двух наименьших целых чисел A,B,C. (A=B Program MINMUL; Var A,B,C: integer; Mul:real; BEGIN Write(‘ Введите A,B,C ‘); Readln(a,b,c); Max:=a; If B>MAX then MAX:=B; If C>MAX then MAX:=C; MUL:=A*B*C/MAX; Writeln(‘Произведение двух наименьших’, MUL:8:2) END.
Операторы циклов В Т-П имеются три оператора, с помощью которых можно запрограммировать повторяющиеся фрагменты. Оператор FOR Используется, если можно указать в заголовке число повторений FOR <ПЦ> : = <НЗ> TO <КЗ> DO <оператор> DOWNTO
FOR, TO, DOWNTO, DO – зарезервированные слова <ПЦ> – параметр цикла, переменная любого порядкового типа <НЗ>– начальное выражение того же типа <КЗ> – конечное выражение того же типа (оператор) – произвольный оператор Т-П Работа цикла представлена блок-схемой
нет
да
Пример 1 Program Privet; var Hum : byte; Begin For hum :=1 to 3 do Writeln ('Мы желаем Вам веселого Рождества'); Writeln ('и счастливого Нового года!'); End. Выполняется при hum := 1,2,3 первая запись и один раз вторая запись (после завершения цикла) Пример 2 На экран выводиться таблица перевода из градусов по шкале Цельсия (С) в градусы по Фаренгейту (F) для значений от 150 до 300 с шагом 10. Перевод осуществляется по формуле F:= С* 1,8+ 32 Program Demofor; Var i: integer; f: real; Begin Write (‘ Температура ‘); For i:=15 to 30 do Begin F:=i*1.8=32; Write (‘по Цельсию = ‘, i, ‘ по Фаренгейту = ‘, f:5:2) End End. Описан параметр цикла I (тип Integer) и var – типа real. В начале выполнения программы выводится надпись «Температура», а затем таблица соотношения температуры (с) и (F) Цикл: 1. Проверяется условие I<=30; 2. Если да – то рассчитывается выражение i*1.8=32 и присваивается var f и на экран выводится сообщение; 3. Если условие I<=30 не соблюдается, то оператор цикла не выполняется и управление передается за пределы цикла. Программа завершает работу. 4. Значение i=i+1 передается в заголовок цикла (for) для проверки условия. Пример 3 c dowto For i:=14 dowto10 do Write (i:3) На экране 14 13 12 11 10 Пример 4 Если выражение отвечает невозможной последовательности, то цикл вообще не выполняется For i:= 2 to 1 do write(‘Робкий‘) Начальное и конечное значение вычисляется перед выполнением оператора цикла и в дальнейшем не перевычисляется. Невозможно перескочить через «финишную черту», установленную в самом начале. Пример 5 Fin := 3; (цикл работает равно три раза) For i:=1 to fin do 4 Begin 5 Inс (fin) 6 End; Всякое изменение параметра цикла является ошибкой. for i:=1 to 3 do begin i:=i-1; {ошибка} read (i); {ошибка} for i:=5 to 10 do {ошибка} end; Оператор WHILE While <условие> do <оператор> While, do –зарезервированные слова <условие> – выражение логического типа <оператор> – произвольный оператор
Если (условие) имеет значение true, то выпол- False true няется оператор, после чего повторяется проверка условия. Если (условие) имеет значение false, то оператор
работу. Пример 1 n:=3; while n>0 do begin 2 n:=pred(n); 1 write (n) 0 end; Следует знать: 1. В условии выражение должно быть определено до первого выполнения оператора цикла.(n:=3); 2. Число повторений оператора цикла while определяется в ходе выполнения программы и как правило заранее неизвестно; 3. В теле цикла обязательно должно быть инструкции, влияющие на условие выполнения цикла (n:= pred (n). Пример 2 Суммировать десять произвольно введенных целых чисел. var count, item, sum : integer; begin sum:= 0; count:=0; while count<10 do begin inc (count); write (‘Введите‘, count, ‘- е целое число: ‘); Readln (item); Sum:= sum+ item end; write (‘сумма введенных чисел = ‘,sum) end. Следует знать 1. Цикл white – цикл с предусловием, т.е. тело цикла вообще может быть не выполнено, если условие ложно с самого начала. 2. Цикл white считается самым универсальным видом цикла (см. следующее утверждение). 3. Удобнее всего использовать в случаях, когда возможна ситуация невыполнения цикла. Оператор REPEAT Repeat <тело цикла> Until <условие> повторяет до тех пор пока Repeat, Until – зарезервированные слова ( повторяет до тех пор пока не будет выполнено условие) <тело цикла> – произвольная последовательность операторов Т-П <условие> – выражение логического типа
false
true
Операторы (тело цикла) выполняются хотя бы один раз, после чего проверяется условие. Если значение false (ложь), то операторы цикла повторяются. В противном случае (true) оператор repeat завершает свою работу. Пример 1 Игра «Угадай число» var comp: integer; {число, задуманное компьютером} igrok : integer; {вариант игрока} begin randomize; {инициализация датчика случайных чисел} comp:= random (1000); {случайное число} repeat write (‘Введите число - ‘); Readln (igrok); if igrok> comp then writeln (‘Слишком много‘) else if igrok< comp then writeln (‘Слишком мало‘) else writeln (‘Вы угадали‘); until igrok= comp; end. Оператор repeat можно использовать для проверки правильности ввода исходных данных. Пример 2 Исходное данное должно быть двузначным числом. Программа может повторять запрос, пока не получит требуемое. var х : integer; repeat write (‘Введите двузначное число - ‘); Readln (х); Until (x<9) and (x>100); Следует знать: 1. Число повторений оператора цикла заранее неизвестна и определяется в ходе выполнения программы. 2. В теле цикла должны быть инструкции, влияющие на условие завершение цикла (var, участвующие в условии должны изменяться в теле цикла). 3. Цикл repeat – цикл с постусловием и поэтому теле цикла будет выполнено хотя бы раз. Repeat until false {конструкция вечного цикла}.
Популярное: Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (847)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |