‘орум программистов, компьютерный форум, киберфорум
Ќаши страницы
PascalABC.NET
¬ойти
–егистраци€
¬осстановить пароль
 
PiFFFko
2 / 2 / 0
–егистраци€: 20.03.2014
—ообщений: 32
1

ќшибка "Ќевозможно присвоить константному объекту"

26.09.2017, 21:55. ѕросмотров 379. ќтветов 2
ћетки нет (¬се метки)

«дравствуйте. ≈сть массив, который € объ€вл€ю как типизированную константу. ¬ ходе программы, мне нужно выполнить сортировку по алфавиту, но на 55 строке выдает ошибку "Ќевозможно присвоить константному объекту". ¬опрос, почему если массив типизированный?
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
program lab_records;
type
  Price = record
    NameOfItem: string;
    NameOfShop: string;
    ItemPrice: real;
  end;
 
var
  i, j, k: integer;
  Buffer: real;
  StickStr, NameOfSearchingShop: string;
  buf,buf2: price;
 
const
  amount = 8;
  tablewidth = 25;
  Item: array [1..amount] of price =
  ((nameofItem: '—емечки'; nameofshop:'√лобус';Itemprice:50;),
  (nameofItem: 'јрбуз'; nameofshop:'Ћента';Itemprice:60;),
  (nameofItem: ' ола'; nameofshop:'ѕодсолнух';Itemprice:100;),
  (nameofItem: ' артофель'; nameofshop:'√лобус';Itemprice:15;),
  (nameofItem: '√орох'; nameofshop:'ћетро';Itemprice:30;),
  (nameofItem: '—никерс'; nameofshop:'√лобус';Itemprice:40;),
  (nameofItem: '„ипсы'; nameofshop:'ѕалатка';Itemprice:60;),
  (nameofItem: 'ћинералка'; nameofshop:'√лобус';Itemprice:22;));
  
procedure TableDrawing();{ѕроцедура отрисовки таблицы}
var
  i: integer;
begin
  writeln('вФМ', StickStr, 'вФђ', StickStr, 'вФђ', StickStr, 'вФР');
  writeln('вФВ', 'Ќазвание товара':tablewidth, 'вФВ', 'Ќазвание магазина':tablewidth, 'вФВ', '÷ена':tablewidth, 'вФВ');
  writeln('вФЬ', StickStr, 'вФЉ', StickStr, 'вФЉ', StickStr, 'вФ§'); 
  for i := 1 to amount do
  begin
    writeln('вФВ', Item[i].NameOfItem:tablewidth, 'вФВ', Item[i].NameOfShop:tablewidth, 'вФВ', Item[i].ItemPrice:tablewidth, 'вФВ');
    if i = amount
      then writeln('вФФ', StickStr, 'вФі', StickStr, 'вФі', StickStr, 'вФШ')
    else writeln('вФЬ', StickStr, 'вФЉ', StickStr, 'вФЉ', StickStr, 'вФ§');
  end;  
end;
 
begin
  for i := 1 to tablewidth do
    StickStr := StickStr + 'вФА';  
  TableDrawing;
  for i := 1 to amount do {—ортировка}
  begin
    for j := amount - 1 downto i do
    begin
      if (Item[j].NameOfShop > Item[j + 1].NameOfShop) then
      begin
        buf := Item[j];
        Item[j] := Item[j + 1];
        Item[j + 1] := buf;
      end;
    end;
  end;
  Writeln('ќтсортированна€ таблица по имени магазина');
  tableDrawing;
  writeln('¬ведите название магазина, чтобы узнать о товарах,которые в нем продаютс€');
  Readln(NameOfSearchingShop);
  for i := 1 to amount do
    if item[i].NameOfShop = NameOfSearchingShop
    then
    begin
      writeln(item[i].NameOfItem);
      k := 1;
    end;
  if k = 0 then 
    writeln('“акого магазина нет')
end.
0
Ќадоела реклама? «арегистрируйтесь и она исчезнет полностью.
Similar
Ёксперт
41792 / 34177 / 6122
–егистраци€: 12.04.2006
—ообщений: 57,940
26.09.2017, 21:55
ќтветы с готовыми решени€ми:

— чем св€зана ошибка:"„тение после конца потока невозможно"
— чем св€зана ошибка:"„тение после конца потока невозможно".

¬ чем ошибка?  огда печатаю "а" или "б" все работает, а когда "ј" или "Ѕ" то он не мен€ет "ј" на "Ѕ"
{ѕрограмма замен€ет буквы "а" на буквы "б" в введенном тексте} var stroka :...

«аменить в строке "." на ";", "." на ".", убрать лишние пробелы. Ќе могу доделать один кусочек
Ќе соображу, как уместить два действи€ так, чтобы работали оба, а именно, ...

«аменить в строке "ћама мыла раму" буквы "а" на знак "_" . ¬ывести полученный массив на экран
«аменить в строке "ћама мыла раму" буквы "а" на знак "_" . ¬ывести полученный...

—оставьте программу замены в слове ’ всех букв "а" и "€" на слог "по"
—оставьте программу замены в слове ’ всех букв "а" и "€" на слог "по". заранее...

2
volvo
—упер-модератор
Ёксперт Pascal/Delphiјвтор FAQ
26372 / 17695 / 7006
–егистраци€: 22.10.2011
—ообщений: 31,148
«аписей в блоге: 6
26.09.2017, 22:02 2
ѕотому что это не “урбо-ѕаскаль, где типизированна€ константа - это "переменна€ с начальным значением". “ут это именно константа. »змени:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const
  amount = 8;
  tablewidth = 25;
 
var  // <---
 
  Item: array [1..amount] of price =
  ((nameofItem: '—емечки'; nameofshop:'√лобус';Itemprice:50;),
  (nameofItem: 'јрбуз'; nameofshop:'Ћента';Itemprice:60;),
  (nameofItem: ' ола'; nameofshop:'ѕодсолнух';Itemprice:100;),
  (nameofItem: ' артофель'; nameofshop:'√лобус';Itemprice:15;),
  (nameofItem: '√орох'; nameofshop:'ћетро';Itemprice:30;),
  (nameofItem: '—никерс'; nameofshop:'√лобус';Itemprice:40;),
  (nameofItem: '„ипсы'; nameofshop:'ѕалатка';Itemprice:60;),
  (nameofItem: 'ћинералка'; nameofshop:'√лобус';Itemprice:22;));
и все заведетс€.
2
PiFFFko
2 / 2 / 0
–егистраци€: 20.03.2014
—ообщений: 32
26.09.2017, 22:08  [“—] 3
—пасибо большое, заработало как нужно!)
0
MoreAnswers
Ёксперт
37091 / 29110 / 5898
–егистраци€: 17.06.2006
—ообщений: 43,301
26.09.2017, 22:08

 ак перевести числа с "String" в "integer" или "Real"?
как перевести числа с &quot;String&quot; в &quot;integer&quot; или &quot;Real&quot;?

 ак скрыть в graphABC кнопки "свернуть", "–азвернуть", "«акрыть"
 ак скрыть в graphABC кнопки &quot;свернуть&quot;, &quot;–азвернуть&quot;, &quot;«акрыть&quot;

"ѕопытка присвоить переменной типа integer выражение типа char"
program laba1; var x:array of integer; i, j : integer; // —чЄтчики строк и...


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

»ли воспользуйтесь поиском по форуму:
3
ќтвет —оздать тему
ќпции темы

 ибер‘орум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
–ейтинг@Mail.ru