Главная » Просмотр файлов » 1629295403-b876e2087bddebea4bc9666fb2377a02

1629295403-b876e2087bddebea4bc9666fb2377a02 (846199), страница 31

Файл №846199 1629295403-b876e2087bddebea4bc9666fb2377a02 (С для чайников) 31 страница1629295403-b876e2087bddebea4bc9666fb2377a02 (846199) страница 312021-08-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 31)

. . ") ;C o n s o l e . R e a d () ,-classExample{publicvoidTestString(stringsTest){////if{Проверка,не нулевойбыть п е р в о й ! )(sTest == n u l l )лиConsole.WriteLine("sTestreturn;объект==(этапроверкадолжнаn u l l " ) ;}////////Мы знаем,что s T e s t не указывает на нулевой объект,но в с е еще может у к а з ы в а т ь на пустую с т р о к у .Проверяем,не указывает ли s T e s t на нулевую(пустую)строкуif(String.Compare(sTest,{11Console . WriteLine (return;Глава 7.

Функции функцийsTest"")-==0)ссылканапустуюстроку");165{}}// Строка не пустая, выводим ее} Console.WriteLine("sTest указывает на:'"+sTest +" ' " ) ;Функция T e s t S t r i n g O использует сравнение s T e s t = = n u l l для проверки, не нанулевой ли объект указывает ссылка. Для проверки, не указывает ли ссылка на пустуюстроку, функция T e s t S t r i n g () использует функцию C o m p a r e () (функция Com­p a r e () возвращает 0, если переданные ей строки равны. В главе 9, "Работа со стро­ками в С # " , вы более детально познакомитесь со сравнением строк).Вот как выглядит вывод этой программы на экран:Эта программа и с с л е д у е т функцию T e s t S t r i n g OПередача нулевого объекта:sTest == n u l lПередача пустой строки:s T e s t - ссылка на пустую с т р о к уПередача реальной строки:sTest указывает на:'test string'Нажмите < E n t e r > д л я з а в е р ш е н и я п р о г р а м м ы .

. .Определение функции без возвращаемого значенияВыражение p u b l i c s t a t i c d o u b l e A v e r a g e О объявляет функцию A v e r a g e dкак возвращающую значение типа d o u b l e . Однако бывают функции, не возвращающиеничего. Ранее вы сталкивались с примером такой ф у н к ц и и — A v e r a g e A n d D i s p l a y О,которая выводила вычисленное среднее значение на экран, ничего не возвращая вызываю­щей функции. Вместо того чтобы опустить в объявлении такой функции тип возвращаемо­го значения, в С# указывается v o i d :publicvoidAverageAndDisplay(double,double)Ключевое слово v o i d , употребленное вместо имени типа, по сути, означает отсут­ствие типа, т.е. указывает, что функция A v e r a g e A n d D i s p l a y () ничего не возвраща­ет вызывающей функции.

