русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Оператор безусловного перехода goto


Дата добавления: 2013-12-24; просмотров: 799; Нарушение авторских прав


Операторы передачи управления.

Вложенные циклы.

Тело (код) цикла может в свою очередь включать в себя другие циклы. Такие циклы называют вложенными. Вложенные циклы необходимы, если по смыслу задачи для каждой итерации внешнего цикла нужно выполнить несколько итераций внутреннего.

 

Пример.

Для X, меняющегося от a до b с шагом h, вычислить:

1)

2)

 

Программа может иметь вид:

 

#include<stdio.h>

#include<conio.h>

#include<iostream.h>

#include<math.h>

void main(){

double a,b,h,x,y,s,f;

int k,n,i;

cout<<"Vvedite a,b,h,n: ";

cin>>a>>b>>h>>n;

 

for(x=a; x<=b+0.000001; x+=h){

y=3*x*(exp(6*x)+exp(-6*x));

 

for(k=s=0; k<=n; k++){

 

// Делаем 2К итераций для вычисления (2К)!

for(i=f=1; i<=2*k; i++)

f*=i;

 

s+=pow(6*x, 2*k+1)/f;

}

printf("x=%5.2lf y=%12.8lf s=%12.8lf\n", x,y,s);

}

getch();

}

 

 

Здесь имеется 3 вложенных друг в друга цикла: для каждого Х переменная К будет меняться от 0 до N ; а для каждого К переменная i будет меняться от 1 до 2К для вычисления факториала 2К.

 

 


 

Формально к операторам передачи управления относятся:

– оператор безусловного перехода goto;

– оператор перехода к следующему шагу (итерации) цикла continue;

– выход из цикла, либо из оператора switchbreak;

– оператор возврата из функции return.

 

В языке Си предусмотрен оператор goto, общий вид которого:

goto метка ;

Он предназначен для передачи управления оператору, помеченному указанной меткой. Метка представляет собой идентификатор с символом «двоеточие» после него, например, пустой помеченный меткой m1 оператор:



m1: ;

 

Циклы и переключатели можно вкладывать вдруг в друга, и наиболее характерный оправданный случай использования оператора goto – выполнение прерывания (организация выхода) из вложенных циклов. Например, при обнаружении грубых смысловых ошибок необходимо выйти из двух (или более) вложенных циклов (где нельзя использовать непосредственно оператор break, т.к. он прерывает только самый внутренний цикл):

for (...)

for (...) {

...

if (ошибка) goto error;

}

...

error: операторы для устранения ошибки;

 

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

Не рекомендуется, однако, совершать с помощью оператора goto переходы внутрь цикла из-за его пределов:

 
 


goto HHH;

do{

i++;

HHH:

}while(i<5);

 

а также делать переходы, обходящие объявление переменных:

 
 


goto YYY;

int k;

YYY:

 

т.к. компилятор не всегда способен правильно "понять" такую программу, что может привести к ошибкам как во время компиляции, так и во время выполнения.

Оператор goto не способен осуществлять переход из одной функции в другую.

Заметим также, что в некоторых организациях существует отрицательное отношение к оператору goto вообще. Причины этого и других подобных ограничений будут рассмотрены в теме "Стиль программирования".

 



<== предыдущая лекция | следующая лекция ==>
Оператор цикла с предусловием и коррекцией for | Советы по программированию


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.299 сек.