Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


О пользе циклов

Тип Реферат
Предмет Информатика и программирование
Просмотров
1448
Размер файла
17 б
Поделиться

Ознакомительный фрагмент работы:

О пользе циклов

.

Расскажу немного о циклах. Ведь почти не одна, даже очень простенькая программа, не обходится без циклов. Циклы позволяют выполнить одну или несколько строк кода несколько раз. Visual Vasic поддерживает следующие конструкции:

Do...Loop

For...Next

ForEach...Next

Конструкция Do...Loop.

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

1. Создайте на диске с: какой-нибудь текстовый файл (желательно несколько строк), допустим text.txt.

2. Впишите в модуль:

Sub Main()

объявляем переменную, которая принимает строки

Dim Linia As String

объявляем переменную, которая будет содержать весь текст

Dim AllText As String

Open "c:text.txt" For Input As #1 открываем файл text.txt для чтения

!!! запускаем цикл, который длится до тех пор, пока

не будет достигнут конец файла EOF ( End Of File) !!!

Do Until EOF(1)

Line Input #1, Linia вводим линию за линией в переменную Linia

записываем каждую новою линию + переход на новую строку

AllText = AllText + Linia + Chr(13) + Chr(10)

Loop

Close #1 закрываем файл

MsgBox AllText выводим на экран сообщение

End Sub

Это пример показал, что программист не знает КОГДА наступит конец файла, но задал условие прекратится как только конец файла будет достигнут. Теперь о том, как можно работать с этим циклом.

Во-первых, можно создавать конструкции со словами Until и While:

Do [Until | While] условие

Если установленно ключевое слово While, то цикл будет запускаться до тех пор, пока условие истинно, а Until "крутит" цикл пока условие ложно. Сейчас объясню. В нашем примере стоит

Do Until EOF(1)

т.е. пока EOF(1) = False цикл работает. Другими словами строки считываются пока НЕ достигнут конец файла. Можно поставить вместо этого это:

Do While Not EOF(1)

Теперь работа цикла ничуть не изменится. Ведь мы хоть и поменяли условие, но цель оставили прежней! Not EOF(1) значит что EOF(1) ложно, конец файла не достигнут. А так как While работает только тогда, когда условие ложно, то цикл продолжает работать!

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

Do [Until | While] условие

так и в конец цикла

Loop [Until | While] условие

Разница состоит в том, что цикл может исполниться хотя бы один раз или не исполнится вообще. В нашем случае слово Until стоит в начале, значит если файл окажется пустым, то тут же будет достигнут конец файла, условие сразу станет ложным и цикл тут же перестаёт работать! Попробуйте теперь взять и перенести слова Until EOF(1) на один пробел от Loop. Запустите проект. Ага!!! Ошибка! Знаете почему? Потому что оператор Line Input# пытается считать строку в то время как конец файла уже достигнут. Цикл упустил этот момент, т.к. засечь он его может в конце, а до конца он не дойдёт. Приведу так же пример из моего примера в "Практике":

Do

с помощью InStr получаем местоположение искомого символа

если оно равно нулю, покидаем цикл

ReturnNumber = InStr(1, Stroka, Symbol): If _

ReturnNumber = 0 Then Exit Do

строке присваем все символы слева до искомого символа и справа

Stroka = Left(Stroka, ReturnNumber - 1) + _

Right(Stroka, Len(Stroka) - ReturnNumber)

Loop

Здесь невозможно воспользоваться ни Until, ни While, и вот почему: если ReturnNumber будет равно нулю, то, допустим, здесь

Left(Stroka, ReturnNumber - 1)

возникнет ошибка, т.к. минимальную длину функция Left понимает только 0, а здесь получается -1 (0 - 1)!!! Поэтому

Do Until ReturnNumber = 0

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

ReturnNumber = 1

ДА! И цикл откроется, сделае всё и как надо, но когда искомые символы кончатся и ReturnNumber снова будет равно нулю ПОСЛЕ проверки и поэтому опять возникает ошибка! Тогда ставим перед Loop

Until ReturnNumber = 0

в конец. И здесь опять та же самая беда - ReturnNumber будет равно нулю теперь ДО проверки и ОПЯТЬ ошибка!!! Остаётся одно - воспользоваться в нужном месте выходом из цикла Exit Do. Где это нужное место? А там где функцмя только узнает, что искомых символов больше нет, т.е. сразу после неё ставим условие:

If ReturnNumber = 0 Then Exit Do

КонструкцияFor...Next.

Итак, цикл For...Next это, наверное, самый простой и нужный цикл в программирований на Visual Basic. Его применяют, когда число повторений известно заранее. В отличии от цикла Do, в цикле For используется переменная, называемая переменной цикла или счётчиком цикла. Которая увеличивается или уменьшается на заданую величину при каждом повторении цикла. Самый-самый простой пример, который приводит везде, где приводится ;-) :

For x = 1 To 3 переменную x, равную 1, возводим до 3

Beep "бибикаем" ;-)

Next x идём в начало цикла

Visual Basic выполняет цикл For...Next в следующей последовательности:

1. Присваевает переменной х значение 1.

2. Сравнивает присвоеное значение икса и то, которое надо присвоить (3). Если х больше, либо равно трём прекращает своё выполнение, при условии, что заданные "шаги" (Step) не отрицательны.

3. Выполняет операторы в теле цикла.

4. У величивает переменную x на один, т.к. шаги не заданы.

5. Повторяет пункты со 2 по 4.

Ещё один пример (печатает на форме имена всех имеющихся шрифтов):

1. Создаём форму.

2. Открываем окно Code.

3. Выбираем событие Click

4. Вписываем:

Dim I As Integer объявляем меременную - счётчик

запускаем цикл столько раз, сколько имеется шрифтов

(Screen.FontCount возвращает кол-во всех шрифтов)

For I = 0 To Screen.FontCount

печатает каждое имя

Print Screen.Fonts(I)

Next

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

Кострукцин For Each...Next.

Цикл For Each...Next похож на цикл For...Next, но он повторяет группу операторов для каждого элемента из набора объектов или из массива. О его пользе судить я не могу, но могу только сказать, что мне он ещё ни разу не пригодился. Хотя я ничего полезного-то и не делал ;-)).

Короче, если Вам нужно изменить за раз все элементы массива или коллекции, Вы можете использовать этот цикл. Например вот код, который:

1. Создаёт массив.

2. Увеличивает все элементы на один.

Итак, пишем в модуль:

Sub Main()

Dim a(6) As Integer объявляем массив из шести ячеек

объявляем "универсальную" переменную, которую

используют как елемент массива или набора объектов

Dim Element As Variant

запускаем цикл столько раз, сколько всего ячеек в массиве а

For x = 0 To UBound(a)

a(x) = x присваеваем каждой ячейке значение

Debug.Print a(x) выводим на экран, только что полученое значение

Next

запускаем цикл For Each..Next, где будет изменяться Element в массиве а

For Each Element In a

Element = Element + 1 увелчиваем каждый элемент на один

Debug.Print Element вывод на экран увеличенный элемент

Next в начало цикла

End Sub

В окне Immediant появятся цифры от 0 до 6 - это бывшие значения массива а, и следом цифры от 1 до 7, а это новые значения, увеличенные на один.

И ещё один пример, где все объекты на форме двигаются в право. Но, во-первых, расскажу что такое Controls. Controls - это группа, где храняться все объекты формы. Набор Controls создаётся автоматически при открытии новой формы и пополняется при добавлении новых объектов.

Чтобы сослаться на какой-нибудь объект, нужно написать Controls(Index). Внимание! Важно знать, что Visual Basic хранит все объекты в обратном порядке их создания. Например, если у Вас на форме был создан Text1, потом Label1, а потом Combo1, то Combo1 будет иметь индекс 0, Label1 - 2, и Text1 будет иметь 3. Неудобно, не правда ли? А теперь пример:

1. Создайте форму.

2. На ней создайте кучу объектов.

3. Щёлкните два раза на форме и откройте окно Code.

4. Выберите событие Click.

5. Впишите следующее:

Private Sub Form_Click()

Dim Element As Variant

For Each Element In Controls

Element.Left = Element.Left + 100

Next Element

End Sub

Ну, вот и поползли все объекты влево. Только будьте осторожны, если вы будете кликать по объектам, а не по форме, они будут стоять как вкопанные.


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Тгу им. Г. Р. Державина
Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
star star star star star
РЭУ им.Плеханово
Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
star star star star star
ФЭК
Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Подогнать готовую курсовую под СТО

Курсовая, не знаю

Срок сдачи к 7 дек.

только что
только что

Выполнить задания

Другое, Товароведение

Срок сдачи к 6 дек.

1 минуту назад

Архитектура и организация конфигурации памяти вычислительной системы

Лабораторная, Архитектура средств вычислительной техники

Срок сдачи к 12 дек.

1 минуту назад

Организации профилактики травматизма в спортивных секциях в общеобразовательной школе

Курсовая, профилактики травматизма, медицина

Срок сдачи к 5 дек.

2 минуты назад

краткая характеристика сбербанка анализ тарифов РКО

Отчет по практике, дистанционное банковское обслуживание

Срок сдачи к 5 дек.

2 минуты назад

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

Лабораторная, Моделирование, математика

Срок сдачи к 10 дек.

4 минуты назад

Проектирование заготовок, получаемых литьем в песчано-глинистые формы

Лабораторная, основы технологии машиностроения

Срок сдачи к 14 дек.

4 минуты назад

2504

Презентация, ММУ одна

Срок сдачи к 7 дек.

6 минут назад

выполнить 3 задачи

Контрольная, Сопротивление материалов

Срок сдачи к 11 дек.

6 минут назад

Вам необходимо выбрать модель медиастратегии

Другое, Медиапланирование, реклама, маркетинг

Срок сдачи к 7 дек.

7 минут назад

Ответить на задания

Решение задач, Цифровизация процессов управления, информатика, программирование

Срок сдачи к 20 дек.

7 минут назад
8 минут назад

Все на фото

Курсовая, Землеустройство

Срок сдачи к 12 дек.

9 минут назад

Разработка веб-информационной системы для автоматизации складских операций компании Hoff

Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления

Срок сдачи к 1 мар.

10 минут назад
11 минут назад

перевод текста, выполнение упражнений

Перевод с ин. языка, Немецкий язык

Срок сдачи к 7 дек.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

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

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно