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

Спо c# 1. дано число x. вычислите число x8 при трех операций умножения. 2. дано натуральное число. найдите число десятков в его десятичной записи (то есть вторую справа цифру его десятичной записи) 3. приложение вычисляет значение x и выводит его на консоль, где m, n, p, a, b, c, d, e – это имена изменяемых параметров (вводятся пользователем с консоли). вычисление выражения построить так, чтобы минимизировать время его вычисления. использовать класс math. оцените время вычисления выражения в условных единицах (уе), исходя из следующих предположений: присваивание - 1 уе, операции сдвига -2 уе, сложение, вычитание - 3 уе, умножение - 5 уе, деление - 7 уе, вызов стандартной функции - 13 уе. 4. капитан джек воробей всегда точно рассчитывает расстояние до горизонта, пользуясь формулой s = [(r+h)^2-r^2]^1/2 где:  r - радиус земли;  h - высота глаз наблюдателя над поверхностью в метрах. оказавшись на необитаемом острове кокос, сможет ли он увидеть сушу с самой высокой точки острова.

Показать ответ
Ответ:
ivan111111
ivan111111
08.05.2022 10:34
Const
  n = 20;
var
  a: array[1..n] of integer;
  i,j,k,m,li,ri,mi,s,x: integer;
begin
  Write('Введите ключ поиска (0-49): '); Read(x);
  { заполнить массив значениями }
  Randomize;
  Writeln('Элементы массива');
  for i := 1 to n do
  begin
    a[i] := Random(50);
    Write(a[i]:3);
  end;
  Writeln;
  { сортировка }
  for i := 1 to n-1 do
    for j := 1 to n-i do
      if a[j] > a[j+1] then
      begin s := a[j]; a[j] := a[j+1]; a[j+1] := s end;
  Writeln('Отсортированный по возрастанию массив');
  for i := 1 to n do Write(a[i]:3);
  Writeln;
  { бинарный поиск }
  li:=1; ri:=n; k:=0;
  while li<ri do begin
    mi:=(li+ri) div 2;
    if a[mi]<x then li:=mi+1 else ri:=mi;
    Inc(k)
  end;
  if a[ri]=x then m:=ri else m:=0;
  { вывод результатов }
  if m>0 then Writeln('Найден элемент № ',m,'; число шагов равно ',k)
  else Writeln('Такого элемента в массиве нет');
end.

Тестовое решение:
Введите ключ поиска (0-49): 25
Элементы массива
 33 47  1 28 31 36 15 25 49 35 30 48 24  0 39 35  7 20 25  0
Отсортированный по возрастанию массив
  0  0  1  7 15 20 24 25 25 28 30 31 33 35 35 36 39 47 48 49
Найден элемент № 8; число шагов равно 4

Вариант с процедурами
const
  n = 20;
type
  V=array[1..n] of integer;

procedure SortBySelect(var a:V);
{Сортировка выбором}
var
  i, j, k: integer;
  x: integer;
begin
  for i := 1 to n do
    begin
    k := i;
    x := a[i];
    for j := i+1 to n do
      if a[j]<x then
      begin
        k := j;
        x := a[j]
      end;
      a[k] := a[i];
      a[i] := x
    end
end;
 
procedure BinSearch(var a:V;key:integer;var k,m:integer);
var
  li,ri,mi:integer;
begin
  li:=1; ri:=n; k:=0;
  while li<ri do begin
    mi:=(li+ri) div 2;
    if a[mi]<key then li:=mi+1 else ri:=mi;
    Inc(k)
  end;
  if a[ri]=key then m:=ri else m:=-1
end;

var
  a:V;
  i,k,m,x: integer;
begin
  Write('Введите ключ поиска (0-49): '); Read(x);
  { заполнить массив значениями }
  Randomize;
  Writeln('Элементы массива');
  for i := 1 to n do
  begin
    a[i] := Random(50);
    Write(a[i]:3);
  end;
  Writeln;
  SortBySelect(a); { сортировка выбором }
  Writeln('Отсортированный по возрастанию массив');
  for i := 1 to n do Write(a[i]:3);
  Writeln;
  BinSearch(a,x,k,m); { бинарный поиск }
  if m>0 then Writeln('Найден элемент № ',m,'; число шагов равно ',k)
  else Writeln('Такого элемента в массиве нет');
end.

Тестовое решение:
Введите ключ поиска (0-49): 32
Элементы массива
 46 24 32 32 23 32  4 26 47  4 44  8 39  8 15 39 11 45  5 16
Отсортированный по возрастанию массив
  4  4  5  8  8 11 15 16 23 24 26 32 32 32 39 39 44 45 46 47
Найден элемент № 12; число шагов равно 5
0,0(0 оценок)
Ответ:
MrAziimov1
MrAziimov1
17.01.2022 21:00
Program prog;
uses crt;
var
a:array[1..100] of real;
m:integer;
s1, s2, s3, s4:real;

begin;
for m:=1 to 12 do
begin
     write('В месяц ',m,' температура t = ');
     readln(a[m]);
end;

s1:=(a[12]+a[1]+a[2])/3;
s2:=(a[3]+a[4]+a[5])/3;
s3:=(a[6]+a[7]+a[8])/3;
s4:=(a[9]+a[10]+a[11])/3;

writeln('Средняя температура зимних месяцев = ', s1:0:3);
writeln('Средняя температура весенних месяцев = ', s2:0:3);
writeln('Средняя температура летних месяцев = ', s3:0:3);
writeln('Средняя температура осенних месяцев = ', s4:0:3);

end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота