• Нужно сделать все это в Pascal. Помогите пожалуйста, кто может

    Пусть дан массив, содержащий даты. Каждая дата — это число, месяц, год (см. описание типа data в предыдущем задании). Найти:
    a) год с наименьшим номером;
    б) все весенние даты;
    в) самую позднюю дату.

Ответы 1

  • const  nn=50;type  data = record    number : 1..31;    month : 1..12;    year : 1901..1997  end;var  d:array[1..nn] of data;  i,n,k:integer;  s,s1,s2,s3:string;begin  Write('Количество дат (1..50)-> '); Read(n);  Writeln('Введите через пробел день, месяц, год: ');  for i:=1 to n do Read(d[i].number,d[i].month,d[i].year);  { a }  Write('Самый ранний из годов: ');  k:=d[1].year;  for i:=2 to n do    if d[i].year<k then k:=d[i].year;  Writeln(k);  { б }  Writeln('Все весенние даты');  for i:=1 to n do    if d[i].month in [3..5] then      Write(d[i].number,'.',d[i].month,'.',d[i].year,' ');  Writeln;  { в }  Write('Cамая поздняя дата: ');  Str(d[1].year,s1); Str(d[1].month,s2); Str(d[1].number,s3);  if Length(s2)=1 then s2:='0'+s2;  if Length(s3)=1 then s3:='0'+s3;  s:=s1+s2+s3;  for i:=2 to n do  begin    Str(d[i].year,s1); Str(d[i].month,s2); Str(d[i].number,s3);    if Length(s2)=1 then s2:='0'+s2;    if Length(s3)=1 then s3:='0'+s3;    if s<s1+s2+s3 then s:=s1+s2+s3  end;  Writeln(Copy(s,7,2)+'.'+Copy(s,5,2)+'.'+Copy(s,1,4))end.Тестовое решение:Количество дат (1..50)-> 6Введите через пробел день, месяц, год: 18 4 195016 5 19685 8 19703 9 196811 6 196416 12 1967Самый ранний из годов: 1950Все весенние даты18.4.1950 16.5.1968 Cамая поздняя дата: 05.08.1970
    • Автор:

      zairesbmw
    • 6 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years