Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник 357.docx
Скачиваний:
27
Добавлен:
30.04.2022
Размер:
1.75 Mб
Скачать

10.4. Практические задания

1. Объявите массив вещественных чисел из 10 элементов:

float A[10];

2. Напишите программу заполнения массива с консоли.

for(int i=0; i<10; i++)

{

printf("a[%d] = ", i+1);

scanf("%lf", &A[i]);

}

3. Выполните указанное преобразование над элементами массива:

1.

удвоить значение каждого элемента массива;

2.

увеличить на 1 значение каждого второго элемента массива;

3.

обнулить отрицательные элементы массива;

4.

возвести в квадрат значение каждого элемента массива;

5.

уменьшить в 10 раз значение каждого элемента массива;

6.

изменить знак каждого элемента массива;

7.

уменьшить на константу значение каждого элемента массива;

8.

отбросить дробную часть у всех элементов массива;

9.

установить в 1 значения всех четных элементов массива;

10.

округлить в большую сторону все элементы массива;

11.

к каждому элементу массива прибавить значение последнего элемента;

12.

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

4. Выведите результаты на экран в виде таблицы, в первом столбце которой указан номер элемента, во втором – исходный элемент, в третьем – преобразованный.

5. Сгенерируйте массив из 100 случайных вещественных чисел в интервале от -1 до 1 и выполните над ними указанное выше преобразование.

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

10.5. Контрольные задания

1. В одномерном массиве, состоящем из 100 случайных чисел в диапазоне от -5 до 5 найти сумму положительных элементов.

2. Заполнить массив из Nэлементов по правилу N-i, где i – порядковый номер элемента при счете по порядку от 1. Вывести на печать индекс, значение элемента и накопленную сумму элементов массива.

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

4. В одномерном массиве, состоящем из 20 случайных целых чисел от 0 до 100, найти и напечатать порядковые номера элементов, значения которых больше заданного числа A.

5. Задан одномерный массив. Сформировать новый массив значений, в котором каждое значение равно сумме двух соседних элементов исходного массива, деленной на 2.

Лабораторная работа №11 Адресная арифметика

Цель работы: Формирование понимание сущности указателя в языке Си и особенностей их использования при разработке программ

Программные средства: MICROSOFT VISUAL STUDIO

11.1 Теоретические сведения

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

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

Объявление указателя:

<тип переменной> * name;

где name – переменная, объявляемая как указатель.

По этому адресу (указателю) хранится значение указанного типа.

Основные операции с указателями:

&– операция взятия адреса;

* – операция получения значения по заданному адресу (операция разадресации).

Так, если объявлена переменная floata; то операторadr_a=&a; записывает в переменную adr_a адрес переменной a, переменная adr_a должна быть указателем на тип float и объявлена следующим образом: float *adr_a;

Операция * выполняет действие обратное операции &. Она возвращает значение переменной, хранящееся по заданному адресу. Поэтому оператор a=*adr_a; записывает в переменную a вещественное значение, хранящееся по адресу adr_a.

В общем случае выражения с указателями подчиняются тем же правилам, что и обычные выражения, допустимы:

– присваивание;

– преобразование типов;

– сложение и вычитание.

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

Присваивание значения указателю:

int x = 99; //объявление переменной

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]