2. Базовые конструкции языка с
2.1 Переменные языка С
В языке "C" предусмотрено несколько типов данных:
INT целое
FLOAT числа с плавающей точкой
CHAR символ - один байт
SHORT короткое целое
LONG длинное целое
DOUBLE плавающее с двойной точностью
Объявление происходит следующим образом:
INT lower, UPPER, Step=1;
FLOAT FAHR, CELSIUS[64];
Число в квадратных скобках означает количество элементов массива данного типа.
2.2 Вывод информации на экран
Для этого существует функция printf
Картинка иллюстрирует ее синтаксис
2.3 Организация циклов с помощью оператора for
Рассмотрим организацию цикла на примере программы перевода температур из шкалы Цельсия в шкалу Фаренгейта
main() /* FAHRENHEIT-CELSIUS TABLE */
{
int FAHR;
for (FAHR = 0; FAHR <= 300; FAHR++)
printf("%4D %6.1F\N", FAHR, (5.0/9.0)*(FAHR-32.0));
}
2.4 Организация ветвлений с помощью оператора if
IF [условие]{[операторы]
}
ELSE {[операторы]
}
Логический оператор |
Его обозначение |
Равно |
== |
Не равно |
!= |
Больше |
> |
Меньше |
< |
Больше или равно |
>= |
Меньше или равно |
<= |
Логическое И |
&& |
Логическое ИЛИ |
|| |
2.5 Побитовые операции
& Побитовое И
| Побитовое ИЛИ
<< сдвиг влево на указанное количество бит
>> сдвиг вправо на указанное количество бит
2.6 Создание функций
Рассмотрим создание функции возведения числа в целую положительную степень:
main() /* TEST POWER FUNCTION */
{
int I;
for(I = 0; I < 10; ++I)
printf("%D %D %D\N",I,POWER(2,I),POWER(-3,I));
}
POWER(X,N) /* RAISE X N-TH POWER; N > 0 */
int X,N;
{
int I, P;
P = 1;
for (I =1; I <= N; ++I)
P = P * X;
return (P);
}
2.7 Указатели
Указатель - это переменная, содержащая адрес другой переменной. Указатели очень широко используются в языке "C". Это происходит отчасти потому, что иногда они дают единственную возможность выразить нужное действие, а отчасти потому, что они обычно ведут к более компактным и эффективным программам, чем те, которые могут быть получены другими способами.
Так как указатель содержит адрес объекта, это дает возможность "косвенного" доступа к этому объекту через указатель. Предположим, что х - переменная, например, типа INT, а рх - указатель, созданный неким еще не указанным способом. Унарная операция & выдает адрес объекта, так что оператор
рх = &х;
присваивает адрес х переменной рх; говорят, что рх "указывает" на х. Операция & применима только к переменным и элементам массива, конструкции вида &(х-1) и &3 являются незаконными. Нельзя также получить адрес регистровой переменной.
Унарная операция * рассматривает свой операнд как адрес конечной цели и обращается по этому адресу, чтобы извлечь содержимое. Следовательно, если Y тоже имеет тип INT, то
Y = *рх;
присваивает Y содержимое того, на что указывает рх. Так последовательность
рх = &х;
Y = *рх;
присваивает Y то же самое значение, что и оператор
Y = X;
Задание 1. Разработать программу, выводящую на экран “Hello world!”.
Вклеить разработанную Вами программу
|
Задание 2. Разработать программу инициализации массива с числом элементов кратным 2.
Вклеить разработанную Вами программу
|
Задание 3. Произвести двоично-инверсную перестановку проинициализированного массива.
Вклеить разработанную Вами программу
|
Задание 4. Вывод отсортированного массива на экран.
Вклеить разработанную Вами программу
|
Задание 5. Написать функцию, вычисляющую поворотные коэффициенты.
Вклеить разработанную Вами программу
|
Выводы
|
|
|
|
|
|
|
Задание 6. Разработать программу, реализующую один из алгоритмов БПФ с числом элементов не менее 256
Листинг программы
|
Запишите ваши итоговые выводы:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|