Лабораторная работа №3
Процедуры и Функции. Обработка строк. Процедуры
Для использования подпрограммы-процедуры необходимо сначала описать процедуру, а затем обращаться к ней (обращение к процедуре – отдельный оператор). Описание процедуры включает заголовок (имя) и тело процедуры. Заголовок состоит из зарезервированного слова procedure, имени процедуры и, заключенного в скобки, списка формальных параметров с указанием типа. Название «формальные» эти параметры получили в связи с тем, что в этом списке заданы только имена для обозначения исходных данных и результатов работы процедуры, а при вызове подпрограммы на их место будут поставлены конкретные значения. Тело процедуры – блок, по структуре аналогичный программе.
При создании программ, использующих процедуры, следует учитывать, что все объекты, которые описываются после заголовка в теле процедуры, называются локальными объектами и доступны только в пределах этой процедуры.
Все объекты, описанные в вызывающей программе, называются глобальными и являются доступными внутри процедур, вызываемых этой программой.
Работа программы.
Вводится с клавиатуры числовое значение
Назначение переменных.
Переменная |
Тип |
Назначение |
n |
real |
Переменная |
s |
real |
Первая значимая |
Текст программы.
var n: longint; s: string;
begin
readln(n);
str(n,s);
write(s[1]);
readln;
end.
Тестирование.
Вводим с клавиатуры начальное значение, конечное значение и шаг.
Running "c:\program files (x86)\free pascal\bin\i386-win32\амв.exe "
53256
Задание 2.
Текст программы
Написать функцию Dohod, которая вычисляет доход по вкладу. Исходными данными для функции являются: величина вклада, процентная ставка (годовых) и срок вклада (количество дней).
Var d,e,f:integer;
g,x:real;
function dohod(a,b,c:integer): real;
begin
X:=((a*(100+b)*c/365)/(100))-a;
dohod:=x;
end;
begin
writeln('ВВЕДИТЕ ВЕЛИЧИНУ ВКЛАДА');
READLN(D);
writeln('ВВЕДИТЕ величину %');
READLN(e);
writeln('ВВЕДИТЕ срок');
READLN(f);
g:=dohod(d,e,f);
writeln('dohod-> ',g);
readln;
end.
Работа программы.
Вводятся с клавиатуры числа от 1до10
Блок-схема алгоритма.
Тестирование.
Running "c:\program files (x86)\free pascal\bin\i386-win32\амв.exe "
ВВЕДИТЕ ВЕЛИЧИНУ ВКЛАДА
6000
ВВЕДИТЕ величину %
12
ВВЕДИТЕ срок
365
dohod-> 720
Задание 3
В заданной строке текста удалите первое и последнее слово. Учтите, что в начале и конце строки могут быть пробелы.
Работа программы.
Введите строку из слов, разделенных пробелами:
Текст программы.
var s:string;
i,ip:byte;
begin
writeln('Введите строку из слов, разделенных пробелами:');
read(s);
i:=1;
ip:=0;
while(i<=length(s))and(ip=0) do
if(s[i]<>' ')and((i=1)or(s[i-1]=' ')) then ip:=i
else i:=i+1;
if ip=0 then write('Строка состоит из одних пробелов')
else
begin
i:=ip;
while(i<=length(s))and(s[i]<>' ') do
delete(s,i,1);
i:=length(s);
ip:=0;
while(i>=1)and(ip=0) do
if(s[i]<>' ')and((i=1)or(s[i-1]=' ')) then ip:=i
else i:=i-1;
if ip=0 then write('В строке было только 1 слово')
else
begin
i:=ip;
while(i<=length(s))and(s[i]<>' ') do
delete(s,i,1);
ip:=0;
for i:=1 to length(s) do
if s[i]=' ' then ip:=ip+1;
if ip=length(s) then write('В строке остались только пробелы')
else write(s);
end;
end;
end.