Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 18.10.2009
Сообщений: 5
1

ООП..ошибка ввода-вывода...не понимаю что не так..

18.10.2009, 22:17. Просмотров 1040. Ответов 2
Метки нет (Все метки)


Работа с ООП...вот сама программа:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program Biblioteka;
 
 uses
  SysUtils,
 
  Myb in 'Myb.pas';
 
var N: TDom_Biblioteka ;
   begin
N:= TDom_Biblioteka.Create;
N.Vvod;
N. Dobavlenie;
N. Sortirovka;
N. Poisk;
N. Ydalenie_Knigi;
readln;
 end.


А вот модуль:


Delphi
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
unit Myb;
 
interface
 
uses  Classes, SysUtils;
const delta = 100;
type TBibl = record
  Avtor :  string;
  Nazvanie : string;
  God :  integer; end;
 
  Bibl = array of TBibl; //массив записей
 
  TDom_Biblioteka = class
 
  Private
 
  b: Bibl;  //переменная массива Bibl
 
  Public
Constructor Create;
procedure Ydalenie_Knigi;
procedure Sortirovka;
procedure Poisk;
procedure Dobavlenie;
Procedure Vvod;
 end;
 
   Implementation
 
   Constructor TDom_Biblioteka.Create ;
begin
inherited Create;
Setlength (B, delta); end;
 
     Procedure TDom_Biblioteka.Vvod;//вводим авторов, названия,год издания
var                                    //и выводим библиотеку на экранvar
i:integer;
begin
 Setlength(b,delta);
  for i:=0 to delta-1 do begin
  writeln ('Avtor:');                                          //ВОТ ТУТ РУГАЕТСЯ.....
  readln(b[i].Avtor);//вводим автора
  writeln('Nazvanie:');
  readln(b[i].Nazvanie);//вводим название
  writeln('God:');
  readln (b[i].God);//вводим год издания
end;
  for i := 0 to delta-1 do begin  //выводим полученную библиотеку
  write(b[i].Avtor);
  write(b[i].Nazvanie);
  write(b[i].God);
  end;
end;
 
Procedure TDom_Biblioteka.Dobavlenie; //добавляем книгу в конец масива
 const delta=100;
 var
i:integer;
 
begin
Setlength(b,delta);
i := high(b);
writeln('Avtor:');
readln(b[i].Avtor);
writeln('Nazvanie:');
readln(b[i].Nazvanie);
writeln('God:');
readln(b[i].God); end;
 
   Procedure TDom_Biblioteka.Sortirovka;//сортируем по году издания
 
 var
i,t,m, min:integer;
b: Bibl;
begin
for i := 0 to delta-1  do
begin
min:=b[i].God;
t:=i;
for m := (i+1) to high(bibl) do
    if min > b[i].God then begin
    min:=b[i].God ;
    t:=m;
    b[t].God:=b[i].God;
    b[i].God:=min;
writeln(b[i].Avtor);
writeln(b[i].Nazvanie);
writeln(b[i].God); end
else writeln('Avtora ne obnaryjeno') end; end;
 
 
   Procedure TDom_Biblioteka.Poisk; //поиск книги по автору
var
i:integer;
m:string;
b: Bibl;
begin
writeln('Vvedite avtora');
readln(m);
 for i := 0 to delta-1 do
  begin
  if m=b[i].Avtor then
   begin
   writeln (b[i].Avtor);
   writeln(b[i].Nazvanie);
   writeln(b[i].God);
   end
  else writeln('Avtora ne obnarujeno')
 end;
end;
 
  Procedure TDom_Biblioteka.Ydalenie_knigi;//удаляем книгу из массива
var
i, last:integer;
k:string;
b: Bibl;
begin
writeln('Vvedite nazvanie knigi, kotoryu xotite ydalit');
readln(k);
for i := 0 to delta-1 do begin
if k = b[i].Nazvanie then
writeln (b[i].Avtor);
writeln(b[i].Nazvanie);
writeln(b[i].God);
 end;
last:=high(B);
If i < last then begin b[i]:=b[i+1];
Setlength (b, last-1);
end
else writeln ('Knigi ne obnarujeno')   end;
 
 end.
там где Procedure TDom_Biblioteka.Vvod; когда вводим автора writeln ('Avtor:'); - ругается((( вобще не понимаю что ему не нравится...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2009, 22:17
Ответы с готовыми решениями:

Операторы ввода-вывода(Что не так?)
#include &lt;iostream&gt; using namespace std; void main(){ int hh= 5; cin&gt;&gt;5; cout&lt;&lt;&quot;Hello word&quot;;...

Вылетает ошибка ".exe has triggered a breakpoint" Не понимаю, что не так
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { int pSourceData = 10;...

Ошибка ввода\вывода 104, файле не открыт для ввода (строка 0)
Всё работает, но пишет: &quot;ошибка ввода\вывода 104, файле не открыт для ввода (строка 0). ...

Ошибка ввода/вывода 104 - файл не открыт для ввода
var a:array of integer; n,j,i,k: integer; f:text; begin ...

2
Эксперт С++
3057 / 1399 / 421
Регистрация: 19.01.2009
Сообщений: 3,770
19.10.2009, 07:00 2
вы забыли добавить дерективу, говорящую компилятору, что это консольная программа, безнее любой ввод/вывод на консоль будет приводить к ошибкам.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
program Biblioteka;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils,
  Myb in 'Myb.pas';
 
var N: TDom_Biblioteka;
 
begin
  N:= TDom_Biblioteka.Create;
  N.Vvod;
  N.Dobavlenie;
  N.Sortirovka;
  N.Poisk;
  N.Ydalenie_Knigi;
  readln;
end.
2
0 / 0 / 0
Регистрация: 18.10.2009
Сообщений: 5
20.10.2009, 16:06  [ТС] 3
хахах =))) блин...какая глупая ошибка..а я 2 недели голову ломала =))))) СПАСИБО!=)))))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.10.2009, 16:06

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Не понимаю что не так
Доброго времени суток! Хочу разобраться с сортировкой, из листвью1 - добавить людей в листвью2 в...

не понимаю что не так((
не понимаю что с программой,у меня несколько модулей и в одном ошибку выдает! unit Unit3; ...

не понимаю что не так с кодом
import copy def print_matrix(A): for strA in A: print(strA) def...

Ng-class не понимаю что не так
Добрый день. есть кнопка &lt;button ng-repeat=&quot;item in item.list&quot; ng-click=&quot;changeColor(item)&quot;...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.