0 / 0 / 0
Регистрация: 10.09.2016
Сообщений: 28
1

Создать одномерный динамический массив произвольного размера (размер ввести)

19.01.2017, 15:03. Показов 3149. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Определить содержит ли массив заданное число. Если элемент не найден,
то вставить его на последнее место.Использывать метод бинарного поиска
Вот код примерный
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
program Primer2;
Var
 a: array of integer;
 k: real; n,l, r, m, i: integer;
 b:integer;
BEGIN
 write('Input n=');
 readln(n); 
 setlength(a,n); 
 writeln('Massiv:');
 for i:=0 to n-1 do
 begin
 a[i]:=2*i-1;
 write(a[i]:4)
 end;
 writeln;
 write('Input key:');
 readln(k); 
 l:=0; r:=n-1; 
 m:=(l+r) div 2; 
 while (l<=r) and (k<>a[m]) do
 begin
 if k<a[m] then r:=m-1 else l:=m+1;
 m:=(l+r) div 2;
 end;
 if k=a[m] then writeln('Nayden. Index - ',m+1)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2017, 15:03
Ответы с готовыми решениями:

Создать одномерный динамический массив произвольного размера (размер ввести)
Ввести значения элементов массива. Определить содержит ли массив заданное число. Если элемент не...

Создать двумерный динамический массив произвольного размера (размер ввести)
Создать двумерный динамический массив произвольного размера (размер ввести). Заполнить массив...

Создать двумерный динамический массив произвольного размера NxN (размер ввести). Заполнить массив случайным об
Создать двумерный динамический массив произвольного размера NxN (размер ввести). Заполнить массив...

Используя многострочный редактор и динамический массив ввести массив произвольного размера
Используя многострочный редактор и динамический массив ввести массив, состоящий из произвольного...

1
5079 / 2651 / 2349
Регистрация: 10.12.2014
Сообщений: 10,028
20.01.2017, 08:48 2
Чтобы использовать бинарный поиск, необходимо выполнить одно важное условие:
массив должен быть упорядочен!

Добавлено через 30 минут
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
begin
  var a := Range(0, ReadLnInteger('Задайте размер массива:')-1).Select(i -> 2*i-1).ToArray;
  Write('Массив: '); a.Println;
  var n := ReadLnInteger('Введите заданное число:');
  var l := 0; // левая граница
  var r := a.Length; // правая граница
  var m : Integer;
  while l <> r do
    begin
      m := l + (r - l) div 2; // медиана
      if n < a[m] then
        r := m
      else
        l := m + 1;
    end;
  writeLn(a[m] = n);
end.
P.S. Собственно «метод вставки» можете взять из предыдущего вашего вопроса.
1
20.01.2017, 08:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2017, 08:48
Помогаю со студенческими работами здесь

Дан динамический одномерный массив размера N, изменить размер массива до M
Что-то запуталась, как это делать, может, кто-нибудь знает? За помощь буду очень благодарна:)

Динамический массив произвольного размера
динамический массив заданного размера: int *massiv = new int а как организовать произвольного...

Дан одномерный массив произвольного размера. Выведите номера всех четных элементов массива
Дан одномерный массив произвольного размера. Выведите номера всех четных элементов массива

Как правильно ввести одномерный динамический массив?
В чем разница между 1 и 2? Встречал оба варианта. Насколько я знаю, (int*) - операция приведения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru