Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Svych
1 / 1 / 0
Регистрация: 20.04.2011
Сообщений: 64
1

Исправить ошибки в программе

25.05.2011, 20:08. Просмотров 295. Ответов 0
Метки нет (Все метки)

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
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
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
type
  massiv = array of byte;
  masbool = array of boolean;
  mnogestv = set of byte;
 
var
  set_arr: masbool;
  mas: massiv;
  mnog, podmnog: mnogestv;
  min, max: byte;
 
///Ввод массива
procedure vvod(var mas: massiv);
var
  vopr: char;
  n: word;
begin
  write('Введите размерность: ');
  readln(n);
  
  repeat
    Write('Ввести массив случайно? y/n: ');
    read(vopr);
    if (vopr <> 'y') and (vopr <> 'n') then
      writeln('Неверный ввод');
  until (vopr = 'y' ) or (vopr = 'n');
  
  case vopr of
    'n':
      begin
        Setlength(mas, n);
        for var i := 0 to n - 1 do
        begin
          write('Введите ', i + 1, ' число: ');
          Read(mas[i]);
        end;
      end;
    'y':
      begin
        Setlength(mas, n); 
        for  var i := 0 to n - 1 do
          mas[i] := random(50);
      end;
  end;
end;
 
///Нахождение минимального элемента в массиве
procedure poisk_min(var mas: massiv; var min: byte);
begin
  write('Исходный массив: ');
  
  min := mas[1];
  for var i := 0 to high(mas) do
  begin
    write(mas[i], ' ');
    if mas[i] < min then
      min := mas[i];
  end;
  writeln;
  writeln('Мин. число: ', min);
end;
 
///Нахождение максимального элемента в массиве
procedure poisk_max(var mas: massiv; var max: byte);
begin
  max := mas[1];
  for var i := 0 to high(mas) do
  begin
    if mas[i] > max then
      max := mas[i];
  end;
  writeln('Макс. число: ', max);
end;
 
///Удаление повторяющихся эл-тов из массива
procedure delete_povt(var mas: massiv);
var i, j, k, n: word;
begin
  Setlength(mas, high(mas)); 
  n := high(mas);
  
  i := 0;
  while i <= n-1 do
  begin
    j := i + 1;
    while j <= n-1 do
    begin
      if mas[j] = mas[i] then
      begin
        for k := j to n - 2 do
          mas[k] := mas[k + 1];
        n := n - 2;
      end
      else j := j + 1;
    end;
    i := i + 1;
  end;
end;
 
 
///Вывод массива
procedure output_mas(var mas: massiv);
begin
  for var i := 0 to high(mas) do
    write(mas[i], ' ');
end;
 
///Формирование множества из массива 
procedure mnog_iz_mas(var mnog: mnogestv; mas: massiv);
begin
  mnog := [ ];
  for var i := 0 to high(mas) do
    mnog := mnog + [mas[i]];
end;
 
 ///Вывод множ-ва на экран 
procedure output_mnog(var mnog: mnogestv);
begin
  write('Получившееся множество: ');
  
  foreach var i: byte in mnog do 
    Write(i, ' ');
end;
 
///Выполнение задачи со множ-ом  
procedure rez_mnog(var mnog, podmnog: mnogestv; var min: byte);
begin
  writeln;
  write('Получившееся подмножество: ');
  
  podmnog := [];
  foreach var i: byte in mnog do 
  begin
    if min = 0 then
      podmnog := podmnog + [i]
    else if (i mod min) = 0 then
      podmnog := podmnog + [i];
  end;
end;
 
///Выполнение действий с массивом boolean 
procedure rez_bool(var set_arr: masbool; var mas: massiv; var min, max: byte);
var g: word;
begin
  Setlength(set_arr, max+1);
  
  for var i := 0 to max do
  set_arr[i] := false;
  
  for var i := 0 to high(mas) do
    if (mas[i] mod min) = 0 then
      begin
        g := mas[i];
        set_arr[g] := true;
      end;
end;
 
///Вывод подмнож-ва на экран   
procedure output_podmnog(var podmnog: mnogestv; set_arr: masbool);
begin
  foreach var i: byte in podmnog do 
    Write(i, ' ');
 
  writeln;
end;
 
///Мощность множ-ва 
function moshnost_mnog(var podmnog: mnogestv): longword;
var
  kol: longword;
begin
  kol := 0;
  foreach var i: byte in podmnog do
    kol += 1;
  moshnost_mnog := kol;
end;
 
///Вывод массива of boolean
procedure output_bool(var set_arr: masbool; var max: byte);
var
  moshnost_mas: word;
begin
  write('Получившийся массив of boolean: ');
  moshnost_mas := 0;
  for var i := 0 to max-1 do
  begin
    if set_arr[i] = true then
      begin
        write(i, ' ');
        inc(moshnost_mas);
      end;
  end;
  writeln;
  writeln('Мощность массива: ', moshnost_mas);
end;
 
begin
  vvod(mas);
  min := 0;
  poisk_min(mas, min);
  poisk_max(mas, max);
  delete_povt(mas);
  write('Массив без повтор.: ');
  output_mas(mas); writeln;
  mnog_iz_mas(mnog, mas);
  output_mnog(mnog);
  rez_mnog(mnog, podmnog, min);
  rez_bool(set_arr, mas, min, max);
  output_podmnog(podmnog, set_arr);
  writeln('Мощность подмножества: ', moshnost_mnog(podmnog));
  output_bool(set_arr, max);
end.
Добавлено через 1 минуту
Помогите пожалуйста исправить ошибки. Задание: Из множества целых чисел, выделить подмножество чисел кратных минимальному числу всего множества. Кто поможет, за мной не заржавеет..

Добавлено через 1 минуту
ошибки начинают появляться при вызове процедуры удаления повторяющихся элементов. Код пробовал использовать вне программы - работает, а здесь, наверное, что-то с динамическим массивом не правильно оперирую.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2011, 20:08
Ответы с готовыми решениями:

Исправить ошибки в программе
program Prnt; label 100; const LPg=10; LStr=80; NLen=20; var Prg,...

Исправить ошибки в программе
помогите переписать программу, исправив ошибки! очень надо, а у меня чего-то...

Исправить ошибки в программе
program qq; var Z:array of integer; B:array of integer; ...

Исправить ошибки в программе
program test5b; type Person = record Name : record Name : world ...

Исправить ошибки в программе
Исправить ошибки в программе. program TEST; type Person = record ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2011, 20:08

Исправить ошибки в программе
9. Дан текстовый файл f . Преобразовать строки файла f по правилам, которые...

Исправить ошибки в программе
помогите решить задачкууу!!! Program Prim; Var n,p:Integer; y:Real; ...

Где исправить ошибки в программе??
задача такая написать программу в которой требуется &quot;Удалить все символы 'а' из...


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

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

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