Visual Basic_учебник (Учебник по Visual Basic), страница 5

PDF-файл Visual Basic_учебник (Учебник по Visual Basic), страница 5 Практика расчётов на ПЭВМ (37020): Книга - 2 семестрVisual Basic_учебник (Учебник по Visual Basic) - PDF, страница 5 (37020) - СтудИзба2019-04-28СтудИзба

Описание файла

Файл "Visual Basic_учебник" внутри архива находится в папке "Учебник по Visual Basic". PDF-файл из архива "Учебник по Visual Basic", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 2 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 5 страницы из PDF

Цикл For … Next. Печать таблицызначений функцииПриведенная в конце предыдущего раздела программа рассчитываетпо формуле только одно значение. А что делать, если требуется посчитать таблицу значений, например, чтобы построить график функции?Решению подобных задач помогают программные циклы.Одно из предложений организации циклов – For … Next. Оно относится к числу составных, то есть включающих в себя несколько частей.Рассмотрим его синтаксис:For <переменная> [As <тип>] = <нач_знач> To <кон_знач> _[Step <шаг>]<блок предложений>Next [<переменная>]В этой конструкции первым должно быть предложение For, за нимследует блок предложений, составляющих тело цикла, а в завершении– предложение Next.Число повторений (итераций) определяют параметры <нач_знач> (начальное значение), <кон_знач> (конечное значение) и <шаг>.

Если онизаданы арифметическими выражениями, то, прежде всего, вычисляются значения этих выражений. Шаг указывать необязательно – в этомслучае по умолчанию он принимается равным единице. Другое значение шага нужно указывать явно.После того, как все три параметра определены, переменная циклаинициализируется начальным значением, и вступает в силу основнойэтап – итерации цикла, каждая из которых включает проверку на вы34ход, исполнение тела цикла и автоматическое прибавление величинышага к значению переменной.Вот как может выглядеть программа, печатающая таблицу значенийфункции:Option Strict OnModule Module1Sub Main()Dim y As DoubleConsole.BackgroundColor = ConsoleColor.DarkBlueConsole.Clear()Console.ForegroundColor = ConsoleColor.YellowConsole.WriteLine("---------------------------")Console.WriteLine(" xsqrt(2Pi)exp(-x^2/2)")Console.WriteLine("---------------------------")Console.ForegroundColor = ConsoleColor.WhiteFor x As Double = -1.5 To 1.5 Step 0.2y = Math.Sqrt(2*Math.PI) * Math.Exp(-x^2/2)Console.WriteLine("{0}{1}", x, y)Next xConsole.ReadLine()End SubEnd ModuleВ данном случае переменная цикла обозначена x, в качестве типа выбран Double, начальное значение, конечное значение и шаг – числовые константы.

Тело цикла состоит из двух предложений: первое осуществляет вычисление очередного значения функции и присвоениеэтого значения переменной y, второе – печать строки таблицы.Проверка на выход - это сравнение текущего значения переменнойцикла с конечным значением. В нашем примере начальное значениепеременной цикла меньше конечного, шаг – положительное число.Поэтому, по правилам конструкции For … Next, на каждой итерациизначение x будет увеличиваться, и цикл повторяться до тех пор, покатекущее x меньше либо равно заданного конечного значения. Кактолько выполнится условие «строго больше», произойдет выход из35цикла - а именно переход к следующему за Next предложению программы.Наберите и запустите приведенную выше программу печати таблицызначений функции, чтобы проверить на практике, как работает цикл, иосмыслить результаты.

В девятой строке таблицы вместо ожидаемогоправильного значения 0,1 напечатано 0,0999999999999998 (ещеодно напоминание нам о том, что операции с числами типа Doubleпроизводятся с ограниченной точностью). Это отражается не толькопри выводе числовых результатов, но может сказаться и на исполнении For … Next. Действительно, если, последовательно прибавляяшаг к начальному значению, мы из-за ограниченной точности вычислений получим не строго конечное значение, а число, хотя бы немногоего превосходящее, то сравнение «меньше, либо равно» в начале последней итерации даст отрицательный результат.

Таким образом, телоцикла будет выполнено на один раз меньше, чем должно было бы. Замените в программе значение шага для переменной цикла на 0.1 ипосмотрите на получившуюся таблицу. Соответствует ли аргумент впоследней строке заданному конечному значению?Ликвидировать вероятность подобных ошибок можно переходом ктипу Integer для переменной цикла – с целыми числами все вычисления производятся точно. В качестве примера несколько лучшего стиля программирования предлагаем разобрать другую программу дляпечати таблицы функции.36Option Strict OnModule Module1Sub Main()Dim x, y As DoubleDim xMin As Double = -1.5Dim xMax As Double = 1.5Dim dx As Double = 0.2Console.WriteLine(" xsqrt(2Pi)exp(-x^2/2)")For i As Integer = 0 To CInt((xMax - xMin) / dx)x = xMin + i * dxy = Math.Sqrt(2*Math.PI) * Math.Exp(-x^2/2)Console.WriteLine("{0}{1}", x, y)Next iConsole.ReadLine()End SubEnd ModuleНаряду с рассмотренными примерами, правилами VB вполне допустимы конструкции For … Next, в которых начальное значение переменной цикла больше конечного.

