Форум программистов, компьютерный форум, киберфорум
Наши страницы
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
benifest
0 / 0 / 2
Регистрация: 15.12.2015
Сообщений: 25
1

Вакансии и резюме: Составление массива с новыми данными (профессия, средняя з\п, стаж)

25.04.2016, 10:35. Просмотров 817. Ответов 3
Метки нет (Все метки)

Всем привет.
Возникли трудности с задачей: "Даны 2 входных текстовых файла, в одном из них - вакансии, в другом - резюме. Выглядит файл с вакансиями так:"
Орыаплыфр 23 пилот высшее 2 90000 50
Очлападпл 39 машинист среднее 1 25000 67
Лолывра 13 циркач отсутствует 0 12000 100
"
В нем записано: Название организации, расстояние от центра города до организации, кто требуется, какое образование требуется, какой стаж работы нужен, месячная з\п и количество дней для отпуска ежегодно.

С резюме выглядит файл так:"
Жуков Л.И. 1.1.2001 машинист среднее 1 29000
Ефывпа Л.К. 1.1.1997 циркач отсутствует 2 10000
Пономерн Е.А. 29.02.2000 пилот высшее 7 70000
"
В нем записано: Фамилия и инициалы, дата становления на учет в бюро занятости, профессия, образование, стаж работы по специальности, желаемая з\п.

Что требуется: считать данные(это сделано) и составить 2 массива в которых:
1) Записаны название профессии, средняя з\п по этой професии и средний стаж работы по этой профессии(Это сделать для всех профессий в резюме) Этот пункт по вакансиям
2) Аналогично первому, то же самое: название профессии, средняя з\п по этой професии и средний стаж работы по этой профессии. Этот пункт по резюме


Нарисую картину:
Имеем вакансии вида:
"Одвервр 23 пилот высшее 4 50000 50
Очлападпл 39 машинист среднее 1 25000 67
Лолывра 13 циркач отсутствует 0 12000 100
Орыаплыфр 13 пилот высшее 6 150000 50
Двпрва 89 пилот высшее 2 20000 50"

Нужно на выходе:
"пилот 4 73333
машинист 1 25000
циркач 0 12000"

Аналогично и с резюме.

Трудности вызывает как раз составление массива с новыми данными(профессия, средняя з\п, стаж).

Моя программа:

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
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
program RABOTA;
 
const
  q = 15;// количество человек с резюме. Двойных фамилий нет!!
 
const
  qq = 5;// количество вакансий
 
type
  data = record
    Day: byte;
    Month: byte;
    Year: word;
  end;
  rezume = record
    FIO: string[20];
    Dataucheta: data;
    Doljnost: string[10];
    Obrazovanie: string[15];
    Staj: 0..40;
    Min_zarplata: 7500..500000;
  end;
 
type
  vakansii = record
    Nazv_org: string[20];
    Rasstoyanie: integer;
    Treb_doljn: string[20];
    Treb_obraz: string[20];
    Treb_staj: byte;
    Zarplata: integer;
    Otpusk: integer;
  end;
 
 
type
  mas_rezume = array [1..q] of rezume;
 
type
  mas_vakansii = array [1..qq] of vakansii;
 
function DayPerMonth(m: byte; g: word): byte;{Функция проверки количества дней в месяце, учитывая високосный год}
begin
  case m of 
    1, 3, 5, 7, 8, 10, 12: DayPerMonth := 31; 
    4, 6, 9, 11: DayPerMonth := 30; 
    2:
      if (g mod 400 = 0) or ((g mod 4 = 0) and (g mod 100 <> 0)) then 
        DayPerMonth := 29 
      else 
        DayPerMonth := 28;
  else 
    writeln( 'Ошибка, найден неверный формат месяца в файле: число от 1 до 12'); 
  end; 
end;
 
 
function check_familiya(op: string; i: integer): boolean;{Функция проверки правильной записи фамилии или названия организации}
var
  j: integer;
begin
  check_familiya := false;
  if (op[1] < 'А') or (op[1] > 'Я') 
  then begin
    writeln('Ошибка в записи фамилии или организиции в ', 1, ' символе в ', i, ' строке.');
    check_familiya := true;
  end else begin
    for j := 2 to length(op) do 
      if (op[j] < 'а') or (op[j] > 'я') 
      then begin
        writeln('Ошибка в записи фамилии или организации в ', j, ' символе в ', i, ' строке.');
        check_familiya := true;
      end;
  end;
end;
 
function check_iniciali(op: string; i: integer): boolean;{Функция проверки правильной записи инициалов}
begin
  check_iniciali := false;
  if ((op[1] < 'А') or (op[1] > 'Я')) then begin
    writeln('Ошибка в записи инициалов в ', 1, ' символе в ', i, ' строке.');
    check_iniciali := true;
  end else
  if (op[2] <> '.') then begin
    check_iniciali := true;
    writeln('Ошибка в записи инициалов во ', 2, ' символе в ', i, ' строке.');
  end else
  if ((op[3] < 'А') or (op[3] > 'Я')) then begin
    check_iniciali := true;
    writeln('Ошибка в записи инициалов в ', 3, ' символе в ', i, ' строке.');
  end else
  if (op[4] <> '.') then begin
    check_iniciali := true;
    writeln('Ошибка в записи инициалов в ', 4, ' символе в ', i, ' строке.');
  end;
end;
 
function check_profobraz(op: string; i: integer): boolean;{Функция проверки правильной записи профессии и образования}
var
  j: integer;
begin
  check_profobraz := false;
  for j := 1 to length(op) do
    if (op[j] < 'а') or (op[j] > 'я') 
    then begin
      check_profobraz := true;
      writeln('Ошибка в записи профессии/образования в ', j, ' символе в ', i, ' строке.');
    end;
end;
 
procedure delete_probel(var s: string);{Процедура удаления лишних пробелов}
begin
  while pos('  ', s) > 0 do
    delete(s, pos('  ', s), 1);
end;
 
function check_probel(s: string): boolean;{Функция проверки наличия пробелов после записанной информации}
var
  p: integer;
begin
  check_probel := false;
  p := pos(' ', s);
  if p = 0
  then begin
    check_probel := true;
    writeln('Ошибка в расставлении пробелов. Прочтите требования по заполнению данных.');
  end;
end;
 
procedure check_data(s: string; i: integer; var Dataucheta: data; var r: boolean);{Процедура проверки правильной записи даты}
var
  d1: string;
  k: integer;
begin
  d1 := copy(s, 1, pos('.', s) - 1);//Копируем день становления на учет
  val(d1, Dataucheta.Day, k);
  if (k <> 0) or (Dataucheta.Day < 1) then begin
    writeln('Ошибка в записи дня становления на учет в ', i, ' строке.');
    r := true;
  end;
  delete(s, 1, pos('.', s));//Удаляем день становления на учет из файла
  
  d1 := copy(s, 1, pos('.', s) - 1);//Копируем месяц становления на учет
  val(d1, Dataucheta.Month, k);
  if (k <> 0) or ((Dataucheta.Month  > 12) or (Dataucheta.Month < 1)) then begin
    writeln('Ошибка в записи месяца становления на учет в ', i, ' строке.');
    r := true;
  end;
  delete(s, 1, pos('.', s));//Удаляем месяц становления на учет из файла
  
  val(s, Dataucheta.Year, k); //Копируем год становления на учет
  if (k <> 0) or ((Dataucheta.Year > 2002) or (Dataucheta.Year < 1900)) then begin
    writeln('Ошибка в записи года становления на учет в ', i, ' строке.');
    r := true;
  end;
  if  (Dataucheta.Day  > DayPerMonth(Dataucheta.Month, Dataucheta.Year)) then begin
    writeln('Ошибка в записи дня становления на учет в ', i, ' строке.');
    r := true;
  end;
end;
 
 
procedure read_rezume(var f: text; var m: mas_rezume);{Считывание данных из файла с резюме}
var
  i, k, nom: integer;
  d, s, qwe: string;
  r: boolean;
begin
  i := 0;
  r := false;
  while (not eof(f)) and (i < q) do 
  begin
    readln(f, s);
    delete_probel(s);
    i := i + 1;
    
    {Фамилия}
    r := check_probel(s);
    if r = true then break;
    d := copy(s, 1, pos(' ', s) - 1);//Копируем фамилию
    r := check_familiya(d, i);
    if r = true then break;
    delete(s, 1, pos(' ', s));//Удаляем фамилию из файла
    
    {Инициалы}
    r := check_probel(s);
    if r = true then break;
    qwe := copy(s, 1, 4);//Копируем инициалы
    r := check_iniciali(qwe, i);
    if r = true then break;
    m[i].FIO := d + ' ' + qwe;//Складываем фамилию и инициалы
    delete(s, 1, 5);//Удаляем инициалы из файла
    
    {Дата становления на учет}
    r := check_probel(s);
    if r = true then break;
    d := copy(s, 1, pos(' ', s) - 1);//Копируем дату становления на учет
    check_data(d, i, m[i].Dataucheta, r);
    if r = true then break;
    delete(s, 1, pos(' ', s));
    
    {Профессия}
    r := check_probel(s);
    if r = true then break;
    d := copy(s, 1, pos(' ', s) - 1);//Копируем название профессии
    r := check_profobraz(d, i);
    if r = true then break;
    delete(s, 1, pos(' ', s));//Удаляем название профессии из файла
    m[i].Doljnost := d;
    
    {Образование}
    r := check_probel(s);
    if r = true then break;
    d := copy(s, 1, pos(' ', s) - 1);//Копируем полученное образование
    r := check_profobraz(d, i);
    if r = true then break;
    delete(s, 1, pos(' ', s));//Удаляем полученное образование из файла
    m[i].Obrazovanie := d;
    
    {Опыт работы}
    r := check_probel(s);
    if r = true then break;
    d := copy(s, 1, pos(' ', s) - 1);//Копируем опыт работы
    val(d, nom, k);
    if (k <> 0) or ((nom > 40) or (nom < 0)) then begin
      writeln('Ошибка в записи опыта работы в ', i, ' строке');
      r := true;
    end;
    if r = true then break;
    delete(s, 1, pos(' ', s));//Удалаем опыт работы из файла
    m[i].Staj := nom;
    
    {Минимальная з\п в резюме}
    d := copy(s, 1, length(s));//Копируем получаему зурплату
    val(d, nom, k);
    if (k <> 0) or ((nom > 500000) or (nom < 7500)) then begin
      writeln('Ошибка в записи получаемой зарплаты в ', i, ' строке');
      r := true;
    end;
    if r = true then break;
    m[i].Min_zarplata := nom;
  end;
end;
 
procedure read_vakansii(var f: text; var m: mas_vakansii);{Считывание данных из файла с вакансиями}
var
  i, k, nom: integer;
  d, s: string;
  r: boolean;
begin
  i := 0;
  r := false;
  while (not eof(f)) and (i < qq) do 
  begin
    readln(f, s);
    delete_probel(s);
    i := i + 1;
    
    {Название организации}
    r := check_probel(s);
    if r = true then break;
    d := copy(s, 1, pos(' ', s) - 1);//Копируем название организации
    r := check_familiya(d, i);
    if r = true then break;
    m[i].Nazv_org := d;
    delete(s, 1, pos(' ', s));//Удаляем название организации
    
    {Расстояние от центра города до организации}
    r := check_probel(s);
    if r = true then break;
    d := copy(s, 1, pos(' ', s) - 1);//Копируем расстояние до организации
    val(d, nom, k);
    if (k <> 0) then begin
      writeln('Ошибка в записи расстояния до организации в ', i, ' строке');
      r := true;
    end;
    if r = true then break;
    m[i].Rasstoyanie := nom;
    delete(s, 1, pos(' ', s));//Удалаем расстояние до организации
    
    {Требуемый специалист в организацию}
    r := check_probel(s);
    if r = true then break;
    d := copy(s, 1, pos(' ', s) - 1);//Копируем название требуемой професии
    r := check_profobraz(d, i);
    if r = true then break;
    m[i].Treb_doljn := d;
    delete(s, 1, pos(' ', s));//Удаляем название требуемой профессии
    
    {Требуемое образование}
    r := check_probel(s);
    if r = true then break;
    d := copy(s, 1, pos(' ', s) - 1);//Копируем требуемое образование
    r := check_profobraz(d, i);
    if r = true then break;
    m[i].Treb_obraz := d;
    delete(s, 1, pos(' ', s));//Удаляем требуемое образование
    
    {Требуемый стаж работы}
    r := check_probel(s);
    if r = true then break;
    d := copy(s, 1, pos(' ', s) - 1);//Копируем требуемый стаж работы
    val(d, nom, k);
    if (k <> 0) then begin
      writeln('Ошибка в записи требуемого стажа работы в ', i, ' строке');
      r := true;
    end;
    if r = true then break;
    m[i].Treb_staj := nom;
    delete(s, 1, pos(' ', s));//Удаляем требуемый стаж работы
    
    {Зарплата в месяц на определенной должности}
    r := check_probel(s);
    if r = true then break;
    d := copy(s, 1, pos(' ', s) - 1);//Копируем з\п
    val(d, nom, k);
    if (k <> 0) then begin
      writeln('Ошибка в записи заработной платы в  ', i, ' строке');
      r := true;
    end;
    if r = true then break;
    m[i].Zarplata := nom;
    delete(s, 1, pos(' ', s));//Удаляем з\п
    
    {Продолжительность ежегодно оплачиваемого отпуска(в днях)}
    d := copy(s, 1, length(s));//Копируем продолжительность ежегодно оплачиваемого отпуска
    val(d, nom, k);
    if (k <> 0) then begin
      writeln('Ошибка в записи отпуска в  ', i, ' строке');
      r := true;
    end;
    if r = true then break;
    m[i].Otpusk := nom;
  end;
end;
 
 
var
  i: integer;
  f: text;
  m_r: mas_rezume;
  m_v: mas_vakansii;
 
begin
  assign(f, 'Резюме.txt');
  reset(f);
  read_rezume(f, m_r);
  close(f);
  for i := 1 to 3 do writeln(m_r[i]);
  writeln();
  assign(f, 'Вакансии.txt');
  reset(f);
  read_vakansii(f, m_v);
  close(f);
  for i := 1 to 3 do writeln(m_v[i]);
end.
Делает она вот что: считывает с текстового файла все данные в 2 массива, ну и всякие там проверки.

У меня не получается сообразить, как работать с имеющимися массивами, т.е. как в них по каждой профессии высчитывать требуемую информацию. Естественно нужно создать 2 новых массива.

И огромная просьба, если кто - то сможет помочь, то нужно это все сделать без использования всяких библиотек и прочего, нам в универе не разрешили ими пользоваться, да и не умеем в принципе.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2016, 10:35
Ответы с готовыми решениями:

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

Обнуление и заполнение новыми данными JTable
Здравствуйте. У меня возникла следующая проблема: В некотороый момент работы программы необходимо...

Chart. Перерисовать график с новыми данными
Я вывел график в чарте. массив значений у меня полностью изменился. как мне теперь перерисовать его?

Возможность повторить расчет с новыми данными не выходя из программы.
Подскажите пожалуйста, как на С++ будет писаться код, который на Паскале пишется так: program...

Написать функцию дополнения уже существующего массива структур новыми структурами
нужно написать функцию дополнения уже существующего массива структур новыми структурами! нашел на...

3
JuriiMW
2052 / 1119 / 1595
Регистрация: 10.12.2014
Сообщений: 4,262
25.04.2016, 13:10 2
Лучший ответ Сообщение было отмечено benifest как решение

Решение

Слишком много объяснений „от себя“, вместо внятного задания.
Слишком много лишнего кода.
Не понятно,что делать со стажем… — Беру в новый массив первый попавшийся!
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
uses
  System;
 
//------------------------------------------------------------------------------
type
  /// ----- Резюме -----
  tResume = record
    /// Фамилия Имя Отчество
    FullName   : String;
    /// Дата постановки на учёт
    Registered : DateTime;
    /// Вакансия
    Vacancy    : String ;
    /// Уровень образования
    Education  : String ;
    /// Стаж
    Experiens  : Byte   ;
    /// Зарплата
    Salary     : Integer;
    /// Кол-во
    Count      : Integer;
  end;
 
function ReadR(fName : String; var Resume : array of tResume) : Boolean;
begin
  Result := False;
  if NOT System.IO.File.Exists(fName) then begin WriteLn('Файл «' + fName + '» не найден.'); Exit; end;
  var Line := 0; var Count := 0;
  foreach var S in ReadLines(fName) do
    begin
      Line += 1;
      try
        if S.Length = 0 then Continue;
        var W := S.ToWords; var L := W.Count;
        SetLength(Resume, Count + 1);
        // Парсим:
        Resume[Count].Salary    := StrToInt (W[L - 1]);
        Resume[Count].Experiens := StrToInt (W[L - 2]);
        Resume[Count].Education := LowerCase(W[L - 3]);
        Resume[Count].Vacancy   := LowerCase(W[L - 4]);
        var D := W[L-5].ToWords('.');
        Resume[Count].Registered:= New DateTime(StrToInt(D[2]), StrToInt(D[1]), StrToInt(D[0]));
        // Всё остальное - это ФИО
        Resume[Count].FullName := W[0];
        for var i := 1 to L - 6 do Resume[Count].FullName += #32 + W[i];
        
        Count += 1;
      except
        WriteLn('Ошибка чтения файла «' + fName + '». Строка ' + Line + '.');
      end; // try
    end; // foreach
  Result := True;
end;
 
//------------------------------------------------------------------------------
type
  /// ----- Вакансии -----
  tVacancy = record
    /// Наименование организации
    Organization  : String ;
    /// Расстояние от центра
    Distance      : Integer;
    /// Вакансия
    Vacancy       : String ;
    /// Уровень образования
    Education     : String ;
    /// Стаж
    Experiens     : Byte   ;
    /// Зарплата
    Salary        : Integer;
    /// Отпуск
    DaysOfVacation: Integer;
    /// Кол-во
    Count         : Integer;
  end;
 
function ReadV(fName : String; var Vacancy : array of tVacancy) : Boolean;
begin
  Result := False;
  if NOT System.IO.File.Exists(fName) then begin WriteLn('Файл «' + fName + '» не найден.'); Exit; end;
  var Line := 0; var Count := 0;
  foreach var S in ReadLines(fName) do
    begin
      Line += 1;
      try
        if S.Length = 0 then Continue;
        var W := S.ToWords;
        SetLength(Vacancy, Count + 1);
        // Парсим:
        Vacancy[Count].Organization   := W[0];
        Vacancy[Count].Distance       := StrToInt (W[1]);
        Vacancy[Count].Vacancy        := LowerCase(W[2]);
        Vacancy[Count].Education      := LowerCase(W[3]);
        Vacancy[Count].Experiens      := StrToInt (W[4]);
        Vacancy[Count].Salary         := StrToInt (W[5]);
        Vacancy[Count].DaysOfVacation := StrToInt (W[6]);
        
        Count += 1;
      except
        WriteLn('Ошибка чтения файла «' + fName + '». Строка ' + Line + '.');
      end; // try
    end; // foreach
  Result := True;
end;
//------------------------------------------------------------------------------
 
function consolidatedVacancy(arr : array of tVacancy) : array of tVacancy;
begin
  var Size := 0;
  foreach var R in arr do
    begin
      var find := False;
      for var i := 0 to Size-1 do
        if R.Vacancy = Result[i].Vacancy then
          begin
            find := True;
            Result[i].Salary += R.Salary;
            Result[i].Count  += 1;
          end;
      if Not find then
        begin
          SetLength(Result, Size+1);
          Result[Size].Vacancy   := R.Vacancy;
          Result[Size].Experiens := R.Experiens;
          Result[Size].Salary    := R.Salary;
          Result[Size].Count     := 1;
          Size += 1;
        end;
    end;
end; // consolidatedVacancy
 
function consolidatedResume(arr : array of tResume) : array of tResume;
begin
  var Size := 0;
  foreach var R in arr do
    begin
      var find := False;
      for var i := 0 to Size-1 do
        if R.Vacancy = Result[i].Vacancy then
          begin
            find := True;
            Result[i].Salary += R.Salary;
            Result[i].Count  += 1;
          end;
      if Not find then
        begin
          SetLength(Result, Size+1);
          Result[Size].Vacancy   := R.Vacancy;
          Result[Size].Experiens := R.Experiens;
          Result[Size].Salary    := R.Salary;
          Result[Size].Count     := 1;
          Size += 1;
        end;
    end;
end; // consolidatedResume
 
var
  Resume  : array of tResume;
  Vacancy : array of tVacancy;
  
begin
  if ReadR('Резюме.txt', Resume) then WriteLn('Файл резюме содержит записей: ' + Resume.Count)
  else begin WriteLn('Возникли проблемы чтения файла с резюме.'); Halt; end;
  if ReadV('Вакансии.txt', Vacancy) then WriteLn('Файл вакансий содержит записей: ' + Vacancy.Count)
  else begin WriteLn('Возникли проблемы чтения файла с вакансиями.'); Halt; end;
  
  
  WriteLn(NewLine, 'Информация о вакансиях:');
  foreach var V in consolidatedVacancy(Vacancy) do
    WriteLnFormat('{0} {1} {2:f0}', V.Vacancy, V.Experiens, V.Salary / V.Count);
    
  WriteLn(NewLine, 'Информация о соискателях:');
  foreach var V in consolidatedResume(Resume) do
    WriteLnFormat('{0} {1} {2:f0}', V.Vacancy, V.Experiens, V.Salary / V.Count);
end.
1
benifest
0 / 0 / 2
Регистрация: 15.12.2015
Сообщений: 25
25.04.2016, 15:35  [ТС] 3
Спасибо Вам за ответ, но Вы зря все это написали. У Вас я увидел доныне неизвестный мне цикл "foreach". Я простой студент первого курса, совсем неопытный. Мне нужна помощь в границах моей программы. И не нужно обращать внимания на "лишний" код. Преподаватель потребовал все проверки писать своими руками.
0
JuriiMW
2052 / 1119 / 1595
Регистрация: 10.12.2014
Сообщений: 4,262
26.04.2016, 05:09 4
benifest, посмотрите как работают функции „consolidated…“.
А какой использовать цикл — это на любителя…
Я же не настаиваю на использовании именно моей программы.
Приведена она по нескольким причинам:
— во-первых, в ней реализована та часть, которой не достаёт в вашей;
— во-вторых, в ней по другому происходит разбор строки на составляющие;
— ну и в-третьих, я показываю, что одинаковым данным нужно давать одинаковые имена (Vacancy, Education, Experiens, Salary).
И ещё: если в моей программе, к примеру, в основном модуле написать Vacancy[0] и поставить точку, то появится подсказка:
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2016, 05:09

Составление массива
Встретился с такой проблемой: при отладке программы обнаружилось, что все элементы массива равны...

Составление массива
Массив из 100 элементов заполнить целыми числами от 0 до 100. Вывести на экран: 1. Количество...

Составление массива из слов
Добрый день! Как написать программу, которая составляет массив из слов, в которых ни одна буква не...


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

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

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