Void main ( ) // начало описания основной функции



{int a,b; // описание переменных

a=17;

b=-123;

int c;

c=a+b;

printf("Сумма чисел %d и %d равна %d \n",a,b,c); // функция вывода

/* %d – формат для вывода целого числа */

} // конец основной функции и программы.

 

 

Стандартный вид scanf() следующий:

 int scanf(const char * форматная_строка,..);
форматная_строка определяет способ чтения значений в переменные, на которые указывает список аргументов.

Форматная строка состоит из трех типов символов:

Функция scanf() возвращает число введенных полей. Она возвращает EOF,.если обнаруживается преждевременный конец файла.

Операторы

Оператор – единица выполнения программы. Оператор должен заканчиваться символом «точка с запятой» – «;». Любой оператор может быть помечен меткой. Метка состоит из имени и символа двоеточия – «:».

Метки описывать не надо.

Несколько операторов можно объединить в блоки. После блока «;» не ставится.

Операторы можно разделить на 3 основные группы:

1. Операторы присваивания;

2. Пустые операторы и блоки;

3. Операторы, начинающиеся с ключевого слова:

1) условные операторы;

2) операторы циклов;

3) операторы переходов.

Например:

а=13; – простое присваивание;

а+=2; – составное присваивание означающее а=а+2;

b−=3; – составное присваивание означающее b=b−3;

В одном выражении может быть несколько присваиваний, они

выполняются справа налево (i=j=k=l=0;).

Пустые операторы и блоки:

 

 

Блок – это составной оператор, состоит из фигурных скобок, помечающих начало блока операторов и конец данного блока. Все, что объединено в блок, – синтаксически считается одним оператором.

Пустой оператор состоит только из «;» и ничего не выполняет.

Применяется для того, чтобы пометить меткой блок.

Например,

metka1 : ; {…}

Используется также в операторах цикла, когда действий нет, но по синтаксису оператор там должен быть.

Условный оператор if

Существуют две разновидности этого оператора:

1) if (условие) оператор1;

2) if (условие) оператор1;

else оператор2;

Если условие истинно, то выполняется оператор1. Если условие ложно, то в первом случае управление передается на следующий оператор после условия, а во втором – выполняется оператор2.

На месте оператора может стоять блок, если необходимо выполнить несколько действий.

 Оператор if может быть вложенным, причем else будет относиться к ближайшему по иерархии if.

Пример:

if (условие 1)

{if (условие 2) оператор1;}

else оператор2;

Условная операция

Условная операция является краткой записью оператора if. Формат операции:

Выражение 1 – проверяемое условие; может быть целого, плавающего типа или указатель.

Если выражение 1 истинно, то выполняется выражение 2, если выражение 1 ложно, то выполняется выражение 3.

Пример: найти максимальное из двух значений и записать его в переменную max.

max=(a>b)?a:b;

Оператор цикла for

Формат оператора:

for(выражение1; выражение2; выражение3) оператор;

выражение1 – задает начальное значение для переменных; выполняется один раз вначале всего цикла,

выражение2условие выхода из цикла. Проверяется перед каждым возможным выполнением цикла. Если условие ложно, то цикл заканчивается,

выражение3 – обычно это модификация переменных, выполняется в конце каждой итерации.

Пример: for(i=1; i<=10; i++) оператор;

Возможности оператора for:

1. Можно считать как в порядке убывания, так и возрастания переменной.

2. Шаг параметра может быть любым. for(i=0; i<=2; i+=0.23) оператор;

3. Можно вести подсчет с помощью символов.

for(char ch=’a’; ch<=’z’; ch++)

printf(“Величина кода ASCII для символа %с равна %d \n”,ch,ch);

4. В качестве выражения 3 можно использовать любое правильное выражение. Оно будет выполняться в конце каждой операции.

for(x=1; y<=75; y=x++*2) printf(“x=%f y=%f \n”,x,y);

5. Можно пропускать одно или более выражений, но при этом сохранять символ «;».

Пример:

for(a=3; a<=25;) a=a*3;

for(; ;) {тело цикла} – это бесконечный цикл, пустое условие считается истинным.

6. Выражение 1 не обязательно должно инициализировать параметры цикла. Главное, что оно выполняется один раз при начале цикла.

7. Выражений 1 и выражений 3 в цикле может быть несколько. Они соединяются с помощью операции «,». Операция «,» объединяет несколько выражений в одно и гарантирует, что самое левое будет выполняться первым.

Пример: for(i=0,j=0; i<j; i++, j−−) оператор;

Оператор цикла while

Оператор цикла while называется циклом с предусловием и имеет следующий формат:

Формат оператора:

while (выражение) оператор;

Тело цикла выполняется пока выражение истинно. Если тело цикла состоит из нескольких операторов, то используется блок – {…}.

Пример бесконечного цикла:

while(1) { printf(“Это никогда не кончится\n”); }

Пример вывода квадратов чисел от 1 до 10:

i=1;

while(i<=10) { printf(“%2d%4d\n”,i,i*i); i++;}

 

Оператор цикла вида

for (выражение-1; выражение-2; выражение-3) тело ;

может быть заменен оператором while следующим образом:

      выражение-1;      while (выражение-2)      { тело         выражение-3;      }

 

 

Оператор цикла do

Оператор цикла do while называется оператором цикла с постусловием и используется в тех случаях, когда необходимо выполнить тело цикла хотя бы один раз. Формат оператора имеет следующий вид:

do тело while (выражение);

 

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

 Если выражение истинно, то тело цикла опять выполняется, а если ложно, то осуществляется выход из цикла.

Пример вывода квадратов чисел от 1 до 10:

i=1;

do {

printf(“%2d%4d\n”,i,i*i);

i++;

}while(i<=10);

Операторы переходов

1.Переход по метке – gotoметка.

Пример:

goto m1;

m1:; {… или m1: оператор;

Переход по метке возможен только внутри блока, функции.

2. Оператор продолжения – continue. Оператор вызывает остановку текущей итерации цикла и вызывает новую итерацию.

Пример (вывод четных чисел от 0 до 100):

for (i=0; i<100; i++)

{if (i%2) continue;

printf (“%d\n”, i) ;}

4. Оператор разрыва – break. Используется в операторах цикла и в операторе переключателе. Приводит к выходу из конструкции. Если используются вложенные циклы, то происходит выход из самой внутренней.

Оператор «переключатель»

Этот оператор предназначен для организации выбора одного из множества вариантов. Формат оператора:

Switch (выражение)

{ case метка 1: оператор;

. . .

case метка N: оператор;

default: оператор;

}

Выражение может быть одним из основных типов (лучше целые или символьные константы). Каждая ветвь помечается словом «case», и рядом с ним стоит метка. Значение выражения сравнивается с меткой, и если они совпали, выполняется оператор. Если совпадений с ветками не произошло, то выполняется ветвь default.

Одна ветвь может быть помечена сразу несколькими метками:

case м1:

case м2:

case м3: оператор;

Операторов в ветви может быть несколько, и их не нужно брать в блок за исключением default.

Пример: case м10:оператор1;

оператор2;

оператор3;

case м11:

Если произошло совпадение по метке, то далее будут выполнены все операторы, начиная с указанного оператора и до default. Поэтому в конце каждой ветви ставится оператор «break».

 

 

switch (выражение)

{ case M1: оператор; break;

. . .

case MN: оператор; break;

default: оператор;

}

Пример: Фрагмент программы выполнения операции над числами по заданному знаку. Считаем, что знак операции хранится в переменной  «sign», а числа в x и y.

switch (sign)

{case ‘-‘: z=x-y; break;

case ‘+’: z=x+y; break;

case ‘*’: z=x*y; break;

case ‘/’: z=x/y; break;

default: printf(“Неизвестная операция !\n”);

}

 

 

int i=2; switch (i)    {     case 1: i += 2;     case 2: i *= 3;     case 0: i /= 2;     case 4: i -= 5;     default: ; }

Выполнение оператора switch начинается с оператора, помеченного case 2. Таким образом, переменная i получает значение, равное 6, далее выполняется оператор, помеченный ключевым словом case 0, а затем case 4, переменная i примет значение 3, а затем значение -2. Оператор, помеченный ключевым словом default, не изменяет значения переменной.

Оператор return

Оператор return завершает выполнение функции, в которой он задан, и возвращает управление в вызывающую функцию, в точку, непосредственно следующую за вызовом. Функция main передает управление операционной системе. Формат оператора:

return [выражение] ;

Значение выражения, если оно задано, возвращается в вызывающую функцию в качестве значения вызываемой функции. Если выражение опущено, то возвращаемое значение не определено. Выражение может быть заключено в круглые скобки, хотя их наличие не обязательно.

Если в какой-либо функции отсутствует оператор return, то передача управления в вызывающую функцию происходит после выполнения последнего оператора вызываемой функции. При этом возвращаемое значение не определено. Если функция не должна иметь возвращаемого значения, то ее нужно объявлять с типом void.

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

Пример:

   int sum (int a, int b)    { renurn (a+b); }

Функция sum имеет два формальных параметра a и b типа int, и возвращает значение типа int, о чем говорит описатель, стоящий перед именем функции. Возвращаемое оператором return значение равно сумме фактических параметров.

Пример:

void prov (int a, double b) { double c;    if (a<3) return;    else if (b>10) return;         else { c=a+b;                if ((2*c-b)==11) return;               } }

В этом примере оператор return используется для выхода из функции в случае выполнения одного из проверяемых условий.

 


Дата добавления: 2018-08-06; просмотров: 371; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!