Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
4
Добавлен:
14.11.2017
Размер:
352.59 Кб
Скачать

Наименование дисциплины

Технология и языки программирования

Преподаватель

Бочаров Юрий Иванович

доцент кафедры микро- и наноэлектроники НИЯУ МИФИ

E-mail: micro.nano@yandex.ru

Web-сайты:

http://yibocharov.narod.ru

http://bocharov.my1.ru

Общие замечания

При проведении практических занятий и лабораторных

работ по дисциплине использовался свободно распространяемый пакет Pelles C for Windows, включающий типовые инструментальные средства создания и отладки программ: С-компилятор, отладчик и интегрированную среду разработки (IDE) с графическим интерфейсом пользователя (GUI).

Все приведенные примеры программ тестировались с использованием этого программного пакета.

Поскольку инструментальные средства, входящие в пакет, не русифицированы, то в текстах программ нигде кроме комментариев не используются символы кириллицы.

Данная презентация является второй частью комплекта иллюстративных материалов к проведению практических занятий по дисциплине. Первая часть посвящена общему ознакомлению с языком С и простыми средствами ввода и вывода. Во второй части рассматриваются основные операции и управляющие операторы языка С.

2

Технология и языки программрования

Выполнение простых операций над числами

Пример – ввод и деление двух целых чисел

int x=0; int y=0;

float z=0.0;

printf("Enter inline integer x and y: "); scanf("%d%d",&x,&y);

printf("\nDividend= %d, Divisor= %d\n",x,y); z = x/y;

printf("\nQuotient z=x/y= %4.2f\n\n",z);

Если будут введены, например, числа 7 и 4, то будет выведено z= 1.00, что является верным результатом целочисленного деления 7 на 4 с выводом частного в форме с плавающей точной.

Тип результата определяется типом операндов. Если хотя бы у одного из операндов задать тип float, то результат был бы тоже float.

3

Технология и языки программрования

Выполнение простых операций над

числами (продолжение)

Если оба операнда – целые числа, а результат надо получить в форме с плавающей точкой, то следует явно указать на преобразование формата:

int x,y=0; float z=0.0;

printf("Enter integer x and y: "); scanf("%d%d",&x,&y);

z = (float) x/y; //(float) - оператор преобразования формата printf("\nz=x/y= %12.4f\n\n",z);

Еще пример:

float x,y=1.0; int z=0;

printf("Enter float x and y: "); scanf("%f%f",&x,&y);

z = (int) x+y; printf("\nz=x+y= %d\n\n",z);

4

Технология и языки программрования

Список основных операций

++Постинкремент (увеличение значения переменной на 1 после ее использования в выражении), например j++

-- Постдекремент (уменьшение значения переменной на 1 после ее использования в выражении), например j--

++Преинкремент (увеличение значения переменной на 1 до ее использования в выражении), например ++i

-- Предекремент (уменьшение значения переменной на 1 до ее использования в выражении), например --i

Пример

#include <stdio.h> int main(void)

{

int a=3, b=33; printf("%d %d\n", a, b); ++a; ++b;

printf("++a -> %d ++b -> %d\n", a, b);

printf ("a++ -> %d b++ -> %d\n", a++, b++);

printf("%d

%d\n", a, b);

return 0;

 

}

 

5

Технология и языки программрования

Список основных операций

(продолжение)

( )

- Вызов функции, например putchar(x)

[ ]

- Обращение к элементу массива, например A[1][0]

*- Умножение

/ - Деление

%- Нахождение остатка от деления

+ - Сложение

- Вычитание

sizeof() - Определение размера переменной или типа в байтах, например, если задан массив arr, то число его элементов можно вычислить так: (sizeof(arr) / sizeof(arr[0]))

(тип) - Преобразование типов, например (float)

6

Технология и языки программрования

Список основных операций

(продолжение)

Операции отношения (сравнения). Они имеют результатом логические значения - ложь (представляется нулем) или истина (представляется числом отличным от нуля):

<Меньше

<= Меньше или равно

>Больше

>= Больше или равно == Равно != Не равно

Упрощенно можно считать, что результат этих операций есть как бы ответ на некоторый вопрос, причем этот ответ может или подтверждать содержащееся в вопросе утверждение (ответ - ДА, истина), или противоречить ему (ответ - НЕТ, ложь). Например:

if (z<=0) z++; else z--;

Если z меньше или равно 0 (ДА, истина), то z увеличивается на 1, если z больше 0 (НЕТ, ложь), то z уменьшается на 1

7

Технология и языки программрования

Список основных операций

(продолжение)

Логические операции выполняются над операндами, которые имеют логические значения ложь или истина. Аргументами логических операций могут быть результаты операций отношения, а также любые числа. Число 0 интерпретируется как ложь, а отличное от нуля – как истина. Результатами логических операций также являются логические значения, причем за истинное значение принимается 1.

! Инверсия, логическое отрицание, операция НЕ, NOT && Конъюнкция, логическое умножение, операция И, AND || Дизъюнкция, логическое сложение, операция ИЛИ, OR

Определение логических функций

Функции задаются на всей области определения своих аргументов с помощью таблиц истинности (T true, истина, F false, ложь):

X

(NOT X)

X Y

(X && Y)

X Y

(X || Y)

T

F

F F

F

F F

F

F

T

F T

F

F

T

T

 

 

T

F

F

T

F

T

 

 

T

T

T

T T

T

Функция исключающее ИЛИ: X XOR Y = X^Y = (!X && Y) || (X && !Y)

применяется в побитовых операциях

8

Технология и языки программрования

Список основных операций

(продолжение)

Пример

z=0; z= x && y; if (z) z++;

Если значения обеих переменных - x и y отличны от 0, то x && y = 1 (истина), переменной z присваивается значение 1, а затем, поскольку операнд в скобках условного оператора if… равен 1 (истина), то значение z увеличивается на 1 и становится равным 2.

Если же значение x или y, или обеих переменных равно 0, то x && y = 0 (ложь), поэтому операция инкремента не выполняется, и значение z остается равным 0.

9

Технология и языки программрования

Список основных операций

(продолжение)

Побитовые операции выполняются над отдельными битами чисел ~ побитовая инверсия, отрицание, операция НЕ, NOT

& побитовая конъюнкция, операция И, AND

| побитовая дизъюнкция, операция ИЛИ, OR

^побитовое сложение по модулю 2, исключающее ИЛИ, операция

XOR

<< сдвиг двоичного представления числа влево >> сдвиг двоичного представления числа вправо Примеры:

printf(”Res= %d\n\”, 9 & 6);

// результат = 0

printf(”Res= %d\n\”, 7 & 13);

// результат = 5

printf(”Res= %d\n\”, 13 | 3);

// результат = 15

printf(”Res= %d\n\”, 8 | 12);

// результат = 12

printf(”Res= %d\n\”, 12 ^ 3);

// результат = 15

printf(”Res= %d\n\”, 6

^ 6);

// результат = 0

printf(”Res= %d\n\”, 8

^ 12);

// результат = 4

printf(”Res= %d\n\”, 7

>> 1);

// результат = 3

printf(”Res= %d\n\”, 7

<< 2);

// результат = 28

printf(”Res= %d\n\”, ~7);

// результат = -8

10

Технология и языки программрования

Соседние файлы в папке Бочаров презентации 1 семестр