Меню
Разработки
Разработки  /  Информатика  /  Разное  /  Программирование на языке С. Условный переход. Циклы

Программирование на языке С. Условный переход. Циклы

Данная лекция является продолжением лекций по программированию на языке С.
02.10.2012

Описание разработки

Лекция 3. Ветвления. Условный оператор if. Циклы. Операторы цикла While  и Do…While.

Ветвления

Ветвление алгоритмов и программ в языке C записывается с помощью условного оператора if.

Условный оператор   if   имеет вид:

if (выражение) оператор S1 [else оператор S2]

В случае отсутствия конструкции else получим сокращенный условный оператор:

if (выражение) оператор S

Условие ветвления алгоритма и программы – выражение языка С (как в циклах). Значение выражения  служит условием выбора той или иной ветви программы или алгоритма. Если значение выражения ≠ 0, то условие истинно и выполняется оператор s1, иначе – оператор s2. Одна из ветвей может отсутствовать, тогда при нулевом значении выражения  оператор s пропускается (сокращенный условный оператор).

Задача. Вычислить значение величины y при следующих условиях:

              a*x2 + b2*x,          если a < 0

  y =       x – a*b,                если 0 ≤ a < 1

              1 + x,                   если a ≥ 1

/* Фрагмент программы для вычисления величины y                            

#include

#include

main()

{int a, x, y;

 scanf(“\%d\%d”,&a, &x);

if a<0 y=a*x*x+b*b*x;

else if a>=1 y=1+x;

else y=x-a*b;

printf (“y=\%d”, y);

getch();

return 0;

}

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

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

Оператор while – оператор цикла с предусловием имеет вид

while (выражение - Условие)

оператор S;

Сначала вычисляется выражение, значением которого должно быть целое число. Если  значение выражение ≠ 0, условие цикла истинно, иначе  - ложно. Оператор S повторяется ≥ 0 раз, пока истинно условие цикла (Усл). Если условие сразу ложно, то оператор не выполнится ни разу.

Повторяющаяся часть в схеме работы оператора называется телом цикла. Оператор s в теле цикла может быть простой или составной.

Составной оператор ограничивается фигурными скобками { }, состоит из одного или более операторов любого типа. Все операторы, кроме составного, завершаются ; (точкой с запятой).

 

 
  Если в теле цикла должно быть более одного простого оператора, то эти операторы нужно объединить в составной оператор (рис.1.).

while (Усл)
   S;

Рис.1. Составной оператор { }

Условия в циклах и ветвлениях задаются в виде целочисленного выражения языка С в скобках. Условие истинно, если значение выражения ≠ 0, ложно в противном случае.

Примеры условий:

while ( a>0 )         истинно, если а>0

while ( a )             истинно, если а ≠ 0

while ( a!=0 )        истинно, если а ≠ 0

while ( !a )            истинно, если а = 0

while ( a+b )         истинно, если а+b ≠ 0

сложные условия

while ( a && b )            истинно, если а ≠ 0 и b ≠0

while (a > 0 || b >0)         истинно, если a > 0 или b > 0 и т.п.

 

Задача. Составить программу табулирования функции

f(x)= 3+2x (шаг табулирования = 0.1).

/*  Программа 2. Табулирование функции (в стиле С)                */

#include

main ()

{ int n, i;                                 /* количество строк, номер строки*/

  float x;                                  /* текущее значение х                     */

   scanf (“\%f \%d”, &x, &n);

  printf (" X            F(X) ");

  i=1;

  while (i <= n)

  { printf(“ \%5.2f \%5.2f”, x, 3+2*x);  

     i =i + 1; x = x + 0.1;

  }

   return 0;

}

Тест. Вычислить 5 значений функции, начиная со значения  х = 0.2 с шагом 0.1.

Вход:          0.2  5

Выход:

                   X                          F(X)

0.2              3.40

0.3              3.60

0.4              3.80

0.5              4.00

0.6              4.20

Пояснения к программе.

1. Вводится начальное значение величины х и количество строк.

2. Выводится заголовок таблицы значений.

3. while - оператор цикла c предусловием. Позволяет повторить действия в { } n раз, т.е. вычислить и вывести n строк со значением функции. Переменная i – счетчик текущей строки.

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

При количестве повторений  n > 1 возможно использование цикла с постусловием.

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

do

   оператор S

while (выражение - Условие);

Оператор   S   повторяется  ≥ 1 раз,  пока истинно условие цикла (обязательно хотя бы один раз).

Содержимое разработки

Лекция 3. Ветвления. Условный оператор if. Циклы. Операторы цикла While и Do…While.

Ветвления

Ветвление алгоритмов и программ в языке C записывается с помощью условного оператора if.

Условный оператор if имеет вид:

if (выражение) оператор S1 [else оператор S2]

В случае отсутствия конструкции else получим сокращенный условный оператор:

if (выражение) оператор S

Условие ветвления алгоритма и программы – выражение языка С (как в циклах). Значение выражения служит условием выбора той или иной ветви программы или алгоритма. Если значение выражения ≠ 0, то условие истинно и выполняется оператор s1, иначе – оператор s2. Одна из ветвей может отсутствовать, тогда при нулевом значении выражения оператор s пропускается (сокращенный условный оператор).

Задача. Вычислить значение величины y при следующих условиях:

a*x2 + b2*x, если a

y = x – a*b, если 0 ≤ a

1 + x, если a ≥ 1

/* Фрагмент программы для вычисления величины y */

#include

#include

main()

{int a, x, y;

scanf(“%d%d”,&a, &x);

if a

else if a=1 y=1+x;

else y=x-a*b;

printf (“y=%d”, y);

getch();

return 0;

}

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

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

Оператор while – оператор цикла с предусловием имеет вид

while (выражение - Условие)

оператор S;

Сначала вычисляется выражение, значением которого должно быть целое число. Если значение выражение ≠ 0, условие цикла истинно, иначе - ложно. Оператор S повторяется ≥ 0 раз, пока истинно условие цикла (Усл). Если условие сразу ложно, то оператор не выполнится ни разу.

Повторяющаяся часть в схеме работы оператора называется телом цикла. Оператор s в теле цикла может быть простой или составной.

Составной оператор ограничивается фигурными скобками { }, состоит из одного или более операторов любого типа. Все операторы, кроме составного, завершаются ; (точкой с запятой).

Е

while (Усл)
{ S1;
S2;
}


сли в теле цикла должно быть более одного простого оператора, то эти операторы нужно объединить в составной оператор (рис.1.).

Р

while (Усл)
S;

ис.1. Составной оператор { }

Условия в циклах и ветвлениях задаются в виде целочисленного выражения языка С в скобках. Условие истинно, если значение выражения ≠ 0, ложно в противном случае.

Примеры условий:

while ( a0 ) истинно, если а0

while ( a ) истинно, если а ≠ 0

while ( a!=0 ) истинно, если а ≠ 0

while ( !a ) истинно, если а = 0

while ( a+b ) истинно, если а+b ≠ 0

сложные условия

while ( a && b ) истинно, если а ≠ 0 и b ≠0

while (a 0 || b 0) истинно, если a 0 или b 0 и т.п.


Задача. Составить программу табулирования функции

f(x)= 3+2x (шаг табулирования = 0.1).

/* Программа 2. Табулирование функции (в стиле С) */

#include

main ()

{ int n, i; /* количество строк, номер строки*/

float x; /* текущее значение х */

scanf (“%f %d”, &x, &n);

printf ("\n X F(X) ");

i=1;

while (i

{ printf(“\n%5.2f %5.2f”, x, 3+2*x);

i =i + 1; x = x + 0.1;

}

return 0;

}

Тест. Вычислить 5 значений функции, начиная со значения х = 0.2 с шагом 0.1.

Вход: 0.2 5

Выход:

X F(X)

0.2 3.40

0.3 3.60

0.4 3.80

0.5 4.00

0.6 4.20

Пояснения к программе.

1. Вводится начальное значение величины х и количество строк.

2. Выводится заголовок таблицы значений.

3. while - оператор цикла c предусловием. Позволяет повторить действия в { } n раз, т.е. вычислить и вывести n строк со значением функции. Переменная i – счетчик текущей строки.

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

При количестве повторений n 1 возможно использование цикла с постусловием.

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

do

оператор S

while (выражение - Условие);

Оператор S повторяется ≥ 1 раз, пока истинно условие цикла (обязательно хотя бы один раз).



-80%
Курсы повышения квалификации

Применение облачных технологий в образовании

Продолжительность 72 часа
Документ: Удостоверение о повышении квалификации
4000 руб.
800 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Программирование на языке С. Условный переход. Циклы (0.04 MB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт