0 / 0 / 0
Регистрация: 07.03.2016
Сообщений: 38

Продемонстрировать работу логической функции same(T), определяющую, есть ли в дереве Т хотя бы два одинаковых

31.05.2017, 17:12. Показов 1128. Ответов 1

Author24 — интернет-сервис помощи студентам
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
program Project9;
 
{$APPTYPE CONSOLE}
 
{$R *.res}
 
uses
System.SysUtils;
 
type tipder=char;
ptrDER=^DEREVO;
DEREVO=record
zn: tipder;
l,r: ptrDER;
end;
der=ptrDER;
var D,X: der;
f: text;
a: tipder;
s: string;
 
procedure PECHD(T: der);
var T1: der;
begin
T1:=T;
if (T^.zn='*') or (T^.zn='+') or (T^.zn='-') then
begin
write('(');
T1:=T^.l;
PECHD(T^.l);
write(T^.zn);
T1:=T^.r;
PECHD(T^.r);
write(')');
end
else write(T^.zn);
end;
 
procedure STR(T: der; s: string);
var i,n,ks,j,f: integer;
s1: string;
T1: der;
begin
n:=length(s);
ks:=0;
f:=0;
for i:=1 to n do
if s[i]='(' then ks:=ks+1
else if s[i]=')' then ks:=ks-1
else if ((s[i]='*') or (s[i]='+') or (s[i]='-')) and (ks=1) then
begin
f:=1;
j:=i;
i:=n; //Вот здесь почему то ошибка. В чем ошибка?
end;
if f=1 then
begin
T^.zn:=s[j];
S1:=copy(s,2,j-2);
new(T1); T1^.l:=nil; T1^.r:=nil;
STR(T1,s1);
T^.l:=T1;
S1:=copy(s,j+1,n-j-1);
new(T1); T1^.l:=nil; T1^.r:=nil;
STR(T1,s1);
T^.r:=T1;
end
else T^.zn:=s[1];
end;
 
function prov(T: der): boolean;
begin
if (('0'<=T^.zn) and (T^.zn<='9')) and (T^.l=nil) and (T^.r=nil) then prov:=true else
if ((T^.zn='+') or (T^.zn='-') or (T^.zn='*')) and (T^.r<>nil) and (T^.l<>nil)
then prov:=true and (prov(T^.l)) and (prov(T^.r))
else prov:=false;
end;
 
begin
assign(f,'D:\DER.txt');
reset(f);
while not eof(f) do
begin
read(f,a);
s:=s+a;
end;
X:=D;
STR(X,s);
writeln('Печать дерева:');
PECHD(D);
writeln;
writeln;
if prov(D) then writeln('Данное дерево является деревом-формулой')
else writeln('Данное дерево не является деревом-формулой');
readln;
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.05.2017, 17:12
Ответы с готовыми решениями:

Проверить, есть ли в непустом дереве хотя бы два одинаковых элемента
Описать логическую функцию проверяющую есть ли в непустом дереве хотя бы два одинаковых элемента

Определить, есть ли в бинарном дереве хотя бы два одинаковых элемента
Задано бинарное дерево. Определить, есть ли в этом дереве хотя бы два одинаковых элемента. Вывести на экран все одинаковые элементы в...

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

1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33135 / 21429 / 8221
Регистрация: 22.10.2011
Сообщений: 36,753
Записей в блоге: 9
03.06.2017, 12:49
Цитата Сообщение от Dikoti Посмотреть сообщение
//Вот здесь почему то ошибка. В чем ошибка?
В том, что современные компиляторы не дают изменять переменную цикла внутри этого самого цикла. Если бы код был нормально отформатирован, это сразу бросилось бы в глаза:
Pascal
1
2
3
4
5
6
7
8
9
10
  for i := 1 to n do // цикл по переменной i
    if s[i] = '(' then ks := ks + 1
    else if s[i] = ')' then ks := ks - 1
    else if ((s[i] = '*') or (s[i] = '+') or (s[i] = '-')) and (ks = 1) then
    begin
      f := 1;
      j := i;
      // i:=n; // <--- тут попытка изменить переменную i для того, чтобы на следующей же итерации цикл закончился.
      break // вместо этого воспользуемся оператором, немедленно прекращающим цикл. Эффект будет абсолютно тот же
    end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.06.2017, 12:49
