Кто знает как это решается по информатике? Известны данные о N вкладчиках банка: фамилия, сумма вклада, срок (в месяцах), дата начала вклада. Проверьте, сколько вкладов будет завершено в течение указанного пользователем периода. На паскале
program EndDeposits; type Depositor = record surname: string; amount: real; duration: integer; startDate: string; // Тут можно использовать тип данных TDateTime, если работаем с датами и временем end; var depositors: array [1..100] of Depositor; period: integer; endDate: string; // Здесь также можно использовать тип данных TDateTime i, endDepositsCount: integer; begin // Вводим данные о вкладчиках и периоде writeln('Введите количество вкладчиков:'); readln(n); for i := 1 to n do begin writeln('Введите фамилию вкладчика ', i, ':'); readln(depositors[i].surname); writeln('Введите сумму вклада: '); readln(depositors[i].amount); writeln('Введите срок вклада (в месяцах): '); readln(depositors[i].duration); writeln('Введите дату начала вклада (ДД.ММ.ГГГГ): '); readln(depositors[i].startDate); end; writeln('Введите период для проверки завершения вкладов (в месяцах): '); readln(period); // Подсчитываем количество вкладов, завершившихся за указанный период endDepositsCount := 0; endDate := '01.01.2022'; // Текущая дата for i := 1 to n do begin if (StrToDate(depositors[i].startDate) + depositors[i].duration <= StrToDate(endDate) - period) then endDepositsCount := endDepositsCount + 1; end; writeln('Количество вкладов, завершившихся за указанный период: ', endDepositsCount); end.
Не забудьте использовать библиотеку SysUtils, если используете тип данных TDateTime. В этом коде предполагается, что необходимо сравнивать даты в формате "ДД.ММ.ГГГГ". Необходимо также учесть обработку ввода пользователя и возможные ошибки при вводе данных.
Вот пример решения данной задачи на языке Pascal:
program EndDeposits;type
Depositor = record
surname: string;
amount: real;
duration: integer;
startDate: string; // Тут можно использовать тип данных TDateTime, если работаем с датами и временем
end;
var
depositors: array [1..100] of Depositor;
period: integer;
endDate: string; // Здесь также можно использовать тип данных TDateTime
i, endDepositsCount: integer;
begin
// Вводим данные о вкладчиках и периоде
writeln('Введите количество вкладчиков:');
readln(n);
for i := 1 to n do
begin
writeln('Введите фамилию вкладчика ', i, ':');
readln(depositors[i].surname);
writeln('Введите сумму вклада: ');
readln(depositors[i].amount);
writeln('Введите срок вклада (в месяцах): ');
readln(depositors[i].duration);
writeln('Введите дату начала вклада (ДД.ММ.ГГГГ): ');
readln(depositors[i].startDate);
end;
writeln('Введите период для проверки завершения вкладов (в месяцах): ');
readln(period);
// Подсчитываем количество вкладов, завершившихся за указанный период
endDepositsCount := 0;
endDate := '01.01.2022'; // Текущая дата
for i := 1 to n do
begin
if (StrToDate(depositors[i].startDate) + depositors[i].duration <= StrToDate(endDate) - period) then
endDepositsCount := endDepositsCount + 1;
end;
writeln('Количество вкладов, завершившихся за указанный период: ', endDepositsCount);
end.
Не забудьте использовать библиотеку SysUtils, если используете тип данных TDateTime. В этом коде предполагается, что необходимо сравнивать даты в формате "ДД.ММ.ГГГГ". Необходимо также учесть обработку ввода пользователя и возможные ошибки при вводе данных.