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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!