Егер қар өте көп мөлшерде жауса, жүру төмен болады.
Бір елді мекеннен екі жолаушы бір ба-
ғытқа қарай шықты. Біріншісі 40 м/мин
жылдамдықпен қозғалды. Екіншісі жылда-
мырақ жүріп, 10 минуттан кейін біріншісі-
нен 500 м озып кетті. Ол қандай жылдам-
дықпен қозғалды?
t= 10 мин
и = 40 м/мин
S= 500 м
V, = ? м/мин
қиынға түседі. Жолаушылардың жылдам-
дығы күн райына байланысты әлдеқайда
Десят. - Восьм. - Шестн
0-000-0000
1-001-0001
2-010-0010
3-011-0011
4-100-0100
5-101-0101
6-110-0110
7-111-0111
Далее, в восьмеричной максимальное число 7, поэтому буду сразу писать шестн.
8-1000
9-1001
A-1010
B-1011
C-1100
D-1101
E-1110
F-1111
Итак, когда у нас есть двоичное значение каждых чисел, выполняем перевод:
726=111010110
Теперь справа налево, выделяем по 4 цифры, и смотрим в таблицу :
0110 - 6
1101 - D
0001 - 1 ;
У нас получилось так :
726=111010110=1D6
Вроде, понятно объяснил :)
nm = 50;
type
Data = record
day: 1..31;
month: 1..12;
year: integer
end;
lichn = record
famnam: string;
datr: Data
end;
listlichn = array [1..nm] of lichn;
var
m: listlichn;
n: integer;
procedure GetLichn(k: integer);
begin
Write(k, ') Введите через пробел фамилию, имя: ');
Readln(m[k].famnam);
Writeln('Введите через пробел день, месяц и год рождения: ');
Readln(m[k].datr.day, m[k].datr.month, m[k].datr.year)
end;
procedure WriteLichn(k: integer);
begin
Writeln(m[k].famnam, ' ', m[k].datr.day, '.', m[k].datr.month, '.', m[k].datr.year)
end;
procedure Vvod(var p: integer);
var
i: integer;
begin
Write('Введите количество лиц n (максимум 50) -> ');
Readln(p);
if p <= 50 then for i := 1 to p do GetLichn(i)
else begin Writeln('Вы ввели неправильное значение'); p := 0 end
end;
procedure Zapros1;
{ фамилии и имена тех кто родился в месяц l года }
var
i: integer;
l: 1..12;
begin
Write('Введите номер месяца рождения (1-12): ');
Readln(l);
for i := 1 to n do
if m[i].datr.month = l then WriteLichn(i)
end;
procedure Zapros2;
{ фамилии и имена тех кто родился в год a }
var
a, i: integer;
begin
Write('Введите год рождения: ');
Readln(a);
for i := 1 to n do
if m[i].datr.year = a then WriteLichn(i)
end;
procedure Zapros3;
{ фамилии и имена тех чья дата рождения z.l.a }
var
a, i: integer;
z: 1..31;
l: 1..12;
begin
Write('Введите через пробел день, месяц и год рождения: ');
Readln(z, l, a);
for i := 1 to n do
if (m[i].datr.year = a) and (m[i].datr.month = l)
and (m[i].datr.day = z) then
WriteLichn(i)
end;
begin
Vvod(n);
Zapros1;
Zapros2;
Zapros3
end.
Тестовое решение:
Введите количество лиц n (максимум 50) -> 3
1) Введите через пробел фамилию, имя: Иванов Иван
Введите через пробел день, месяц и год рождения:
24 12 1973
2) Введите через пробел фамилию, имя: Петров Петр
Введите через пробел день, месяц и год рождения:
05 03 1982
3) Введите через пробел фамилию, имя: Козлова Екатерина
Введите через пробел день, месяц и год рождения:
1 12 1994
Введите номер месяца рождения (1-12): 12
Иванов Иван 24.12.1973
Козлова Екатерина 1.12.1994
Введите год рождения: 1982
Петров Петр 5.3.1982
Введите через пробел день, месяц и год рождения: 5 3 1982
Петров Петр 5.3.1982