Отсутствие проверки границ
Лабораторная работа №2 Тема : Основы программирования на СИ. Массивы Цель: Изучить алгоритмы работы с одномерными и двумерными массивами и способы их реализации на языке Си. Данная лабораторная работа предусматривает в качестве контроля отчет в печатном виде и его устную защиту Отчет должен включать в себя: 1. Текст задания 2. Блок – схему решения 3. Программный код с комментариями 4. Примеры результатов работы программы. Задания для самостоятельного выполнения.
Одномерные массивы
Вариант №1 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: · сумму отрицательных элементов массива; · упорядочить элементы массива по возрастанию методом пузырька.
Вариант №2 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: · сумму положительных элементов массива; · упорядочить элементы массива по убыванию методом пузырька.
Вариант №3 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: · произведение элементов массива с чётными номерами; · упорядочить элементы массива по возрастанию методом пузырька. Вариант№4 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: · сумму элементов массива с нечётными номерами; · упорядочить элементы массива по убыванию методом пузырька.
Вариант №5 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: · максимальный трицательный элемент массива; · упорядочить элементы массива по возрастанию методом пузырька.
Вариант №6 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: · минимальный положительный элемент массива; · упорядочить элементы массива по возрастанию методом пузырька.
Вариант №7 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: · номер максимального элемента; упорядочить элементы массива по возрастанию методом пузырька
Вариант №8 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: · сумму элементов массива, расположенных между первым и вторым отрицательными элементами; · упорядочить элементы массива по возрастанию методом пузырька.
Вариант №9 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: · максимальный по модулю элемент массива; · упорядочить элементы массива по убыванию методом пузырька.
Вариант №10 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: · Отсортировать элементы по убыванию методом пузырька; · сумму элементов, расположенных после минимального;
Вариант№11 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: · номер минимального по модулю элемента массива; · Отсортировать элементы по убыванию методом пузырька;
Вариант №12 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: · Отсортировать элементы по убыванию методом пузырька; · Заменить все отрицательные элементы массива их квадратами .
Вариант №13 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: · количество элементов меньших среднего арифметического; · упорядочить элементы массива по возрастанию методом пузырька. Вариант №14 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: · произведение элементов массива, расположенных между максимальным и минимальным элементами; · упорядочить элементы массива по возрастанию методом пузырька. Вариант №15 1. В одномерном массиве, состоящем из n целочисленных элементов, вычислить: · произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами; · упорядочить элементы массива по убыванию методом пузырька Вариант №16 1. В одномерном массиве, состоящем из n вещественных элементов: · обнулить каждый третий нечетный элемент; · Отсортировать положительные элементы по возрастанию методом пузырька Вариант №17 1. В одномерном массиве, состоящем из n целочисленных элементов, вычислить: · Сумму всех элементов, лежащих левее первого отрицательного; · Отсортировать элементы по убыванию, меньшие среднего арифметического
Вариант №18 1. В одномерном массиве, состоящем из n целочисленных элементов, вычислить: · Отсортировать элементы по убыванию, большие среднего арифметического; · Найти, подсчитать количество и обнулить отрицательные элементы массива Вариант №18 1. В одномерном массиве, состоящем из n целочисленных элементов: · отсортировать элементы, лежащие правее минимального, методом пузырька. · обнулить каждый третий элемент; Вариант №19 1. В одномерном массиве, состоящем из n вещественных элементов: · обнулить каждый второй нечетный элемент; · Отсортировать положительные элементы по возрастанию методом пузырька; . Вариант №20 1. В одномерном массиве, состоящем из n целочисленных элементов: · найти сумму элементов, больших заданного пользователем с клавиатуры. · отсортировать методом пузырька элементы массива;
Двумерные массивы 1. Объявите двумерный целочисленный массив, в котором 10 строк по 7 элементов. Определите произведение каждого нечетного столбца и произведение первой и последней строки массива. 2. Объявите двумерный вещественный массив, в котором 5 x 4 элементов. Найдите в каждом столбце наибольший элемент. Распечатайте найденные элементы под соответствующим столбцом. 3. Объявите двумерный целочисленный массив, в котором 4 x 4 элементов. Найдите суммы элементов массива по строкам и распечатайте только те, которые больше заданного числа. Распечатайте найденные суммы по образцу: Сумма элементов 0-й строки равна ...Сумма элементов 1-й строки равна ....4. Объявите двумерный вещественный массив, в котором 5 x 6 элементов. Найдите в каждом столбце среднее арифметическое элементов. Распечатайте найденные средние арифметические и номер соответствующего столбца. 5. Объявите двумерный целочисленный массив, в котором 7 x 4 элементов. Замените в массиве максимальные элементы каждой строки нулями. Распечатайте массив в виде таблицы дважды: до и после замены. 6. Объявите двумерный целочисленный массив, в котором 4 x 5 элементов. Определите минимальный элемент в каждом столбце и распчечатайте. 7. Объявите двумерный целочисленный массив, в котором 6 x 6 элементов. Найдите суммы элементов массива по строкам и распечатайте только те, которые меньше заданного числа. Распечатайте все найденные суммы по образцу: Сумма элементов 0-й строки равна ...Сумма элементов 1-й строки равна ....8. Объявите двумерный целочисленный массив, в котором 7 строк по 7 элементов. Выведите массив на экран в виде таблицы. Определить сумму каждого четного столбца и произведение первых двух строк массива. 9. Объявите двумерный вещественный массив, в котором 5 x 5 элементов Распечатайте его в виде таблицы. Найдите в каждом столбце наибольший элемент. Распечатайте найденные элементы под соответствующим столбцом. 10. Объявите двумерный целочисленный массив, в котором 9 x 7 элементов. Распечатайте массив в виде таблицы. Найдите суммы элементов массива по столбцам. Распечатайте найденные суммы по образцу: Сумма элементов 0-го столбца равна ...Сумма элементов 1-го столбца равна ....11. Объявите двумерный вещественный массив, в котором 4 x 5 элементов. Распечатайте его в виде таблицы. Найдите в столбцах, не содержащих нулевые элементы, среднее арифметическое элементов. Распечатайте найденные средние арифметические с указанием соответствующего номера столбца. 12. Объявите двумерный целочисленный массив, в котором 5 x 6 элементов. Определите сумму первой строки, произведение последнего столбца и количество нулей во всем массиве. 13. Объявите двумерный целочисленный массив, в котором 5 x 7 элементов. Замените в массиве максимальные элементы каждой строки заданным числом. Распечатайте массив в виде таблицы дважды: до и после замены. 14. Объявите двумерный целочисленный массив, в котором 4 x 6 элементов. Определите минимальный элемент всего массива и минимальные элементы для каждой строки. Распечататйте результаты с комментариями. 15. Объявите двумерный целочисленный массив, в котором 10 строк по 7 элементов. Определите произведение каждого нечетного столбца и произведение первой и последней строки массива. 16. Объявите двумерный вещественный массив, в котором 5 x 4 элементов. Найдите в каждом столбце наибольший элемент. Распечатайте найденные элементы под соответствующим столбцом. 17. Объявите двумерный целочисленный массив, в котором 4 x 4 элементов. Найдите суммы элементов массива по строкам и распечатайте только те, которые больше заданного числа. Распечатайте найденные суммы по образцу: Сумма элементов 0-й строки равна ...Сумма элементов 1-й строки равна ....18. Объявите двумерный вещественный массив, в котором 5 x 6 элементов. Найдите в каждом столбце среднее арифметическое элементов. Распечатайте найденные средние арифметические и номер соответствующего столбца. 19. Объявите двумерный целочисленный массив, в котором 7 x 4 элементов. Замените в массиве максимальные элементы каждой строки нулями. Распечатайте массив в виде таблицы дважды: до и после замены. 20. Объявите двумерный целочисленный массив, в котором 4 x 5 элементов. Определите минимальный элемент в каждом столбце и распчечатайте. 21. Объявите двумерный целочисленный массив, в котором 6 x 6 элементов. Найдите суммы элементов массива по строкам и распечатайте только те, которые меньше заданного числа. Распечатайте все найденные суммы по образцу: Сумма элементов 0-й строки равна ...Сумма элементов 1-й строки равна ....22. Объявите двумерный целочисленный массив, в котором 7 строк по 7 элементов. Выведите массив на экран в виде таблицы. Определить сумму каждого четного столбца и произведение первых двух строк массива. 23. Объявите двумерный вещественный массив, в котором 5 x 5 элементов Распечатайте его в виде таблицы. Найдите в каждом столбце наибольший элемент. Распечатайте найденные элементы под соответствующим столбцом. 24. Объявите двумерный целочисленный массив, в котором 9 x 7 элементов. Распечатайте массив в виде таблицы. Найдите суммы элементов массива по столбцам. Распечатайте найденные суммы по образцу: Сумма элементов 0-го столбца равна ...Сумма элементов 1-го столбца равна ....25. Объявите двумерный вещественный массив, в котором 4 x 5 элементов. Распечатайте его в виде таблицы. Найдите в столбцах, не содержащих нулевые элементы, среднее арифметическое элементов. Распечатайте найденные средние арифметические с указанием соответствующего номера столбца. 26. Объявите двумерный целочисленный массив, в котором 5 x 6 элементов. Определите сумму первой строки, произведение последнего столбца и количество нулей во всем массиве. 27. Объявите двумерный целочисленный массив, в котором 5 x 7 элементов. Замените в массиве максимальные элементы каждой строки заданным числом. Распечатайте массив в виде таблицы дважды: до и после замены. 28. Объявите двумерный целочисленный массив, в котором 4 x 6 элементов. Определите минимальный элемент всего массива и минимальные элементы для каждой строки. Распечататйте результаты с комментариями. 29. Объявите двумерный целочисленный массив, в котором 10 строк по 7 элементов. Определите произведение каждого нечетного столбца и произведение первой и последней строки массива. 30. Объявите двумерный вещественный массив, в котором 5 x 4 элементов. Найдите в каждом столбце наибольший элемент. Распечатайте найденные элементы под соответствующим столбцом. 31. Объявите двумерный целочисленный массив, в котором 5 x 7 элементов. Замените в массиве максимальные элементы каждой строки заданным числом. Распечатайте массив в виде таблицы дважды: до и после замены. 32. Объявите двумерный целочисленный массив, в котором 4 x 6 элементов. Определите минимальный элемент всего массива и минимальные элементы для каждой строки. Распечататйте результаты с комментариями. 33. Объявите двумерный целочисленный массив, в котором 10 строк по 7 элементов. Определите произведение каждого нечетного столбца и произведение первой и последней строки массива. 34. Объявите двумерный вещественный массив, в котором 5 x 4 элементов. Найдите в каждом столбце наибольший элемент. Распечатайте найденные элементы под соответствующим столбцом.
Методические указания
Массивы - это группа элементов одного типа (double, float, int и т.п.). Из объявления массива компилятор должен получить информацию о типе элементов Объявление массива имеет два формата: спецификатор-типа имя_массива [константное_выражение]; спецификатор-типа имя_массива [ ]; Спецификатор-типа задает тип элементов объявляемого массива. Элементами массива не могут быть функции и элементы типа void. Константное_выражение в квадратных скобках задает количество элементов массива. int sample [I0]; #define Nmax 10 int sample [Nmax] /*равносильно объявлению int sample [I0];*/ При объявлении массива константное_выражение может быть опущено в случаях, если: - при объявлении массив инициализируется, - массив объявлен как формальный параметр функции, - массив объявлен как ссылка на массив, явно определенный в другом файле. Обращение к элементам массива осуществляется с помощью индексированного имени. В языке Си первый элемент массива получает индекс 0. Таким образом, выше объявлен массив с десятью элементами: от sample[0] до sample[9]. Массив занимает непрерывную область памяти. Для одномерного массива полный объем занимаемой памяти в байтах вычисляется по формуле: Байты = sizeof (тип) * длина массива Массив представляет собой набор однотипных данных, расположенных в памяти таким образом, чтобы по индексам элементов можно было легко вычислить адрес соответствующего значения. Например, пусть одномерный массив A состоит из элементов, расположенных в памяти подряд по возрастанию индексов, и каждый элемент занимает по k байт. Тогда адрес i-того элемента вычисляется по формуле: адрес(A[i]) = адрес(A[0]) + i*k Отсутствие проверки границ В языке Си не производится проверки границ массивов: таким образом, ничто не остановит вас при выходе за границы массива. Если переполнение массива происходит во время выполнения оператора присваивания, то лишние значения могут присвоиться другим переменным или включиться в текст программы. С другой стороны, вы можете объявить массив размером N и указать индекс элемента, выходящий за пределы N, что не приведет к появлению сообщений об ошибке, как на шаге компиляции, так и на шаге выполнения, даже если это послужит причиной аварийного завершения программы. Таким образом, как программист, вы отвечаете за то, чтобы ваши массивы были достаточно велики для содержания поступающих в них данных.
Пример: #define N_max 25 int b1[N_max];
Так как индексы в Си всегда отсчитыватся от 0, так что, например, в массиве b1можно манипулировать с элементами b1[0], b1[1], ...,b1[24]. Элемент b1[25] массиву b1 уже не принадлежит и попытка записи в него может привести к непредсказуемым последствиям.
Популярное: Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (229)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |