Скачиваний:
17
Добавлен:
30.04.2013
Размер:
67.07 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Государственное образовательное учреждение высшего профессионального образования

Московский институт электроники и математики

Кафедра “Вычислительные системы и сети”

Домашнее задание

по дисциплине “Программирование на языке высокого уровня”

Составила:

Ст. преподаватель Беликова М.А.

Выполнил:

Студент группы С-21

Москва 2009

Содержание

Постановка задачи 2

Связь 2

Внешняя спецификация 2

Алгоритм решения задачи 4

Тестовые примеры 6

Постановка задачи

Дано. Одномерные массивы A и B.

Требуется. Сформировать одномерный массив C, содержащий элементы, присутствующие в нескольких экземплярах либо только в массиве А, либо только в массиве В.Элементы в массиве С не должны повторяться. Дополнительный массив не использовать

При: 1) Элементы массивов – целые числа.

2) Количество элементов в исходных массивах не более 20 в каждом.

Связь

Присвоим начальные значения переменным:

  • I ( номер элемента в массиве A) - 1;

  • Nc ( номер элемента в массиве С) – 0.

  • Flag значение “истина”

Для каждого элемента массива A выполним следующие действия.

Присвоим начальные значения переменным:

  • J (номер элемента в массиве B) – 1.

Для каждого элемента массива А проверим условие. Если A[i]=А[j] и I<>J , то Flag значение “ложь”.

Если A[i]<>А[j], то перейдем к следующему элементу массива A увеличив значение переменной J:=J+1.

Если A[i]=B[j], то Flag значение “истина”. Значит A[i] не является претендентом для занесения в массив C.

Если в массиве C еще нет элементов, т.е Nc=0, то занесем это значение в массив Nc:=Nc+1, C[Nc]:=A[i].

Если в массиве C уже есть элементы, т.е. Nc>0, то проверим, есть ли в нем значения, равные A[i]. Для этого присвоим переменной Flag1 значение “истина”, а переменной J (номер элемента в массиве C) значение -1. Если С[j]=A[i], то переменная Flag1 становится равной “ложь” и просмотр массива C заканчивается. Если С[j]<>A[i] и J<Nc, то переходим к следующему элементу массива J:=J+1.

После завершения просмотра массива C проверим условие. Если Flag1=“истина” (в массиве C отсутствует значение, равное A[i]), то заносим это значение в массив Nc:=Nc+1, C[Nc]:=A[i].

Если I<Na (где Na- количество элементов массива A), то I:=I+1, в противном случае выводим результаты работы программы.

Внешняя спецификация

Назначение. Сформировать одномерный массив C, содержащий элементы, присутствующие в нескольких экземплярах либо только в массиве А, либо только в массиве В.

Входные данные.

na – количество элементов массива A (целое).

A1,…Ana – значения элементов массива A (целые).

nb – количество элементов массива A (целое).

B1,…Anb – значения элементов массива A (целые).

Выходные данные.

1) В массиве A есть элементы, удовлетворяющие условию.

Домашнее задание

Шилак Евгений

Группа С-21

Вариант 25

Сформировать одномерный массив C, содержащий элементы, присутствующие в нескольких экземплярах либо только в массиве А, либо только в массиве В.

Число элементов массива A = <na>

Массив A

<A1> <A2> … <Ana>

Число элементов массива B = <nb>

Массив B

<B1> <B2> … <Bnb>

Число элементов массива C = <nc>

Массив C

<C1> <C2> … <Cnc>

2) В массиве A нет элементов, удовлетворяющих условию.

Домашнее задание

Шилак Евгений

Группа С-21

Вариант 25

Сформировать одномерный массив C, содержащий элементы, присутствующие в нескольких экземплярах либо только в массиве А, либо только в массиве В.

Число элементов массива A = <na>

Массив A

<A1> <A2> … <Ana>

Число элементов массива B = <nb>

Массив B

<B1> <B2> … <Bnb>

В массиве A нет элементов, удовлетворяющих условию!

