Материал: Методические указания к лабораторным работам по дисциплине «Технология и методы программирования». Карпеев Д.О., Куликов С.С

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

ФГБОУ ВПО «Воронежский государственный технический университет»

Кафедра систем информационной безопасности

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к лабораторным работам по дисциплине «Технология и методы программирования» для студентов специальности

090303 «Информационная безопасность автоматизированных систем»

очной формы обучения

Воронеж 2014

Составители: канд. техн. наук Д.О. Карпеев, канд. техн. наук С.С. Куликов

УДК 004.056.5

Методические указания к лабораторным работам по дисциплине «Технология и методы программирования» для студентов специальности 090303 «Информационная безопасность автоматизированных систем» / ФГБОУ ВПО «Воронежский государственный технический университет»; сост. Д.О. Карпеев, С.С. Куликов. Воронеж, 2014. 33 с.

Методические указания содержат материал для студентов по выполнению 4 лабораторных работ по следующим темам: «Динамические массивы», «Структуры», «Односвязные списки», «Двусвязные линейные списки».

Методические указания подготовлены в электронном виде в текстовом редакторе MS Word 2013 и содержатся в файле Куликов_ЛР_Технология и методы программирования.pdf.

Библиогр.: 7 назв.

Рецензент д-р техн. наук, проф. А.Г. Остапенко

Ответственный за выпуск зав. кафедрой д-р техн. наук, проф. А.Г. Остапенко

Издается по решению редакционно-издательского совета Воронежского государственного технического университета

© ФГБОУ ВПО «Воронежский государственный технический университет», 2014

Лабораторная работа №1 Динамические массивы

Цель работы - научиться выделять и использовать динамическую память в процессе работы программы.

Задания для самостоятельной подготовки :

1. Изучить:

а) правила использования динамической памяти; б) указатель и его назначение; в) формат определения указателя;

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

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

з) оператор косвенного доступа.

2.Разработать алгоритм решения в соответствии с за-

данием.

3.Составить программу решения задачи.

4.Подготовить тестовый вариант программы и исходных данных.

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

1.Указать основные правила организации вложенных

циклов.

2.Указать способы выхода из внутреннего цикла.

3.Как организовать вывод матрицы в общепринятом

виде?

4.Как организовать вывод нижней треугольной матрицы в в общепринятом виде?

5.Как организовать ввод матрицы размером N x M эле-

ментов?

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

7.Как объявить указатель заданного типа с именем p?

8.Можно ли инициализировать указатель кодом int *p

= 0 ?

9.Можно ли инициализировать указатель кодом int *p

=NULL ?

10.Дан код int *p. Объясните результат выполнение ди-

рективы p = new int;

11.Дан код int *p. Объясните результат выполнения ди-

ректив:

p = new int; p = new int; p = new int; p = new int; p = new int;

12.Дан код int *p. Можно ли записать следующий оператор: p = p + 5;

13.Дан код int *p. Объясните результат выполнения ди-

рективы cout << *p.

14.Чем отличается указатель типа int от указателя типа

float.

15.Дан код int x = 2; Можно ли записать директиву cout << *(&x) и если да, то какой результат появится на экране.

16.Дан код int x[10]. Объясните результат выполнения кода cout << x.

17.Дан код int x[10]. Можно ли записать выражение x – &x[5] и если да, чему равно значение данного выражения.

18.Дан код int *p, x[10]; Можно ли записать p = x.

19.Даны коды int *p, x[10]; p = x; Можно ли записать

p++, x++.

20.Дан код int x[10], i. Объясните результат выполне-

ния кода cout << (x+i).

21.Дан код int x[10], i. Чему равен результат выражения

*(x+i) == x[i].

22.Дан код int x[10], i. Чему равен результат выражения

*(x+i) < x[i]

2

23.Дан код int *p. Объясните результат выполнения ди-

рективы cout << p.

24.Дан код int x[10], i.Чему равен результат выражения

(x+i) < &x[i]

25.Дан код int *x[10]. Объясните результат выполнения данного кода.

26.Как связано понятие указателя с понятием косвенного доступа к информации?

27.Связь двумерного массива с указателем.

28.Дан код int a[9][9], i. Можно ли в тексте программы использовать выражение a < a[i].

29.Являются ли однотипными значения переменных *a[i] и a[i][k] при допустимых значениях i и k.

30.Дан код int a[5][5]. Можно ли использовать в тексте выражение a == a[0] и если да, чему равно значение данного выражения.

31.Дан код int a[5][5]. Можно ли записать выражение a < a[3] и если да чему равно значение данного выражения.

32.Дан код int a[9][9]. Что определяет код a[2]+7?

33.Дан код int a[9][9]. Что определяет код *(a[3]+5)?

34.Дан код int a[9][9]. Равны ли значения переменных

(a +3*9 +4), (a[3]+4), &a[3][4].

35.Дан код int a[9][9]. Можно ли записать выражение a[5]+4 -&a[6][4] и если да, чему будет равно значение этого выражения.

36.Дан код a[n][m]. Идентичны ли записи &a[i][j], a[i]+j, a+i*m+j?

37.Дан код a[n][m]. Что определяет значение перемен-

ной &a[i][j]?

38.Дан код a[n][m]. Что определяет значение перемен-

ной a[i] + j?

39.Дан код a[n][m]. Что определяет значение перемен-

ной a +m*i + j?

40.Дан код a[n][m]. Что определяет значение перемен-

ной *(a[i] + j)?

3

Источник: https://studfile.net/preview/16563337/