Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/41: Рейтинг темы: голосов - 41, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 5

Написать программу реализующую алгоритм последовательного поиска целевого значения из выборки N чисел

16.04.2009, 20:29. Показов 8425. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет!!!!Помогите пожалуйста "начинающему информатику",ну оооооочень надо!!
1.Написать программу реализующую алгоритм последовательного поиск целевого значения из выборки N чисел
2.. Написать программу реализующую алгоритм двоичного поиска целевого значения из выборки N чисел
заранее спс!!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.04.2009, 20:29
Ответы с готовыми решениями:

Написать программу реализующую алгоритм последовательного поиска целевого значения из выборки N чисел
Здравствуйте помогите пожалуйста как в этой задаче сделать так чтобы n была не константа а любая произвольная которую мы бы сами вводили с...

Написать программу реализующую алгоритм последовательного поиска целевого значения из выборки N чисел
1. Написать программу реализующую алгоритм последовательного поиска целевого значения из выборки N чисел. 2. Провести анализ наихудшего и...

Алгоритм последовательного поиска целевого значения из выборки N чисел
Написать программу реализующую алгоритм последовательного поиска целевого значения из выборки N чисел

19
 Аватар для Cepera
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
16.04.2009, 21:43
какой язык?
0
18 / 18 / 1
Регистрация: 30.03.2009
Сообщений: 149
16.04.2009, 22:36
чё-то я задачу не понимаю... "поиск целевого значения из выборки N чисел" слишком лаконично
типа: дано 1 2 5 6 7 8 12 26 45 -> найти 26 -> 1 2 5 6 7 8 12 >26< 45 вон там ????


у кого интересно мозги узлом закручивает, чтоб так задачи выражать?.. чес-слово...
0
138 / 138 / 65
Регистрация: 20.03.2009
Сообщений: 235
16.04.2009, 22:57
2 Серега, я не думаю, что кто-то в теме Pascal, будет просить написать на C++
0
 Аватар для Cepera
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
16.04.2009, 23:28
c00le®, я не обратил внимания на то что тема относится к паскалю, не надо меня за это осуждать :-)
0
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 5
17.04.2009, 16:22  [ТС]
Мне срочно нужны эти 2 алгоритма написанные в Паскале!!!!!Просто алгоритм последовательного поиска и алгоритм двоичного поиска!!!!!!!
0
138 / 138 / 65
Регистрация: 20.03.2009
Сообщений: 235
17.04.2009, 18:08
вот Вам последовательный:

Pascal
1
2
3
4
5
6
7
8
9
10
function SeqSearch(item: DataArray; count:integer;
                              key:DataItem):integer;
     var
       t:integer;
     begin
       t:=1;
       while (key<>item[t]) and (t<=count) t:=t+1;
       if t>count then SeqSearch:=0
       else SeqSearch:=t;
     end; { конец последовательного поиска }

функция бинарного(двоичного) поиска:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
 
function FoundByBinarySearch
(
LowIdx,
HighIdx : LongInt;
var   Result  : LongInt;
const GoalIs  : CompareFunc;
var   Data;
var   Goal
) : Boolean;
var
CompVal : CompareResults;
begin
FoundByBinarySearch := FALSE;
 
if HighIdx < LowIdx then
Exit;
 
Result := LowIdx + ((HighIdx-LowIdx) div 2);
CompVal := GoalIs(Result, Data, Goal);
 
if CompVal = BinEqual then
FoundByBinarySearch := TRUE
else if (LowIdx < HighIdx) then
begin
if CompVal = BinLess then
HighIdx := Result-1
else {CompVal = BinGreater}
LowIdx  := Result+1;
FoundByBinarySearch := FoundByBinarySearch(
LowIdx, HighIdx, Result, GoalIs, Data, Goal)
end
else if (CompVal = BinLess) then
Dec(Result)
end; { function FoundByBinarySearch }
1
 Аватар для Cepera
55 / 55 / 5
Регистрация: 09.03.2009
Сообщений: 177
17.04.2009, 18:16
Пример функции выполняющей двоичный поиск:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
     function BSearch (item: DataArray; count:integer;
                             key:DataItem):integer;
     var
       low, high, mid: integer;
       found:boolean;
     begin
       low:=1; high:=count;
       found:=false;         { не найден }
       while (low<=high) and (not found) do
       begin
         mid:=(low+high) div 2;
         if key<item[mid] then high:=mid-1
         else if key>item[mid] then low:=mid+1
         else found:=true;  { найден }
       end;
       if found then BSearch:=mid
       else BSearch:=0;  { не найден }
     end; { конец поиска }
Взято из: Энциклопедия Turbo Pascal. Главы 1-4 Страница 19. Двоичный поиск
1
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 5
18.04.2009, 09:11  [ТС]
спасибо большое!!!Ты написал мне функцию,а мне нужна сама программа,в общем!!!!

Добавлено через 2 минуты 58 секунд
что-то типа:
SequentialSearch(list.target,N)
list список для просмотра

target целевое значение
N число элементов в списке

for i=l to N do

if (target=list[i])

return i

end if

end for

return 0

для последовательного...
0
14 / 14 / 2
Регистрация: 14.04.2009
Сообщений: 66
18.04.2009, 11:15
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
program poisk;
const n=5;
  var
  i:integer;
  la:array[0..n] of integer;
begin
Randomize;
for i:=0 to n do begin
la[i]:=Random(10);
Write(la[i]:3);
end;
Writeln;
i:=0;
for  i:=0  to n  do
  if la[i]=n then Writeln(' 4islo n:= ', n, ' stoit na ', i+1, ' meste v massive');
Writeln(' end');
Readln;
end.
1
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 5
18.04.2009, 13:57  [ТС]
спасибо большое!!!!!!!
0
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 5
20.06.2010, 21:48
Вот почти то же самое но мне надо програмку немножко по другому: в общих чертах задачу поиска сформулировать так. Имеется массив данных a, содержащий n однородных(однотипных) объектов (чисел, строк и записей), и нужо определить, содержит ли заданный объект q. При положительном ответе следует дополнительно сообщить порядковый номер(индекс) о найденного элемента (a(j)=q).Среднее количество проверок состовляет (n+1)/2
Алгоритм:
1.Задать индекс j равным индексу первого элемента массива(чаще всего 1 или 0)
2.Проверить условие (a(j)=q). Если оно выполняется, то выдать сообщение, что искомый элемент содержится в j-ом элементе массива и прекратить поиск. Иначе продолжить работу.
3.Увеличить индекс j на единицу.
4.Проверить условие j<n+1. Если оно выполняется, то вернутся к шагу 2. Невыполнение условия свидетельствует о завершении просмотра массива. В этом случае следует сообщить, что заданный объект в массиве отсутствует, завершить работу программы.

Заранее благодарна, просто после дикрета отстала и сложно все вспомнить, даже если намекнете буду благодарна
0
14 / 14 / 2
Регистрация: 14.04.2009
Сообщений: 66
25.06.2010, 08:39
(n+1)/2 это половина+1 как я понимаю? Или n просто число?
0
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 5
25.06.2010, 08:50
я так понимаю что n это просто число внутри массива
0
14 / 14 / 2
Регистрация: 14.04.2009
Сообщений: 66
25.06.2010, 09:21
т.е. в массиве чисел 2,3,4,6,0,3 n может быть любым из ряда? Собственно как тогда выбрать
это n? Брать любое число из массива, вот тебе и n, хотя результат измениться в одинаковых условиях. n- конкретное чилсо(задаётся руками или 1 в массиве или длинна массива) но не как не любое. Значение n может быть любое, а вот его место определенно.

Добавлено через 10 минут
просто если это будет случайное число, то мы можем выйти за пределы массива.
0
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 5
25.06.2010, 14:47
Чтоб без путанницы, напишу текст, т.к. сама еле понимаю что к чему, поэтому и спрашиваю как это реализовать:
"В общих чертах задачу поиска можно сформулировать так. Имеется массив данных а, содержащий n однородных (однотипных) объектов (чисел, строк, записей), и нужно опроеделить, содержит ли он заданный объект g. При положительном ответе следует дополнительно сообщить порядковый номер (индекс) j найденного элемента.

Последовательный поиск: Если исходный массив а не упорядочен, то единственно разумным методомпоиска является последовательный перебор всех элементов массива и сравнения их с заданным образцом g.

При самом удачном стечении обстоятельств мы можем получить ответ уже на первом шаге поиска, если самый первый элемент массива равен искомому значению. Но надо быть готовыми и к худшему варианту, когда потребуется перебрать весь массив, чтобы получить положительный либо отрицательный ответ. Среднее количество проверок составляет (n+1)/2.

Вот классический алгоритм последовательного поиска:
1) Задать индекс j равным индексу первого элемента массива (чаще всего 1 или 0).
2) Проверить условие a(j)=g. Если оно выполняется, то выдать сообщение, что искомый элемент содержится в j-ом элементе массивва и прекратить поиск.Иначе продолжить работу.
3) Увеличить индекс j на еденицу.
4) Проверить условие j<n+1. Если выполняется, то вернутся к шагу 2. Невыполнение условия свидетельствует о завершении просмотра массива. В этом случае следует сообщить, что заданный объект в массиве отсутствует, и завершить работу программы.

Составте и отладьте программу, реализующюю последовательный поиск целого числа в заданном массиве чисел такого же типа."
Про сортировку подробно описанно- поняла, но про последовательный поиск только это и все,дальше бинарный поиск, и тоже понятно. Это из заочного курса ЕШКО " Введение в программирование" не домашняя работа а чисто для себя чтоб не было белых пятен.

Добавлено через 13 минут
Вот я тоже не поняла если надо найти g то при чем тут n, хотя n это элементы массива среди которых есть g а индекс получается j, но как объеденить в программу... все что придумала это
Pascal
1
2
3
4
5
6
7
8
9
10
11
var
a:array[1..9] of integer;
g:integer;
j:integer;
begin
g:=4;   {ищем g в массиве}
 j:=0;
while a[j]=g do j:=j+1
writeln (j);
readln;
end.
сыро понимаю что не то, но не знаю куда и как n вставить, понимаю нужна а как незнаю
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
25.06.2010, 15:27
Последовательный поиск это такой примитив, что не стоило и писать всю эту чушь.
вводим число для поиска(g)
Pascal
1
2
3
4
5
k:=0;
for i:=1 to n do
if a[i]=g then k:=1;
if k=0 then('нет')
else write('есть');
1
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 5
25.06.2010, 19:17
...это и вся программа? Совсем запутали, еще k откуда то взялась или она вместо j или я совсем туплю, покажите пожалуйста всю программку если не трудно, примитив это для тех кто знает, а кто не знает и препод молчит только домашнюю работу коментирует ( мне это счас темный лес
0
14 / 14 / 2
Регистрация: 14.04.2009
Сообщений: 66
27.06.2010, 19:24
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
program op;
const n=10; //длинна массива
      g=9; //искомое число
var 
  i:integer;
  a : array[0..n] of integer;
  k:boolean;
begin
k:=false;//предполагаем что искомого числа в массиве нет
for i:=0 to n do
if a[i]=g then k:=true;
writeln(k); //если К=true, то искомое число есть в массиве
end.
В данной программе всегда будет false, т.к. все элементы массива равны нулю
1
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 5
27.06.2010, 21:25
Спасибо!
Понемногу начинаю понимать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.06.2010, 21:25
Помогаю со студенческими работами здесь

Алгоритм двоичного поиска целевого значения из выборки N чисел
Написать программу реализующую алгоритм двоичного поиска целевого значения из выборки N чисел (использовать любой язык программирования). ...

Написать программу реализующую пузырьковую сортировку элементов выборки N чисел
Написать программу реализующую пузырьковую сортировку элементов выборки N чисел.(использовать язык программирования Паскаль).

Написать программу реализующую сортировку Шелла элементов выборки N чисел
Написать программу реализующую сортировку Шелла элементов выборки N чисел

Написать программу реализующую сортировку слиянием элементов выборки N чисел
Написать программу реализующую сортировку слиянием элементов выборки N чисел

Написать программу реализующую пузырьковую сортировку элементов выборки N чисел
Написать программу реализующую пузырьковую сортировку элементов выборки N чисел


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru