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

Семестр 1 / Алгоритмизация Практика 10 язык С

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

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

Практическое занятие №10

«Массивы и функции»

Общие сведения

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

Прототип функции может иметь вид:

int print_array(double x[], int len);

В прототипе имена массива и переменной можно не указывать. Пример: функция print_array печати массива points[]:

#include <stdio.h>

int print_array(double x[], int len) { int k;

for(k = 0; k < len; k++) { printf("x[%d] = %lf\n", k, x[k]);

}

return 0;

}

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

int main() {

double points[] = {1.0, 3.14, -1.2, 12.65}; int npoints = sizeof(points)/sizeof(points[0]);

print_array(points, npoints); return 0;

}

Задания для самостоятельного решения (2 балла)

Задание 1 (0.5 балла).

Выполнить свой вариант индивидуального задания №1при следующих условиях:

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

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

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

Вариант

 

Задание

 

 

1

Дан целочисленный массив размера N. Вывести все содержащиеся в данном массиве четные

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

 

 

 

 

Дан целочисленный массив A размера N. Вывести вначале его элементы с нечетными номерами в

2

порядке возрастания номеров, а затем – элементы с четными номерами в порядке убывания

номеров:

 

 

 

 

A1,

A3, A5, …, A6, A4, A2.

 

 

 

Практическоезанятие№10

Страница1

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

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

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

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

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

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

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

Дан целочисленный массив размера N. Найти сумму элементов массива, расположенных между i- 8 м и j-м положительными элементами. Например, 2 -5 3 4 -1 8 6 -4 1 2 1 -4 1;

i=3 и j=7, сумма =10. // i-ый и j-ый элементы должны быть положительными.

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

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

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

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

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

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

Задание 2 (0.5 балла).

Выполнить свой вариант индивидуального задания №2 при следующих условиях:

1.Размер массива N вводится с клавиатуры.

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

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

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

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

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

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

Вариант

Задание

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

Практическоезанятие№10

Страница2

 

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

2

 

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

 

сначала располагались все элементы равные нулю, а потом – все остальные.

 

 

 

3

 

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

 

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

 

 

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

 

 

 

4

 

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

 

сначала располагались все элементы, модуль которых не превышает 1, а потом – все

 

 

остальные.

5

 

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

 

массива элементы с номерами от K до L включительно.

 

 

 

6

 

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

 

 

номерами.

7

 

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

 

Перед элементом массива с номером K вставить M новых элементов с нулевыми

 

 

значениями.

8

 

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

 

нечетными номерами. Например, 5 6 4 8 9 1 => 5 5 5 6 4 4 4 8 9 9 9 1.

9

 

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

 

оставив их первые вхождения. Например, 3 8 7 3 4 3 8 9 => 3 8 7 4 9.

10

 

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

 

более трех раз.

 

 

 

11

 

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

 

ровно два раза.

 

 

 

Задание 3 (1 балл).

В программе задаются векторы - вещественные массивы A, B и C, в каждом из которых по N (задается с клавиатуры) элементов. Элементам векторов A и B присваиваются значения:

Ai=i, Bi=(N-i).

Напишите функции для:

(0,5 балл) вычисления вектора C, значения элементов которого задано как:

Ci=Ai*Bi ,

и вывода на экран столбцами значения для каждого i в одной строке Ai, Bi, Ci.

(0,5 балл) вычисления скалярное произведение векторов. Для векторов A и B скалярное произведение (A,B) равно сумме произведений (Ai*Bi) для всех значений i. Затем вычисляете скалярное произведение (A,C). Полученные результаты выводите на экран.

Практическоезанятие№10

Страница3