Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 8
1

Ошибка при передаче массива записей

25.05.2010, 23:22. Показов 780. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, пожалуйста, разобраться. Создаю массив записей в процедуре, но он никуда у меня не передается, и, как следствие, все не работает((

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
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
type
pl=record
Fam, City, Ul, Dom, Kv:string;
end;
 
var
mas: array of pl;
Rec:pl;
Kol_ld, i:integer;
ch, ch2:char;
 
{заполнение отдельной записи}
procedure Zap(var a: pl);
begin
  Writeln('Vvedite Familiiu:');
  Readln(a.fam);
  Writeln('Vvedite Gorod:');
  Readln(a.city);
  Writeln('Vvedite Ulicu:');
  Readln(a.ul);
  Writeln('Vvedite Dom:');
  Readln(a.dom);
  Writeln('Vvedite Kvartiru:');
  Readln(a.kv);
end;
 
{добавление нового элемента в динамический массив}
procedure novyi_el(o: integer; var c: pl; mas_n: array of pl);
begin
  Writeln('Novyi chelovek');
  Zap(c);
  mas_n[o] := c;
end;
 
{вывод записи}
procedure vyvod (b: pl; ind:integer);
begin
 Writeln(b.fam,' ', b.city,' ', b.ul,' ',b.dom,' ', b.kv);
 Readln;
end;
 
{вывод массива записей}
procedure vyvod_mas (mas_b:array of pl; nom:integer);
var
j:integer; rec_b:pl;
begin
 for j:=0 to nom-1 do
 with mas_b[j] do
   begin
     rec_b:=mas[j];
     vyvod(rec_b,nom);
   end;
 readln;
end;
 
{сортировка массива}
procedure sort (kol: integer; var zap_a: array of pl);
var
l, j:integer;
t:pl;
begin
for l:= kol-1 downto 1 do
 for j:=0 to l-1 do
  begin
   if zap_a[j].city>zap_a[j+1].city then  
     begin
      t:=zap_a[j+1];
      zap_a[j+1]:= zap_a[j];
      zap_a[j]:= t;
   end;
    end;
 
end;
 
{поиск двух жителей в разных городах, но одинаковым адресом}
procedure Poisk(kl:integer; var zap_p: array of pl);
var
j, h:integer;
begin
 
for j:=0 to kl-1 do  
  for h:=1 to kl-1 do
    if zap_p[j].city<>zap_p[h].city then 
    begin
      if (zap_p[j].ul=zap_p[h].ul) and (zap_p[j].dom=zap_p[h].dom) then  
      begin
      vyvod(zap_p[j],j);  
      vyvod(zap_p[h],h);
      break;
      end;
    end;
 
end;
 
 
 
begin
Writeln('1 - Sozdanie spiska');
Writeln('2 - Vyxod iz programmy');
readln(ch);
Case ch of
'1':
   begin
     Writeln('Vvedite kol-vo ludei:');
     Readln(Kol_ld);
     SetLength(mas, kol_ld);
 
     For i:=0 to kol_ld-1 do novyi_el(i, rec, mas);
        
     Writeln('3 - Sortirovka zapisei po gorodu');
     Writeln('4 - Vyvod zapisei s raznymi gorodami, no odinakovym adresom');
     Writeln('5 - Vyvod vsex zapisei');
     Writeln('6 - Vyxod iz programmy');
     readln(ch2);
     Case ch2 of
    '3':
        begin
          sort (kol_ld, mas);
          vyvod_mas (mas, kol_ld);
        end;
    '4':
       Poisk(kol_ld,mas);
    '5':
        vyvod_mas (mas, kol_ld);
    '6':
        exit;
    end;
end;
 
'2':
exit;
end;
 
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2010, 23:22
Ответы с готовыми решениями:

Ошибка при передаче массива в метод
Строка 54 using System; using System.Collections.Generic; using System.Linq; using System.Text;...

Ошибка при передаче двумерного массива в функцию
cannot convert 'int (*)' to 'int**' for argument '1' to 'void func(int**, int, int)' ...

Ошибка при передаче двумерного массива в функцию
Помогите пожалуйста, никак не могу разобраться. Я хочу чтобы функция createBlankGameField() ввела...

Ошибка при передаче в функцию указателя на элемент массива
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include &lt;cmath&gt; ...

3
4342 / 1474 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
25.05.2010, 23:24 2
Nov_, во-первых нельзя делать безразмерные массивы.
А во-вторых, лучше сделать:
Pascal
1
type arr = array[1..100] of pl;
0
Идеи становятся силой...
121 / 121 / 64
Регистрация: 08.12.2009
Сообщений: 445
25.05.2010, 23:25 3
что именно у тебя не работает?*
потому что я только что запускал все пашет!
0
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 8
25.05.2010, 23:33  [ТС] 4
k1ry4,
Совсем нельзя? А почему?
Просто по заданию надо использовать динамический массив...


Hidalgo08,
например, процедура vyvod. ничего не выводит
0
25.05.2010, 23:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2010, 23:33
Помогаю со студенческими работами здесь

Ошибка при передаче двумерного массива в функцию std::thread
Здравствуйте! Написал программу на потоки, теперь нужно передать туда двумерный массив. Пытаюсь...

Ошибка компилятора при передаче массива размерности больше единицы
При передачи в функцию массива появляется такая ошибка Ошибка 1 Результат ошибки 1 возвращен из...

Ошибка при передаче массива через JSON Unexpected token &
Простейший код, передающий из PHP в Javascript массив, вызывает ошибку в момент парсинга на стороне...

Написать процедуру для суммирования матриц. Ошибка при передаче массива в функцию
Помогите пожалуйста! Дано задание: Написать процедуру для суммирования матриц. С ее помощью...

Ошибка при передаче строк в функцию, ошибка при формировании дерева
Курсовой проект, в основе база данных, данные записываются в двоичное дерево. Есть 2 проблемы: 1)...

Ошибка в передаче массива
Помогите найти ошибку. Пишет переполнение памяти. Не передает массив из dll, соответственно не...


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

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