- •1. Основные типы данных. Целый, символьный, вещественный, voit
 - •2. Структура программы. Примеры простейшей программы, использующей ввод/вывод на экран(сложить 2 числа)
 - •2.3. Константы
 - •3.1. Условный оператор
 - •3.2. Оператор множественного выбора
 - •1.4. Операторы
 - •1.4.1. Оператор выражение
 - •1.4.2. Пустой оператор
 - •1.4.3. Составной оператор
 - •1.4.4. Оператор if
 - •1.4.5. Оператор switch
 - •1.4.6. Оператор break
 - •1.4.7. Оператор for
 - •1.4.8. Оператор while
 - •1.4.9. Оператор do while
 - •1.4.10. Оператор continue
 - •1.4.11. Оператор return
 - •1.4.12. Оператор goto
 - •6. Статические массивы(умножение матриц) двумерные статические массивы (матрицы).
 - •Заполнение матриц.
 - •Вывод элементов двумерных массивов.
 - •Организация символьного одномерного массива в виде матрицы символов.
 - •Квадратные матрицы. Работа с диагональными элементами.
 - •Транспонирование матриц.
 - •Умножение матрицы на вектор.
 - •Умножение матрицы на матрицу.
 - •Удаление строк матриц.
 - •Включение столбца в матрицу.
 - •Преобразование матрицы.
 - •Преобразование матрицы в одномерный массив.
 - •3.6. Описание и определение функций.
 - •Лекция 6. Технология программирования OpenMp
 
2.3. Константы
В языке Си константы представляют фиксированные величины, которые не могут быть изменены в программе. Константы могут быть любого базового типа данных. Пример констант:
char - 'a','\n','8'  | 
		
int - 1, 134, -500  | 
		
unsigned int - 53500  | 
		
long int - 87000, -37, 7L  | 
		
short int - 11, 13, -128  | 
		
float - 133.34, 3.36E-6, 5E+5  | 
		
double - 133.45, 133340, -2.789  | 
		
Правила определения типа констант следующие. Целая константа относится к типу int, если эта константа входит в интервал значений типа int. Если эта константа не входит в интервал значений типа int, например - 37750 (а как известно тип int, как правило принимает значения в диапазоне от -32768 до 32767), то она считается константой типа unsigned (применительно к int это уже от 0 до 65535). Если же и этого мало, то она считается константой типа long (т.е. long int). Константа с десятичной точкой считается константой типа double, если она помещается в соответствующий интервал измерения. Для явного задания типа констант используется механизм суффиксов. В качестве суффиксов целочисленных (int) констант используются u,l,h,U,L,H. Для чисел с плавающей точкой - l,L,f,F. Например:
13h, 35H  | 
			-  | 
			short int  | 
		
25L, -223l  | 
			-  | 
			long int  | 
		
87lu, 88Lu, 89ul  | 
			-  | 
			unsigned long int  | 
		
55uh  | 
			-  | 
			unsigned short int  | 
		
27.43f, 7.7E-6F  | 
			-  | 
			float  | 
		
1.41l, 3.2E+12L  | 
			-  | 
			double  | 
		
Символьная переменная - это величина размером в 1 байт, которая используется для представления литер и целых чисел в диапазоне от 0 до 255 или от -128 до 127, в зависимости от того, знаковая переменная или беззнаковая. Символьные константы заключаются в одинарные кавычки. Примеры символьных констант: 'd', '+', '8'. Приведем пример программы с использованием символьных переменных и констант:
#include /* Пример 4 */ main() { char ch; ch='c'; printf("%c",ch); ch='+'; printf("%c%c", ch,ch); }  | 
		
  | 
	
4. Условный оператор, оператор переключатель-свитч
3.1. Условный оператор
Основная форма условного оператора выглядит следующим образом:
if(условие) оператор;  | 
		
else оператор;  | 
		
Если значение условия истинно, о выполняется оператор (это может быть и составной оператор), следующий за условием. Если же условие принимае значение ложно, о выполняется оператор, следующий за словом else. В записи оператора if вторая часть (т.е. оператор else) может отсутствовать. Тогда, если условие принимает значение ложно, выполняется следующий оператор программы. В качестве условия может стоять произвольное выражение. В операторе if лишь проверяеся, является ли значение эого выражения ненулевым (истинным) или нулевым (ложным). Рассморим пример программы определения знака воодимого с клавиатуры вещественного числа с использованием нашего оператора if.
#include<stdio.h> /* Пример 9 */ main() { int sgn; float x; printf("Введите число: \n"); scanf("%f",&x); if(x>0) { sgn=1; printf("Число %f\n, положительное sgn = %d\n", x, sgn);} if(x==0) { pritf("Число %f\n равно нулю sgn = %d\n", x, sgn);} if(x<0) {sgn=-1; printf("Число %f отрицательное sgn=%d\n", x, sgn);} }  | 
		
  | 
	
Нередко возникает необходимость в использовании конструкции вложенных if-else-if:
if(условие1) оператор1;  | 
		
else if(условие2) оператор2;  | 
		
else if(условие3) оператор3;  | 
		
...  | 
		
else оператор;  | 
		
В такой форме условия оператора if проверяютсяч сверху вниз. Как только некоторое условие принимает значение истинно, выполняется оператор, следующий за этим условием, а вся остальная часть конструкции будет проигнорирована. Поэтому, предыдущую программу можно было бы написать следующим образом:
#include<stdio.h> /* Пример 9 */ main() { int sgn; float x; printf("Введите число: \n"); scanf("%f",&x); if(x>0) { sgn=1; printf("Число %f\n, положительное sgn = %d\n", x, sgn);} if(x<0) {sgn=-1; printf("Число %f отрицательное sgn=%d\n", x, sgn);} else { pritf("Число %f\n равно нулю sgn = %d\n", x, sgn);} }  | 
		
  | 
	
Для того чтобы проверить, равно число x нулю или нет, можно написать
if(x==0) printf("Число равно нулю ...");  | 
		
else printf("Число не равно нулю ...");  | 
		
Такой же результат можно получить, написав более компактный код
if(!x) printf("Число равно нулю ...");  | 
		
else printf("Число не равно нулю ...");  | 
		
Вложенным оператором if называется конструкция вида
if(x)  | 
		
if(y) printf(" ...");  | 
		
else операторX ....;  | 
		
В такой форме непонятно, к какому из операторов if относится else. В языке Си оператор else ассоциируется с ближайшим if в соответствующем блоке. Поэтому в указанной конструкции else относится к if(y). Для того чтобы отнести else к if(x), необходимо соответствующим образом расставить операторные скобки:
if(x){  | 
		
if(y) printf(" ...");  | 
		
if(x)}  | 
		
else операторX ....;  | 
		
Теперь if(y) относится к другому блоку.
