Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инф(Пр+Лаб)ФИОП(2).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.02 Mб
Скачать

Примеры задач

Задача 1. Вычислить , а также найти с использованием подпрограммы-функции возведения в степень.

Program Lab11a;

Var

A:array[0..100] of real;

B,C,x:real;

i,n:integer;

Function Step(a,b:real):real;

begin

Step:=exp(b*ln(a));

end;

Begin

writeln('Введи n,x'); read(n,x);

writeln('Введи массив A');

for i:=0 to n do read(A[i]);

B:=Step(2.1,5)+Step(7,0.3);

C:=0;

for i:=0 to n do C:=C+A[i]*Step(x,i);

writeln('B=',B:10:3,' C=',C:10:3);

End.

Контрольный пример.

Исходные данные:

;

;

.

Результаты:

;

.

Задача 2. В двумерном массиве A из 3 строк и 4 столбцов вычислить сумму и произведение отрицательных элементов с использованием подпрограммы-процедуры.

Program Lab11b;

Const m=3; n=4;

Type TT=array [1..m,1..n] of real;

Var A:TT; i,j:integer; s,p:real;

Procedure SumPro(B:TT; m,n:integer; var s,p:real);

var i,j:integer;

begin

s:=0; p:=1;

for i:=1 to m do

for j:=1 to n do

if B[i,j]<0 then

begin

s:=s+B[i,j];

p:=p*B[i,j];

end;

end;

Begin

writeln('Введи массив A');

for i:=1 to m do

for j:=1 to n do

read(A[i,j]);

SumPro(A,3,4,s,p);

writeln(s,p);

End.

Контрольный пример.

Исходные данные:

.

Результаты:

;

.

Контрольные вопросы

  1. Что такое подпрограмма? Перечислите виды подпрограмм.

  2. Какие элементы входят в описание подпрограммы?

  3. Что такое формальные и фактические параметры? Чем они отличаются?

  4. Что такое параметры-значения и параметры-переменные? Чем они отличаются?

  5. Что такое локальные и глобальные параметры? Чем они отличаются?

  6. Какой вид имеет заголовок описания функции? Что это означает?

  7. Какой вид имеет вызов функции? Что это означает?

  8. Какой вид имеет заголовок описания процедуры? Что это означает?

  9. Какой вид имеет вызов процедуры? Что это означает?

  10. Напишите, что означает каждая строка в вышеприведённых программах.

  11. Напишите программу к одной из задач дополнительного задания.

Лабораторная работа № 12. Программирование структурных типов данных Файлы

Файлы – упорядоченные наборы данных различного типа, хранящиеся в памяти.

В языке Pascal файлы бывают:

  1. Текстовые (типа Text).

  2. Типизированные (типа File of …).

  3. Нетипизированные (типа File).

Над текстовыми файлами обычно применяются следующие стандартные процедуры:

  1. Assign(FP,F) – связывание файловой переменной FP с именем файла F.

  2. Reset(FP) – открытие файла, связанного с файловой переменной FP, для чтения.

  3. ReWrite(FP) – открытие файла, связанного с файловой переменной FP, для записи новых данных с удалением старых.

  4. Append(FP) – открытие файла, связанного с файловой переменной FP, для записи новых данных с добавлением к старым.

  5. Close(FP) – закрытие файла, связанного с файловой переменной FP.

  6. Read(FP,P1,…) – ввод значений переменных P1, … из файла, связанного с файловой переменной FP.

  7. ReadLn(FP,P1,…) – ввод значений переменных P1, … из файла, связанного с файловой переменной FP, и перевод указателя в файле на новую строку.

  8. Write(FP,V1,…) – вывод значений выражений V1, … в файл, связанный с файловой переменной FP.

  9. WriteLn(FP,V1,…) – вывод значений выражений V1, … в файл, связанный с файловой переменной FP, и перевод указателя в файле на новую строку.

Строки

Строка – упорядоченный набор символов в кавычках.

Описание строки в разделе описания переменных (Var) на языке Pascal имеет вид:

St : string [ NMax ];

где string – строка, St – имя строки, NMax – максимальное количество символов в строке.

Это означает, что переменная St является строкой, которая может содержать от 1 до NMax символов.

Записи

Запись – неупорядоченный набор величин разных типов, называемых полями.

Поле – именованная величина, являющаяся частью записи.

Описание записи в разделе описания переменных (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.

Пример 1. Var

computer:record

nazv:string[10];

god:integer;

bystr:real;

end;

Это означает, что переменная computer – запись, включающая поля nazv строкового типа, god целочисленного типа, bystr вещественного типа.

Доступ к полю записи имеет вид:

Zap . Pole

где Zap – имя записи, Pole – имя поля.

Это означает доступ к полю Pole записи Zap.

Пример 2. computer.nazv

Это означает поле nazv записи computer.

Оператор присоединения имеет вид:

with Zap do Op

где with – с, do – делать, Zap – имя записи, Op – оператор.

Это означает, что с полями записи Zap выполнять оператор Op.

Пример 3. Ввести поля записи computer без использования оператора присоединения и с его использованием.

a) readln(computer.nazv,computer.god,computer.bystr);

б) with computer do readln(nazv,god,bystr);