Добавил:
ФКН Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Семестр 1 / Алгоритмизация Лаба 5 язык С

.pdf
Скачиваний:
107
Добавлен:
05.12.2019
Размер:
327.11 Кб
Скачать

Алгоритмизация и программирование Си

Лабораторнаяработа№5

«Массив одномерный»

Работа состоит из 4 заданий. Номер варианта индивидуального задания – номер по списку в журнале группы. Если количество заданий К меньше вашего номера в списке, отнимаем от номера целое число раз К.

Оформить отчет о выполнении и результатах работы. В отчете привести индивидуальное задание, описание алгоритма в удобной форме, программный код, результаты тестовых расчетов.

Общие требования к работе (учитываются при оценивании):

a.соблюдение «хорошего стиля программирования» ;

b.понятный для пользователя интерфейс;

c.должны быть учтены все возможные значения входных данных;

Задания (оценивание):

Задание 1 (1 балл) Выполните свой вариант индивидуального задания №1 (Приложение 1).

Задание 2 (1 балл). Выполнить свой вариант индивидуального задания №2 (Приложение 2).

Задание 3 (1 балл). Выполните свой вариант индивидуального задания №3 (Приложение 3).

Задание 4 (1 балл). Продолжение задания из практического занятие №11.

По окончании премьерного показа Вы, как режиссер, решили собрать некоторых из своих гостей в специальной «темной» комнате для «дополнительной беседы». В число «избранных» войдут те, кто поставил Вашему фильму низкую оценку…те, кто не очень лестно отзывался о нем в кулуарах…в общем Вы еще не составили конкретный список и поэтому, возможно, еще будете его редактировать. Однако Вы уже решили, что в этом списке — из соображений безопасности — не будет конкретных фамилий. Вместо этого список будет содержать номера пригласительных билетов Ваших гостей (они пронумерованы от 1 до 20). В связи с этим, Вам нужно иметь программу, которая:

хранит в массиве номера всех приглашенных для «дополнительной беседы»;

позволяет просмотреть текущее содержимое массива;

позволяет добавить в заданную позицию массива нового гостя (с заданным номером);

позволяет удалить гостя из заданной позиции в массиве.

Технические подробности: так как всего гостей 20, то массива на 20 элементов нам вполне хватит для хранения списка «избранных» любой длины.

(Пример работы программы в Приложении №4.)

Сроки и Бонусы:

Выдача задания – неделя №11. Сдача работы – неделя №13. Досрочная сдача: +0,5 балла.

Задачи-бонус:

«Быки и коровы»

Компьютер «загадывает» четырехзначное число с неповторяющимися цифрами, а пользователь пытается его отгадать за минимальное количество шагов, следуя подсказкам компьютера.

Лабораторная работа№5

Страница1

Алгоритмизация и программирование Си

За хорошую реализацию — 2 балла.

«Длинная арифметика»

Напишите программу, которая позволяет складывать, вычитать, умножать и делить целые числа произвольной длины (примерно так, как учили это делать в начальной школе). За хорошую реализацию — 2 баллов. За хорошую реализацию того же, но для десятичных дробей — по договоренности. Также интересует возможность вычисления с произвольной точностью тригонометрических, показательной других математических функции (см. ряды Тейлора).

Контрольные вопросы

1.Какие номера имеют элементы массива, если массив — на N элементов?

2.Сколько памяти занимает массив на 1000 элементов типа int?

3.Как изменить размер массива (варианты)?

4.Как сгенерировать случайное число в диапазоне от 500 до 512?

5.Какие данные — на входе, а какие — на выходе каждой из программ заданий данной лабораторной работы?

Индивидуальное задание 1.

Приложение 1.

Примечания:

1.Все упомянутые в заданиях массивы вводятся с клавиатуры.

2.Размер массива N задается в виде константы в исходном коде программы.

3.Когда речь идет о «четных» или «нечетных» номерах, имеется в виду, что нумерация начинается с единицы.

Задания:

1Дан целочисленный массив размера N. Найти длину самой длинной последовательности подряд идущих элементов, равных 0..

2Дан целочисленный массив размера N. Найти сумму модулей элементов массива, расположенных после минимального по модулю элемента.

3Дан целочисленный массив размера N. Найти сумму элементов массива, расположенных после минимального элемента.

4Дан целочисленный массив размера N. Вывести все содержащиеся в данном массиве четные числа в порядке убывания их номеров, а также их количество.

5Дан целочисленный массив размера N. Найти сумму модулей элементов массива, расположенных после первого элемента, равного нулю.

6Дан целочисленный массив размера N. Найти произведение элементов массива, расположенных между первым и вторым нулевыми элементами.

7Дан целочисленный массив размера N. Найти номер максимального по модулю элемента массива.

8Дан целочисленный массив A размера N. Найти минимальный элемент из его элементов с четными номерами: A2, A4, A6, … .

Дан целочисленный массив A размера N. Найти номера тех элементов массива, которые больше

9своего правого соседа, и количество таких элементов. Найденные номера выводить в порядке их возрастания.

10Дан целочисленный массив размера N. Найти сумму тех элементов, которые расположены между максимальным и минимальным элементами (в сумму включить и оба этих элемента).

11Дан целочисленный массив размера N. Найти сумму положительных элементов массива, расположенных до максимального элемента

12Дан целочисленный массив размера N. Найти сумму неотрицательных элементов массива.

Лабораторная работа№5

Страница2

Алгоритмизация и программирование Си

13Дан целочисленный массив размера N. Найти сумму элементов массива с четными номерами.

14Дан целочисленный массив размера N. Найти сумму элементов массива, расположенных между первым и последним отрицательными элементами.

15Дан целочисленный массив размера N. Найти сумму элементов массива, расположенных до последнего положительного элемента.

16Дан целочисленный массив размера N. Найти максимальный по модулю элемент массива.

17Дан целочисленный массив A размера N. Вывести вначале его элементы с нечетными номерами в порядке возрастания номеров, а затем — элементы с четными номерами в порядке убывания

номеров: A1, A3, A5, …, A6, A4, A2.

18Дан целочисленный массив размера N. Найти сумму элементов массива, расположенных между i-м и j-м положительными элементами.

19Дан целочисленный массив размера N. Найти сумму элементов массива, расположенных после первого положительного элемента.

20Дан целочисленный массив размера N. Найти сумму элементов массива, расположенных после последнего элемента, равного нулю.

Индивидуальное задание 2.

Приложение 2.

Примечания:

1.Размер массива N задается в виде константы в исходном коде программы.

2.Все упомянутые в заданиях массивы вводятся с клавиатуры.

3.После преобразования массив-результат выводится на экран.

4.Когда речь идет о «четных», «нечетных» или номерах K и L, то имеется в виду, что нумерация начинается с нуля.

5.Когда из массива «удаляются элементы», то его размер, очевидно, меньше не становится. Просто появляются неиспользуемые ячейки. В таких случаях на экран надо выводить только ту часть массива, в которой остались «неудаленные» элементы.

6.В заданиях, в которых требуется добавить элементы в массив, массив нужно заранее создать на несколько большее количество элементов — «с запасом».

Задания:

1Дан целочисленный массив размера N. Утроить в нем вхождения всех элементов с нечетными номерами. Например, 5 6 4 8 9 1 => 5 5 5 6 4 4 4 8 9 9 9 1.

2Дан целочисленный массив размера N. Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом — все остальные.

3Дан целочисленный массив размера N. Удалить из массива все одинаковые элементы, оставив их первые вхождения. Например, 3 8 7 3 4 3 8 9 => 3 8 7 4 9.

4Дан целочисленный массив размера N. Преобразовать массив таким образом, чтобы сначала располагались все элементы равные нулю, а потом – все остальные.

Дан целочисленный массив размера N. Преобразовать массив таким образом, чтобы в первой его

5половине располагались элементы, стоявшие в нечетных позициях, а во второй половине – элементы, стоявшие в четных позициях.

6Дан целочисленный массив размера N. Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1, а потом – все остальные.

7Дан целочисленный массив размера N и целые числа K и L (1 K < L N). Удалить из массива элементы с номерами от K до L включительно.

8Дан целочисленный массив размера N. Удалить из массива все элементы с четными номерами.

Лабораторная работа№5

Страница3

Алгоритмизация и программирование Си

9Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не превышает 1.

10Дан целочисленный массив размера N и два целых числа K и M (1 K N, 1 M 10). Перед элементом массива с номером K вставить M новых элементов с нулевыми значениями.

11Дан целочисленный массив размера N. Утроить в нем вхождения всех элементов с нечетными номерами.

12Дан целочисленный массив размера N. Удалить из массива все одинаковые элементы, оставив их первые вхождения.

13Дан целочисленный массив размера N. Удалить из массива все элементы, встречающиеся более трех раз.

14Дан целочисленный массив размера N. Удалить из массива все элементы, встречающиеся ровно два раза.

Индивидуальное задание 3.

Приложение 3.

Примечания:

1.Все упомянутые в заданиях массивы должны быть статическими и вводиться с клавиатуры.

2.Размер массива N задается в виде константы в исходном коде программы.

3.Отдельно должны быть описаны функции заполнения и печати массивов.

4.После преобразования массив-результат выводится на экран.

5.Когда речь идет о «четных», «нечетных» или номерах k и р, то имеется в виду, что нумерация начинается с нуля.

6.Параметрами функций должны быть только необходимые по функциональности переменные. Числа k и р передаются в функцию в качестве параметров.

7.НЕ использовать глобальные переменные напрямую в функциях, а передавать их при необходимости через параметры.

Задания:

1Дан одномерный целочисленный массив размера N и целые числа k и р. Написать функцию, которая увеличивает каждое значение, кратное k, в р раз.

Дан одномерный массив размера N, заполненный трехзначными числами. Написать функцию,

2которая заменяет элементы в четных ячейках массива последней цифрой соответствующего значения.

3Дан одномерный массив размера N, заполненный трехзначными числами, и цифра k. Написать функцию, которая увеличивает на 1 все значения, в десятках которых стоит цифра k.

4Дан одномерный массив размера N, заполненный двузначными числами. Написать функцию, которая в каждом значении массива меняет первую и вторую цифры местами.

5Дан одномерный массив размера N, заполненный двузначными числами. Написать функцию, которая заменяет каждое четное значение суммой его цифр.

6Дан одномерный целочисленный массив размера N и целое число k. Написать функцию, которая удаляет (уничтожает ячейку) из массива все элементы, равные k.

7Дан одномерный целочисленный массив размера N. Написать функцию, которая уменьшает каждое нечетное значение массива на число, равное номеру соответствующего элемента.

8Дан одномерный целочисленный массив размера N и целое число k. Написать функцию, которая заменяет нулями все элементы массива, номера которых кратны k.

Дан одномерный целочисленный массив размера N и целые числа k и р. Написать функцию,

9которая меняет местами значения, равные k и р. Учесть, что такие числа в массиве встречаются в одном экземпляре.

Лабораторная работа№5

Страница4

Алгоритмизация и программирование Си

Дан одномерный массив размера N, заполненный 0 и 1, и целые числа k и р. Написать функцию,

10которая заменяет все единицы нулями, а нули - единицами, если номера этих элементов расположены в диапазоне [k, р].

Пример выполнения задание 4:

Приложение 4.

Выберите(1-4):

1.Показать список.

2.Добавить.

3.Удалить.

4.Выход.

1

Список:

1.15

2.11

3.2

4.6

Выберите(1-4):

1.Показать список.

2.Добавить.

3.Удалить.

4.Выход.

2

Введите элемент: 19 Введите позицию: 2 Добавлено!

Выберите(1-4):

1.Показать список.

2.Добавить.

3.Удалить.

4.Выход.

1

Список:

1.15

2.19

3.11

4.2

5.6

Лабораторная работа№5

Страница5