Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cos_lab4.doc
Скачиваний:
2
Добавлен:
18.11.2019
Размер:
373.76 Кб
Скачать

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

Листинг программы

Запишите ваши итоговые выводы:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]