1. Написать исходный код своей первой программы для VC++ ver.6.0.
2. Найти и проанализировать лексемы, используемые в исходном коде.
3. Изучить формат функций вывода.
Отчет по лабораторной работе должен содержать:
1. Постановку задачи (цель работы, задание).
2. Алгоритм решения задачи (словесный или в виде блок-схемы, обозначения переменных, используемых при решении задач).
3. Исходный код программы с необходимыми комментариями (исходный код должен использовать стиль программирования).
4. Результаты работы программы (скопированные с экрана дисплея).
5. Анализ полученных результатов, выводы.
6. Описание типов лексем, используемых в исходном коде.
7. Описание формата функции printf().
Задание
Вычислить значение функции y = f(x), предварительно выполнив действия над целыми переменными. Разработать исходный код на языке С, используя главную функцию main() и библиотечную функцию printf() (для вывода всех входных и выходных данных), а также необходимые директивы препроцессора, откомпилировать исходный код, выполнить его компоновку и запустить на выполнение exe-файл.
|
|
Выписать размер исходного кода (*.cpp), объектного кода (*.obj) и исполняемого файла (*.exe). Подробно изучить и описать формат функции printf(). Действия над переменными выполнить вручную с использованием двоичной системы координат, результаты сравнить с полученными на ЭВМ.
Дать краткий анализ директив процессора, используемых в исходном коде.
Замечания
1. Если при вычислении квадратного корня подкоренное выражение отрицательно, взять его модуль.
2. Если при вычислении арксинуса (арккосинуса) аргумент х больше единицы, взять в качестве аргумента его обратную величину, т.е. 1/х.
3. При создании простого консольного приложения с помощью мастера проектов Visual C++ Ver 6.0 распечатать файлы проекта.
4. Библиотечные функции см. в приложении 2.
Варианты заданий
Номер варианта | Действия над переменными | Функция y = f(x) | Исходные данные | |
a=(a--|x<<2)&(a<<2) | a = 5, b = 5, x = 2 | |||
x=(c&x>>1) ^ (x|c>>2)|(x--<<1) | a = 3, c = 1, x = 3 | |||
c=(x>>1)|(c<<1) & (--x^c++) | b = 3, c = 2, x = 3 | |||
Q=(x&Q-- >>1) | (Q<<1^x<<2) | Q = 3, x = 3 | |||
q=(++q^x<<1) | (q&x++) | x = 2, q = 4 | |||
x=(--x&q<<1) | (x^q++) | , где | x = 4 q = 2 | ||
x=(++x&q) | (x>>1|q--) | , где | x = 3 q = 2 | ||
p=(p|e++>>2) & (++p>>1) | p = 3, e = 5, x = p/3 | |||
p=(--p^b--) << (p&b) | p = 3, b = 4, x = p/10 | |||
a=(--a^r++) | (a<<2&r) | r = 2, a = 1, x = p/6 | |||
r=(--r^a) << (r&a++) | r = 1, a = 4, x = p/4 | |||
a=(b|a) ^ (a >>1&b<<1) | a = 4, b = 2, x = p/3 | |||
a=(b|++a) ^ (a<<1&&b--<<1) | a = 3, b = 3, x = p/6 | |||
b=(b|a) << (++b&a++) | a = 1, b = 1, x = p/3 | |||
b=(b|a--) >> (b++&a) | a = 3, b = 1, x = p/5 | |||
a=(b&a--) ^ (a<<1|b<<1) | a = 3, b = 3, x = p/6 | |||
a=(a^--b) << (a++&b) | a = 1, b = 4, x = p/9 | |||
a=(--a^b++) | (b<<1&a) | y(x) = a×ln(x)×sin(x/2) + b×e2x×cos(x/2) | a = 2, b = 3, x = p/4 | ||
b=(b--&a++)|(b^a) | y(x) = a×lg(x)×cos(x/2) – b×e-x×sin(x/2) | a = 2, b = 4, x = p/9 | ||
a=(a|b++>>1) & (++a>>2) | a = 5, b = 3, x = p/3 | |||
a=(a++>>1&b) << (a^--b) | a = 3, b = 4, x = p/4 | |||
b=(a>>1&b++) ^ (b>>1|a) | a = 4, b = 5, x = p/3 | |||
a=(b&a++) ^ (a|b<<2) | a = 2, b = 1, x = p/8 | |||
a=(++b|a>>1) ^ (a&b) | a = 3, b = 3, x = p/3 | |||
b=(b&a) | (b++^a>>1) | a = 4, b = 3, x = p/6 | |||
3 Отладка программы с помощью
отладчика Microsoft Visual C++
|
|
Программа, свободная от ошибок, есть абстрактное теоретическое понятие. Одно из затруднений, связанных со скрытыми дефектами программ, заключается в том, что вероятность их проявления возрастает со временем и с расширением масштабов использования программы. Мало в какой области деятельности имеется столько возможностей для ошибок, как в программировании. Искусство локализации ошибок, когда факт их существования установлен, носит название отладки.
Одним из критериев профессионального мастерства программистов является способность обнаруживать и исправлять собственные ошибки: начинающие программисты не умеют этого делать, у опытных программистов это не вызывает затруднений.