Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 21.12.2014, 22:46   #1 (permalink)
вера2014
Новичок
 
Регистрация: 21.12.2014
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию На Паскале рекурсия, методы сортировки, однопроходные алгоритмы

помогите, пожалуйста, нужна помощь..
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), согласному указанному методу сортировки.
Предусмотреть в программе вывод количества произведенных сравнений и перестановок.
Предусмотреть в программе подсчет количества сравнений и перестановок при "наилучшем" и "наихудшем" расположении элементов.
Предусмотреть в программе вывод времени исполнения сортировки (в миллисекундах).
Организовать ввод элементов файла в виде отдельной программы, предлагающей один из вариантов заполнения файла данными: случайным образом, числа из интервала (А,В) в возрастающем порядке, числа из интервала (А,В) в убывающем порядке. (Методом пузырька)
вера2014 вне форума   Ответить с цитированием

Старый 21.12.2014, 22:46
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Не исключено, что ваша проблема уже решена в аналогичных топиках

Ключ сортировки – любой, алгоритм сортировки – пузырек
Рекурсия
Методы сортировки
Быстрый метод сортировки(Делфи)

Старый 21.12.2014, 22:49   #2 (permalink)
вера2014
Новичок
 
Регистрация: 21.12.2014
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

вот есть наброски
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.
вера2014 вне форума   Ответить с цитированием
Старый 24.12.2014, 10:38   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от вера2014 Посмотреть сообщение
какая может быть ошибка формулы в чётном элементе?
В условии у Вас в формуле вычисления функции четного аргумента стоит "1-", а в программе "1+". Уж выберите что-нибудь одно. А так - вроде всё работает. Что не так?
Vladimir_S вне форума   Ответить с цитированием
Старый 24.12.2014, 12:22   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от вера2014 Посмотреть сообщение
помогите найти ошибку,не работает для n=2
Да всё работает, при n=2 выдаёт -1, как и быть должно. А Вы чего ожидали?
Тут другое: число 2006 тоже не годится. Ближайшее правильное - 2016 (63 страницы). Так что, похоже, Татьяна Димитревна малость напортачила с подсчетом...
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 02:35.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.