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

Ответы на вопрос

Отвечает Айбазов Ибрахим.
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 1950
16 5 1968
5 8 1970
3 9 1968
11 6 1964
16 12 1967
Самый ранний из годов: 1950
Все весенние даты
18.4.1950 16.5.1968
Cамая поздняя дата: 05.08.1970
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 1950
16 5 1968
5 8 1970
3 9 1968
11 6 1964
16 12 1967
Самый ранний из годов: 1950
Все весенние даты
18.4.1950 16.5.1968
Cамая поздняя дата: 05.08.1970


Топ вопросов за вчера в категории Информатика

Информатика 47

Информатика 33

Информатика 67

Информатика 18

Информатика 25

Информатика 563

Информатика 16
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili