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

Які види посилань на клітинки можна
використовувати у формулах в електронних
таблицях?
Як записують відносне, абсолютне та мішане
посилання на клітинку В2?
Чим відрізняється використання різних видів
посилань?
До якого виду посилань належить ім'я
клітинки?
Як установити значення властивостей друку
електронної таблиці?
Для чого використовують попередній перегляд
електронної таблиці? Які його можливості?
Як попередньо переглянути, на які сторінки
буде розділено електронну таблицю під час
друкування?
Як виконати швидкий друк електронної
таблиці?
Як надрукувати електронну таблицю?

Показать ответ
Ответ:
DanochaDv
DanochaDv
19.08.2022 03:04
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 оценок)
Ответ:
nastagaeva0672
nastagaeva0672
12.06.2021 03:19
// F#
[<EntryPoint>]
let main argv =
    let generateTable n m =
        Array2D.init n m (fun i j -> (i+1) * (j+1))
    let printMatrix (matrix:int[,]) =
        printf "    "
        for i = 0 to (Array2D.length1 matrix) - 1 do
            printf "%4d " (i+1)
        printf "\n"
        printf "    "
        for i = 0 to (Array2D.length1 matrix) - 1 do
            printf ""
        printf "\n"
        for j = 0 to (Array2D.length2 matrix) - 1 do
            printf "%2d |" (j+1)
            for i = 0 to (Array2D.length1 matrix) - 1 do
                printf "%4d " matrix.[i, j]
            printf "\n"
        printf "\n"
    let inputArray = generateTable 10 10
    printMatrix inputArray
    System.Console.ReadKey true |> ignore
    0
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота