Скачать презентацию 1 22 333 Скачать презентацию 1 22 333

операторы управления программой.ppt

  • Количество слайдов: 33

* ** ***** … * ** ***** …

1 22 333 4444 55555 … 1 22 333 4444 55555 …

* ** ***** … * ** ***** …

Операторы управления программой Предназначены для изменения стандартного порядка выполнения программы. К этим операторам относятся: Операторы управления программой Предназначены для изменения стандартного порядка выполнения программы. К этим операторам относятся: break continue goto return exit(0)

Оператор break служит для немедленного завершения работы цикла for (i=1; i<10; i++) { if Оператор break служит для немедленного завершения работы цикла for (i=1; i<10; i++) { if (i==5) break; printf(“%i”, i); } Оператор break осуществляет выход только из одного цикла, из вложенных нет

Оператор continue служит для завершения текущей итерации цикла for (i=1; i<10; i++) { if Оператор continue служит для завершения текущей итерации цикла for (i=1; i<10; i++) { if (i==5) continue; printf(“%i”, i); }

Оператор goto – оператор перехода на выбранную метку goto имяметки; … имяметки: …; for Оператор goto – оператор перехода на выбранную метку goto имяметки; … имяметки: …; for (i=0; i<5; i++) for (j=0; j<5; j++) if (i+j==8) goto M; M: …; Использование меток считается плохим стилем, так как снижает «читабельность» , единственная ситуация, это выход из двойного цикла

Функция exit(0) объявлена в библиотеке stdlib. h. Она осуществляет немедленный выход из тела программы. Функция exit(0) объявлена в библиотеке stdlib. h. Она осуществляет немедленный выход из тела программы. Как аргумент функция получает своеобразный код завершения программы. Например, 0 –программа завершена успешно. scanf(“%i”, &n); if (x==0) { printf(“ERROR”); getch(); exit(0); } после нажатия любой клавиши программа завершит работу

Одномерные массивы Массив – это набор переменных одного типа данных, расположенных в памяти строго Одномерные массивы Массив – это набор переменных одного типа данных, расположенных в памяти строго последовательно. Элементы массива имеют одно и тоже имя и различаются только порядковыми номерами элементов. Элементы массива нумеруются от 0 до n-1, где n – число элементов массива.

Объявляется массив следующим образом тип имя[число элементов]; Пример: 1. int a[8]; 2. const int Объявляется массив следующим образом тип имя[число элементов]; Пример: 1. int a[8]; 2. const int n=8; int b[n]; 3. int n=8; int c[n]; //так объявлять массив нельзя, поскольку память для программы выделяется на этапе компиляции, а переменная получает свое значение в процессе выполнения программы. Поэтому в статической памяти нельзя объявить массив из произвольного числа элементов. Если это необходимо, то задается массив заведомо большего размера, а используется меньшее.

Для доступа к элементам массива используется следующая форма записи: a[5]=6; a[0]=a[5]*2; Замечание: a[8]=5; В Для доступа к элементам массива используется следующая форма записи: a[5]=6; a[0]=a[5]*2; Замечание: a[8]=5; В С не проверяется выход за границу массива, в результате такая запись приведет к появлению за пределами массива числа 5.

Ввод массива int a[8]; for (int i=0; i<8; i++) { printf(“введите %i й элемент”, Ввод массива int a[8]; for (int i=0; i<8; i++) { printf(“введите %i й элемент”, i); scanf(“%i”, &a[i]); }

Вывод массива на экран int a[8]; for (int i=0; i<8; i++) { printf(“%4 i Вывод массива на экран int a[8]; for (int i=0; i<8; i++) { printf(“%4 i ”, a[i]); }

const int m=500; float C[m]; int n; printf(“введите размерность массива < 500”); scanf(“%i”, &n); const int m=500; float C[m]; int n; printf(“введите размерность массива < 500”); scanf(“%i”, &n); for (int i=0; i

Заполнение массива случайными числами stdlib. h randomize() служит для инициализации генератора случайных чисел random(N) Заполнение массива случайными числами stdlib. h randomize() служит для инициализации генератора случайных чисел random(N) возвращает псевдослучайное целое число из диапазона [0, N-1]

int a[10]; randomize(); for (int i=0; i<10; i++) a[i]=random(10); int a[10]; randomize(); for (int i=0; i<10; i++) a[i]=random(10);

X=random(10001)/1000, 00 [-1000, 1000] random(2001)-1000 X=random(10001)/1000, 00 [-1000, 1000] random(2001)-1000

Двумерные массивы Тип имя[N 1][N 2]; float test[10]; test[5][3]=1; //сначала идет номер строки, потом Двумерные массивы Тип имя[N 1][N 2]; float test[10]; test[5][3]=1; //сначала идет номер строки, потом столбца

Заполнение двумерного массива 1. С клавиатуры int a[10]; for (int i=0; i<10; i++) { Заполнение двумерного массива 1. С клавиатуры int a[10]; for (int i=0; i<10; i++) { for (int j=0; j<10; j++) { printf(“введите элемент %i, %i”, i, j); scanf(“%i”, &a[i][j]); } }

2. Случайными числами int a[10]; for (int i=0; i<10; i++) { for (int j=0; 2. Случайными числами int a[10]; for (int i=0; i<10; i++) { for (int j=0; j<10; j++) { a[i][j]=rand(); } }

Вывод двумерного массива int a[10]; for (int i=0; i<10; i++) { for (int j=0; Вывод двумерного массива int a[10]; for (int i=0; i<10; i++) { for (int j=0; j<10; j++) { printf(“ %4 i”, a[i][j]); } printf(“ n”); }

Сортировка массива При работе с массивами данных не редко возникает задача их сортировки по Сортировка массива При работе с массивами данных не редко возникает задача их сортировки по возрастанию или убыванию, т. е. упорядочивания. Это значит, что элементы нужно расположить строго по порядку. Например, в случае сортировки по возрастанию предшествующий элемент должен быть меньше последующего (или равен ему).

for( i=0; i < size; i++) { for( j = size-1; j > i; for( i=0; i < size; i++) { for( j = size-1; j > i; j-- ) if ( a[j-1] > a[j] ) { x=a[j-1]; a[j-1]=a[j]; a[j]=x; } }

Заполнить двумерный массив n*n случайными числами и определить сумму элементов главной диагонали/ Заполнить двумерный массив n*n случайными числами и определить сумму элементов главной диагонали/

Работа со строками Строка-массив символов, заканчивающийся символом с кодом �. в С строка м. Работа со строками Строка-массив символов, заканчивающийся символом с кодом . в С строка м. б. любой длины. char s[3]; s[0]=‘a’; s[1]=‘b’; s[3]=‘c’; s[3]={‘a’, ’b’, ’c’}; s[3]=“abc”; Замечание: в одинарных кавычках записывают символы, в двойных кавычках строки символов потому что последний символ строки символов- признак конца строки ‘’: когда пишем строку в двойных кавычках, компилятор по этому признаку сам формирует признак конца строки – символ ‘’. Поэтому ’b’ – это один символ, “b” – два символа;

char str[10]=“строка”; char s[]=“текст”; копил сам определит, сколько нужно памяти string. h Функции для char str[10]=“строка”; char s[]=“текст”; копил сам определит, сколько нужно памяти string. h Функции для работы со строками C=getchar() – ожидает ввод символа с клавиатуры, как только символ введен, его значение присваивается переменной с. putchar(c) – выводит символ на экран. strlen(str) x=strlen(“текст”); вернет значение 5, т. е. количество реально использованных символов без учета последнего терминального символа. strcpy(str 1, str 2) копирует строку str 2 в str 1

char str[5]=“текст”; char s[4]=“это”; strcpy(s, str); необходимо следить за тем, что бы число элементов char str[5]=“текст”; char s[4]=“это”; strcpy(s, str); необходимо следить за тем, что бы число элементов строки str было достаточно для хранения strcat(str 1, str 2) добавляет содержимое строки str 2 к строке str 1. char s[100]; strcpy(s, ”Это ”); strcat(s, ”строка”);

strcmp(s 1, s 2)-Осуществляет лексографическое сравнение двух строк (в алфавитном порядке). Возвращает значение меньше strcmp(s 1, s 2)-Осуществляет лексографическое сравнение двух строк (в алфавитном порядке). Возвращает значение меньше 0, если s 1s 2, равное 0, если s 1==s 2 Составить программу, которая сравнивает две строки

Имя массива без следующих за ним квадратных скобок само по себе является адресом начала Имя массива без следующих за ним квадратных скобок само по себе является адресом начала массива, таким образом, & можно не писать или писать &s 1[0]. У функции scanf конец ввода это пробел или enter, поэтому в строку нельзя ввести текст «Это строка» • scanf(“%[^n]s, s 1)-в прямоугольных скобках можно перечислять те символы, которые допустимы для данной строки, ^ означает кроме. Допустимыми являются все символы, кроме перехода на новую строку. scanf(“%[A-Z]s, s 1) • gets(s 1)-читает с клавиатуры строку до первого enter

Сортировка массива строк Сортировка массива строк