Задача в Pascal. Нужна поддержка, есть наработки

Лариск

Имеется документ, который содержит информацию по потребности материалов на текущий период. Документ содержит следующие реквизиты: 1) дата, представленная в виде четырёх символов. Первые два символа определяют месяц. Третий и четвёртый символ определяют год. 2) код цеха, представленный в виде шести символов 3) код материала, представленный в виде десяти символов 4) потребность в материале, представленная в виде 8 цифр, две из которых определяют дробную часть. Требуется разработать программный код, включающий процедуру, которая обеспечивает формирование массива записей, относящихся к заданному цеху Вот, что сделала я: Код:
Program PotrM; 
Type 
TPotrM = Record 
Date: String [4]; 
ShCzeh: String [6]; 
NameMat: String [20]; 
Potr: Real; 
End; 
Var 
PotrM: TPotrM; 
Kv, Mes, Rc: Integer; 
SMes: String; 
Begin 
// Ввод записи
Writeln ('Vvedite datu'); 
Readln (PotrM.Date); 
Writeln ('Kod Czeha'); 
Readln (PotrM.ShCzeh); 
Writeln ('Kod materiala'); 
Readln (PotrM.NameMat); 
Writeln('Potrebnoct v materiale'); 
Readln (PotrM.Potr);
 
Вот, что мне подсказали:
 
Type 
TPotrM = Record 
Date: String [4]; 
ShCzeh: String [6]; 
NameMat: String [10]; 
Potr: array[1..8] of byte; //потребность в материале 8цифр
End; 
Var 
PotrM: array[1..100] of TPotrM;//массив записей
i, j: byte;
Begin 
for i := 1 to 5 do begin
Writeln ('Vvedite datu'); 
Read (PotrM[i].Date); 
Writeln ('Kod Czeha'); 
Read (PotrM[i].ShCzeh); 
Writeln ('Kod materiala'); 
Read (PotrM[i].NameMat); 
Writeln('Potrebnoct v materiale'); 
for j := 1 to 8 do Read (PotrM[i].Potr[j]);
end;
...
end.
Ещё мне подсказали, что можно привязать все поля к цеху, а тут только поле потребности в материале и насчёт даты, что её желательно целочисленной сделать, но раз в учебнике так, как у меня, значит, я думаю, можно оставить и так) Помогите пожалуйста, я в этом мало, что понимаю)))
1 ответ

Лариск

Type 
TPotrM = Record 
Date: String [4]; 
ShCzeh: String [6]; 
NameMat: String [10]; 
Potr: array[1..8] of byte; //потребность в материале 8цифр
End; 
Var 
PotrM: array[1..100] of TPotrM;//массив записей
i,n:byte;
Procedure Vvod(Var st:TPotrM);
Var j:byte;
Begin 
   Write('Vvedite datu: '); 
   Readln(st.Date); 
   Write('Kod Czeha: '); 
   Readln(st.ShCzeh); 
   Write('Kod materiala: '); 
   Readln(st.NameMat); 
   Writeln('Potrebnoct v materiale'); 
   for j := 1 to 8 do Read (st.Potr[j]);
end;
Begin
    write('Введите кол-во цехов: ');readln(n);
    For i:=1 to n do
     Vvod(PotrM[i]);
    readln;
End.
Как то так...