Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Лабораторная работа 8. Указатели






Цель работы: Познакомиться с механизмом организации взаимодействия работы указателей с массивами.

Отчет на лабораторную работу должен содержать:

- задание по варианту;

- листинг программы, записанного по правилам языка Си/Си++ (все значения для вычисления ввести с клавиатуры.);

- составить блок-схему данного алгоритма;

- скриншот результата программы.

 

8.2 Варианты заданий

 

1. Если у массива А(10) есть элемент, равный В, то переменной Х присвоить значение, равное сумме всех положительных четных элементов, предшествующих первому по порядку такому элементу, иначе переменной Х присвоить 0.

2. Если у массива А(10) есть элемент, равный квадрату последнего элемента, то все элементы, следующие за ним, возвести в квадрат, иначе вывести массив без изменения.

3. Переменной Х присвоить 1, если элементы массива В(10) образуют возрастающую последовательность и значение 0 в противном случае.

4. Дан массив А(10). Найти максимальный элемент массива, упорядочить элементы, следующие за ним по убыванию.

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

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

7. Построить упорядоченный массив А(20) из элементов массивов В(10) и С(10). Массивы В(10) и С(10) предварительно упорядочены по возрастанию.

8. Дан массив А(40). Упорядочить элементы массива по убыванию.

9. Дан массив А(50). Определить количество отрицательных элементов, расположенных на четных позициях, и сумму положительных элементов, расположенных на нечетных позициях.

10. Дан массив А(50). Каждый пятый элемент массива возвести в пятую степень.

11. Дан массив А(20). Найти минимальный элемент массива, упорядочить элементы, расположенные до этого элемента по убыванию.

12. Дан массив А(30). Если среди элементов массива есть элемент равный некоторому числу М, то переменной Х присвоить произведение ненулевых элементов, расположенных до этого элемента, в противном случае переменной Х присвоить 0.

13. Найти сумму и количество положительных элементов, предшествующих первому нулевому элементу.

14. Дан массив А(50). Найти сумму и количество нечетных положительных элементов, следующих за первым по порядку нулевым элементом.

15. Дан массив А(50). Найти максимальное количество подряд идущих положительных четных элементов.

8.2 Методические указания к выполнению лабораторной работы

Указатель –особый вид переменной, которая хранит адрес элемента памяти. Определение указателя:

type * variable_name;

где type - тип данных указателя;

* - звездочка, определяющая тип «указатель»;

variable_name - имя переменной.

Пример

int х, *point; // переменная целого типа и указатель на целый тип

Существует унарная операция неразрывно связанная с указателями- это операция взятия адреса: &.

Пример

point=& x; // в point записывается адрес переменной х

где point – указатель

x – переменная;

Связь между указателями и массивами

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

Пример

… int m[10]

… *(m+10) // обращение к 10-му элементу

Если х – есть указатель и определен как int * x, то в результате присваивания

x= & m[0];

x будет указывать на нулевой элемент массива m т.е. будет содержать адрес элемента m[0].

Между именем массива и указателем, имеющим значение адреса массива имеется существенное различие. Указатель – это переменная, а имя массива – это

указатель-константа.

Пример Связь указателя с одномерным массивом

#include< stdio.h>

#include< conio.h>

 

void main()

{

int i, a[5], *pa, s=0;

clrscr();

 

pa=a; //pa=& a[0];

for(i=0; i< 5; i++)

{scanf(" %d", pa);

s+=*pa;

pa++;

}

pa-=5;

for(i=0; i< 5; i++)

{printf(" %d ", *pa);

pa++;

}

printf(" \n s=%d", s);

getch();

}

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

 

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

2. Приведите пример связи указателя с матрицей.

3. Заполните массив float x[15] [15] случайными числами из диапазона

0..1 с помощью указателя;

4. Имя массива может использоваться, как адрес нулевого элемента массива?

5. Что такое указатель?

6. Может ли указатель менять адрес переменной?

7. Какой тип может иметь переменная типа указатель?

8. В чем отличие указателя и имени массива?






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.