Листинг основной программы.

Var n1, n2: Longint;

k1, k2: Byte;

Function Quantity(x: Longint): Byte;

Var k: Byte;

Begin

k:=0;

While x <> 0 Do

Begin

Inc(k) ;

x:= x div 10;

End;

Quantity:= k;

End;

Begin

Writeln('Введите два числа');

Readln(n1, n2);

k1:=Quantity(n1);

{количество цифр первого числа}

k2:= Quantity(n2);

{количество цифр второго числа}

If k1 = k2 Then

Writeln('Одинаковое количество цифр')

Else

If k1 > k2 Then

Writeln('В первом числе цифр больше')

Else

Writeln('Во втором числе цифр больше');

Readln;

End.

Лекция № 17. Нетрадиционное использование пользовательских подпрограмм. Рекурсия

В ряде алгоритмов решения задач требуется вызов подпрограммы из раздела операторов той же самой подпрограммы.

Рекурсия – это такой способ организации вычислительного процесса, при котором процедура или функция в ходе выполнения составляющих ее операторов обращается сама к себе.При использовании рекурсии следует обращать особое внимание на выход из подпрограммы в нужный момент. Рекурсия полезна, когда задачу нужно разделить на подзадачи. При использовании рекурсивной процедуры и функции в начале нужно поместить строку

if keypressed then halt; -для прерывания зависания, если таковое произойдет. Keypressed – это функция, возвращающая результат true,если на клавиатуре была нажата клавиша, и false – в противном случае.

 

Пример 1.Рассмотрим программу вычисления элементов ряда Фибоначчи с использованием рекурсивной процедуры.

program rekurs;

procedure fibon(n,fn1,fn:integer);{рекурсивная процедура}

Begin

if n > 0 then

Begin

writeln(fn1+fn);

fibon(n-1,fn,fn1+fn);

End;

End;

var n,a,b: integer;

begin

write('введите число элементов ряда Фибоначчи: ');

readln(n);

write('...следующими за двумя данными числами: ');

readln(a,b);

Fibon(n,a,b);

end.

Пример 2.Программа, которая выводит на экран цифры целого положительного числа в обратном порядке.

 

program rekurs2;

uses crt;

procedure revers(n:integer); {рекурсивная процедура}

Begin

If keypressed then halt;

Write(n mod 10);

if (n div 10) <> 0 then

Revers (n div 10);

End;

var n: integer;

begin

clrscr;

writeln('vvedi chislo <= : ', maxint);

readln(n);

Revers(n);

writeln;

readln;

end.

Лекция №18. Ввод – вывод данных. Файлы

Файл – это набор данных, хранящихся во внешней памяти компьютера под заданным именем.

Любой файл имеет три характерные особенности:

1. У файла есть имя, что дает возможность программе работать одновременно с несколькими файлами.

2. Файл содержит компоненты одного типа. Типом компонентов файла может любой тип.

3. Длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только емкостью устройств внешней памяти.

Для того, чтобы программа нашла нужный файл, необходимо знать путь или маршрут к файлу.

Путь – это перечень имен подкаталогов, которые отделены друг от друга с помощью обратной косой черты, за которым следует собственно имя файла.

Например:

c:\catalog1\catalog2\file1.txt.

Каждое имя каталога соответствует входу в подкаталог с таким именем. Знак ".." соответствует входу в надкаталог. Максимально допустимая длина пути – 79 символов.

В программе на ТР имя файла задается в виде текстовой константы, заключенной в апострофы, которая может быть значением строковой переменной:

'\turbo\pas\table.txt'.

Устройства.Использование файлов в ТР было вызвано необходимостью обмена данными с окружением компьютера, его аппаратными средствами: дисплеем, клавиатурой, принтером, каналами ввода-вывода. Все они рассматриваются в ТР как файлы, с которыми можно работать так же, как с обычными файлами. Файлы на внешних устройствах часто называют физическими или внешними файлами. Обращение к устройствам выполняется с помощью специальных имен, которые запрещено использовать для обычных файлов – так называемых имен логических устройств компьютера.

­ CON – консоль. При помощи консоли выводимая информация пересылается на экран дисплея, а вводимая информация воспринимается с клавиатуры;

­ PRN – это наименование принтера. Если к компьютеру подключено несколько принтеров, то обращение к ним осуществляется с помощью логических имен: LPT1, LPT2, LPT3.

­ COM1, COM2, COM3 –это устройства подключения к последовательным портам. Используются для связи с другими компьютерами и для подключения мыши.

­ NUL – нулевое или пустое устройство. Часто используется программистами для отладки программы. Позволяет не создавать отдельный файл. При использовании его для вывода информации – информация никуда не выводится, но сообщается, что вывод произошел успешно.

 

Доступ к файлам.В любой момент времени программе доступен только один элемент файла, на который ссылается указатель текущей позиции файла. Он определяет место в файле, откуда или куда происходит чтение или запись данных. При открытии или создании файла указатель помещается в его начало. Указатель ведет себя подобно курсору, который, смещаясь при редактировании текста, все время показывает текущую позицию. При чтении данных из файла указатель рано или поздно достигнет его конца. По способу доступа к элементам различают файлы последовательного или прямого доступа.

Файлом последовательного доступа называется файл, к элементам которого доступ выполняется в той последовательности, в какой они записывались.Для поиска нужного элемента в этом случае необходимо перемещать указатель до тех пор, пока он не будет помещен на искомый элемент. Для таких файлов запрещено одновременно читать и записывать данные в файл.

Файл прямого доступа – это файл, доступ, к элементам которого осуществляется по их адресу.При поиске нужного элемента в таких файлах достаточно указать номер его позиции. Для файлов прямого доступа разрешается одновременная запись и считывание данных.








Дата добавления: 2017-11-04; просмотров: 597;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.011 сек.