Лабораторные На Pascalabc.net.рекурсия,сортировка.

Тема в разделе "Pascal and Delphi", создана пользователем vera2014, 21 дек 2014.

  1. vera2014

    vera2014 New Member

    Регистрация:
    21 дек 2014
    Сообщения:
    1
    Симпатии:
    0
    1)какая может быть ошибка формулы в чётном элементе?
    {Определить значение F(x), если функция задана на множестве целых чисел соотношением (с помощью рекурсии):
    F_(2K+1)=F_2K*(F_2K-F_(2K-1) )
    F_2K=1-F_(2K-1)*F_(2K-2)
    F_1=1,F_2=-1}

    uses crt;
    function rec(k:integer):longint;
    begin
    if k=1 then rec:=1
    else if k=2 then rec:=-1
    else
    begin
    if odd(k) then rec:=rec(k-1)*(rec(k-1)-rec(k-2))
    else rec:=1+rec(k-1)*rec(k-2);
    end;
    end;
    var n:longint;
    begin
    clrscr;
    write('n=');
    readln(n);
    write(rec(n));
    readln
    end.

    2)написать программу Выполнить задание с использованием рекурсивных процедур или функций. Татьяна Ларина, читая очередной французский роман, подсчитала сумму номеров прочитанных страниц. =2006. написать программу, определяющую номер прочитанной страницы.(помогите найти ошибку,не работает для n=2)
    uses crt;
    procedure rec(n,k:integer;var s:integer);
    begin
    s:=k;
    if s<n then
    begin
    n:=n-s;
    k:=k+1;
    s:=s+k;
    rec(n,k,s);
    end;
    if s>n then s:=-1;{признак неправильного ввода n}
    end;
    var n,s:integer;
    begin
    clrscr;
    write('n=');
    readln(n);
    rec(n,1,s);
    write(s);
    readln
    end.


    3)Выполнить поиск, используя однопроходные алгоритмы:
    Найти длину самой большой группы подряд идущих одинаковых элементов последовательности.Задача подразумевает работу с последовательностью символов, которые вводит пользователь.(нужно чтобы работала не только с числами,но и с символами)
    uses crt;
    var a,b,n,i,k,mx:integer;
    begin
    clrscr;
    repeat
    write('Размер последовательности n>1 n=');
    readln(n);
    until n>1;
    writeln('Введите элементы последовательности, целые числа:');
    readln(a);
    mx:=1;
    k:=1;
    for i:=2 to n do
    begin
    readln:)email:;
    if b=a then inc(k);
    if (b<>a)or(i=n)then
    begin
    if k>mx then mx:=k;
    k:=1;
    end;
    a:=b;
    end;
    write('Максимальная длина идущих подряд одинаковых=',mx);
    readln
    end.

    4)

    Написать алгоритмы упорядочивания данных из файла (целые числа,количество элементов не менее 10000), согласному указанному методу сортировки.

    Предусмотреть в программе вывод количества произведенных сравнений и перестановок.

    Предусмотреть в программе подсчет количества сравнений и перестановок при "наилучшем" и "наихудшем" расположении элементов.

    Предусмотреть в программе вывод времени исполнения сортировки (в миллисекундах).

    Организовать ввод элементов файла в виде отдельной программы, предлагающей один из вариантов заполнения файла данными: случайным образом, числа из интервала (А,В) в возрастающем порядке, числа из интервала (А,В) в убывающем порядке. (Методом пузырька)
     
Загрузка...

Поделиться этой страницей