Задание на лабораторную работу

Разветвляющиеся (условные) алгоритмы

Не всем алгоритмам достаточно для выполнения конструкции следования. Рассмотрим следующий пример: Задание на лабораторную работу . Алгоритм решения этой задачи может быть следующим:

алг Функция нач

ввод х

если х=0 то f := 1 иначе f := .

рез f

кон

Эта управляющая конструкция носит название развилка (проверка условия, условная конструкция) –

еслиусловие тодействия при истинном условии иначедействия при ложном условии.

Условная конструкция в языке Си

Для организации ветвления алгоритма в Си используется оператор проверки условия if (логическоевыражение) {действия при истинном значении выражения}else {действия при ложном значении выражения}. Оператор else может отсутствовать, если это обусловлено алгоритмом.

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

— «И» (конъюнкция), в Си оператор , все логическое выражение считается истинным только в том случае, если истинны все простые выражения.

— «ИЛИ» (дизъюнкция), в Си оператор ||, все логическое выражение считается ложным только в том случае, если ложны все простые выражения.

Например, запишем следующее условие «Если переменная x меньше переменной y и переменная x меньше переменной z»: x

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

— Если x

if (x

{ printf(“Сумма == %d”,x+y);

x = 10;

}

— Если x не равно y вывести на экран соответствующее сообщение, в противном случае вывести на экран значения переменных переменную x увеличить в два раза.

if(x!=y)

printf(“Переменные имеют неравные значения”);

else {

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

x*=2;

}

3. Возможности функции scanf()

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

int y,n;

printf(“Введите значение переменной n: ”);

y = scanf(“%d”,n);

if (y!=1) {printf(“Введены неверные данные…\n ”);

system(“pause”);

exit(0);

}

else { …}

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

При одном вызове функции возможно ввести более одной переменной. В этом случае спецификаторы формата пишутся один за другим, без пробелов. Каждому спецификатору должен соответствовать свой адрес переменной. При этом scanf при успешном вводе возвращает количество успешно считанных полей. Например:

float x,y,z;

printf(“Введите значения переменных x,y и z: ”);

int m = scanf(“%f%f%f”,x,y,z);

После успешного выполнения программы значение переменной m примет значение 3.

Задание на лабораторную работу

Составить и записать алгоритм решения индивидуального задания с проверкой корректности данных. По составленному алгоритму написать программу на языке Си.

Лабораторная работа. Microsoft Office Excel 2007. Часть 1


Похожие статьи.

Понравилась статья? Поделиться с друзьями: