АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Задачи третьего класса

Читайте также:
  1. I. ГИМНАСТИКА, ЕЕ ЗАДАЧИ И МЕТОДИЧЕСКИЕ ОСОБЕННОСТИ
  2. I. Ситуационные задачи и тестовые задания.
  3. II. Основные задачи и функции
  4. II. ЦЕЛИ, ЗАДАЧИ И ПРИНЦИПЫ ДЕЯТЕЛЬНОСТИ ВОИ
  5. II. Цель и задачи государственной политики в области развития инновационной системы
  6. III. Цели и задачи социально-экономического развития Республики Карелия на среднесрочную перспективу (2012-2017 годы)
  7. VI. ДАЛЬНЕЙШИЕ ЗАДАЧИ И ПУТИ ИССЛЕДОВАНИЯ
  8. Активные интегрированные антенны для усилителей класса F
  9. Аналитические возможности, задачи и основные направления анализа СНС
  10. БАЛАНС КОММЕРЧЕСКОГО БАНКА, ЦЕЛИ И ЗАДАЧИ ЕГО АНАЛИЗА
  11. Билет 1. Предмет истории как науки: цели и задачи ее изучения
  12. Билет №17. Внутренняя политика Ивана IV Грозного. Задачи, этапы, итоги.

Если обрабатываются несколько массивов одновременно, то для каждого массива нужно выбрать подходящую схему перебора, завести свой индекс, следить, чтобы индекс не вышел за границы массива. В некоторых частных случаях для обработки нескольких массивов бывает достаточно одного индекса, потому что элементы массива обрабатываются "синхронно", то есть, зная индекс элемента одного массива, можно вычислить по некоторой формуле индекс соответствующего ему элемента другого массива. Если такой формулы установить не удается, то говорят, что массивы обрабатываются "асинхронно".

Задача 1. Дан массив целых чисел. Необходимо сформировать второй массив, содержащий четные элементы первого массива, при этом расположить элементы во втором массиве а) на тех же позициях, что и в первом; б) сдвинуть к началу массива.

Решение. В первом случае необходимо проверять каждый элемент первого массива на четность, использовав при этом любую из схем перебора по одному. При этом индекс у второго массива меняется таким же образом. Здесь элементы массива обрабатываются синхронно, достаточно одного индекса. Во втором случае массивы обрабатываются асинхронно, необходимо ввести свою переменную для индекса второго массива, которая будет изменять свое значение только в случае записи элемента в массив.

Вариант 1.

const nn = 30;

var a, b: array [1..nn] of integer;

i, n: integer;

begin

write (‘задайте количество элементов массива’);

readln (n);

for i:= 1 to n do

begin

read (a[i]);

if a[i] mod 2 = 0 then b[i]:= a[i];

end;

for i:= 1 to n do

write (b[i], ‘ ‘);

end.

Вариант 2.

const nn = 30;

var a, b: array [1..nn] of integer;

i, k, n: integer;

begin

write (‘задайте количество элементов массива’);

readln (n);

for i:= 1 to n do

read (a[i]);

k:= 0; {в массиве b нет еще элементов}

for i:= 1 to n do

if a[i] mod 2 = 0 then begin

k:= k + 1;

b[k]:= a[i];

end;

for i:= 1 to k do

write (b[i], ‘ ‘);

end.

Задача 2. Даны два массива целых чисел a и b. Необходимо получить третий массив c, для n = 5 следующего вида: a1 b5 a2 b4 a3 b3 a4 b2 a5 b1.

Решение. Элементы массивов обрабатываются асинхронно. Заметим, что на нечетных позициях массива c располагаются элементы массива a в прямом порядке, а на четных позициях - элементы массива b в обратном порядке.

const nn = 30;

var a, b: array [1..nn] of integer;

с: array [1.. 2*nn] of integer;

i, k, n: integer;

begin

write (‘задайте количество элементов массива’);

readln (n);

writeln (‘задайте элементы массива а’);

for i:= 1 to n do

read (a[i]);

writeln (‘задайте элементы массива b’);

for i:= 1 to n do

read (b[i]);

for i:= 1 to n do

begin

c[2*i - 1]:= a[i];

c[2*i]:= b[n- i + 1]

end;

for i:= 1 to 2*n do

write (c[i], ‘ ‘);

end.


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 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)