Инструкция goto

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

Лекция 6

Алгоритмы решения многих задач являются циклическими, т.е. для достижения результата определенная последовательность действий должна быть выполнена несколько раз. Циклом называется группа инструкций, повторяющихся многократно с разными данными. Например, программа контроля знаний. Для циклов применяются инструкции: goto, for, while, do while.

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

Инструкция goto используется следующим образом:

В коде программы создается метка с именем (например, M).

Организуется переход на эту метку инструкцией goto M.

Имя метки M в коде обязательно должно заканчиваться двоеточием (:). Оно указывает на точку в программе, с которой будет выполняться программа после использования инструкции goto.

Обычно инструкция goto привязывается к условию.

Пример. Используя цикл (метка M - начало), написать программу, в которой в консоль выводится последовательность чисел.

public static int Main()

{

int i = 0;

M: Console.WriteLine("i= {0} ", i);

i = i + 1;

if (i < 10) goto M;

Console.ReadKey();

}

}

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

Задача1. Вычислить на ЭВМ значения функций

при а=1.3, b=1.29, t = [ 0.1… 2.2], t изменяется в диапазоне от 0.1 до 2.2 с шагом h=0.3.

Организовать вывод значений аргумента и вычисленного значения функции в виде таблицы с заголовком.

 
 


static void Main(string[] args)

{

double tn = 0.1, tk = 2.2, h = 0.3, t=0.1, x, s;

const double a = 1.3, b = 1.29;

Console.WriteLine("Таблица расчета функции s");

Console.WriteLine();

t = tn;

M: x = a * t;

if (x < 1) s = x + b;

else if (x == 1) s = Math.Cos(x);

else s=Math.Exp(x)*Math.Cos(x);

Console.WriteLine(" *********************** ");

Console.WriteLine(" * x= {0,4} * s= {1,6:f} *",x,s);

t=t+h;

if (t<=tk) goto M;

Console.WriteLine(" *********************** ");

Console.ReadKey();

}

 
 



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: