Примеры программ с
Примеры программ с циклами
Количество просмотров публикации Примеры программ с циклами - 304
Пример 1. Вычислить и вывести на печать значения функции y = x+ex sin x , в случае если аргумент х изменяется от -1 до 2 с шагом 0,1.
Составим схему алгоритма (рис. 1).
Она работает следующим образом: в блоке 2 аргументу х присваивается начальное значение, равное -1, в блоке 3 вычисляется значение функции у при х = -1, в блоке 4 значения у и х выводится на экран. В блоке 5 аргумент получает приращение, ᴛ.ᴇ. увеличивается на 0,5, в блоке 6 выполняется проверка на достижения аргументом конечного значения, равного 2. В случае если аргумент х ещё не превысил конечное значение, то
управление передаётся блоку 3, в котором вычисляется новое значение функции у при новом значении х. В случае если значение х становится больше, чем 2, то вычисления прекращаются, конец программы.
По этому алгоритму можно составить четыре варианта программы.
Схема алгоритма:
Рисунок 1 Схема алгоритма
циклической программы
Программа, вариант 1
REM Цикл с оператором IF…THEN
CLS ' очистка экрана
х =-1 ' присвоение х начального значения
m: у =х + EXP(х)*SIN(х) ' вычисление у при хнач
PRINT "у =";у, "х ="; х ' вывод на экран у и х
х =х + 0.1 ' увеличение х на шаг 0,1
IF х <= 2 THEN m ' если х ещё меньше или равен хкон, то
END ' управление передаётся по метке m, если
' нет, то следующему оператору – END
В программе варианта 1 для организации цикла использован оператор условного перехода IF…THEN (что указано в комментарии – оператор REM).
Действие каждого оператора указано в комментариях под знаком апострофа (это невыполняемая часть программы, которая записывается только для программиста). Возврат в начало цикла организован передачей управления с помощью оператора условного перехода по метке m.
Вариант 2
REM Цикл с оператором FOR…NEXT
CLS ' очистка экрана
FOR х =-1 TO 2 STEP .2 ' задание параметров цикла: хнач, хкон, шага ∆х
у =х + EXP(х)*SIN(х) ' вычисление у в цикле
PRINT "у =";у, "х ="; х ' вывод на экран у и х
NEXT x ' возврат к началу цикла
END
Описание программы:
в операторе цикла FOR…задаётся первое значении х=-1, следующим оператором вычисляется значение функции у, затем оно распечатывается на экране (оператор PRINT) вместе со значением х, потом оператор NEXT x передаёт управление назад, оператору FOR…, где к величине х прибавляется шаг, т.е число 0,2, новое значение х составляет -0,8, в следующем операторе вычисляется значение у при х=-0,8, распечатывается, вновь производится возврат в оператор FOR…, вновь увеличивается аргумент х на 0,2 и становится равным 0,6 и т.д. Последний раз цикл выполнится при х=2, а потом, т.к. заданный интервал х[-1;2] уже просчитан, программа переходит к следующему оператору, ᴛ.ᴇ. END – конец программы.
Вариант 3
REM Цикл с оператором WHILE…WEND
CLS ' очистка экрана
х = -1 ' задание начального значения: хнач = -1
WHILE x <= 2 ' проверка условия: пока х ещё <= хкон = 2
у =х + EXP(х)*SIN(х) ' вычисление у в цикле
PRINT "у =";у, "х ="; х ' вывод на экран у и х
х = х + 0.2 ' увеличение х на шаг 0.2
WEND' возврат к началу цикла - WHILE…
END
Описание программы:
Начальное значение х = -1 задаётся до тела цикла WHILE…WEND,
затем в операторе WHILE проверяется достижение конца цикла х = 2. Поскольку х = -1 ещё меньше, чем 2, то программа переходит к следующему оператору, где вычисляется значение у при первом х = -1. затем оно и значение х распечатываются (на экране), потом значение х увеличивается на шаг (х = х + 0.1) и оператор WEND передаёт управление оператору WHILE, где снова проверяется, достигло ли новое значение х = -0,8 значения 2. Т.к. -0,8 ещё меньше 2, то вычисляется у при этом значении х = -0,8 ,распечатывается вместе с х, снова х увеличивается на шаг 0,2, затем WEND возвращает управление началу цикла, где WEND вновь проверяет х = -0,6 на достижение хкон = 2 и т.д.
Особенностью цикла является то, что он должна быть не выполнен ни разу, в случае если значение хнач пройдет проверку в операторе WHILE, ᴛ.ᴇ. окажется больше хкон.
Вариант 4
REM Цикл с оператором DO…LOOP
CLS ' очистка экрана
х = -1 ' задание начального значения: хнач = -1
DO
у =х + EXP(х)*SIN(х) ' вычисление у в цикле
PRINT "у =";у, "х ="; х ' вывод на экран у и х
х = х + 0.2 ' увеличение х на шаг 0.2
LOOP UNTIL x > 2 ' проверка превышения конца цикла х > 2
END
Описание программы:
До тела цикла вводится хнач= -1, потом следует оператор "Делать" – что именно: вычислять у, распечатывать его и аргумент х. Далее идёт проверка: делать петлю до того, как величина х станет больше хкон. В условии проверки должен стоять знак ">", чтобы цикл был просчитан и при последнем значении х = хкон. В случае если записать LOOP UNTIL x = 2, то последним значением х, ĸᴏᴛᴏᴩᴏᴇ будет до х = 2, является х = 1,8, ᴛ.ᴇ. при х = хкон= 2 цикл просчитан не будет. В случае если записать LOOP UNTIL x < 2, то все значения х окажутся меньше хкон и цикл просчитается только один раз, при х = хнач= -1, затем он увеличится на шаг и станет равным -0,8, но это значение является значением до х = 2, в связи с этим "петля" на слово DO делаться не будет. По этой причине, для того, чтобы цикл был
просчитан и при конечном значении аргумента х, в условии LOOP UNTIL должен быть только знак ">".
Структура программы такая же, как и для цикла WHILE…WEND, ᴛ.ᴇ. до тела цикла вводится начальное значение х = -1, а в теле цикла вычисляется и выводится у, а также задаётся приращение аргумента х = х + 0,1, но:
· проверка достижения хкон выполняется в конце цикла, в связи с этим он обязательно будет просчитан хотя бы один раз (при х = хнач),
· в условии проверки достижения конечного значения должен стоять знак ">", чтобы цикл был просчитан и при последнем значении аргумента.
Вариант 5
REM Цикл с оператором DO UNTIL…LOOP
CLS ' очистка экрана
х = -1 ' задание начального значения: хнач = -1
DO UNTIL x > 2 ' проверка превышения конца цикла х > 2
у =х + EXP(х)*SIN(х) ' вычисление у в цикле
PRINT "у =";у, "х ="; х ' вывод на экран у и х
х = х + 0.2 ' увеличение х на шаг 0.2
LOOP
END
Работа программы происходит также, как и в варианте 4, но, поскольку проверка конца цикла производится в его начале, то он тоже должна быть не выполнен ни разу (как и в цикле WHILE…WEND).
Пример 2 Вычислить с помощью оператора цикла и вывести на печать сумму всех значений у = sin3х, где х изменяется от 1 до 10 с шагом 0.1.
S =
referatwork.ru
Примеры программ на С++
Внимание! Это сайт переехал на www.simplecoding.org
Большинство программ в этом разделе (но не все) написаны с использованием объектно-ориентированного программирования. Примеры написаны с помощью Borland C++ Builder 5 или Visual Studio.NET (для примеров, в которых используется DirectX). Однако, это должно вам мешать использовать их с какой-либо другой средой разработки, т.к. все функции программ (кроме интерфейса) написаны в виде отдельных модулей и не зависят от VCL и MFC.
Совет: не пропускайте описание программы. Безусловно, исходного кода достаточно для того, чтобы разобраться в работе программы. Но в описании рассказывается о назначении отдельных файлов программы, и о взаимодействии её частей между собой.
- Простая логическая игрушка
- С этой игрой я познакомился, когда играл в "Космических рейнджеров" (это было задание в одном из квестов). Игра показалась мне интересной, и я решил написать свою версию. При этом мне захотелось добавить возможность регулирования уровня сложности >>>
- Путешествие коня
- Восемь ферзей
- Эта задача - одна из очень интересных шахматных головоломок. Нужно поставить восемь ферзей на пустой доске таким образом, чтобы ни один из них не "атаковал" другого >>>
- Крестики-нолики (DirectX)
- Эта игра известна всем, начиная с дошкольного возраста. Тем не менее, я до сих пор не видел её трехмерного варианта (может, плохо искал?). К тому же, мне давно хотелось написать полноценную 3D игрушку, и крестики-нолики показались мне достаточно подходящим вариантом. В общем, если вы интересуетесь программированием игр и библиотекой DirectX, читайте дальше >>>
P.S. Любые замечания или предложения, касающиеся этого сайта, статей и примеров, размещенных на нем, вы можете отправить лично мне по адресу [email protected], либо сообщить всем с помощью гостевой книги.
www.vova-prog.narod.ru
Студентам
Стандартные задачи на циклы
Ссылка на Wiki-страничку с алгоритмами на циклы
Простейшие алгоритмы
- Сумма целых чисел
- Произведение целых чисел
- Двойной факториал n!!=n*(n-2)*(n-4)*...*2 (или 1)
- Количество нечетных среди n введенных
- Защита от неверного ввода
- Табулирование функции f(x) на отрезке в [a,b] (цикл for)
- Табулирование функции f(x) на отрезке в [a,b] (цикл while)
Рекуррентные соотношения
- Вывод 10 первых степеней двойки
- Вывод всех двухзначных чисел, кратных 5
- Вывод n первых чисел Фибоначчи
- НОД(A,B) (алгоритм Евклида)
- Сумма цифр целого положительного числа
Максимумы и минимумы
- max из введенных чисел
- min из введенных чисел, удовлетворяющий условию
Суммирование рядов (конечных и бесконечных)
- Вычисление суммы конечного ряда ?(i=1..n) a^i/i!
- Вычисление суммы бесконечного ряда ?(i=1..?) (-1)^i * a^i/i!
Поиск значения
- Есть ли среди введенных число k?
- Есть ли среди введенных число k? (то же с использованием while)
- Является ли число N простым?
Другие алгоритмы
- Разложение числа на простые множители
- Вычисление значения многочлена в точке x (схема Горнера)
- Корень непрерывной функции на отрезке (метод половинного деления)
Стандартные задачи на одномерные массивы
Простейшие алгоритмы
- Вывод массива
- Заполнение массива случайными числами
- Инвертирование массива
- Поиск элемента по заданному значению
- Поиск с барьером
- Минимальный элемент и его индекс
Сдвиги, вставка, удаление
- Сдвиг влево
- Сдвиг вправо
- Циклический сдвиг вправо
- Удаление k-того элемента
- Вставка на k-тое место
Слияние упорядоченных и бинарный поиск в упорядоченном массиве
- Слияние двух упорядоченных в один упорядоченный
- Поиск в упорядоченном массиве
Сортировка массивов
- Сортировка выбором
- Пузырьковая сортировка
- Способ 1
- Способ 2
- Сортировка вставками
Использование процедурных типов в задачах на массивы
- Поиск по условию
- Количество по условию
- Условный минимум
- Удаление по условию
Файлы
- Создание текстового файла целых и подсчет суммы чисел в файле
- Создание текстового файла и преобразование каждой строки - все буквы к верхнему регистру
- Создание типизированного файла целых и вывод данных из него
- Возведение в типизированном файле всех элементов в квадрат
- Сортировка типизированного файла
Списки
Односвязные линейные списки
- Вставка в начало списка
- Удаление из начала списка
- Вставка после текущего узла
- Удаление после текущего узла
- Проход по списку
Двусвязные линейные списки
- Вставка в начало/конец списка
- Удаление из начала/конца списка
- Вставка перед/после узла
- Удаление текущего узла
- Проход по списку
- Слияние двух отсортированных списков
- Объединение двух списков
Рекурсия
- Рекурсивное вычисление факториала
- Рекурсивное вычисление минимума в массиве
- Рекурсивное вычисление чисел Фибоначчи с использованием вспомогательного массива
- Ханойские башни
- Быстрая сортировка
Деревья
Основные операции
- Создание бинарного дерева и его вывод
- Обходы бинарного дерева
- Поиск элемента в бинарном дереве
Поиск минимальной суммы от корня к листу
- Очевидный рекурсивный алгоритм
- Алгоритм перебора с возвратом
- Алгоритм перебора с возвратом + метод ветвей и границ
Бинарные деревья поиска
- Добавление элемента
- Вывод
- Поиск элемента
- Удаление элемента
Абстрактные типы данных. Контейнеры
Стек
- Реализация стека. Алгоритм вычисления выражения в ПОЛИЗ (польскую инверсную запись)
Очередь
- Реализация очереди. Вывод четных в прямом и нечетных в обратном порядке
Динамический массив
- Реализация динамического массива с примером использования
Множество
- Реализация множества с примером использования
Ассоциативный массив
- Реализация ассоциативного массива с примером использования
Контейнеры .NET
- Цикл по LinkedList с помощью LinkedListNode
- Цикл foreach по контейнерам List, LinkedList
- Цикл foreach по Dictionary
Объектно-ориентированное программирование
- Демонстрация наследования
- Демонстрация включения
- Демонстрация перехвата нескольких исключений
- Демонстрация полиморфизма
- Демонстрация реализации интерфейса
- Демонстрация ограничений на переметры шаблона
- Демонстрация использования интерфейса IComparable для сортировки контейнера.
Методы расширения
- Фильтрация с помощью Where
- Назад
- Вперёд
pascalabc.net