С разбором Составить программу и записать ее в тетрадь.
Задание. На соревнованиях по прыжкам в длину участвовало 10 спортсменов. Результаты прыжков
занесены в массив В [10]. Определите три лучших результата (выведете их на экран).
program Sortirovka;
var n, i, j, x, imax: integer;
a:array[1..10] of integer;
begin
for i:=1 to 10 do read (a[i]);
for i:=1 to 10 do write (a[i],` `);
for i:=1 to 9 do
begin
imax:=i;
for j:=i+1 to 10 do if a[j]>a[imax] then imax:=j;
x:=a[i];
a[i]:=a[imax];
a[imax]:=x
end;
for i:=1 to 10 do write (a[i],` `);
end.
1 I 1 I 0 I 1 I 1 I 1 I 1 I
<-----------------------------------------------
ответ; 123 = 1111011 в двоичной с/с
Теперь объяснение:
1) Разлинуй так, как показано на схеме.
2) Число 123 : 2 = 61(ост.1)
3) Число 61 идёт по верхней строчке. Остаток 1 идёт в нижнюю строчку.
4) 61 : 2 = 30 (остаток 1). Число 30 - следующее число по верхней строчке.
Остаток 1 - следующее по нижней строчке.
5) Делим 30 на 2, Делится без остатка
30 : 2 = 15 (ост.0) 15 идёт по верхней строчке.
0 идёт по нижней строчке
6) Деление цифр верхнего ряда на 2продолжаем до тех пор, пока число не
закончится.
В нижней строчке у нас будут только единицы и нули.
7) Начинать записывать число в двоичной системе счисления необходимо
справа налево, т.е. с конца, как показано стрелочкой.
И у нас получится 1111011
ответ: 123 = 1111011 в двоичной с/с.
-----------------------------------------------------------------------------------------------------------------
Если что-то не поймёшь, пиши сообщения на мой профиль.
Код программы получился довольно таки большой , но можно сам файл *.pas Закинуть в интернет и оттуда скачать.
Задача №2)
uses crt;
var m:array[1..100,1..100] of integer;
i,i1,j,str,stb,temp:integer;
begin
clrscr;
введите число строк массива: '); readln(str);
введите число Столбцов массива: '); readln(stb);
clrscr;
writeln('Массиа из ',str,' строк, и из ',stb,' столбцов успешно создан!');
writeln;
for i:=1 to str do
begin
for j:=1 to stb do
begin
m[i,j]:=random(80)+1;
write(m[i,j]:3,' ');
end;
writeln;
end;
writeln;
writeln(' отсортирован по убыванию');
writeln;
for i1:=1 to str do
for i:=1 to str-1 do
for j:=i+1 to str do
if m[i1,i]<m[i1,j] then begin temp:=m[i1,i]; m[i1,i]:=m[i1,j]; m[i1,j]:=temp;end;
writeln;
for i:=1 to str do
begin
for j:=1 to stb do
begin
write(m[i,j]:3,' ');
end;
writeln;
end;
readkey;
end.
Запускаешь водишь строк и столбцов после нажимаешь Enter программы сделает своё дело