0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 17
|
|
1 | |
ПОМОГИТЕ с комментариями20.05.2008, 17:25. Показов 1228. Ответов 1
Метки нет (Все метки)
прокомментируйте плиз прогу, я прост в паскале не силен......желательно подробно.....спс.... вот код type
TreeLink = ^Tree; Tree = record Data: string; Left, Right: TreeLink; end; procedure InsTree(var t:TreeLink; Num, NumNode : integer; S:String); var PNum, LNum, k : integer; begin if t = nil then begin new(t); with t^ do begin Left := nil; Right := nil; Data := S; end; end else begin { По текущему номеру узла можно определить номер узлов, которые справа и слева от него } k := 1; PNum := NumNode; While PNum > k do begin PNum := PNum - k; k := k * 2; end; { PNum - номер узла внутри уровня от 1 } { LNum - номер левого узла от текущего } LNum := (PNum-1)*2 + NumNode - PNum + 1 + k; if (LNum = Num) or (t^.Left <> nil) then InsTree(t^.left , Num, LNum, S); if (LNum+1 = Num) or (t^.Right <> nil) then InsTree(t^.Right, Num, LNum+1, S) end; end; Procedure PrintTree(var S:String; t:TreeLink); begin if t <> nil then begin PrintTree(S, t^.left); PrintTree(S, t^.right); S := S + t^.data + ','; end; end; var txtfile : text; S, S1 : String; kd: TreeLink; N, i:integer; begin kd := nil; Assign(txtfile, 'out.txt'); Reset(txtfile); s := ''; while not eof(txtfile) do begin Readln(txtfile, S1); if S1[length(s1)] <> ',' then s1 := s1 + ','; s := s + s1; end; Close(txtfile); N := 1; // Номер узла for i := 1 to length(s) do begin while (Pos(',', s) > 0) do begin S1 := copy(s, 1, Pos(',', S) - 1); delete(s, 1, Pos(',', S)); insTree(kd, N, 1, S1); inc(N); end; end; s := ''; PrintTree(s, kd); Assign(txtfile, 'in.txt'); Rewrite(txtfile); writeln(txtfile, s); Close(txtfile); readln; end.
0
|
20.05.2008, 17:25 | |
Ответы с готовыми решениями:
1
Помогите с комментариями Помогите С Комментариями Помогите с комментариями к программе Хочу разобраться в коде. Помогите с комментариями |
13208 / 6597 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
|
|
20.05.2008, 20:22 | 2 |
Учимся оформлять код соответствующим тегом.
Код
type TreeLink = ^Tree; Tree = record Data: string; Left, Right: TreeLink; end; procedure InsTree(var t:TreeLink; Num,NumNode:integer; S:String); var PNum, LNum, k :integer; begin if t = nil then begin new(t); with t^ do begin Left := nil; Right := nil; Data := S; end; end else begin { По текущему номеру узла можно определить номер узлов, которые справа и слева от него } k := 1; PNum := NumNode; While PNum > k do begin PNum := PNum - k; k := k * 2; end; { PNum - номер узла внутри уровня от 1 } { LNum - номер левого узла от текущего } LNum := (PNum-1)*2 + NumNode - PNum + 1 + k; if (LNum = Num) or (t^.Left <> nil) then InsTree(t^.left , Num, LNum, S); if (LNum+1 = Num) or (t^.Right <> nil) then InsTree(t^.Right, Num, LNum+1, S) end; end; Procedure PrintTree(var S:String; t:TreeLink); begin if t <> nil then begin PrintTree(S, t^.left); PrintTree(S, t^.right); S := S + t^.data + ','; end; end; var txtfile : text; S, S1 : String; kd: TreeLink; N, i:integer; begin kd := nil; Assign(txtfile, 'out.txt'); Reset(txtfile); { открываем файл для чтения } s := ''; while not eof(txtfile) do begin { считываем из него все строки } Readln(txtfile, S1); if S1[length(s1)] <> ',' then s1 := s1 + ','; { добавляем "," в конец строки } s := s + s1; { объелиняем все строки в одну, разделенную "," } end; Close(txtfile); { закрываем файл } N := 1; // Номер узла for i := 1 to length(s) do begin { перебираем всю строку } while (Pos(',', s) > 0) do begin { ищем "," } S1 := copy(s, 1, Pos(',', S) - 1); { копируем все до "," } delete(s, 1, Pos(',', S)); { удаляем из исходной строки все вместе с "," } insTree(kd, N, 1, S1); { добавляем ветвь дерева } inc(N); end; end; s := ''; PrintTree(s, kd); { записываем содержимое дерева в s } Assign(txtfile, 'in.txt'); Rewrite(txtfile); { открываем файл для записи } writeln(txtfile, s); { записываем содержимое дерева } Close(txtfile); { и закрываем файл } readln; end.
0
|
20.05.2008, 20:22 | |
20.05.2008, 20:22 | |
Помогаю со студенческими работами здесь
2
Желательно с комментариями.) Блок с комментариями Убрать над комментариями Постраничный вывод с комментариями Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи | |||||
Интеграция Arduino и ChatGPT: Практическое руководство
InfoMaster 16.01.2025
В современную эпоху технологических инноваций интеграция искусственного интеллекта с микроконтроллерами открывает принципиально новые возможности для создания умных устройств и автоматизированных. . .
|
Как создать робота, управляемого ChatGPT
InfoMaster 16.01.2025
Концепция проекта
В современную эпоху искусственный интеллект и робототехника становятся все более доступными для энтузиастов и разработчиков. Создание роботизированной руки, управляемой ChatGPT,. . .
|
Как создать ChatGPT бота в Telegram на Python
InfoMaster 16.01.2025
В современном мире технологии искусственного интеллекта становятся все более доступными для разработчиков, открывая новые возможности для создания умных и интерактивных приложений. Одним из самых. . .
|
Машинное обучение с помощью Python
InfoMaster 16.01.2025
Машинное обучение стало неотъемлемой частью современных технологий, позволяя компьютерам учиться на основе данных и принимать решения без явного программирования. В сочетании с языком. . .
|
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP
В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
|
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
|
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
|
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
|
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
|
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
|
Параллельное программирование: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование
Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
|
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
|