Случайная генерация и запись даты в файл - Pascal ABC
Формулировка задачи:
Здравствуйте, нужна помощь в написание кода который генерирует случайно 30 дат в формате "ДД.ММ.ГГ" и записать их в файл "date.txt" в столбик. Буду очень благодарен ребята.
Решение задачи: «Случайная генерация и запись даты в файл»
textual
Листинг программы
function DneyVMecyace(Month, Year: Integer): Integer;
{-Return the number of days in the specified month of a given year}
begin
case Month of
1, 3, 5, 7, 8, 10, 12:
DneyVMecyace := 31;
4, 6, 9, 11:
DneyVMecyace := 30;
2: if year mod 4=0 then DneyVMecyace := 29
else DneyVMecyace := 28;
else
DneyVMecyace := 0;
end;
end;
function IntToStr2(n:integer):string;
var s : string;
begin
Str(n:1,s);
while Length(s)<2 do s:='0'+s;
IntToStr2 := s;
end;
var i,d,m,y:integer;
f:Text;
begin
Assign(f,'date.txt');
Rewrite(f);
for i:=1 to 30 do begin
y := Random(21)+2000; {год будет от 2000 до 2020}
m := Random(12)+1;
d := Random(DneyVMecyace(m,y))+1;
WriteLn(f,IntToStr2(d)+'.'+IntToStr2(m)+'.'+IntToStr2(y mod 100));
end;
Close(f);
WriteLn('Готово! файл записан');
end.
Объяснение кода листинга программы
- Определяется функция DneyVMecyace, которая возвращает количество дней в указанном месяце года. В функции используется оператор case для определения количества дней в разных месяцах.
- Определяется функция IntToStr2, которая преобразует целое число в строку. В функции используется встроенная функция Str, которая форматирует число в строку, и оператор while для добавления нулей в начало строки до тех пор, пока длина строки меньше 2.
- Определяются переменные i, d, m и y, которые будут использоваться в цикле.
- Создается объект Text с именем f, который будет использоваться для записи даты в файл.
- Устанавливается ссылка на файл 'date.txt'.
- Выполняется операция Rewrite, которая очищает файл перед записью данных.
- Запускается цикл for, который выполняется 30 раз.
- Внутри цикла генерируются случайные значения для года (y), месяца (m) и дня (d).
- Вызывается функция DneyVMecyace для определения количества дней в месяце (d).
- Вызывается функция IntToStr2 для преобразования числа дня (d) в строку.
- Записывается дата в файл с использованием функции WriteLn.
- После завершения цикла закрывается файл с помощью функции Close.
- Выводится сообщение 'Готово! файл записан'.