(В С# любое объявление функции обязано указывать возвра­щаемый тип, даже если это v o i d . )Функция, которая не возвращает значения, программистами называется voidфункцией, по использованному ключевому слову в ее описании.Функции, не являющиеся v o i d - ф у н к ц и я м и , возвращают управление вызывающейфункции при выполнении оператора r e t u r n , за которым следует возвращаемое вызы­вающей функции значение. Поскольку v o i d - ф у н к ц и я не возвращает никакого значе­ния, выход из нее осуществляется посредством оператора r e t u r n без какого бы то нибыло значения либо (по умолчанию) при достижении закрывающей тело функции фи­гурной скобки.Рассмотрим следующую функцию D i s p l a y R a t i o ( ) :publicclassExample{166Часть III.

Объектно-основанное программированиеpublic{//ifstaticvoidDisplayRatio(doubledoubleЕсли знаменатель( d D e n o m i n a t o r ==равен0.0)dNumerator,dDenominator)0...{// . . . в ы в е с т и сообщение об ошибке и в е р н у т ь// у п р а в л е н и е вызывающей функции . . .C o n s o l e . W r i t e L i n e ( " З н а м е н а т е л ь не может быть// Выход из функцииreturn;нулем");}// Эта ч а с т ь функции в ы п о л н я е т с я т о л ь к о в том с л у ч а е ,// к о г д а з н а м е н а т е л ь не р а в е н нулюdouble dRatio = dNumerator / dDenominator;Console.WriteLine("Отношение " + dNumerator+ " к " + dDenominator+ " равно " + d R a t i o ) ;} // Если з н а м е н а т е л ь не р а в е н нулю, выход из функции}// в ы п о л н я е т с я з д е с ьФункция D i s p l a y R a t i o () начинает работу с проверки, не равно ли значение d D e ­n o m i n a t o r нулю.Если значение d D e n o m i n a t o r равно нулю, программа выводит сообщение обошибке и возвращает управление вызывающей функции, не пытаясь вычислитьзначение отношения.

При попытке вычислить отношение произошла бы ошибкацеления на 0 с аварийным остановом программы в результате.Если значение d D e n o m i n a t o r не равно нулю, программа выводит на экран значениеотношения. При этом закрывающая фигурная скобка после вызова функции W r i t e ­L i n e () является закрывающей скобкой функции D i s p l a y R a t i o () и, таким обра­зом, представляет собой точку возврата из функции в вызывающую программу.Взгляните на любое консольное приложение в этой книге.

Выполнение программывсегда начинается с функции M a i n ( ) . Рассмотрим аргументы в следующем объявлениифункции M a i n ( ) :publicstaticvoidMain ( s t r i n g []args){//}...Исходный т е к с т программы...Функция M a i n () — статическая функция класса P r o g r a m , определенная Visual Stu­dio AppWizard. Она не возвращает значения и принимает в качестве аргументов массивобъектов типа s t r i n g .

Что же это за строки?Для запуска консольного приложения пользователь вводит имя программы в команд­ной строке. При необходимости он может ввести в этой же строке после имени програм­мы дополнительные аргументы. Вы видели это при использовании команд наподобиеcopy m y F i l e С : \ m y D i r , копирующей файл m y F i l e в каталог С : \ m y D i r .Глава 7. Функции функций167Как показано в приведенной далее демонстрационной программе D i s p l a yA r g u m e n t s , массив объектов s t r i n g , передаваемый в качестве параметрав функцию M a i n ( ) , и представляет собой аргументы текущего вызова программы.//DisplayArgumentsusing-выводаргументов,переданныхпрограммеSystem;namespaceDisplayArguments{class{Testpublic// Класс,содержащий функцию// называться Programs t a t i cvoidMain(string[]Main(),необязанargs){//Количество аргументовC o n s o l e .

W r i t e L i n e ( " У программыargs.Length);// Это а р г у м е н т ы :i n t nCount = 0;foreach(stringargin{0}аргументов",args){Console.WriteLine("АргументnCount++,{о}arg);{l}",}/ / Ожидаем п о д т в е р ж д е н и я п о л ь з о в а т е л яConsole.WriteLine("Нажмите <Enter> для " +"завершения программы...");}}Console.Read();r e t u r n 0;////////Другие программы,запущенные вконсольном окне,могут проверитьвозвращаемое значение;ненулевоез н а ч е н и е обычно о з н а ч а е т ошибкуэтоОбратите внимание, что функция M a i n ( ) может возвращать значение несмотря 4то, что она объявлена как v o i d , как и везде в настоящей книге. Однако она непременнодолжна быть объявлена как s t a t i c .Программа начинает свою работу с вывода длины массива a r g s . Это значение соот­ветствует количеству аргументов, переданных функции.

Затем программа циклически|проходит по всем элементам массива a r g s , выводя каждый его элемент на экран.Ниже приведен пример вывода данной программы (в первой строке показан вид ко]мандной строки, введенной при запуске программы):DisplayArguments/сarglarg2У программы 3 аргументовАргумент 0 /сАргумент 1- arglАргумент 2- arg2Нажмите<Enter>длязавершенияпрограммы...Как видите, имя самой программы в список аргументов не входит (для того чтобыдинамически выяснить имя программы, имеется другая функция). Пользователь ввел тра168Часть III. Объектно-основанное программирова,параметра, и все они являются строками. Первый параметр — "/ с " . Обратите внимание,что он обрабатывается и передается в массив a r g s точно так же, как и все остальные ар­гументы. Только сама программа может определить, что именно означает каждый из ар­гументов и как он влияет на работу программы.Передача аргументов из приглашения DOSЧтобы запустить программу D i s p l a y A r g u m e n t s из приглашения DOS, выполнитеследующие шаги.1.

ВыберитекомандуS t a r t s P r o g r a m s ^ A c c e s s o r i e s ^ C o m m a n d Prompt(ПускО П р о г р а м м ы ^ С т а н д а р т н ы е ^ К о м а н д н а я строка).После этого вы должны увидеть на экране черное окно с мигающим курсором ря­дом с приглашением С: \ > (приглашение может включать каталог).2. Перейдите в каталог, содержащий проект D i s p l a y A r g u m e n t s , введя ко­манду cd\C#Programs\DisplayArguments\bin\Debug.(По умолчанию корневой каталог для демонстрационных программ из даннойкниги — С # P r o g r a m s .

Если выбранный вами каталог другой, введите его.)Приглашение изменится и примет вид С : \ C # P r o g r a m s \ D i s p l a y A r g u m e n t s \bin\Debug>.Если что-то идет не т а к — воспользуйтесь средствами Windows для поисканужной папки. В Проводнике Windows щелкните правой кнопкой мыши напапке С : \ C # P r o g r a m s и выберите в раскрывающемся меню команду Search(Найти...), как показано на рис. 7.2.Puc.

7.2. Проводник Windows позволяет легко найти нужную папку на жестком дискеированиеГлава 7. Функции функций169В п о я в и в ш е м с я диалоговом окне введите D i s p l a y A r g u m e n t s . е х е и щелкнитекнопкеSearch (Найти). Н а й д е н н ы е имена ф а й л о в появятся в правой части диалогоSearch Result (Результаты поиска), как показано н а рис. 7.3. Проигнорвого окнаруйте файл D i s p l a y A r g u m e n t s .

e x e в каталоге o b j \ D e b u g ; вам нужен файлв каталоге b i n \ D e b u g . Теперь, после того как вы н а ш л и точное расположение файли его полное имя, вернитесь в консольное окно и перейдите в требуемую папку.Рис. 7.3. Файл найден; имя соответствующей папки можно найтив правой части диалогового окнаОбычно Visual Studio 2005 размещает выполнимые файлы в подкаталоге binD e b u g ; однако это может быть подкаталог b i n \ r e l e a s e или любой другойесли вы измените конфигурацию Visual Studio.Windows позволяет использовать в именах файлов и папок пробелы, однаDOS работать с ними не умеет.

В версиях Windows до Windows ХР вам можпотребоваться взять имя с пробелами в кавычки. Например, можно перейтикаталог с именем My S t u f f с помощью команды наподобиеcd\"МуStuff"3. В строке приглашения, которая теперь выглядит как С:\C#ProgramsDisplayArguments\bin\Debug>, введите командуdisplayarguments/сarglarg2.При этом должна выполниться программа D i s p l a y A r g u m e n t s . е х е , и ее ввод будет таким, как показано на рис. 7.4. Заметим, что на выполнение програмы не влияет, какими буквами — строчными или прописными — вы набралиимя, а кроме того, вы можете опустить и расширение . е х е .Передача аргументов из окнаВы можете запустить программу наподобие D i s p l a y A r g u m e n t s . e x e , введяимя в командной строке окна Command Prompt (Командная строка).

Характеристики

Тип файла
PDF-файл
Размер
14,75 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

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