Попробуем для только что «успешной»программы просто поменять местами начальное и конечное значенияпеременной цикла:For i As Integer = CInt((xMax - xMin) / dx) To 0Увы, блок предложений внутри цикла в этом случае не будет выполненни разу.

Причина в том, что шаг в таком варианте мы по-прежнему незадавали, а, значит, он остался равным единице. Если в конструкцииFor … Next начальное значение переменной цикла больше конечного, а шаг положителен, то тело цикла не будет выполнено ни разу, программа сразу перейдет к выполнению предложения, следующему заNext. Если же шаг для этого случая задать правильно – отрицательнымзначением – то на каждой итерации переменная цикла будет уменьшаться, а условием продолжения цикла станет для нее «больше илиравно» конечного значения. Для проверки сказанного внесите в предложение For корректные изменения:37Option Strict OnModule Module1Sub Main()Dim x, y As DoubleDim xMin As Double = -1.5Dim xMax As Double = 1.5Dim dx As Double = 0.2Console.WriteLine(" xsqrt(2Pi)exp(-x^2/2)")For i As Integer = CInt((xMax - xMin)/dx) To 0 _Step -1x = xMin + i * dxy = Math.Sqrt(2*Math.PI) * Math.Exp(-x^2/2)Console.WriteLine("{0}{1}", x, y)Next iConsole.ReadLine()End SubEnd ModuleУбедитесь в успешном выводе таблицы для заданного диапазона значений, но уже в убывающем порядке.Теперь поговорим о возможных вариантах описания переменной цикла.

В рассмотренных выше программах ее тип указывался явно в предложении For. Напомним, как это выглядело в самом первом нашемпримере:For x As Double = -1.5 To 1.5 Step 0.2Но переменную x вполне допустимо описать предложением Dim ещедо использования в предложении For, и тогда запись For станет «лаконичнее»:...Dim y As DoubleDim x As Double...For x = -1.5 To 1.5 Step 0.2...38Здесь x – обычная переменная подпрограммы Main, она может использоваться в любом предложении этой подпрограммы, в том числе впредложении For.Если же тип переменной указан прямо в предложении For, то эта переменная «создается» специально для использования внутри цикла, иее предложением Dim описывать не нужно. При этом и до For, и послесоответствующего ему Next данная переменная недоступна для другихпредложений программы.

Мы рекомендуем использовать именно этуформу задания счетчика цикла.Явно отметим строгое правило конструирования циклов – предложения, составляющие тело For … Next, не должны менять значение переменной цикла. Ее значение будет меняться в цикле автоматическина величину шага при каждом исполнении предложения Next.Кстати, в предложении Next указывать переменную цикла необязательно, хотя мы настоятельно рекомендуем это делать. По каким причинам? Как минимум, двум, тесно взаимосвязанным.

Во-первых, с указанием имени переменной цикла в предложениях Next программныйкод легче читается. Во-вторых, это элементарная перестраховка от ненужных ошибок при написании программы.В теле цикла могут быть составные предложения, в том числе конструкции For … Next со своими собственными переменными цикла.Требование языка VB состоит в том, что в качестве счетчика вложенного цикла нельзя использовать счетчик внешнего.

Но два следующихдруг за другом цикла могут использовать в качестве счетчика одну и туже переменную.39Глава 5. Тип String. Объекты. Ввод и выводтекстовой информацииНапомним, что типичное консольное приложение принимает на входтекстовую информацию, набираемую на клавиатуре, и производит вывод результатов вычислений в текстовом виде в консольное окно (см.рисунок 5).

В этой главе мы более подробно познакомимся с представлением и средствами манипулирования текстовой информацией, атакже со средствами ввода/вывода текста, предоставляемыми исполняющей системой Microsoft .Net Framework.Текстовые значения.

Тип StringТекстовая информация представлена в VB в виде строк – значений типа String. Строка представляет собой цепочку символов некоторойдлины. Элементами строки могут быть любые символы, определенныев стандарте UNICODE, например, буквы латинского, русского, греческого и других алфавитов, цифры, знаки препинания и математическихдействий, пробел.

Длина строки варьируется от нуля до несколькихмиллионов символов.Мы воспользовались словом строка для перевода английского термина string. Пожалуйста, будьте внимательны по отношению к этому слову. При описании расположения текста на экране, бумаге и т.п. в английском языке используют слово line. Но в русском ему тоже соответствует «строка». Чтобы преодолеть неоднозначность этого термина,следует более внимательно относиться к контексту.

Если речь идет обабстрактном компьютерном тексте, под строкой мы будем понимать целиком значение типа String. Если же речь идет об изображе-40нии конкретного текста, то значение типа String может расположиться и на нескольких «строках».В программах на VB строковые значения записываются при помощидвойных кавычек. Если требуется включить в строку сам символ двойной кавычки, используют специальное кодирование - в записи строкиуказывают два подряд символа кавычек.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5288
Авторов
на СтудИзбе
417
Средний доход
с одного платного файла
Обучение Подробнее