Помогаю со студенческими работами здесь

Написать функцию Double, которая проверяет, есть ли в дереве хотя бы два одинаковых элемента
Есть описание дерева type BT=longint; U=^BinTree; BIntree=record inf:BT; l,r:u; ...

Задано бинарное дерево. Определить, есть ли в этом дереве хотя бы два одинаковых элемента
Не могу никак придумать сам алгоритм. Есть мысли: сравнивать последовательно каждый элемент с оставшимися. Нужно использовать стек для...

Определить, есть ли в данном бинарном дереве два одинаковых элемента
Взял задание на лето по курсу &quot;Дискретная и вычислительная математика&quot;. Одно из заданий такое (выдержки из методички): И вот...

Есть ли в списке хотя бы два одинаковых элемента
Доброго времени суток. Костыльно написал? Замечания. Задание: проверить, есть ли в списке хотя бы два одинаковых элемента? ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
MVC фреймворк в PHP
Jason-Webb 19.04.2025
Архитектурный паттерн Model-View-Controller (MVC) – это не просто модный термин из мира веб-разработки. Для PHP-программистов это фундаментальный подход к организации кода, который радикально меняет. . .
Dictionary Comprehensions в Python
py-thonny 19.04.2025
Python славится своей выразительностью и лаконичностью, что позволяет писать чистый и понятный код. Среди множества синтаксических конструкций языка особое место занимают словарные включения. . .
Шаблоны и протоколы для создания устойчивых микросервисов
ArchitectMsa 19.04.2025
Микросервисы — архитектурный подход, разбивающий сложные приложения на небольшие, независимые компоненты. Вместо монолитного гиганта, система превращается в созвездие небольших взаимодействующих. . .
Изменяемые и неизменяемые типы в Python
py-thonny 19.04.2025
Python славится своей гибкостью и интуитивной понятностью, а одна из главных его особенностей — это система типов данных. В этом языке все, включая числа, строки, функции и даже классы, является. . .
Интеграция Hangfire с RabbitMQ в проектах C#.NET
stackOverflow 18.04.2025
Разработка современных . NET-приложений часто требует выполнения задач "за кулисами". Это может быть отправка email-уведомлений, генерация отчётов, обработка загруженных файлов или синхронизация. . .
Построение эффективных запросов в микросервисной архитектуре: Стратегии и практики
ArchitectMsa 18.04.2025
Микросервисная архитектура принесла с собой много преимуществ — возможность независимого масштабирования сервисов, технологическую гибкость и четкое разграничение ответственности. Но как часто бывает. . .
Префабы в Unity: Использование, хранение, управление
GameUnited 18.04.2025
Префабы — один из краеугольных элементов разработки игр в Unity, представляющий собой шаблоны объектов, которые можно многократно использовать в различных сценах. Они позволяют создавать составные. . .
RabbitMQ как шина данных в интеграционных решениях на C# (с MassTransit)
stackOverflow 18.04.2025
Современный бизнес опирается на множество специализированных программных систем, каждая из которых заточена под решение конкретных задач. CRM управляет отношениями с клиентами, ERP контролирует. . .
Типы в TypeScript
run.dev 18.04.2025
TypeScript представляет собой мощное расширение JavaScript, которое добавляет статическую типизацию в этот динамический язык. В JavaScript, где переменная может свободно менять тип в процессе. . .
Погружение в Kafka: Концепции и примеры на C# с ASP.NET Core
stackOverflow 18.04.2025
Apache Kafka изменила подход к обработке данных в распределенных системах. Эта платформа потоковой передачи данных выходит далеко за рамки обычной шины сообщений, предлагая мощные возможности,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru