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

C++

Известны данные о росте 15 юношей класса, упорядоченные по убыванию. Ни одна пара учеников не имеет одинаковый рост. В начале учебного года в класс поступил новый ученик. Какое место в перечне ростов займет рост этого ученика (известно, что его рост не совпадает с ростом ни одного из учеников класса, превышает рост самого низкого ученика и меньше роста самого высокого). Условный оператор не использовать


C++ Известны данные о росте 15 юношей класса, упорядоченные по убыванию. Ни одна пара учеников не и

Показать ответ
Ответ:
природа45
природа45
19.05.2021 15:00
{1}

const
 n = 5;
var
 a: array [1..n] of integer;
 i,k,x,l: integer;
 t: boolean;
begin
 for i := 1 to n do read(a[i]);
 k := 0;
 for i := 1 to n do
  begin
  t := true;
  x := a[i]; if x < 0 then x := -x;
  l := 1;
  while l <= x do l := l*2; l := l div 2;
  while t and (l > 1) do
    begin
    t := x >= l;
    if t then x := x - l;
    t := t = (x mod 2 <> 0);
    x := x div 2;
    l := l div 4;
    end;
  if t then k := k + 1
  end;
 write(k)
end.

{2}

const
 n = 10;
var
 a,d: array [1..n] of integer;
 i,j,k: integer;
begin
 for i := 1 to n do
  a[i] := 100 + random(900);
 for i := 1 to n do
  begin
  d[i] := 0;
  for j := 1 to a[i] do
    if a[i] mod j = 0 then
    d[i] := d[i] + 1;
  end;
 for i := 1 to n-1 do
  begin
  k := i;
  for j := i + 1 to n do
    if d[j] < d[k] then k := j;
  j := a[k];
  a[k] := a[i];
  a[i] := j;
  j := d[k];
  d[k] := d[i];
  d[i] := j;
  end;
 for i := 1 to n do
  write(a[i],' ')
end.

{3}

const
 n = 10;
 l = 3;
var
 a: array [1..n] of integer;
 m: array [1..l] of integer;
 i,j,k: integer;
begin
 for i := 1 to n do
  begin
  a[i] := random(1001);
  write(a[i],' ')
  end;
 writeln;
 for i := 1 to l do
  m[i] := -1;
 for i := 1 to n do
  begin
  j := 1;
  while j <= l do
    begin
    if (a[i] = m[j]) then j := l else
    if (a[i] < m[j]) or (m[j] = -1) then
      begin
      for k := l downto j+1 do
        m[k] := m[k-1];
      m[j] := a[i];
      j := l
      end;
    j := j + 1
    end;
  end;
 for i := 1 to l do
  if m[i] <> -1 then write(m[i],' ')
end.
0,0(0 оценок)
Ответ:
karolina210
karolina210
26.04.2022 12:25
// PascalABC.NET 3.2, сборка 1338 от 16.11.2016
begin
  Range(1,20).Tabulate(x->sqrt(x)).Println(NewLine)
end.

Результат
(1,1)
(2,1.4142135623731)
(3,1.73205080756888)
(4,2)
(5,2.23606797749979)
(6,2.44948974278318)
(7,2.64575131106459)
(8,2.82842712474619)
(9,3)
(10,3.16227766016838)
(11,3.3166247903554)
(12,3.46410161513775)
(13,3.60555127546399)
(14,3.74165738677394)
(15,3.87298334620742)
(16,4)
(17,4.12310562561766)
(18,4.24264068711928)
(19,4.35889894354067)
(20,4.47213595499958)

Традиционное решение
var
  i:integer;
begin
  for i:=1 to 20 do Writeln(i:2,sqrt(i):16:12)
end.

Результат
 1  1.000000000000
 2  1.414213562373
 3  1.732050807569
 4  2.000000000000
 5  2.236067977500
 6  2.449489742783
 7  2.645751311065
 8  2.828427124746
 9  3.000000000000
10  3.162277660168
11  3.316624790355
12  3.464101615138
13  3.605551275464
14  3.741657386774
15  3.872983346207
16  4.000000000000
17  4.123105625618
18  4.242640687119
19  4.358898943541
20  4.472135955000
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота