Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2010, 15:29   #1
0IceCube0
 
Регистрация: 25.09.2009
Сообщений: 5
Восклицание Бинарный поиск

Дан список, содержащий 10 записей, каждая из которых имеет структуру:
Ф.И.О. Факультет Группа Год рождения
20 символов 5 символов 6 символов целое число
Список упорядочен по убыванию года рождения.
Разработать алгоритмы и программы линейного и двоичного поиска всех студентов, родившихся до 1979 года с выводом найденных записей на экран.
Сделайте пожалуйста Бинарный поиск

Код:
uses crt;
Type
    T_Stud=record
          FIO:string[20];
          Fac:string[5];
          Group:string[6];
          God_roj:integer;
          End;
Var
    Spis:array [1..10] of  T_Stud;
i, N: integer;

Procedure Vvoda;
Var
    Spis:array [1..10] of  T_Stud;
    i, N: integer;
Begin
clrscr;
   Writeln('Vvedite Kolichestvo studentov');
   readln(N);
   For i:=1 to N do
Begin
   with Spis[i] do
Begin
    Writeln('F.I.O.');
    readln(FIO);
    Writeln('Facul`tet');
    readln(Fac);
    Writeln('Grouppa');
    readln (Group);
    Writeln('God rojdenia');
    readln(God_roj);
    writeln;
end;
end;
end;

Procedure Vyvoda;
var
 Spis:array [1..10] of  T_Stud;
    i,n: integer;
    begin
     Writeln('Spisok studentov':40);
writeln(' F.I.O.':15,' Facul`tet':15,' Grouppa':15,' God rojdenia':15);
For i:=1 to N do
WITH Spis [i] do Writeln (FIO:15,Fac:15,Group:15,God_roj:15);
Writeln;
end;

Procedure Sortirovki;
Var
Spis:array [1..10] of  T_Stud;
i, N: integer;
minGod_roj: T_Stud;
index, j: integer;
begin
For i:=1 to n do
begin
minGod_roj:=Spis[i];
index:=i;
For j:=i+1 to n do
if spis[j].God_roj>minGod_roj.God_roj then
begin
minGod_roj:=spis[j];
index:=j;
end;
Spis[index]:=spis[i];
spis[i]:=minGod_roj;
end;
writeln(' F.I.O.':15,' Facul`tet':15,' Grouppa':15,' God rojdenia':15);
For i:=1 to N do
begin
WITH Spis [i] do Writeln (FIO:15,Fac:15,Group:15,God_roj:15);
Writeln;
end;
end;

Procedure Lin_Poisk;
var
Spis:array [1..10] of  T_Stud;
i, N: integer;
Godroj:integer;
Begin
Writeln;
write('vvedite  God rojdenia=');
read(Godroj);
WriteLn('Rezyl`tat poiska':40);
writeln(' F.I.O.':15,' Facul`tet':15,' Grouppa':15,' God rojdenia':15);
For i:=1 to n do
with spis[i] do
if Spis[i].God_roj<=Godroj then
Begin
WITH Spis [i] do Writeln (FIO:15,Fac:15,Group:15,God_roj:15);
readln;
end
else
if i=n then writeln ('Zadanogo spiska net');
Readln;
end;



Begin
clrscr;
randomize;
Vvoda ;
Vyvoda ;
WriteLn('Rezyl`tat sortirovki':40);
Sortirovki;
Lin_Poisk;

readln;
end.

Последний раз редактировалось Stilet; 13.04.2010 в 15:50.
0IceCube0 вне форума Ответить с цитированием
Старый 13.04.2010, 15:52   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Вот алгоритм, да и еще на паскале:
http://ru.wikipedia.org/wiki/%D0%91%...B8%D1%81%D0%BA
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бинарный поиск (Паскаль) Zhanna5006 Помощь студентам 3 07.01.2010 09:52
бинарный поиск(паскаль) MetR Помощь студентам 6 14.12.2009 15:46
Нужен совет(бинарный поиск в 2-d массиве) sergey31 Помощь студентам 2 27.04.2008 13:49
Бинарный поиск Gendalf Помощь студентам 1 07.07.2007 22:09