русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Дан массив A(N). Включить на k место в этом массиве элемент, равный m.


Дата добавления: 2015-06-12; просмотров: 1426; Нарушение авторских прав


· Перед включением заданного элемента в массив, необходимо раздвинуть этот массив, т.е. передвинуть «хвост» массива вправо на одну позицию, т.е. выполняя операцию: ai+1=ai, где i = N, N-1, …, k.

· Перемещение элементов массива начинаем с конца, в противном случае весь хвост массива заполнится k-ым элементом.

· Размер массива увеличится до N+1 элемента.

Var a:array [1..100] of integer;

n,k,i:byte; m:integer;

Begin

Randomize;

Readln(n); // количество элементов

Readln(k); //№ включаемого элемента

Readln(m); //значение включаемого эл-та

{формируем массив}

For i:=1 to n do begin

a[i]:=random(101)-50;

write(a[i]:4)

end; writeln;

 

{раздвигаем эл-ты массива}

For i:=n downto k do

a[i+1]:=a[i];

{заносим новый эл-т на k-ую позицию}

a[k]:=m;

{выводим получившийся массив}

For i:=1 to n+1 do

write(a[i]:4);

end.

ВСТАВКА ЭЛЕМЕНТОВ В МАССИВ
Задан одномерный массив размера 10. Необходимо вставить число 5 после третьего элемента.

1. Сколько элементов в массиве? (10.)

2. Сколько элементов станет в массиве в результате вставки числа 5 после третьего элемента? (11.)

3. Какой индекс будет у вставленного элемента? (4.)

4. Что должно произойти с элементами с первого по третий? (Эти элементы не должны измениться.)

5. Какой элемент должен быть помещен на пятое место? (На пятое место должен переместиться четвертый элемент.)

6. На шестое? На седьмое? (На шестое пятый. На седьмое — шестой.)

7. Какую закономерность вы можете указать? (Элементы сдвигаются вправо.)

8. Элементы с какими индексами останутся неизменными, а с какими будут изменены? (Неизменными останутся элементы с индексами 1—3, на четвертое место помещается число 5, а изменяются все остальные.)

9. Начиная с какого индекса элементы должны перемещаться? (Перемещаться должны элементы с четвертого.)



10. Необходимо перемещать элементы вправо или влево? (Вправо.)

11. Если на четвертое место поместить пятерку, что произойдет с тем элементом, который находился до этого на четвертом месте? (Его значение потеряется.)

12. Перемещение лучше начать с четвертого или с последнего элемента? (С последнего.)

13. Какой элемент должен быть перемещен на место элемента A[i]? (A[i] :=A[i — 1].)

for i:=11 downto 5 do
A[i]:=A[i-1];
A[4]:=5.


В одномерном массиве вставить после минимального элемента число 10.

const n=10;
var A: array[l..n+1] of integer;
min, i, k: integer;
begin
randomize;
for i:=1to n do
A[i]:=-20+random(60);
for i:=1 to n do
write(A[i]:4);
writeln;
min:=A[1];
for i:=1 to n do
if A[i]<=min then
begin
min:=A[i];
k:=i;
end;
for i:=n+1 downto k+2 do
A[i]:=A[i-1];
A[k+1]:=10;
for i:=l to n+1 do
write(A[i]:4);
writeln;
end.

В одномерном массиве вставить число 100 перед первым отрицательным элементом.

const n=10;
var A: array[1..n+1] of integer;
i, k: integer;
begin
randomize;
for i:=1 to n do
A[i]:=-20+random(60);
for i:=1to n do
if A[i]<0 then
begin
k:=i;
i:=n;
end;
for i:=n+1downto k+1 do
A[i]:=A[i-1];
A[k]:=100;
for i:=1 to n+1 do
write(A[i]:4);
writeln;
end.


ПЕРЕМЕЩЕНИЕ ЭЛЕМЕНТОВ В МАССИВЕ
Задан одномерный массив размера 10. Осуществить перемещение элементов массива следующим образом: последний элемент записать на место первого, при этом сдвинув первый, второй, ..., предпоследний элементы на одну позицию вправо.

1. Сколько элементов в массиве? (10.)

2. Изменится ли количество элементов в массиве после перемещения? (Нет.)

3. Какой элемент должен оказаться на месте первого? На месте второго? На месте третьего? (Десятый. Первый. Второй.)

4. Можно ли последний элемент сразу поместить на место первого? Что станет в этом случае с первым элементом? (Нет. Его значение будет потеряно.)

5. Можно ли сначала переместить поочередно все элементы вправо, начиная с первого, а затем последний элемент поместить на место первого? Что станет в этом случае с последним элементом? (Нет. Его значение будет утеряно.)

6. Можно ли этого избежать, заведя дополнительную переменную? (Да. В дополнительную переменную можно поместить значение последнего элемента. Затем переместить элементы с девятого до первого вправо. Далее на первое место поместить значение десятого элемента из дополнительной переменной.)

t:=A[10];
for i:=10 downto 2 do
A[i]:=A[i-1];
A[l]:=t.


 

Дан массив размера N. Поменять порядок его элементов на обратный.

vara: array [1..10] of integer;
t:integer; // для обмена значениями двух переменных
N:integer;
i:integer; // счетчик в цикле
begin

ввод данных
readln(N);

 

формирование исходного массива
for i:=1 to n do

Begin

readln(A[i]);

end;

for i:=1 to n div 2 do
begin

обмен значениями элементов
t:=a[i];
a[i]:=a[n-i+1];
a[n-i+1]:=t;
end;

вывод результата
for i:=1 to n do

Write(A[i],' ');
end.

Дан массив размера N. Поменять местами его минимальный и максимальный элементы.

vara: array [1..10] of integer;
t:integer; // для временного хранения значения
min,max:integer; // номера макс. и мин. элементов
N:integer;
i:integer; // счетчик в цикле
begin

ввод данных
readln(N);

 

формирование исходного массива
fori:=1 ton do

readln(A[i]);

начальное значение переменных
min:=1;
max:=1;
for i:=1 to n dobegin // определение номеров искомых элементов
if a[i] < a[min] then min:=i;
if a[i] > a[max] thenmax:=i;
end;

обмен значениями элементов
t:=a[min];
a[min]:=a[max];
a[max]:=t;

вывод результата

for i:=1 to n do Write(A[i],' ');
end.



<== предыдущая лекция | следующая лекция ==>
Дан массив A(N). Удалить элемент, расположенный на месте k. | Меню окна.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.933 сек.