Скачиваний:
0
Добавлен:
31.05.2025
Размер:
949.97 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра ИИСТ

отчет

по лабораторной работе №6

по дисциплине «Информатика»

Тема: «Отладка консольного приложения»

Студент

Преподаватель

Беляев Ф.Я.

Санкт-Петербург

2019

Цель работы: отладка консольного приложения.

Задания:

1. В шаблоне консольного приложения реализовать следующий код:

// пример кода: int i=52 , j=13; printf("\n i++ = %d",i++); printf("\n ++i = %d",++i); printf("\n —j = %d",--j); printf("\n i+=4 = %d",i+=4); printf("\n j*=5 %d",j*=5); // проверить значение переменной i printf("\n i/=j = %d",i/=j); printf("\n i+=j+1 = %d",i+=j+1); printf("\n i%%=3 = %d",i%=3); // проверить значение переменной j i=32; printf("\n i«1 = %d , i«2 = %d",i«1,i«2); printf("\n i»3 = %d",i»3); float f=33.35; printf("\n i = %d ",i=f++); // проверить значение переменных i, f printf("\n f = %f ", f); // проверить значение переменных i, f f=23.125; printf("\n i = %d ",i=f++); // проверить значение переменной f printf("\n f = %f ", f++); // проверить значение переменных i, f printf("\n f = %f ", f); // проверить значение переменной f

2. Оценить результаты работы программы.

3. С помощью механизмов отладки проверить значения переменных i, j, f на строках кода отмеченных в комментариях.

4. Объяснить значения переменных в указанных строках.

5. Дополните код следующими строками: int* ptr_i = &i; int* ptr_j = &j;

Выясните следующее:

5.1. На какую величину отличаются значения указателей (значения адреса)?

5.2. Как вывести на экран значение адреса?

5.3. Как по указателю ptr_i вывести значение переменной i на экран?

5.4. Можно ли по указателю ptr_i получить значение переменной j? И как это можно сделать?

Протокол выполнения заданий в шаблоне консольного приложения реализовать следующий код (см. Задания)

Реализовал код из задания. Код содержит 17 строк (11-28).

Оценить результаты работы программы

Результат работы программы:

Первые две строчки команды вывели два целых числа значения переменной i благодаря шаблонной функции printf, позволяющей выводить в различные потоки значения разных типов (в нашем случае изначально заданы две целочисленные переменные i и j; «%d» - спецификатор формата, преобразующий входящие в него параметры в десятичные целые числа). Сначала значение переменной при выводе выводится то, что задано ещё до функции (52), а потом приобретает значение 54. Это происходит благодаря инкриментам, прописанным в функциях (i++ и ++i). Разница в том, что первый увеличивает значение переменной после выполнения вывода, а второй – до вывода. Отсюда такие значения.

Третья строчка использует дискримент(--j). Т.е. значение уменьшится на 1. 13(нач. значение) – 1 (дискримент) = 12(что и вывелось).

Четвертая строчка выполняет тот же вывод, но уже с мат. операцией (i+=4), которая прибавляет к значению i четыре. 54 + 4 = 58 (верно).

Пятая строчка так же выполняет мат. функцию, но уже с умножением (12*5=60).

Шестая строчка прибавляет к значению i значение j, увеличенное на 1: 58 + 61 =119.

Седьмая строчка использует спецификатор «%=», реализующий вычисление остатка от деления, совмещённое с присваиванием (119/3 = 39 с остатком; 119 – 39*3 = 2).

Следует обратить внимание, что на этом моменте, между 7 и 8 строчками вывода, программно задается значение i=23.

Восьмая и девятая строчки осуществляют побитовые сдвиги вправо и влево (<< и >> соответственно), меняя значения переменных.

Следует обратить внимание, что на этом моменте, между 9 и 10 строчками вывода, программно задается значение переменной с плавающей точкой f = 33.35 через float. После запятой появляются дополнительные цифры, это возникает как следствие машинного представления дробей – сумма двоичных степеней.

Десятая строчка прибавляет к переменной i значение переменной f. Но, так как присутствует спецификатор «%d», то выводится целое значение.

11ая строчка выводит число с плавающей точкой f, увеличенное н 1 целое число, благодаря инкрименту в десятой строчке.

Следует обратить внимание, что на этом моменте, между 11 и 12 строчками вывода, программно меняется значение переменной с плавающей точкой f на 23.125.

12ая и 13ая строчки аналогичны 10 и 11.

14ая строчка аналогична 11.

Соседние файлы в папке Лабы Беляев