• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

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

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

На Паскале рекурсия, методы сортировки, однопроходные алгоритмы

вера2014

Ученик
Регистрация
21 Дек 2014
Сообщения
5
Реакции
0
Баллы
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. написать программу, определяющую номер прочитанной страницы.

3)Выполнить поиск, используя однопроходные алгоритмы:
Найти длину самой большой группы подряд идущих одинаковых элементов последовательности.Задача подразумевает работу с последовательностью символов, которые вводит пользователь.

4)
Написать алгоритмы упорядочивания данных из файла (целые числа,количество элементов не менее 10000), согласному указанному методу сортировки.
Предусмотреть в программе вывод количества произведенных сравнений и перестановок.
Предусмотреть в программе подсчет количества сравнений и перестановок при "наилучшем" и "наихудшем" расположении элементов.
Предусмотреть в программе вывод времени исполнения сортировки (в миллисекундах).
Организовать ввод элементов файла в виде отдельной программы, предлагающей один из вариантов заполнения файла данными: случайным образом, числа из интервала (А,В) в возрастающем порядке, числа из интервала (А,В) в убывающем порядке. (Методом пузырька)
 
вот есть наброски
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(cool.gif;
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.
 
какая может быть ошибка формулы в чётном элементе?
В условии у Вас в формуле вычисления функции четного аргумента стоит "1-", а в программе "1+". Уж выберите что-нибудь одно. А так - вроде всё работает. Что не так?
 
помогите найти ошибку,не работает для n=2
Да всё работает, при n=2 выдаёт -1, как и быть должно. А Вы чего ожидали?
Тут другое: число 2006 тоже не годится. Ближайшее правильное - 2016 (63 страницы). Так что, похоже, Татьяна Димитревна малость напортачила с подсчетом...
 
Назад
Сверху