Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
 Аватар для ololo111
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620

Добавление сортировки

03.04.2019, 21:50. Показов 3685. Ответов 98
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
не хватает процедуры сортировки имён в алфавитном порядке...
вот сама программа
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
//Uses Crt;
type
  TPElem = ^TElem;
  TElem = record
    Data : string;
      Left,Right: TPElem;
  end; 
  
var
  T,S : TPElem;
  i,k:byte;
  N:string;
  
procedure AddToTree( var T: TPElem; N:string); {ВВОД}
begin
  if T = nil then begin
    New(T);
    T^.Data := N;
     T^.Left := nil;
     T^.Right := nil;
   Exit; end; 
  if N < T^.Data then
     AddToTree(T^.Left, N)
  else 
     AddToTree(T^.Right, N);
end; 
// //
function Search(T:TPElem; N:string):TPElem; {ПОИСК}
var
P:TPElem;  
begin
  if T=nil then  
     begin
       Search:=nil;  
       exit; 
     end;
  if N=T^.Data then 
    P:=T 
     else 
       if N < T^.Data then
          P:=Search(T^.Left,N) 
       else     {иначе }
         P:=Search(T^.Right,N); 
  Search:=P;
end;
// //
procedure Lkp(T:TPElem);  {ВЫВОД}
begin
  if T=nil then 
   exit;    
  Lkp(T^.Left);  
  write('  ',T^.Data);
  Lkp(T^.Right);  
end;
// //
 begin
    while true do
    begin
        writeLn('Выберите действие');
        writeLn('1 - Добавление');
        writeLn('2 - Поиск'); 
        writeLn('5 - Вывод');
        writeLn('6 - Очистка');
        writeLn('7 - Exit');
       var ans := ReadLnString('Ваш выбор:').Trim;
      if ans.Length > 0 then
        case ans[1] of
            '1' :          {ВВОД}
             begin
             // ClrScr;
               Write('Задайте количество сотрудников: ');
               Readln(k);
              for i := 1 to k do
                begin
                 Write('Введите имя: ');
                 Readln(N);
                 AddToTree(T,N);
                end; 
             end;
         '2': begin      {ПОИСК}
               writeln('Имя для поиска');
               readln(N);
               S:=Search(T,N);
                  if S <> nil then
                    writeln('Найден')
                  else writeln('Такого элемента нет!');
              end;
    '5' :begin         {ВЫВОД}
      //  ClrScr;
    Write('Список: ');
    if T = nil then
    writeln('пуст... ')
    else begin
        Lkp(T);
        writeln;
       end; end;
        '6' : begin
              T:=nil;
     //         ClrScr;
              writeln('Список очищен... ');
              end;
          '7' : exit
        end;  
    end;
end.
есть у кого нибудь хотя бы пример? хоть посмотреть как такая процедура выглядит, а то везде только массивы да списки.... а как в дереве такое выглядит, нигде не пишется и не объясняется, опять надо у бога спрашивать...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.04.2019, 21:50
Ответы с готовыми решениями:

Разработайте рекурсивную процедуру сортировки последовательности методом быстрой сортировки Хоара
Помогите!!!! Дана последовательность чисел a1, a2, ... , an. Разработайте рекурсивную процедуру сортировки последовательности методом...

Написать программу сортировки массива с помощью алгоритма внешней сортировки
1. Дан текстовый файл, в котором записана последовательность целых чисел. Написать программу сортировки массива с помощью алгоритма внешней...

Расставить элементы массива в порядке возрастания методом сортировки выбором и сортировки простыми вставками
Здрасьте еще раз!С прошедшим вас праздником! я глупая и бестолковая опять пришла к вам на спасение. задачка вот простенькая, но вся...

98
 Аватар для ololo111
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
20.04.2019, 16:48  [ТС]
Студворк — интернет-сервис помощи студентам
а хотя, если функцию оставить как есть,
Pascal
1
2
3
4
5
6
7
8
9
10
function Depth(T:TPtree) : Integer;
var L, R : Integer;
begin
   if T=nil then Depth:=0
   else
   begin
      L := Depth(T^.Left); R := Depth(T^.Right);
      if L > R then Depth := L + 1 else Depth := R + 1;
   end;
end;
то потом при выводе можно прописать:
Pascal
1
2
3
4
5
6
    begin
     clrscr;
      Depth(T);
       v:=Depth(T);
      writeln('Уровней: ',v);
    end;
и всё заработало!

Добавлено через 22 секунды
Цитата Сообщение от Пс Посмотреть сообщение
это надеюсь не полный код?))
нет, полный на 300 строчек
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,254
20.04.2019, 16:49
ololo111, я вам так и говорил,не в функции надо переменную добавлять,а там где основные переменные
0
 Аватар для ololo111
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
20.04.2019, 16:50  [ТС]
не знаю как, не знаю почему, но всё вроде заработало
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,254
20.04.2019, 16:51
ololo111, так это же хорошо)
надеюсь вы научились присваивать переменной,значение функции?)
0
 Аватар для ololo111
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
20.04.2019, 16:52  [ТС]
Цитата Сообщение от Пс Посмотреть сообщение
надеюсь вы научились присваивать переменной,значение функции?)
надеюсь да
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,254
20.04.2019, 16:53
ololo111, тогда удачи)
1
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
20.04.2019, 17:08
Вы себе примерно хоть представляете как работают функции?
Цитата Сообщение от ololo111 Посмотреть сообщение
writeln(GetDepth) ведь нельзя написать
А вы пробовали?

Цитата Сообщение от Пс Посмотреть сообщение
kvadrat(var b: integer)
В чём прикол передавать integer по ссылке? Вы только заставляете программу выполнить лишнюю операцию при каждом чтении/записи этой переменной. Передавать как var-параметр имеет смысл только записи, занимающие много памяти, чтоб всё не копировать.


ololo111, Когда вы пишете так:
Pascal
1
2
3
4
5
6
7
8
function MySqr(x: integer): integer;
begin
  Result := x*x;
end;
 
begin
  var i := MySqr(5);
end.
i присваивается то что было в Result функции. А можно и не присваивать переменной, а использовать в том же writeln или в другом выражении, к примеру:
Pascal
1
  var i := MySqr(5) + 10;
И, пожалуйста, перед отправкой сообщений - пробуйте перечитать что написали, и есть видите что написали утверждение вроде

Цитата Сообщение от ololo111 Посмотреть сообщение
writeln(GetDepth) ведь нельзя написать
сначала протестируйте, даже если вы на 100% уверены в этом утверждении. А то не приятно такие глупости читать.
0
 Аватар для ololo111
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
21.04.2019, 21:29  [ТС]
Цитата Сообщение от Sun Serega Посмотреть сообщение
writeln(GetDepth) ведь нельзя написать
сначала протестируйте, даже если вы на 100% уверены в этом утверждении. А то не приятно такие глупости читать.
странно, я ведь пробовал так писать, и он выдавал ошибку... потому и по другому приходилось делать, а сейчас и без ошибки вывел.... чудеса
0
 Аватар для ololo111
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
22.04.2019, 19:48  [ТС]
ребят, а кто-нибудь сталкивался с перестроением готового дерева? у кого-нибудь есть хотябы примеры?
а то надо чтоб дерево уменьшалось по уровням без потери информации, как на картинке.... а как эти ветки найти и выбрать, да потом ещё и переставить между собой, даже понятия не имею.... хотябы пример посмотреть где что-нибуть подобное делается
Миниатюры
Добавление сортировки   Добавление сортировки  
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,254
22.04.2019, 19:57
ololo111, вы для себя это делаете?или для препода?
0
 Аватар для ololo111
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
22.04.2019, 20:09  [ТС]
Цитата Сообщение от Пс Посмотреть сообщение
вы для себя это делаете?или для препода?
именно данное перестроение дерева - это для препода, ибо всё что было для себя я уже изучил.... ну и это может просто пригодится как дополнительное умение програмирования, хотя я не думаю что вообще когда-нибудь буду програмистом, и тем более деревья перестраивать.... но это уже надо доделать.
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,254
22.04.2019, 21:01
ololo111, понятно
0
 Аватар для ololo111
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
22.04.2019, 22:04  [ТС]
блин, был бы пример хотя-нибудь с подобным перестроением дерева... что-то ничего такого нет в инете...

Интересно как это вообще записывается, если правый есть а левый пуст, и следующий правый есть а левый пуст, то ставим 2й элемент на место 1го, а первый заносим в его левую ветку? и так со всеми возможными случаями? а как это в программе пишется, как выбрать тот или иной лист дерева для перестановки, как они вообще обозначаются, если взять например номер 14 из 1й картинки, то ссылка на него будет потипу: корень^правый^правый^правый^левый? или как?
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
22.04.2019, 22:15
Ну, у вас явно логика на месте. Вам надо только научится её использовать вместо того чтоб ждать чтоб вам всё сделали за вас. Месяцев за 3-4 вы бы и меня догонять стали.

Серьёзно, запомните что вы делаете и как думаете когда включаете голову, как при написании последнего сообщения. Только пишите лучше не на форум а в что то типа блокнота (лучше, наверное, электронного). И сразу тестируйте предположения кодом.

И это задача, кстати, очень даже подходит для тренировки.
0
 Аватар для ololo111
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
22.04.2019, 23:11  [ТС]
Цитата Сообщение от Sun Serega Посмотреть сообщение
Ну, у вас явно логика на месте. Вам надо только научится её использовать вместо того чтоб ждать чтоб вам всё сделали за вас. Месяцев за 3-4 вы бы и меня догонять стали.
Серьёзно, запомните что вы делаете и как думаете когда включаете голову, как при написании последнего сообщения. Только пишите лучше не на форум а в что то типа блокнота (лучше, наверное, электронного). И сразу тестируйте предположения кодом.
И это задача, кстати, очень даже подходит для тренировки.

если бы у меня опыт програмирования был бы по больше чем 5 программ, то тогда да, может я и смог бы что-то сделать.... а так я только только начал знакомиться с паскалем, и для меня это что-то непостижимое,, идея может и есть, но как это должно выглядеть в программе, я из-за нехватки опыта и понятия не имею, и из-за этого у меня мало что получается..... вот незадача.... мне бы пример хоть какой посмотреть бы
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
22.04.2019, 23:19
Цитата Сообщение от ololo111 Посмотреть сообщение
если бы у меня опыт програмирования был бы по больше чем 5 программ
А его и не будет, пока вы просите помощи (примеров, подсказок, как хотите называйте, суть от этого не меняется) у других. У меня столько опыта - в первую очередь потому что спрашивать неукого было в своё время. И в данный момент я очень рад что так получилось, особенно наблюдая за вами и ещё 1 индивидуумом, так же "учащимся" программировать.
0
 Аватар для JuriiMW
5096 / 2662 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
23.04.2019, 04:21
Цитата Сообщение от ololo111 Посмотреть сообщение
что-то ничего такого нет в инете...
Вы просто не там ищете!

Это называется сбалансированное дерево или АВЛ-дерево.
И информации по этой теме — выше крыши!
1
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,254
23.04.2019, 14:37
Цитата Сообщение от Sun Serega Посмотреть сообщение
и ещё 1 индивидуумом, так же "учащимся" программировать.
это наверно я?))
0
 Аватар для ololo111
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
27.04.2019, 17:20  [ТС]
ребят, не подскажете где есть информация для чайников о создании хэширования списка, и использовании его для поиска элементов в списке? а то везде где не посмотрю, всё как-то очень сложно преподносится, и ничерта не понятно. то же самое что японский с нуля изучать, где всё только на японском написано...
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,254
27.04.2019, 17:28
ololo111, я могу ошибаться,но что-то подобное реализуется с помощью Thread,копайте в эту сторону.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.04.2019, 17:28

Добавление сортировки
дана задача, основное написанно но нет сортировки... Разработать программу формирования ведомости об успеваемости студентов. Каждая...

Добавление времени сортировки
Доброго времени суток. Я начинающий. Столкнулся с проблемой, не могу разобраться никак со вставкой таймеров. Мне необходимо вставить время...

Добавление сортировки в готовый код
Здрасвтвуйте. Помогите пожалуйста. Нужно сформированный массив перед выводом на экран упорядочить по возрастанию. program lab3a; ...

Добавление кнопки сортировки в проект
Помогите добавить кнопку сортировки в проект, которая будет сортировать фамилии абонентов в алфавитном порядке. Заранее спасибо.

Добавление флага в алгоритм сортировки способом пузырька (С++)
Всем добрый вечер. Помогите пожалуйста добавить флажок в этот алгоритм. Идея – если при выполнении метода пузырька не было обменов,...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ начало и оглавление - Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
Текстовый слайдер с нумерацией страниц и кроссбраузерность.
russiannick 18.07.2026
Один мой друг написал текстовый слайдер с нумерацией страниц. Сегодня я расскажу как он умудрился подружить его с кроссбраузерностью. Очевидно сложно угодить с шириной каждому браузеру. Один крадет. . .
Грибы - это мемы, дерево - это человек. Применение микоризной модели к теории меметики Докинза.
anaschu 18.07.2026
Меметический изоморфизм теории «всего»: Грибная сукцессия как модель эволюции идей Докинза Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а универсальную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru