рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Циклы по условию

Циклы по условию - раздел Программирование, Основы алгоритмизации и объектно-ориентированного программирования Циклы По Условию Необходимо Организовывать, Когда Количество Повторени...

Циклы по условию необходимо организовывать, когда количество повторений цикла неизвестно и в ряде случаев является искомой величиной при решении задачи. Средства языка C# для организации циклов по условию приведены в п. 1.1.4.

Пример 2.8. Определить количество (n) членов арифметической прогрессии

,

сумма которых впервые превысит заданное число р.

На каждом шаге алгоритма нужно добавлять к сумме s очередной член m = a + i´h (s = s + m), i = 1, 2, ..., но при этом перед каждым прибавлением очередного члена проверять условие s £ p. Как только в первый раз условие не будет выполнено, т.е. s > p, необходимо выйти из цикла.

Далее приводится программа для решения задачи при a = 2, h = 3, p = 41. В программе текущее значение номера члена суммы обозначено через n. Значение этой переменной, при котором впервые оказалась s > p, и будет результатом:

int s = 0, n = 0, m;

const int a = 2, h = 3, p = 41;

while (s <= p)

{

m = a + n * h;

s = s + m;

n = n + 1;

}

//вычитается 1, прибавленная после

//последнего изменения суммы.

n = n - 1;

Console.WriteLine("{0:d}", n);

Console.ReadKey();

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

int s = 0, n = 0, m;

const int a = 2, h = 3, p = 41;

do

{

m = a + n*h;

s = s + m;

n = n + 1;

} while (s <= p);

n = n - 1;

Console.WriteLine("{0:d}", n);

Console.ReadKey();

Замечание. Член суммы m можно было бы вычислять рекуррентно: m = m + h, задав до начала цикла m = a (в программу при этом нужно внести и некоторые другие изменения, которые рекомендуется выполнить самостоятельно).

Пример 2.9. Вычислить при x = 0,5. Суммирование прекратить, когда очередной член суммы будет меньше заданного ε = 0,0001.

double x = 0.5;

const double eps = 0.0001;

double s = 0, a;

int n = 1;

do

{

a = Math.Cos(n*x) / n;

s = s + a;

n = n + 1;

} while (Math.Abs(a) > eps);

Console.WriteLine("Сумма равна {0:f4}", s);

Console.ReadKey();

Пример 2.10. Методом итераций найти корень уравнения на отрезке [–1, 0,3] с точностью ε = 0,0001, принимая за начальное приближение x0 = –0,4 и вычисляя последовательно , i = 1, 2, 3, …, пока не будет выполнено условие .

При программной реализации метода итераций нет необходимости в использовании переменных с индексами. Для организации вычислительного процесса необходимо одновременно иметь в памяти значения лишь двух последовательных приближений (обозначим их х0 и х1). Следующее приближение х1 получается из предыдущего х0. Если условие достижения точности аbs(х1–х0)£ eps не выполняется, то следует переслать значение х1 в переменную х0 (х0 = х1) и получить в х1 следующее приближение.

При организации цикла проверку условия удобно осуществлять после первого прохождения цикла, т.е. использовать цикл do … while:

double x0 = -0.4;

const double eps = 0.0001;

double x1, d;

do

{

x1 = 0.5 * (Math.Sin(x0 * x0) - 1);

d = Math.Abs(x1 - x0);

x0 = x1;

} while (d >= eps);

Console.WriteLine("Корень равен {0:f4}", x1);

Console.ReadKey();

Пример 2.11. Вычислить частное p и остаток q от деления двух натуральных чисел r и t, не используя операцию деления. Число r можно представить в виде . Будем последовательно вычитать t из r и подсчитывать количество вычитаний в переменной p. Значение q – результат последнего вычитания, когда в первый раз будет выполнено условие .

int r, t, q, p = 0;

r = 26;

t = 8;

q = r;

while (q >= t)

{

q = q - t;

p = p + 1;

}

Console.WriteLine("Частное {0:d} Остаток {1:d}", p, q);

Console.ReadKey();

Здесь используется цикл с проверкой условия до первого выполнения тела цикла (что важно), так как возможен случай, когда r < t, и тело цикла не должно выполняться ни разу.

Пример 2.12. Корабль должен преодолеть путь в 3000 км. В первый день он прошел 200 км. Каждый следующий день он будет проделывать путь на 5 % больше, чем в предыдущий день. Через какое время он прибудет в порт назначения?

Обозначим путь одного дня через р. Вначале р = 200. Путь следующего дня вычисляется как р = р + 0.05р = 1.05р. Это значение прибавляем к суммарному пути s: s = s + р. Количество дней обозначим через n и будем увеличивать его каждый раз на 1:

double s = 0.0, p = 200.0;

int n = 0;

while (s < 3000)

{

s = s + p;

n = n + 1;

p = p * 1.05;

}

Console.WriteLine("{0:d}", n);

Console.ReadKey();

– Конец работы –

Эта тема принадлежит разделу:

Основы алгоритмизации и объектно-ориентированного программирования

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ... Кафедра инженерной кибернетики Т В Куренкова Г И...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Циклы по условию

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Переменные. Типы данных
C# имеет две разновидности типов: типы значений и ссылочные типы. Переменные, основанные на типах значений, содержат непосредственно значения. Переменные ссылочных типов сохраняют ссылки (адреса в

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

Порядок вычисления выражения в программе
1. Вычисляется Cos(x) обращением к методу Cos(x)класса Math (обозначим результат через p1). 2. Вычисляется 6 + p1 (обозначим результат этой операции через p2). 3. Вычисляется x &a

Ввод данных
Ввод данных осуществляется следующим образом: из входного потока при помощи метода ReadLine (класса Сonsole) считывается строка символов. Ее значение присваивается какой-либо переменной типа string

Вывод данных
Вывод данных осуществляется с использованием метода WriteLine (или Write) (класса Сonsole). После выполнения WriteLine производится перевод строки и последующий вывод происходит в новую строку. Пос

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

Вложенные циклы
Пример 2.13. Вычислить при x, изменяющемся в пределах от 0,1 до 1 с шагом 0,05. Вначале ограничимся вычисле

Одномерные массивы и алгоритмы их обработки
Все массивы должны быть объявлены и инициализированы перед их использованием. При объявлении массива нужно указать тип элементов массива (элементы массива могут быть любых типов), далее следуют пус

Работа с массивами как с объектами
В C# массивы являются объектами (экземплярами). Класс Arrayпредоставляет методы для создания, изменения, поиска и сортировки массивов, т.е. выступает в роли базового класса для все

Работа с матрицами
Матрица – это двухмерный массив, который можно представить себе как совокупность строк (или совокупность столбцов). Положение элемента в массиве определяется двумя индексами: номером строки

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

Использование массивов в качестве параметров
Массив является ссылочным типом и если массив является параметром метода, то передача его всегда осуществляется по ссылке, независимо от наличия ключевого слова ref. Поскольку массивы являются ссыл

Работа с текстовыми строками
Текстовые строки – переменные типа string – могут содержать любое количество символов. Каждый символ представлен в кодировке UNICODE, предполагающей представление одного символа в 2 байтах п

Файлы данных (Пространство имен System.IO). Файлы и потоки
Файл данных – это совокупность (последовательность) компонент, имеющая имя, расположенная на внешнем носителе. Файлы могут быть объединены в каталоги (директории, папки), также имеющие имя.

Работа с элементом управления Button
Button – класс пространства имен System.Windows.Forms, представляет элемент управления Windows «Кнопка». 1. В меню «Вид» выберите команду «Панель элементов», чтобы открыть список элементов

Работа с элементом управления RichTextBox
Элемент управления Windows Forms RichTextBox используется для отображения, ввода и изменения текста (если необходимо, с форматированием). Методы этого класса предоставляют возможности, схожие с воз

Создание объекта Graphics пространства имен System.Drawing для рисования
Класс Graphics является основой интерфейса GDI+ (специальная библиотека). Этот класс непосредственно выполняет рисование прямых и кривых линий, геометрических фигур, вывод рисунков и текста.

Открытие существующего проекта
В меню «Файл» выберите команду «Открыть проект». Откроется окно «Открыть проект». В этом окне проект необходимо войти в папку ConsoleApplication1 (или другое имя, которое вы выбрали для консольного

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

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

Платформа Microsoft .NET Framework
Microsoft .NET технология предоставляет: 1) современный набор инструментальных средств для разработки программного обеспечения; 2) общеязыковую исполняющую среду, которая предоста

Таблицы встроенных типов
Таблица целых типов Тип Диапазон Размер sbyte От –128 до 127 8-разрядное целое число с

Региональные стандарты
Региональные стандарты выбираются как параметры установки пользователем при установке Windows. Платформа .NET Framework предоставляет широкие возможности для разработки международных прило

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги