С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 11.07.2012
Сообщений: 14

Ошибка в коде, пишет что ожидает END, но всё закрыто ендами. и так далее

11.07.2012, 12:25. Показов 1243. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Обьясните где и что я не так поставил((
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
 
  // считывание
  procedure readqq(head,curr:ukaz);
  var c:char;
      i:integer;
      stroka:string;
  begin
    while not Eof(inp) do
      begin
        Read(inp, c);
        i:=1;
        curr^.nom:=0;
        curr^.fam:='';
        curr^.imya:='';
        curr^.otch:='';
        until c<>' ' do  //пишет что ждет END но обнаружен until
          begin         //ждет ";" но обнаружен бегин
            if (curr^.nom>=0) and (curr^.nom<=9) then i:=i*10;    //пишет не объявлено "i"
            curr^.nom:=curr^.nom*i+strtoint(c); //пишет не объявлено "c"
          end;   //ждет точку но нашел точку запятую...
        until c<>' ' do
            curr^.fam:=curr^.fam+c;  //ожидает конца файла, но нашел ФАМ
        until c<>' ' do
            curr^.imya:=curr^.imya+c;
        until c<>' ' do
            curr^.otch:=curr^.otch+c;
        curr:=curr^.next;
        readln(inp,stroka);
      end;
  end;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.07.2012, 12:25
Ответы с готовыми решениями:

Не открываются почти все сайты в опере.Пишет,что соединение закрыто удаленным сервером.
Добрый день.Началось все с того,что 26.09 у меня на экране появился баннер,при этом компьютер даже до конца не загружался.После посещения...

во все браузерах пишет "Соединение закрыто удаленным сервером" что делать?
подскажите пожалуйста что делать?

Переставить строки матрицы: первую с последней, вторую - с предпоследней и так далее (ошибка в коде)
В двумерном массиве переставить строки следующим образом: первую с последней, вторую – с предпоследней и так далее. #include...

7
 Аватар для HyperZen
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
11.07.2012, 12:36
А где Repeat?

Добавлено через 1 минуту
Delphi
1
2
3
4
5
Repeat 
   Statement1; 
  {Statement2;
   ...} 
Until Expression
Пример кода:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var
   num, sqrNum : Integer;
 
 begin
   num := 1;
   sqrNum := num * num;
 
  // Показ квадратов целых чисел, пока мы не достигли значения 100
   Repeat
    // Показ квадрата числа
     ShowMessage('Квадрат '+IntToStr(num)+' = '+IntToStr(sqrNum));
 
    // Приращение числа
     Inc(num);
 
    // Возведение в квадрат
     sqrNum := num * num;
   Until sqrNum > 100;
 end;
1
0 / 0 / 0
Регистрация: 11.07.2012
Сообщений: 14
11.07.2012, 13:07  [ТС]
Ух тыж... врот мне ноги.. )) глапая ошибка.. перепутал while и repeat-until xD спасибо))

Добавлено через 13 минут
и ещё вопрос... появилась ошибка
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004652BD in module 'Project1.exe'.Write of address 00000000'.
-- всплывает окно и дает варианты брэйк, контине, хелп...
ниже (если надо) вся прога, комент (ошибка) у момента (141 строка) который подсвечивается после закрытия ошибки (вся строка подсвечивается).
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus, Tabs;
 
type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    Label1: TLabel;
    Button1: TButton;
    Edit1: TEdit;
    Button2: TButton;
    TabSet1: TTabSet;
  // procedure Button1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
 
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
      mass1 =array[1..10] of string;
   mass2 =array[1..10,1..50] of integer;
 ukaz=^stud;
   stud = record
      nom: integer;
      fam, imya, otch, group :string;
 
      ocen : mass1;
      pos : mass2;
      pre,next : ukaz;
      end;
var
  Form1: TForm1;
 
  str:string;
  head,curr,t:ukaz;
  inp: textfile;
 
  implementation
 
{$R *.dfm}
//Добавить(процедура)
  procedure add(head,curr:ukaz);
  var
    t:ukaz;
  begin
    new(t);
    new(head);
    t^.fam := InputBox('Ввод информации о новом студенте', 'Введите фамилию', '');
    t^.imya := InputBox('Ввод информации о новом студенте', 'Введите имя', '');
    t^.otch := InputBox('Ввод информации о новом студенте', 'Введите отчество', '');
    ShowMessage('curr^.nom  '+inttostr(curr^.nom)+'  t^.nom  '+inttostr(t^.nom));
    t^.nom := curr^.nom+1;
    ShowMessage('curr^.nom  '+inttostr(curr^.nom)+'  t^.nom  '+inttostr(t^.nom));
 
    if head = nil then
      begin
 
            if t = nil then  ShowMessage('t - нил');
        head := t;
        curr :=head;
        head^.fam:=t^.fam;
        head^.imya:=t^.imya;
        head^.otch:=t^.otch;
        // if head = nil then ShowMessage('хеад - нил');
          //  if t = nil then  ShowMessage('t - нил2');
            //if curr = nil then  ShowMessage('curr - нил2');
      end
    else
      begin
        curr^.nom:=curr^.nom+1; //t
        curr^.next := t;
        curr := t;
      end;
    Assign(inp,'in.txt');
    Append(inp);
    writeln(inp,curr^.nom,' ',curr^.fam,' ',curr^.imya,' ',curr^.otch);
    close(inp);
 
 
  end;
//ЗАКРЫТЬ
  procedure TForm1.Button2Click(Sender: TObject);
    begin
      close;
    end;
//Кнопка запуска процедуры добавить...
  procedure TForm1.N2Click(Sender: TObject);
    begin
      add(head,curr);
    end;
//Удалить (процедура)
procedure del(head,curr:ukaz);
    begin
      curr:=head;
      while curr^.nom<>strtoint(InputBox('Удаление записи о студенте', 'Введите номер студента', '')) do
          curr:=curr^.next;
      curr:=curr^.next^.next;
      curr:=head;
      assignfile(inp,'in.txt');
      rewrite(inp);
      curr^.nom:=0;
      while curr^.next<> nil do
        begin
          curr^.nom:=curr^.nom+1;
          writeln(inp,curr^.nom,' ',curr^.fam,' ',curr^.imya,' ',curr^.otch);
          curr:=curr^.next;
        end;
      close(inp);
          end;
 
    //Кнопка запуска процедуры удалить...
  procedure TForm1.N3Click(Sender: TObject);
    begin
      del(head,curr);
    end;
 
  // считывание из файла и сохранение в динамический массив (head,curr);
  procedure readqq(head,curr:ukaz);
  var c:char;
      i:integer;
      stroka:string;
  begin
  new(curr);
    while not Eof(inp) do
      begin
        Read(inp, c);
        i:=1;
        curr^.nom:=0; //!!!!!!!!!!!!!!!!!!Ошибка!!!!!!!!!!!!!!!!!!!!!
        curr^.fam:='';
        curr^.imya:='';
        curr^.otch:='';
        repeat
            if (curr^.nom>=0) and (curr^.nom<=9) then i:=i*10;
            curr^.nom:=curr^.nom*i+strtoint(c);
          until c<>' ';
        repeat
            curr^.fam:=curr^.fam+c;
          until c<>' ';
        repeat
            curr^.imya:=curr^.imya+c;
          until c<>' ';
        repeat
            curr^.otch:=curr^.otch+c;
          until c<>' ';
        curr:=curr^.next;
        readln(inp,stroka);
      end;
  end;
 
 
///////////////////////////////////////////////////////////////////
///  САМА ПРОГА/////////////////////////////////////
///  ///////////////////////////////////////////////////
 
begin
  new(curr);
  new(t);
  new(head);
  curr^.nom:=0;
  assignfile(inp,'in.txt');
  reset(inp);
  readqq(head,curr);
          ShowMessage(inttostr(curr^.nom)+curr^.fam+curr^.imya+curr^.otch+'        CURRRRRRRRRRRRRRR');
          ShowMessage(inttostr(head^.nom)+head^.fam+head^.imya+head^.otch+'        11111111111111111111111111!!!');
  close(inp);
 
end.
Добавлено через 4 минуты
может создать новую тему для этой ошибки??
0
 Аватар для Санек25
422 / 352 / 19
Регистрация: 14.05.2012
Сообщений: 1,437
11.07.2012, 13:19
проверь нигде ты за пределы массива не выскакиваешь. И я не нашел для динамических массивов где они ограничиваются setlength();
1
0 / 0 / 0
Регистрация: 11.07.2012
Сообщений: 14
11.07.2012, 13:32  [ТС]
Добавил setlenght... ошибка не пропала... и.. у меня (насколько я понимаю) динамический список а в каждой записе списка есть два пункта с СТАТИЧЕСКИМИ массивами.. и я пока работаю с первой 4-кой - номер, фамилия. имя, отчество... за массив нигде не должно вылазить...
0
 Аватар для Санек25
422 / 352 / 19
Регистрация: 14.05.2012
Сообщений: 1,437
11.07.2012, 13:38
Цитата Сообщение от Corwine Посмотреть сообщение
Добавил setlenght... ошибка не пропала... и.. у меня (насколько я понимаю) динамический список а в каждой записе списка есть два пункта с СТАТИЧЕСКИМИ массивами.. и я пока работаю с первой 4-кой - номер, фамилия. имя, отчество... за массив нигде не должно вылазить...
// считывание из файла и сохранение в динамический массив (head,curr); эта строка с толку сбила
0
0 / 0 / 0
Регистрация: 11.07.2012
Сообщений: 14
11.07.2012, 14:03  [ТС]
а, да... неправильно написал...) и всё такие основная проблема ввсе ещё есть...(
0
 Аватар для Санек25
422 / 352 / 19
Регистрация: 14.05.2012
Сообщений: 1,437
11.07.2012, 14:14
я не пойму 1 почему ты не создал типизированый файл а создал обычный текстовый

у тебя inp: textfile; а я бы сделал inp:file of stud;

а извлекал бы так

Read(inp,curr^);

чет у тебя там все так запутанно... вот ссылка тут пример работы с тип файлом. https://www.cyberforum.ru/atta... 1337630322
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.07.2012, 14:14
Помогаю со студенческими работами здесь

Excel 2013 32-bit URLDownloadToFile пишет "Compile error: only comment may appear after End Sub End Function or End Prop
Добрый день! перепробовал все варианты и не вызывается функция URLDownloadToFile: пишет &quot;Compile error: only comment may appear...

Ошибка user.exe в коде: Private Sub Text1_Change() If Text1.Text = 'del' Then Unload Me End If End Sub
Подскажите, плз. Почему происходит ошибка Windows, User.exe выполнила недопустимую операцию и будет закрыта....при следующем коде: ...

Как сделать так что я мог умножать не на два числа а на 3,4,5 и так далее?
Вот код: #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main(){ float a,c; char b; skip: ...

Нужно заменить все слова 'так как', 'и тому подобное', 'то есть', 'и так далее' их аббревиатурами
Заменить все сочетания «то есть», «так как», «и так далее», «и тому подобное» их аббревиатурами.

OpenGL что не так в коде? вроде все нормально
Собственно вот код, я сижу под убунтой 9.10 и он ругаеться пишет #include&lt;GL/glut.h&gt; int N = 3; int n = 0; int x; int y; ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru