0 / 0 / 0
Регистрация: 24.02.2020
Сообщений: 9
1
RAD XE3+

Необходимо исправить ошибки в массиве

24.02.2020, 12:51. Показов 1101. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var
  Form8: TForm8;
  A: array [1..83] of integer;
  A1: array [1..83] of string;
  i,b,c,d,e,k,p: integer;
  pic:string;
  f: textfile;
 
    begin
  for e := 1 to 83 do
     assignfile(f,'mt.txt');
     reset(f);
     readln(f);
    k[e]:=e;
    p:=round(random(3))+1;
    k:=a1[p];
    e[k]:=strtoint(label2.Caption(a1[e]));
    end;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2020, 12:51
Ответы с готовыми решениями:

Необходимо исправить ошибки
var a:integer; rege:tregexpr; s,p,d:string; begin Edit1.Text:=Memo2.Lines; p:=Edit1.Text;...

Необходимо исправить ошибки
Задание следующее: Необходимо написать программу идентификации кода, состоящего из трех букв...

Необходимо исправить ошибки
очень важно , не написать свою программу, а исправить ошибки в данной

Необходимо исправить ошибки в коде
Пишу приложение-тренажер таблицы умножения. Написал скрипт и в последней части visual studio выдаёт...

7
Модератор
3625 / 2147 / 758
Регистрация: 15.11.2015
Сообщений: 8,619
24.02.2020, 13:34 2
Лучший ответ Сообщение было отмечено valera54 как решение

Решение

Здесь творится просто жесть. Зачем 83 раза открывать файл?

После цикла переменная e может быть не инициализированная.
Если надо, чтобы в цикле выполнялось несколько команд надо их заключить в
Delphi
1
begin .. end;
Если я правильно понимаю, то должно быть примерно так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var
  Form8: TForm8;
  A: array [1..83] of integer;
  A1: array [1..83] of string;
  i,b,c,d,e,k,p: integer;
  pic:string;
  f: textfile;
 
begin
  AssignFile(f, 'mt.txt');
  Reset(f);
  for e := 1 to 83 do begin
    ReadLn(f, {в какую переменную здесь считать из файла?});
    k[e] := e;
    p := Round(Random(3)) + 1;
    k := a1[p];
    e[k] := StrToInt(Label2.Caption(a1[e]));
  end;
  CloseFile(f); // Надо закрыть файл за собой
end;
Добавлено через 3 минуты
Массив a1 не инициализирован. Что из него читать?
1
Заблокирован
24.02.2020, 13:46 3
Цитата Сообщение от AzAtom Посмотреть сообщение
Здесь творится просто жесть
Жэсть уже в использовании паскалевых файловых функций.
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
24.02.2020, 13:57 4
Цитата Сообщение от valera54 Посмотреть сообщение
Необходимо исправить ошибки в массиве
Нет, нужно выкинуть этот код и написать другой, но для этого нужен текст задачи.
0
Модератор
3625 / 2147 / 758
Регистрация: 15.11.2015
Сообщений: 8,619
24.02.2020, 18:13 5
Цитата Сообщение от valera54 Посмотреть сообщение
k:=a1[p];
Массив A1 содержит строки, а k - integer. Либо нужно оба типа одинаковые сделать, либо нужно использовать функции преобразования. Только ещё надо знать, что находится в массиве A1.
0
0 / 0 / 0
Регистрация: 24.02.2020
Сообщений: 9
24.02.2020, 19:35  [ТС] 6
Вот весь текст программы
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
unit Unit8;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls;
 
type
  TForm8 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Label1: TLabel;
    Button1: TButton;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form8: TForm8;
  A: array [1..83] of integer;
  A1: array [1..83] of string;
  i,b,c,d,e,k,p: integer;
  pic:string;
  f: textfile;
 
implementation
 
{$R *.dfm}
 
procedure TForm8.Button1Click(Sender: TObject);
begin
for i :=1 to 83 do
a[i]:=i;
for i := 1 to 1488 do
  begin
    b:=round(random(83))+1;
    d:=round(random(83))+1;
    c:=a[b];
    a[b]:=a[d];
    a[d]:=c;
  end;
  label1.caption :='';
  for i:=1 to 83 do
    label1.Caption:=label1.caption+inttostr(a[i])+'  ';
    pic:='memes/'+inttostr(a[1])+'.bmp';
    image1.Picture.LoadFromFile(pic);
    pic:='memes/'+inttostr(a[2])+'.bmp';
    image2.Picture.LoadFromFile(pic);
    pic:='memes/'+inttostr(a[3])+'.bmp';
    image3.Picture.LoadFromFile(pic);
 
begin
  for e := 1 to 83 do
     assignfile(f,'mt.txt');
     reset(f);
     readln(f,e);
    k[e]:=e;
    p:=round(random(3))+1;
    k:=a1[p];
    e[k]:=strtoint(label2.Caption(a1[e]));
 
end;
 
end;
 
end.
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
24.02.2020, 20:00 7
Цитата Сообщение от valera54 Посмотреть сообщение
Вот весь текст программы
Нужно не текст программы, а текст задачи.
0
1437 / 1014 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
25.02.2020, 12:54 8
Цитата Сообщение от valera54 Посмотреть сообщение
Вот весь текст программы
Цикл в строке 50 состоит из одной строки:
Delphi
1
label1.Caption:=label1.caption+inttostr(a[i])+'  ';
Если так и надо, то ок. Если надо, чтобы 51-57 были в цикле, то необходимо заключить их в операторные скобки begin..end
Идущее begin в строке 59 вообще ни к месту.
И снова-таки тело цикла после этого надо заключить в begin..end.

По тексту: касательно строки 61 ответил AzAtom. Касательно 51 - смысл менять в цикле надпись? Она в итоге будет равна последней строке.

Итог: код действительно лучше переписать весь, предварительно на листике написав алгоритм, что за чем должно следовать. Крах логики детектед.
0
25.02.2020, 12:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2020, 12:54
Помогаю со студенческими работами здесь

CRITICAL_SECTION (необходимо исправить ошибки кода)
Имеется код. Помогите исправить ошибку. #include <windows.h> #include <iostream> using...

В программе есть ошибки, необходимо исправить
Помогите, пожалуйста, посчитать мою формулу представленную на рисунке. В программе 7 ошибок, не...

Необходимо исправить ошибки и ускорить работу программы
Написал на днях программу которая случайным образом генерирует различные абстрактные изображения....

Необходимо исправить ошибки валидатора сайта на Word Press
Здравствуйте!Необходимо исправить ошибки валидатора сайта на Word Press если я все правильно...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru