Записи и таблицы.
1) Прямая на плоскости задается уравнением ax+by+c=0 , где a и b од-новременно не равны нулю. Будем рассматривать только прямые, для которых коэффициенты a, b, c - целые числа. Пусть f - таблица, содержащая коэффициенты нескольких прямых (не менее трех). Переписать из таблицы f в таблицу g коэффициенты тех прямых, которые: параллельны первой из прямых, заданной в таблице f, но дополнительно требуется, чтобы все прямые были раз-личны;
Код который есть:
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
| Type Line = Record {‹Ё*ЁЁ}
A,B,C: Integer; {Љ®нддЁжЁҐ*вл}
End;
Var Result,I,J,N: Integer;
F,G : Array[1..20] Of Line;
Begin
F[1].A := 1; F[1].B := 9; F[1].C := 2;
F[2].A := 2; F[2].B := 6; F[2].C := 3;
F[3].A := 3; F[3].B := 5; F[3].C := 1;
F[4].A := 4; F[4].B := 2; F[4].C := 4;
F[5].A := 3; F[5].B := 3; F[5].C := 1;
F[6].A := 2; F[6].B := 5; F[6].C := 2;
F[7].A := 1; F[7].B := 9; F[7].C := 5;
F[8].A := 2; F[8].B := 6; F[8].C := 1;
F[9].A := 3; F[9].B := 5; F[9].C := 2;
N := 9;
Result := 0;
I := 1;
For J := 2 to N Do
If (F[I].A = F[J].A) And (F[I].B = F[J].B) Then Begin
Write('‹Ё*Ёп ',I,' Ї*а*««Ґ«м** «Ё*ЁЁ ',J,' ');
WriteLn(F[I].A,'X + ',F[I].B,'Y + ',F[I].C);
Result := Result + 1;
End;
Writeln('Ќ*©¤Ґ*® ',Result,' «Ё*Ё©');
If Result = 0 Then WriteLn('’*ЄЁе «Ё*Ё© *Ґв');
Readln;
End. |
|
2) Дана таблица f, содержащая сведения о веществах: указывается название вещества, его удельный вес и проводимость (проводник, полупроводник, изолятор): выбрать данные о проводниках и упорядочить их по убыванию удельных весов.
Деревья.
1) Создать и продемонстрировать работу программы, которая определяет число вхождений элемента Е в дерево Т.
Код который есть:
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
| Type inform = word;
ss = ^zveno;
zveno = record
inf : inform;
key : integer;
left, right: ss;
end;
Var E,N,I,Rn : Integer;
tr : ss;
Procedure vstavka(var p: ss; k: integer);
Begin
If p = nil then Begin
New(p);
p^.key:=k;
p^.left:=nil;
p^.right:=nil;
End Else Begin
If k < p^.key then vstavka(p^.left, k);
If k > p^.key then vstavka(p^.right, k);
End;
End;
Procedure print(var p: ss; h: integer);
Var i: integer;
Begin
If p <> nil then Begin
Print(p^.right, h + 1);
For i:=1 to h do write(' ');
Writeln(p^.key);
Print(p^.left, h + 1);
End
End;
Function poisk(p: ss; x: integer): boolean;
var b: boolean;
begin
b:=false;
while (p <> nil) and (b = false) do begin
if p^.key = x
then b:=true
else if p^.key < x
then p:=p^.right
else p:=p^.left;
end;
poisk:=b;
end;
Begin
Randomize;
ClrScr;
Write('‚ўҐ¤ЁвҐ зЁб«® Ї®в®¬Є®ў N: ');
ReadLn(N);
New(tr);
tr^.key:=Random(100);
tr^.left:=nil;
tr^.right:=nil;
I := 1;
While I <= N Do Begin
Rn := Random(100);
If Not(poisk (tr, Rn)) then Begin
vstavka(tr, Rn);
Inc(I);
End;
End;
print(tr,3);
Write('‚ўҐ¤ЁвҐ ЁбЄ®¬®Ґ зЁб«® E: ');
ReadLn(E);
If poisk (tr, E) Then WriteLn('’*Є®© н«Ґ¬Ґ*в Ґбвм')
Else WriteLn('’*Є®Ј® н«Ґ¬Ґ*в* *Ґв');
ReadLn;
End. |
|
2) Рекурсивно и не рекурсивно создать и продемонстрировать работу логической функции equal (T1,T2), проверяющую на равенство деревья Т1 и Т2.
Есть функция проверяющая на равенство деревья:
Pascal |
1
2
3
4
5
6
7
8
9
10
11
| function Equal(T1,T2 : Tree ) : boolean;
begin
if T1=T2 then Equal:=true
else
if (T1 <> nil) and (T2 <> nil) then
if T1^.inf = T2^.inf then
Equal:=Equal(T1^.L,T2^.L) and
Equal(T1^.R,T2^.R)
else Equal:=false
else Equal:=false
end; |
|
Помогите пожалуйста сделать!
|
Комментарий модератора |
|
Обращаю Ваше внимание на правило форума: множественные задания в теме запрещены! Одно задание - одна тема. |
|
|
Комментарий модератора |
|
Подправил теги кода. |
|
|
Комментарий модератора |
|
Если при копировании текста в редакторе и вставке его в окно сообщения, русский текст превращается в кракозябры, например, такие:
Ї*а*««Ґ«м** «Ё*ЁЁ
то поступить надо так. В редакторе следует переключиться на русскую раскладку клавиатуры. Выделить текст, скопировать его в буфер обмена. Затем - вставить текст из буфера обмена в окно сообщения. В этом случае при добавлении текста в буфер обмена будет задана русская кодовая страница CP1251 (windows-1251). Соответственно, при вставке будет использована эта же страница. И русский текст будет передан правильно. |
|
Добавлено через 6 часов 1 минуту
Все ошибки учту в следующий раз.
Помогите пожалуйста с программами
Добавлено через 23 часа 55 минут
Помогите пожалуйста