Алгоритм решения задачи

Алгоритм “Формирование массива”

Внутренние переменные:

nA: цел.

nB: цел.

nC: цел.

A, B, C : : массив [1..20]:цел.

Flag, flag1: логическая переменная;

Начало

Вывод (‘Домашняя работа’)

Вывод (‘Шилак Евгений’)

Вывод (‘Группа С-21’)

Вывод (‘Вариант 25’)

Вывод (‘Сформировать одномерный массив C, содержащий элементы, присутствующие в нескольких экземплярах либо только в массиве А, либо только в массиве В.’)

Ввод (A,na,’A’)

Ввод (B,nb, ’B ’)

Формирование(na,nb, A,В,nc,С)

Формирование(nb,nа, В,А,nc,С)

Вывод (A,na, ’A ’)

Вывод (B,nb, ’B ’)

Вывод (C,nc,C ’)

Конец

Алгоритм “Ввод

Входные переменные:

Name: символ;

Выходные переменные:

n : цел. {количество элементов во вводимом массиве }

Mas [1..20] : массива : цел

Внутренние переменные:

i : цел.

Начало

Цикл

Вывод (‘Введите число элементов массива ’,name,’ <=20’)

Ввод(n)

Кцикла-до (n>1) и (n<=20)

Вывод (‘Элементы массива ’,name,’ – целые числа’)

Цикл-для I от 1 до n

Вывод (name,’[',i,']=')

Ввод (Mas[i])

Кцикла

Конец

АлгоритмВывод

Входные переменные:

n : цел. {количество элементов в выводимом массиве}

Mas [1..20] : массива : цел {Выводимый массив}

Name : символ

Внутренние переменные:

i: цел.

Начало

Если n>=1 то

Вывод (‘Число элементов массива ’,name,’ = ’, n);

Вывод (‘Массив ’,name);

Цикл-для i от 1 до n

Вывод (Mas[i]:4)

Кцикла

Иначе

Вывод (‘Нет элементов, удовлетворяющих условию!’)

Кесли

Конец

АлгоритмФормирование

Входные переменные:

N1 : цел. {количество элементов массива A}

N2 : цел. {количество элементов массива B}

M1 [1..20] : массива : цел {массив A}

M2 [1..20] : массива : цел {массив B}

Выходные переменные:

nC: цел. {количество элементов массива C}

C [1..20] : массива : цел {массив C}

Внутренние переменные:

i: цел.

j: цел.

Начало

Цикл–для i:=1 до n1

Flag:=”Истина”

j:=1

Цикл - пока i<n1 и Flag:=”Истина”

Если (M1[i]=M1[j]) и (I<>J) то

Flag:=”Ложь”

Иначе:

j:=j+1

Кесли

Цикл - для j от 1 до n2

Если (M1[i]=M2[j]) то

Flag:=”Истина”

Если Flag:=”Ложь” то

Если Nc=0 то {Массив C пока пуст}

Nc:=Nc+1

C[Nc]:=М1[i]

Иначе {Массив C не пуст}

Flag:=”Истина”

J:=1

Цикл–пока (J<=Nc) и Flag:=”Истина”

Если A[i]=C[j] то Flag1:=”Ложь”

Иначе J:=J+1

Кесли

Кцикл

Если Flag1:=”Истина” то

Nc:=Nc+1

C[Nc]:=A[i]

Кесли

Кесли

Кесли

Кцикл

Кцикл

Конец

Тестовые примеры

Исходные данные

Результат

Тест 1

Число элементов в массиве А – 6

Массив А: 1 1 6 6 3 4

Число элементов в массиве В – 6

Массив В: -8 –8 6 3 3 7

Число элементов в массиве С – 2

Массив С: 1 -8

Тест 2

Число элементов в массиве А – 4

Массив А: 1 2 2 3

Число элементов в массиве В – 4

Массив В: 2 3 3 9

В массиве А нет элементов, удовлетворяющих условию!

6

Соседние файлы в папке ДЗ1