- •1.Понятие алгоритма
- •3. Организация ввода-вывода в языках пр-ия.
- •4. Прогр-мы и процедуры в языках пр-ия.
- •13. Языки программ-я. Интерпретаторы и компиляторы.
- •15. Организация циклов в языках пр-ия.
- •18. Условный, безусловный переход, выбор в языках прогр-ия.
- •21. Типы данных в языках пр-ия. Числовые и строковые переменные и операции с ними.
3. Организация ввода-вывода в языках пр-ия.
Решение любой з-чи на ЭВМ не обходится без операции ввода/вывода. Ввод данных-передача инф-ии от внешнего носителя в оперативную память для обработки. Вывод-обратный процесс. Для выполнения операции ввода/вывода в Pascal служат 4 процедуры: Read, Readln, Write,Writeln. Процедура чтения Read обеспечивае ввод числов. данных, символов, строк для послед-ей их обработки.
Формат записи:
Read(x1,x2,..xn); Readln(x1,x2,..xn);
Для ввода данных из файла исп-ся Read(F,x1,x2,..xn); , где F-файловая переменная, связанная с файлом. Значения x1,x2,..xn при вводе набираются нажатием клавиши ввода. Зн-я д/вводится в строгом соответствии синтаксиса, иначе возникают ошибки ввода/вывода. Если в пр-ме имеются неск-ко процедур Read, данные вводятся для них потоком в одной строке.
Процедура чтения Readln аналогична Read, единств. отличие заключается в том, что после считывания последнего в списке зн-я для одной процедуры Readln данные для след-ей процедуры б/считываться с начала новой строки.
Это актуально при считывании данных из файла. При вводе с клавиатуры различий м/д Read и Readln нет.
Форматы вывода.
Процедура записи Write производит вывод числов. данных, строк, булевых зн-й.Форматы:
Write(x1,x2,..xn); Writeln(x1,x2,..xn); Write(F,x1,x2,..xn);
В процедурах вывода Write, Writeln имеется возможность записи выр-я, определяющая ширину поля вывода. Для целых чисел формат имеет след-й вид: I:P.
Пр: x=37 Write(x:5); рез-т 3 пробела и число 37.
Для вещ-х чисел исп-ся формат вывода R:P:q, где P-ширина вывода, q-кол-во чисел, предст-я дробную часть числа. 0 ≤ q ≤ 24
Формат вывода строк ничем не отличается выводом цел. чисел, где P- ширина вывода символов. Пустой формат Write без параметров вызывает курсор на новую строку. Если в формат вывода вещ-го числа не указывать величины P и q, то вывод б/происходить в формате плавающей запятой. mEq, где E-мантиса, q-порядок.
Пр: 1.78E-03, т.е. 1.78*10-3.
4. Прогр-мы и процедуры в языках пр-ия.
Под структ-м пр-ем понимают такие методы разработки зиписи пр-м, к-е ориент-ны на максим. удобства восприятия и понимания людей. Для этого исп-ся основные логич-е структуры: следование, ветвление и повторение. Также испол-ся технология низходящего пр-ия, к-я наз. пошаговой детализации. Овновой такого метода явл. идея постепенной декомпозиции исходной з-чи на ряд подз-ч. Решение отдельного фрагмента сложной з-чи м/представлять собой самост-й прогр-ый блок, наз-й подпрог-й. Такой процесс детализации продолжается до тех пор, пока не станут ясны все детали решения з-чи.
Подпрог-ой наз. обособленную оформленную в виде отдельной синтаксической констр-ции и снабженную именем часть пр-мы. Подпр-й в Pascal реализованы с пом-ю процедур и ф-ий. Процедура-независим. именованная часть пр-мы , к-ю м/вызвать для выполнения опред-х действий. Струк-ра процедуры посторяет струк-ру пр-мы. Она не м/выступать как оперант выр-я. Ф-ия аналог. проц-ре, но имеет 2 отличия:*ф-ия передает в точку вызова скалярное зн-е; *имя ф-ии м/входить в выр-е как оперант.
Все ф-ии:*встроенные(станд.) – входят в состав языка и выз-ся для выполнения по строго фиксир-му имени. *оределенные пользователем – разраб-ся и именуются самим польз-ем.
Встроенные проц-ры и ф-ии:*арифметич.(abs,cos,..); *скалярные пр-мы и ф ции(dec,inc,pred,..); *ф-ии преобр-я типов(chr-возвр. сим. по коду, round..); *пр-ма выпол-я пр-мы(Delet-задержка выпол-я); *спец-е проц-ры и ф-ии.
Пр-ры и ф-ии пользователя. Если в пр-ме возникает необх-ть частого обращения к опер., выполнение действия или вычисление зн-е какого-либо выр-я, то рационально сгруппировать такую гр. опер-в в самомт. блок, к к-му м/обращаться указав его имя. Такой блок наз Подпр-ой польз-ля. При вызове подпр-мы работа главной пр-мы преостанавл-ся и начинает выпол-ся вызванная подпр-ма. Она обрабатывает данные, переданные ей из главной пр-мы. По завершении выпол-я подпр-мы ф-ия возвращает гл. пр-ме рез-т, к-й осуществл-ся с пом-ю параметров. Параметр-переменная, к-й присваивается нек-е зн-е в рамках указанного применения.
Различают:*формальные; *пар-ры определенные в заголовке подпр-мы; *фактические пар-ры-выр-я, задающие конкретные зн-я при обращении к подпр-ме.
При обращении к подпр-ме ее формал-е пар-ры замещаются фактическими.
Описание пр-мы вкл-ет заголовок-имя и тело проц-ры.
procedure <имя>(форм.пар-р);
const…
type…
Var…
begin
<опер-ры>;
end;
Если проц-ра возвр-ет в пр-му какие-то зн-я, соответ-щие переменные д/б описаны как параметры-переменные со словом Var. procedure <имя>(Var пар-ры переем-е); В основном проц-ра выполняет определ-е действия.
Ф-ция также состоит из заголовка и тела ф-ии.
function <имя>(форм. пар-ры):<тип ф-ии>
const..
type..
var..
begin
<опер-ры>;
<имя>:=рез-т;
end;
Механизм передачи рар-ра. Заголовок проц-ры и ф-ии испол-ся форм. пар-р, с пом-ю к-х перечисл-ся имена для обозначения исходных данных и рез-в работы проц-ры. Список форм-х пар-в вкл. в себя:*пар-ры зн-ия – они испол-ся для передачи данных из пр-мы в проц-ру и ф-ию(входные данные); *пар-ры переменные – перед ними стоит служебное слово Var и указ-ся их тип, ч/з них передается раз-т проц-ры в основную пр-му; *пар-ры проц0ры – они м/б использованы в качестве форм. пар-ов при вызове проц-ры и ф-ии.
Имя пар-ра отделяется от тип :, а пар-ры др. от др. ;
Имена пар-ов одного типа м/объединять подписки отделяя , , м/д форм. и факт. парам. д/б полное соответствие . Форм. и факт пар-ов д/б одинаковое кол-во. Порядок следования форм и факт пар-ов д/б один и тотже и тип каждого факт. пар-ра д/совпадать с типом соотв-го форм. пар-ра.
Пр. реализуем нек-е вычисл. с пом пр-р и ф-ий.
Program Demo;
Var a,b,sum:real;
procedure summa
Var c:real
begin
Writeln(‘Введите число’);
Readln(c);
S:=c*(a+b);
end;
function My(x:integer):real;
begin
My:=sin(x)+cos(x)
end;
begin
Writeln(‘Введите a,b’);
Readln(a,b);
summa(a,b,sum);
rez:=sum*My(3);
Writeln(“rez=”,rez:5:2);
end.