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
olgakuz00261
13.10.2022
Type name=(Anya,Valya,Zhenya,Petya,Sasha,Tanya,Shura,Yura); gender=(man,woman); information=record pol:gender; height:140..200 end; group=array[Anya..Yura] of information;
function SrRost(var Gr:group):single; var i:name; s:single; n:integer; begin s:=0; n:=0; for i:=Anya to Yura do begin s:=s+Gr[i].height; Inc(n) end; SrRost:=s/n end;
function Vysokiy(var Gr:group):string; var i,j:name; h:integer; begin h:=Gr[Anya].height; j:=Anya; for i:=Valya to Yura do begin if Gr[i].height>h then begin h:=Gr[i].height; j:=i end end; Vysokiy:=j.ToString end;
function OdinRost(var Gr:group):boolean; var i,j:name; flag:boolean; begin i:=Anya; flag:=false; repeat j:=Succ(i); while (not flag) and (j<=Yura) do begin flag:=(Gr[i].height<>Gr[j].height); Inc(j) end; flag:=(Gr[i].height<>Gr[j].height); if not flag then Inc(i); until flag or (i=Yura); OdinRost:=flag end;
var Grp:group; i:name; g:0..1; begin { ввод данных } for i:=Anya to Yura do begin Write(i.ToString+': укажите пол м/ж числом 0/1 '); Readln(g); if g=0 then Grp[i].pol:=man else Grp[i].pol:=woman; Write(i.ToString+': укажите рост, см (140-200) '); Readln(Grp[i].height) end; { вычисления } Writeln('Средний рост равен ',SrRost(Grp):0:1); Writeln('Наиболее высокий человек - ',Vysokiy(Grp)); If OdinRost(Grp) then Writeln('Есть минимум два человека одного роста') else Writeln('У всех в группе разный рост'); end.
Тестовое решение: Anya: укажите пол м/ж числом 0/1 1 Anya: укажите рост, см (140-200) 165 Valya: укажите пол м/ж числом 0/1 1 Valya: укажите рост, см (140-200) 170 Zhenya: укажите пол м/ж числом 0/1 0 Zhenya: укажите рост, см (140-200) 173 Petya: укажите пол м/ж числом 0/1 0 Petya: укажите рост, см (140-200) 178 Sasha: укажите пол м/ж числом 0/1 0 Sasha: укажите рост, см (140-200) 176 Tanya: укажите пол м/ж числом 0/1 1 Tanya: укажите рост, см (140-200) 170 Shura: укажите пол м/ж числом 0/1 1 Shura: укажите рост, см (140-200) 168 Yura: укажите пол м/ж числом 0/1 0 Yura: укажите рост, см (140-200) 175 Средний рост равен 171.9 Наиболее высокий человек - Petya Есть минимум два человека одного роста
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Чтобы закрыть активный документ word, не закрывая окна программы, нужно: