Комсомольский-на-Амуре Государственный Технический
по дисциплине «Программирование»
вариант 7
Студент : Иваницын Е.В.
Преподаватель : Петров Ю.А.
2005
· Приобрести навыки создания исходного кода для интегрированной среды BC++.
· Изучить формат функции printf().
· Найти все лексемы, используемые в исходном коде.
Вычислить значения функции y = f(x) предварительно выполнив действия над целыми переменными. Разработать исходный код на языке ВС++, используя функцию main() (главную ) и printf() (и для вывода всех входных и выходных данных), а также директивы препроцессора, откомпилировать исходный код, выполнить его компоновку и запустить на выполнение exe-файл.
Выписать размеры исходного кода (*.cpp), объектного кода (*.obj) и исполняемого файла (*.exe). Подробно изучить и описать формат функции printf(). Действия над переменными проверить вручную с использованием двоичной системы координат, результаты сравнить с полученными на ЭВМ. Результат расчета функции проверить на микрокалькуляторе. Перечислить все лексемы, используемые в исходном коде и дать их анализ. Дать краткий анализ директив препроцессора, используемых в исходном коде.
7 |
a=(b|a) ^(a-- >>1&b<<1) |
y(x)=a×sin(actg(2x)-asec(x))-4b×x |
a=4,b=2, x=p/3 |
Размеры файлов:
Размер *.cpp = 342 байт
Размер *.obj = 1 316 байта
Размер *.exe = 25 949 байта
Решение примера без использования C++ по действиям:
1) a--=4-1=310=00112
2) a-->>1=0012=110
3) (b=210=00102) b<<1=01002=410
4) (a-->>1&b<<1)=0001&0100=0
5) (b|a)=0010|001=0011
6) (b|a) ^(a-- >>1&b<<1)=0011^0000=00112=510
a=5;b=2
Формат функции printf:
Printf(“Text [ESC последовательности] []”[,<переменные>]);
%d Вывод переменной целого типа
%f Вывод переменной c плавающей точкой
Последовательность |
Наименование |
\n \t \v \b \r \f \a \' \" \\ \ddd \xdd |
Новая строка Горизонтальная табуляция Вертикальная табуляция Пробел Возврат каретки Новая страница Звонок(сигнал) Одиночная кавычка Двойная кавычка Наклонная черта влево ASCII символ в восьмиричном представлении ASCII символ в шестнадцатиричном представлении |
Лексемы:
Операция Наименование
! Логическое НЕ
~ Побитовое дополнение
+ Сложение
- Арифметическое отрицание
* Умножение
/ Деление
% Остаток
<< Сдвиг влево
>> Сдвиг вправо
< Меньше
<= Меньше или равно
> Больше
>= Больше или равно
== Равно
!= Не равно
& Побитовое И, адрес от
| Побитовое включающее ИЛИ
^ Побитовое исключающее ИЛИ
&& Логическое И
|| Логическое ИЛИ
' Последовательное выполнение (запятая)
?: Операция условного выражения
++ Инкремент
-- Декремент
= Простое присваивание
+= Сложение с присваиванием
-= Вычитание с присваиванием
*= Умножение с присваиванием
/= Деление с присваиванием
%= Остаток с присваиванием
>>= Сдвиг вправо с присваиваиванием
<<= Сдвиг влево с присваиванием
&= Побитовое И с присваиванием
|= Побитовое включающее ИЛИ
с присваиванием
^= Побитовое исключающее ИЛИ
с присваиванием
Исходный код программы:
#include <math.h>//подключение математической библиотеки
#include <stdio.h>//подключение библиотеки содержащей printf
void main(void)
{
int a=4,b=2; //определение и инициализация переменных
double x=M_PI/3,fun;
printf("Значения до преобразования: a=%d,b=%d,x=%f\n",a,b,x);
a=(b|a)^(a-->>1&b<<1); //преобразования
printf("Значения после: a=%d,b=%d,x=%f\n",a,b,x);
fun=a*sin(1/atan(2*x)-1/cos(x))-4*b*x; //нахождение значения функции
printf("Значение функции: %f\n",fun);
}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.