Лабораторная работа Программирование последовательных вычислений Какие разделы включает программа на языке Pascal Как они обозначаются
Скачать 185 Kb.
|
Лабораторная работа № 1. Программирование последовательных вычисленийКакие разделы включает программа на языке Pascal? Как они обозначаются? Программа на языке Pascal включает: заголовок программы (Program), раздел описания используемых модулей (Uses), раздел описания меток (Label), раздел описания констант (Const), раздел описания типов данных (Type), раздел описания переменных (Var), раздел описания процедур (Procedure), раздел описания функций (Function), раздел операторов (Begin…End.).
К стандартным типам данных в языке Pascal относятся: целочисленный тип integer (целые числа), вещественный тип real (действительные числа), логический тип boolean (логические выражения), символьный тип char (отдельные символы), строковый тип string (строки символов).
В языке Pascal используются следующие операторы (управляющие инструкции): составной оператор begin…end (начало…конец), оператор присваивания …:=… (…присвоить…), операторы ввода read(…) (считывать) и readln(…) (считывать до новой строки), операторы вывода write(…) (записывать) и writeln(…) (записывать до новой строки), оператор безусловного перехода goto… (перейти к…), оператор условного перехода (условный оператор) if…then…else… (если…то…иначе…), оператор варианта (выбора) case…of…else…end (в случае…из…иначе…конец), оператор цикла с предусловием while…do… (пока…делать…), оператор цикла с постусловием repeat…until… (повторять…пока…), операторы цикла с параметром for…:=…to…do… (для…от…до…делать…) и for…:=…downto…do… (для…от…вниз до…делать…), оператор присоединения with…do… (с…делать…).
В языке программирования Pascal используются следующие операции: арифметические операции + (сложение); - (вычитание); (умножение); /(деление); div(целочисленное деление); mod(остаток от деления); операции сравнения =(равно); <>(не равно); >(больше); <(меньше); >=(больше или равно); <=(меньше или равно); логические операции and(логическое «и»); or(логическое «или»); not(логическое «не»).
В языке Pascal используются следующие математические функции и выражения:
Пуск ►(Мой) Компьютер, Apps (G:), BP, BIN, BP
Проверить программу на ошибки (т.е. сделать компиляцию программы). Compile ►Compile (Компиляция ►Компилировать) (или [Alt]+[F9]), Запустить программу на выполнение Run ►Run (Выполнение ►Выполнить) (или [Ctrl]+[F9]), Просмотреть результат, показать преподавателю и записать полученный ответ Debug ►User Screen (Отладка ►Экран пользователя) (или [Alt]+[F5]), записать информацию, .
Program L1; Var X,y,z,alpha:real; Begin Read(x); Alpha:=cos(8/9); Y:=exp((abs(x)+ln(20)/ln(10))*ln(5))-exp(pi)/(4*exp(1)+abs(exp(ln(alpha) /3))); Z:=exp(sqr(y)*ln(x))*sqrt(abs(alpha-3.5))+(1-2*sin(sqr(x)))/(3.14+sqr(arctan(y))); Writeln(Z); End. Лабораторная работа № 2. Программирование разветвлений
Алгоритм линейной структуры – алгоритм, в котором все действия выполняются последовательно. Составной оператор, оператор присваивания, операторы ввода, операторы вывода.
Алгоритм разветвляющейся структуры – алгоритм, в котором происходит переход к одной из нескольких ветвей алгоритма или к далеко расположенной части алгоритма.
Составной оператор имеет вид: begin Op1; … OpN end Оператор присваивания имеет вид: P:=V
Операторы вывода имеют вид: write (V1 , … , VN) writeln (V1 , … , VN)
Оператор безусловного перехода имеет вид: Goto M
Оператор варианта (или оператор выбора) имеет вид: case S of Z1 : Op1; … ZN : OpN else Op0 end где case – в случае, of – из, else – иначе, end – конец, S – селектор, Z1 – значение 1-е, ZN – значение N-е, Op1 – оператор 1-й, OpN – оператор N-й, Op0 – оператор 0-й.
Метка – обозначение строки в программе, отделяемое от программного кода двоеточием. Селектор – выражение порядкового типа, которое может принимать одно из многих значений.
Вычислить Program L2; Var L,x,b,a:real; Begin Read(b,x,a); If b>2 then y:=sin(0.57)/cos(0.57)*ln(b-2)/ln(10) Else y:=sqr(sin(x))+abs(exp(a)); Writeln(y) End. Лабораторная работа № 3. Программирование циклов
Алгоритм циклической структуры – алгоритм, в котором производится многократное повторение однотипных действий.
Цикл – многократно повторяющийся участок алгоритма. Цикл включает заголовок цикла, тело цикла и конец цикла. Циклы делятся на: 1. Цикл с предусловием (условие выхода из цикла проверяется в начале перед действиями в теле цикла). 2. Цикл с постусловием (условие выхода из цикла проверяется в конце после действий в теле цикла). 3. Цикл с параметром (цикл выполняется фиксированное количество раз, определяемое параметром цикла).
. Оператор цикла с предусловием имеет вид: while U do Op где while – пока, do – делать, U – условие, Op – оператор. Оператор означает, что пока условие U истинное, повторять оператор Op в цикле; как только условие станет ложным, выйти из цикла.
Оператор цикла с постусловием имеет вид: repeat Op1; … OpN until U где repeat – повторять, until – до тех пор пока, Op1 – оператор 1-й, OpN – оператор N-й, U – условие. Оператор означает, что повторять операторы Op1 и т.д., … OpN в цикле до тех пор, пока условие U не станет истинным; как только условие станет истинным, выйти из цикла.
. Оператор цикла с параметром (при увеличении параметра) имеет вид: for Par := Nz to Kz do Op где for – для, to – до, do – делать, Par – параметр цикла, Nz – начальное значение, Kz – конечное значение, Op – оператор. Оператор означает, что для параметра Par , увеличивающегося от начального значения Nz до конечного значения Kz с шагом 1, повторять оператор Op в цикле.
Оператор цикла с параметром (при уменьшении параметра) имеет вид: for Par := Nz downto Kz do Op где for – для, downto – вниз до, do – делать, Par – параметр цикла, Nz – начальное значение, Kz – конечное значение, Op – оператор. Оператор означает, что для параметра Par , уменьшающегося от начального значения Nz до конечного значения Kz с шагом (-1), повторять оператор Op в цикле.
Параметр цикла (или счётчик циклов) – переменная порядкового типа, которая изменяется в цикле от начального до конечного значения с каким-либо шагом.
Вычислить , где с увеличивается от сн до ск с шагом с.
Лабораторная работа № 4. Программирование задач с одномерными массивами
Массив – упорядоченный набор нумерованных величин одинакового типа. Массивы бывают одномерные (вектор-строка, вектор-столбец), двумерные (матрица) и многомерные (тензор).
Описание одномерного массива в разделе описания переменных (Var) на языке Pascal имеет вид: Mas : array [ IMin .. IMax ] of T где array – массив, of – из, Mas – имя массива, IMin – минимальное значение индекса, IMax – максимальное значение индекса, T – тип элементов.
Наличием условного оператора
При нахождении суммы добавляются сами элементы а при нахождении количества - 1
Математической операцией и начальным значением ячейки (сумма – 0/произведение – 1)
При нахождении среднего значения сумму в итоге делят на количество элементов
Начальным приближением и знаком
Оператором ввода или вывода
При увеличении элементов новое значение элемента равно предыдущему плюс число, а при замене – только этому числу
При увеличении результат присваивается исходной ячейке а при создании нового массива – ячейке этого массива.
Фиксированием его индекса
Потому что необходимо место для временного хранения содержимого ячейки
Дан массив A(n). Найти сумму и количество элементов, равных среднему значению. Program Lab4; Var A:array[1..100] of real; i,n,k:integer; s,C:real; Begin writeln('Введи n'); read(n); s:=0; writeln('Введи массив A'); for i:=1 to n do begin read(A[i]); s:=s+A[i]; end; s:=s/n; c:=0; k:=0; for i:=1 to n do if A[i]=S then begin C:=C+A[i]; K:=K+1; end; writeln('C=',C:10:3, 'K=',K:10:3); End. Лабораторная работа № 5. Программирование задач с двумерными массивами
Двумерный массив (матрица) – одномерный массив, элементы которого также являются одномерными массивами.
Описание двумерного массива в разделе описания переменных (var) на языке Pascal имеет вид: Mas : array [ IMin .. IMax , JMin .. JMax ] of T
I=j – главная, i+j - побочная
Наличием двойного цикла
Наличием двойного цикла
Параметрами массива
Дан массив B(m, n). Найти сумму положительных элементов и количество элементов в диапазоне от 10 до 20. Program lab5; Var A: array [1..10,1..15] of real; i, j, m, n,k: integer; s: real; Begin writeln('Введи m,n'); read(m,n); writeln('Введи массив A'); for i:=1 to m do for j:=1 to n do read(A[i,j]); s:=0; k:=1 for i:=1 to m do for j:=1 to n do begin if A[i,j]>0 then s:=s+A[i,j if (A[i,j]>10) and (A[i,j]<20) then k:=k+1; end; writeln('s=',s:10:3,' k=',k:10:3); End. Лабораторная работа № 6. Программирование процедур и функций
Подпрограмма – именованный блок операторов, отдельно выделенный в составе программы и не зависящий от других её частей. Подпрограммы бывают 2-х видов: 1. Подпрограмма-функция – это подпрограмма для вычисления функции, которая возвращает какое-либо значение. 2. Подпрограмма-процедура – это подпрограмма для выполнения действий, которая не возвращает никаких значений.
Как правило, описание подпрограммы включает заголовок, разделы описаний и раздел операторов, начинающийся словом begin, а заканчивающийся словом end и точкой с запятой (;).
Формальные параметры – переменные, которые объявляются в заголовке подпрограммы. Фактические параметры – переменные или значения, которые подставляются вместо формальных параметров в момент конкретного вызова подпрограммы.
Параметры-значения – параметры, значения которых передаются в подпрограмму в момент её вызова. Параметры-переменные – параметры со словом var, значения которых могут использоваться после выполнения подпрограммы.
Локальные переменные – переменные, используемые только внутри подпрограммы. Глобальные переменные – переменные, которые могут использоваться в любом месте основной программы, в т.ч. и в подпрограмме.
Заголовок описания функции имеет вид: function Func ( FormPar1 : T1 , … ) : T ; Это означает, что задаётся подпрограмма-функция с именем Func, зависящая от формальных параметров FormPar1 типа T1 и т.д., а также вычисляющая значение типа T.
Вызов функции из основной программы или другой подпрограммы имеет вид: Func ( FaktPar1 , … ) Это означает, что вычисляется значение функции Func, зависящей от фактических параметров FaktPar1 и т.д., причём вызов функции может осуществляться в составе выражения.
Заголовок описания процедуры имеет вид: procedure Proc ( FormPar1 : T1 , … ) ; Это означает, что задаётся подпрограмма-процедура с именем Proc, зависящая от формальных параметров FormPar1 типа T1 и т.д., а также выполняющая какие-либо действия.
Вызов процедуры из основной программы или другой подпрограммы имеет вид: Proc ( FaktPar1 , … ); Это означает, что выполняются действия в теле процедуры Proc, зависящей от фактических параметров FaktPar1 и т.д., причём вызов процедуры не может осуществляться в составе выражения.
Вычислить с использованием подпрограммы-функции вычисления тангенса. Program Lab6a; Var X,y,z:real; Function tg(a:real):real; begin tg:=sin(a)/cos(a); end; Begin writeln('Введи X,Y'); read(x,y); z:=tg(x)+tg(y); writeln('z=',z:10:3); End. Лабораторная работа № 7. Программирование структурных типов данных
Файлы – упорядоченные наборы данных различного типа, хранящиеся в памяти. В языке Pascal файлы бывают:
Assign – для связи Close - закрыть
Для чтения – reset Для записи – rewrite
Read, Readln
Запись – неупорядоченный набор величин разных типов, называемых полями. Поле – именованная величина, являющаяся частью записи.
Описание записи в разделе описания переменных (Var) на языке Pascal имеет вид: Zap : record SP1 : T1; … SPN : TN end; где record – запись, end – конец описания записи, Zap – имя записи, SP1 – список полей 1-й, SPN – список полей N-й, T1 – тип полей в 1-м списке, TN – тип полей в N-м списке. Это означает, что переменная Zap является записью, включающей поля в списке SP1 типа T1 … поля в списке SPN типа TN.
Доступ к полю записи имеет вид: Zap . Pole где Zap – имя записи, Pole – имя поля. Это означает доступ к полю Pole записи Zap.
Оператор присоединения имеет вид: withZapdoOp где with – с, do – делать, Zap – имя записи, Op – оператор. Это означает, что с полями записи Zap выполнять оператор Op.
С использованием ввода исходных данных из файла и вывода результатов в файл найти сумму всех элементов в двумерном массиве и заменить на нули элементы на главной диагонали. Program Lab7b; Var A:array[1..3,1..3] of real; i,j:integer; f1,f2:text; Begin assign(f1,'Lab7a.txt'); assign(f2,'Lab7c.txt'); reset(f1); rewrite(f2); for i:=1 to 3 do for j:=1 to 3 do read(f1,A[i,j]); s:=0; for i:=1 to 3 do for j:=1 to 3 do begin S:=s+a[I,j]; if i=j then A[i,j]:=0; end; writeln(f2,’s=’,s); writeln(f2,'Массив A'); for i:=1 to 3 do begin for j:=1 to 3 do write(f2,A[i,j]:10:3); writeln(f2,''); end; close(f1); close(f2); readln; End.0> |