Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Министерство образования и науки Российской Федерации
Санкт-Петербургский государственный электротехнический университет «ЛЭТИ»
кафедра Информационно-Измерительных Систем и Технологий.
Лабораторная работа по предмету информатика №2
Выполнил: Беднов В.Р.
Студент Группы : 3582
Проверил: Беляев Ф.Я.
Санкт-Петербург
2013
Цель работы:
Оценка и обработка данного кода в программе Dev-C++. Закрепление теоретических знаний, практически.
Задание:
Лабораторная работа 2
inti=14 , j=2;
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%%=3= %d",i%=3); // проверить значение переменной j
i=1;
printf("\n i<<1 = %d , i<<2 = %d",i<<1,i<<2);
printf("\n i>>3 = %d",i>>3); float f=15.45;
printf("\n i = %d ",i=f++);
printf("\nf = %f ", f); // проверить значение переменной f
2. Оценить результаты работы программы.
3. С помощью механизмов отладки проверить значения переменных i, j, f на строках кода отмеченных в комментариях.
4. Объяснить значения переменных в указанных строках.
Решение задания:
1.После создания консольного приложения я увидел текст стандартного шаблона консольного приложения:
2. В стандартном шаблоне консольного приложения ввёл следующий код:
#include<cstdlib>
#include<iostream>
using namespace std;
int main(intargc, char *argv[])
{inti=14 , j=2;
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%%=3= %d",i%=3); // проверить значение переменной j
i=1;
printf("\n i<<1 = %d , i<<2 = %d",i<<1,i<<2);
printf("\n i>>3 = %d",i>>3); float f=15.45;
printf("\n i = %d ",i=f++);
printf("\n f = %f ", f); // проверить значение переменной f
system("PAUSE");
return EXIT_SUCCESS;
}
2.1.Оценить результаты работы программы.
А) Компилирую и запускаю программу
Программа выполняет различные арифметические действиями и побитовые операции над числами.
2.2.С помощью механизмов отладки проверить значения переменных i, j, f на строках кода отмеченных в комментариях.
А) Захожу в настройки компилятора Tools- Compileroptionsи ставлю Yesнапротив “Generated ebugging information”.
После чего, нажимаюOK.
Б) В окне редактирования кода нажимаю на левую область напротив нужного мне участка кода, на которых я хочу, чтобы компилятор остановился.
В) Нажимаю F5(запуск в режиме debug) и добавляю переменные, за которыми надо следить
Для добавления переменных нажимаю кнопку «Addwatch»
При проверке первой выделенной строки мы добавляем переменную “i”.
При проверке второй выделенной строки мы добавляем переменную “j”.
При проверке третьейвыделенной строки мы добавляем переменную “f”.
Как мы видим, компилятор сначала инициализирует все переменные, которые найдет, а только потом выполняет программу.
Синим цветом указывается та строка, на которой компилятор останавливается.
При нажатии на кнопку «Continue» он переходит на следующую выделенную строку. И так далее.
С помощью механизмов отладки я проверил значения переменных i, j, f на выделенных строках код.
i=20 ;j=1; f=0
i=4 ;j=5; f=2,868
i=15 ;j=5; f=16,45
3. Объяснить значения переменных в указанных строках.
printf("\n i++ = %d",i++);
В данной строке, пред тем ,как вывести значение переменной на экран ,значение используется в выражении, а затем увеличивается на 1. (т.е. становится 15)
printf("\n ++i = %d",++i);
В данной строке, пред тем ,как вывести значение переменной на экран ,переменная увеличивается на 1 ,а далее его значение используется в выражении.( становится 16)
printf("\n --j = %d",--j);
на этом этапе переменная j уменьшается на 1, а за тем выводится на консоль; ( 1)
printf("\ni+=4 = %d",i+=4);
на этом этапе переменная i увеличивается на 4, а за тем выводится на консоль. (Теперь ее значение = 20)
printf("\ni/=j = %d",i/=j);
на этом этапе в переменную i записывается ее целочисленное деление на переменную j, результат = 4
printf("\ni%%=3 = %d",i%=3);
на этом этапе в переменную I записывается остаток от ее деления на 3;
i=1;
на этом этапе переменной i присваивается значение = 1;
printf("\ni<<1 = %d, i<<2 = %d",i<<1,i<<2);
на этом этапе на консоль выводится результат побитового сдвига на единицу влево переменной i , за тем эта переменная побитово сдвигается 2 единицы влево ( 2, 4)
printf("\ni>>3 = %d",i>>3);
на этом этапе на консоль выводится результат побитового сдвига на 3 единицы вправо переменной i (0)
floatf=15.45;
на этом этапе инициализируется переменная f и ей присваивается значение = 15.45
printf("\ni = %d",i=f++);
на этом этапе переменной I присваивается значение переменной f(для перевода в другой формат, значение переменной f округляется в меньшую сторону), после чего переменная f увеличивается на единицу(теперь она принимает значение= 16.4500008).
printf("\nf = %f",f);
на этом этапе переменная f выводится на консоль.
Выводы:
1.Реализовал данный код и вывел текст на консоль.
2.Оценить результаты работы программы.
-На консоль выводятся заданные переменны
3) С помощью механизмов отладки проверил значения переменных i, j, f на строках кода
отмеченных в комментариях.
i=20 ;j=1; f=0
i=4 ;j=5; f=2,868
i=15 ;j=5; f=16,45
4.Разобрался в значениях переменных.
-Подробно объяснил каждую переменную заданного кода