Как сделать повтор в си шарп

Добавил пользователь Евгений Кузнецов
Обновлено: 04.10.2024

Далее необходимо задать параметры компиляции с помощью класса CompilerParameters.

Приведённые в коде свойства имеют следующий смысл:

Приведённая комбинация значений этих параметров означает следующее.

Доступ к скомпилированной сборке осуществляется при помощи класса CompileResults. Этот класс предоставляет разработчику достаточно широкий арсенал средств.

Гораздо больший интерес представляет сама компиляция, а также работа с классами и методами готовой сборки.

Процесс компиляции осуществляется достаточно просто при помощи метода CompileAssemblyFromSource соответствующего класса семейства CodeDomProvider.

Из урока 7 вы узнали, как использовать в ваших программах оператор C++if для принятия решений. С подобным принятием решений тесно связана способность повторять одну или несколько инструкций определенное число раз или до достижения некоторого условия. В этом уроке вы будете использовать итеративные конструкции C++ для повторения одного или нескольких операторов. К концу данного урока вы освоите следующие основные концепции:

  • Для повторения операторов определенное число раз ваши программы используют оператор C++ for.
  • С помощью оператора C++ while программы повторяют операторы до тех пор, пока указанное условие истинно.
  • Оператор C++ do while позволяет программам выполнять операторы по крайней мере один раз, а затем, возможно, повторять операторы, основываясь на определенном условии.

Возможность повторять операторы очень важна в программировании. Экспериментируйте с программами, представленными в этом уроке. К концу урока вы сможете значительно усовершенствовать свои возможности программирования на C++.

ПОВТОРЕНИЕ ОПЕРАТОРОВ УКАЗАННОЕ ЧИСЛО РАЗ

Одной из наиболее широко используемых операций в ваших программах является повторение одного или нескольких операторов определенное число раз. Например, одна программа могла бы повторять один и тот же оператор, чтобы напечатать пять копий файла, а другая могла бы повторять некоторый Набор операторов 30 раз, чтобы определить, поднялась или упала цена ваших 30 акций. Оператор C++ forпредоставляет чрезвычайно простую возможность вашим программам повторять один или несколько операторов указанное число раз.

Если ваша программа использует оператор for (часто называемый цикломfor), она должна указать переменную, которая называется управляющей переменной, хранящей количество выполнений цикла. Например, следующий цикл for использует переменную count для хранения количества выполнений цикла. В данном случае цикл будет выполнен десять раз.

Цикл for состоит из четырех частей. Первые три части управляют количеством выполнений цикла. Сначала оператор count = 1, присваивает переменной управления начальное значение. Цикл for выполняет эту инициализацию один раз при запуске цикла. Далее цикл проверяет условие count

for (count = 1; count count++)

Инициализация Проверка Увеличение

Следующая программа FIRSTFOR.CPP использует цикл for для вывода на экран дисплея значений от 1 до 100:

Как видите, оператор for инициализирует переменную count значением 1. Затем цикл проверяет, меньше ли значение переменной count или равно 100. Если это так, цикл for выполняет соответствующий оператор и затем увеличивает count, повторяя проверку. Экспериментируйте с этой программой, изменяя значение 100 на 10, 20 и даже 5000.

Экспериментируйте с этой программой, вводя разные числа, например 10, 1 и даже 0. Если вы вводите значение 0 или 1, цикл for никогда не выполняется, потому что условие count

Циклы for C++ поддерживают составные операторы

Из урока 7 вы узнали, что если программы выполняют несколько операторов внутри if или else, то такие операторы следует сгруппировать внутри левой и правой фигурных скобок. Это же относится и к нескольким операторам в цикле for. Следующая программа ADD1_100.CPP зацикливает числа от 1 до 100, выводя и добавляя каждое число в общий итог:

Группируя операторы внутри фигурных скобок, цикл for тем самым может выполнить несколько операторов за один проход (называемый umepa-циейцикла).

Изменение и увеличение цикла for

Все представленные до настоящего момента циклы for увеличивали управляющую переменную цикла на 1 на каждой итерации цикла. Однако цикл for не обязывает ваши программы увеличивать эту переменную на единицу. Следующая программа BY_FIVES.CPP выводит каждое пятое число в диапазоне от 0 до 100:

Если вы откомпилируете эту программу, на вашем экране будут отображаться числа 0, 5,10 и т. д. до 100. Обратите внимание, что оператор цикла for использует для увеличения переменную count.

Если вы хотите добавить некоторое значение к текущему значению переменной, а затем присвоить результат той же переменной, C++ позволяет вам сделать это двумя способами. Первый: предположим, вашей программе необходимо добавить значение 5 к переменной count, это можно сделать, как показано ниже:

Второй: C++ позволяет вам использовать краткую запись, представленную ниже, для добавления значения 5 к переменной count.

Поскольку это легче записать, то данная краткая форма является общепринятой внутри циклов.

При использовании цикла for вы не обязаны продвигать счетчик в сторону увеличения. Следующая программа CNT_DOWN.CPP использует цикл forдля вывода чисел в порядке уменьшения от 100 до 1:

Как видите, цикл for инициализирует переменную count значением 100.На каждой итерации цикл уменьшает значение этой переменной на 1. Цикл завершается, когда переменная count содержит значение 0.

Остерегайтесь бесконечных циклов

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

К сожалению, из-за ошибок в программах в некоторых случаях цикл никогда не достигает своего завершающего условия и, таким образом, зацикливается навсегда (или до тех пор, пока вы не прервете программу). Такие не завершающиеся циклы называются бесконечными циклами. Другими словами, это циклы, не имеющие способа для завершения. Например, следующий оператор for создает бесконечный цикл:

for (count = 0; count

Как видите, цикл for использует переменную count в качестве своей управляющей переменной. Однако в секции цикла увеличения программа увеличивает не ту переменную. В результате цикл никогда не увеличивает переменную count, и она никогда не будет иметь значение больше или равно 100. Таким образом, этот цикл превращается в никогда не завершающийся бесконечный цикл.

Важно обратить внимание, что циклы for не ограничиваются использованием переменных типа int в качестве их управляющих переменных. Например, следующая программа LOOPVAR.CPP использует переменную типа char для вывода букв алфавита внутри одного цикла и переменную типа float для вывода чисел с плавающей точкой внутри другого цикла:

Если вы откомпилируете и запустите эту программу, на экране появится следующий вывод:

АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Повторение цикла определенное число раз

Одна из наиболее общих операций, которую будут выполнять ваши программы, состоит в повторении одного или нескольких операторов определенное количество раз. Оператор C++ for позволяет вашим программам сделать именно это. Такой оператор for использует управляющую переменную, хранящую количество выполнений цикла. Общий формат оператора for выглядит так:

for (инициализация; проверка; увеличение)
оператор;

При запуске этот цикл for присваивает начальное значение управляющей переменной цикла. Далее программа проверяет условие цикла. Если условие истинно, она выполняет операторы внутри цикла, затем увеличивает управляющую переменную цикла и повторяет проверку условия. Если условие истинно, процесс повторяется. Если же условие ложно, цикл for завершается и программа продолжает свое выполнение с первого оператора, следующего за циклом for.

ВЗГЛЯД НА ЦИКЛ while

Как вы только что узнали, цикл C++ for позволяет вашим программам повторять один или несколько операторов определенное количество раз. Однако в некоторых случаях программе необходимо повторять операторы, пока удовлетворяется (истинно) некоторое условие. Например, в следующих уроках вы узнаете, как читать содержимое файла. Такие программы могли бы повторять цикл, пока не встретится конец файла. В ситуациях, когда программам необходимо выполнять цикл, пока удовлетворяется некоторое условие (но не обязательно определенное количество раз), ваши программы могут использовать оператор C++ while.Общий формат оператора while выглядит так:

Если ваша программа встречает оператор while, она проверяет заданное условие. Если условие истинно, программа выполняет операторы циклаwhile. После выполнения последнего оператора в цикле, цикл while опять проверяет условие. Если условие все еще истинно, повторяются операторы цикла и повторяется данный процесс. Когда условие, наконец, становится ложным, цикл завершается и программа продолжает свое выполнение с первого оператора, следующего за циклом. Следующая программа GET_YN.CPP просит вас ввести Д для да или Н для нет. Затем программа использует цикл while для чтения символов с клавиатуры, пока пользователь не введет Д или Н. Если пользователь вводит значение, отличное от Д или Н, программа сигналит встроенным динамиком, записывая символ сигнала ‘\а’ в выходной поток cout :

Как видите, цикл while тоже поддерживает несколько операторов, сгруппированных внутри левой и правой фигурных скобок. В данном случае программа использует переменную done для управления циклом. Пока программа не завершится (т. е. пока пользователь не введет Д илиН), цикл продолжает выполняться. Когда пользователь вводит Д или Я, программа устанавливает переменную done в значение истина и цикл завершается. Как только ваши программы начнут работать с файлами, вы регулярно будете использовать цикл while.

Повторение цикла до выполнения заданного условия

По мере усложнения ваших программ им, возможно, понадобится выполнять группы связанных операторов, пока не реализуется заданное условие. Например, программа может вычислять суммы платежей для служащих компании. В этом случае цикл будет выполняться до тех пор, пока не обработаны данные для последнего служащего. Для повторения операторов до выполнения заданного условия программы как правило, будут использовать оператор while:

while (условие)
оператор;

Сталкиваясь с оператором while, программа будет оценивать условие цикла. Если условие истинно, ваша программа выполняет операторы цикла while. После выполнения последнего оператора цикла программа снова проводит проверку условия. Если условие истинно, программа повторит этот процесс, выполнит операторы, а затем повторит проверку условия. Если условие оценивается как ложь, программа продолжит свое выполнение с первого оператора, который следует за оператором while.

ВЫПОЛНЕНИЕ ОПЕРАТОРОВ ПО КРАЙНЕЙ МЕРЕ ОДИН РАЗ

Как вы уже знаете, цикл C++ while позволяет вашим программам повторять набор операторов, пока данное условие удовлетворяется. Когда программа встречает оператор while, она сначала оценивает заданное условие. Если условие истинно, программа входит в цикл. Если условие ложно, операторы цикла while никогда не выполняются. В зависимости от назначения ваших программ, возможны ситуации, когда некоторый набор операторов должен выполняться по крайней мере один раз, а затем выполнение, основываясь на некотором условии, может повторяться. В подобном случае ваши программы могут использовать цикл do while:

Если программа встречает цикл do while, она входит в цикл и запускает выполнение операторов, содержащихся в цикле. Затем программа оценивает заданное условие. Если условие истинно, программа возвращается к началу цикла:

Если условие ложно, программа не повторяет инструкции цикла, продолжая вместо этого выполнение с первого оператора, следующего за циклом. Обычно цикл do while используется для отображения пунктов меню и затем обработки выбора пользователя. Вам требуется, чтобы программа отобразила меню по крайней мере один раз. Если пользователь выбирает какой-либо пункт меню, кроме Quit, программа выполнит пункт, а затем отобразит меню снова (повторяя оператор цикла). Если пользователь выбирает Quit, цикл завершится и программа продолжит свое выполнение с первого оператора после цикла.

Повторение операторов, если условие истинно

В зависимости от назначения программы, возможно, потребуется выполнить набор операторов, по крайней мере, один раз, и повторить операторы, если заданное условие истинно. В таких случаях ваши программы используют оператор C++ do while:

do оператор;
> while (условие);

Когда программа встречает оператор do while, она сразу же выполняет операторы, содержащиеся в цикле. Затем программа исследует условие цикла. Если условие истинно, программа повторяет операторы цикла и процесс продолжается. Если условие цикла становится ложным, программа продолжает свое выполнение с первого оператора, следующего за оператором do while.

ЧТО ВАМ НЕОБХОДИМО ЗНАТЬ

Итеративная обработка представляет собой способность программы повторять один или несколько операторов. В этом уроке были описаны итеративные (или циклические) операторы C++. Как вы уже знаете, оператор for позволяет вашим программам повторять один или несколько операторов заданное число раз. Используя оператор while, программы повторяют операторы до тех пор, пока указанное условие истинно. Наконец, с помощью оператора do while программы выполняют операторы, по крайней мере один раз, повторяя их, если заданное условие истинно. Из урока 9 вы узнаете, как разделить программы на небольшие легко управляемые части, называемые функциями. Однако до изучения урока 9 убедитесь, что освоили следующее:

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

Если говорить простым языком, то поток – это некая независимая последовательность инструкций для выполнения того или иного действия в программе. В одном конкретном потоке выполняется одна конкретная последовательность действий.
Совокупность таких потоков, выполняемых в программе параллельно называется многопоточностью программы.

Следует также запомнить, что в действительности потоки выполняются всё-таки не совсем параллельно. Дело в том, что процессор физически не может обрабатывать параллельно несколько инструкций или процессов. Однако его вычислительной мощи хватает настолько, что он может выполнять все операции по небольшому фрагменту по очереди, отводя на каждый такой фрагмент по очень маленькому кусочку времени, настолько, что кажется, будто все процессы в компьютере выполняются параллельно.

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

Стандартно в проектах Visual Studio существует только один основной поток – в методе Main. Всё, что в нём выполняется – выполняется последовательно строка за строкой. Но при необходимости можно “распараллелить” выполняемые процессы при помощи потоков.

Для лучшего осознания можно представить следующий пример. Допустим, что наша программа и данные, которые в ней содержатся – это офис с различными предметами (папками, столами, стульями, ручками), а потоки – это работники данного офиса (изначально у нас только один работник, выполняющий всю работу), и каждый работник занимается теми делами, которые ему было сказано выполнять. Работники могут выполнять одинаковые задания, а могут и различные. В случае выполнения какой-либо одной задачи, несколько работников справятся быстрее, чем один.

Так же и с потоками. Чем больше потоков, тем выше вероятность, что они будут мешать друг другу выполнять свою работу. Например, если заставить работать огромное количество потоков с одними и теми же данными, потокам придётся выстраиваться в очередь для их обработки (например, если тем же 3600 рабочим дать какое-либо письменное задание, но предоставить им для этого дела всего одну ручку, то работникам, естественно, придётся становиться друг за другом в очередь за ручкой, чтобы после её получения выполнить поставленную задачу. Времени это займёт довольно много).

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

Установка в ОС Windows

После завершения установки выбранных компонентов и базовой оболочки Visual Studio можно приступать к написанию приложений.

Установка в Linux (Ubuntu)

Завершающим этапом является установка редактора кода Microsoft Visual Studio Code: для этого нужно перейти на сайт и выбрать пакет с расширением .deb.

Установка в macOS

Монтируем образ VisualStudioforMacInstaller.dmg и запускаем программу установки двойным щелчком:

Нажимаем кнопку Install и ожидаем завершения работы установщика. Подробнее ознакомиться с инструкцией можно на сайте Microsoft .

Создание и запуск первого проекта

ОС Windows

В Windows запускаем Microsoft Visual Studio 2019 из меню Пуск и выбираем “Создание проекта”.

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

После успешного создания проекта, откроется основное рабочее окно Visual Studio 2019 . Оно состоит из трёх панелей: редактор кода, обозреватель проекта (решения) и свойства.

Структура проекта состоит из файла Program.cs и зависимостей, в редакторе кода открыто его содержимое.

Программа простая, но выполняет вывод строки. Для её компиляции и запуска нажимаем клавишу F5 или на зеленую стрелку.

При успешном запуске программы в консольном окне выводится Hello World!.

Linux/Ubuntu

Откроем терминал в Visual Studio Code, выбрав Вид -> Терминал . В окне терминала введём следующую команду:

Она создает простое приложение FirstApp и класс Program с методом Console.WriteLine(String) для вывода "Hello World!" в окне консоли.

Для запуска приложения в терминале вводим команду.

В терминале после её выполнения будет выведена строка Hello World!.

Apple macOS

Запустим Visual Studio for Mac 2019 и щелкнем пункт New (Создать).

В разделе Web and Console (Интернет и Консоль) диалогового окна создания проекта выберем тип Приложение. Выберите шаблон Консольное приложение и нажмите кнопку Далее.

Вводим название проекта и щелкаем по кнопке Create (Создать).

Консольное приложение успешно создано: как и ранее оно содержит класс Program с точкой входа Main и методом Console.WriteLine(“Hello World!”); .

Запустим приложение, нажав на чёрную стрелку или комбинацию клавиш Option+Command+Enter .

Структура программы

В предыдущем разделе, мы создали простейшее приложение, которое выводит строку Hello World! и запустили на различных операционных системах. Рассмотрим подробнее структуру программы в файле Program.cs.

Разберем построчно исходный код:

  • Ещё одним немаловажным блоком кода являются комментарии: они бывают многострочными и однострочными, а задаются символами /**/ и // соответственно.

Переменные и типы данных

Переменные служат для хранения данных и операций над ними. Объявлять переменные можно используя классический синтаксис: тип имя = значение;

Для объявления констант добавляется ключевое слово const и их значения остаются фиксированными во время выполнения программы.

Консольный ввод и вывод

Используя Console.WriteLine можно вывести информацию или значения переменных на экран.

После вывода каждой строки перемещаемся на новую строку, а для вывода в одну строку используется метод Console.Write() .

Зачастую необходимо вывести значения с форматированием строки для более наглядного результата.

В консоль будет выведена уже форматированная строка.

Этот метод считывает строку в консоли и возвращает её в приложение. Для ввода значений других типов преобразуем строку используя Convert.ToType() , где Type необходимый нам тип.

Для приведения строк вес, количество дверей и цена в нужный нам тип, используем Convert.ToDouble() , Convert.ToInt32() и Convert.ToDecimal() соответственно. Подробнее о приведении типов в разделе Преобразовании типов.

Базовые операторы

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

Арифметические операторы

Операторы +, -, *, /, %, ++, -- используются в основном для работы с числовыми переменными, объектами.

По каждой операции будет выведен соответствующий результат.

Операторы присваивания

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

Операторы сравнения

Операторы сравнения используются для сравнения двух значений и возвращают значение типа bool (логическое значение).

Логические операторы

Здесь все стандартно и привычно, если вы имели дело с C-подобными языками.

Управление потоком

В программировании задачи и алгоритмы часто требуют принятия решений и выполнение кода при определенных условиях (conditions).

  • Если необходимо выполнить код по условию, для этого используются инструкции: if , else , ternary operation , switch .
  • Для многократного выполнения инструкций применяются циклы: for , foreach, while , break-continue .

If…else

Инструкция if…else в стандартной форме выглядит так:

По условию поток передается определенным блокам кода. При истинности условия (true), выполняется код в if , а когда условие ложно (false), выполняется код в else .

Если требуется выполнить только условие, то else можно опустить.

Как видно из примера, переменная получает новое значение, если она равна нулю.

if. else if. else

Можно добавить if после else и комбинировать их:

Тернарная операция (Ternary operation)

Существует вариант if. else, известный как тернарный оператор, поскольку он состоит из трех операндов. Его часто используют для замены простых операторов if. else.

switch

Для выбора одного из множества блоков кода используется оператор switch.

Шаблон, с которым сравнивается значение x определяется ключевым словом case. Далее по успешному совпадению с шаблоном, выполняется соответствующий блок кода. Если совпадений нет, то исполняется блок default для остальных случаев.

Цикл for

Цикл for в основном используется для перебора значений по условию с одновременным выполнением операций и имеет вид:

Рассмотрим работу цикла на примере вычисления таблицы умножения.

Цикл начинает выполняться со значения переменной i = 1 до 9, увеличивая её на единицу i++ (инкремент), каждая итерация вычисляет умножение числа само на себя, в итоге выводится таблица умножения.

Предлагаю поэкспериментировать самостоятельно с разными условиями цикла.

Цикл foreach

Также существует цикл foreach, который используется исключительно для циклического перебора элементов массива (смотрим раздел Массивы):

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

Строка представляет собой массив символов, используя переменную char ch , цикл перебирает и выводит все символы строки.

Цикл while

Цикл while выполняет перебор, пока заданное условие истинно и имеет такой синтаксис:

Таблица умножения в этом цикле, реализуется также просто.

Цикл do / while ещё вариант цикла while, он выполняет блок кода один раз, прежде чем проверить истинность условия, а затем повторяет итерации, пока условие истинно. Синтаксис такого цикла выглядит так:

В качестве примера рассмотрим вычисление суммы чисел отличных от нуля, если вводится 0, то цикл завершается и выводится сумма.

break/continue

Часто возникает ситуация, когда необходимо управлять остановкой/продолжением работы цикла, для этого используются операторы break и continue.

Из примера видно, что если i=10, то цикл продолжает работу, если i=17, то оператор break завершает цикл.

Массивы

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

Одномерные массивы

Одномерный массив состоит из однотипных N-элементов и синтаксис его объявления следующий:

Для использования массива, необходимо задать его размер, делаем так:

Также можно создать массив с числами, предлагаю поэкспериментировать самостоятельно.

По индексам 0 и 3, будут выведены первый и последний элементы массива, в цикле перебираются и выводятся все его элементы. Если нужно изменить элемент массива, это делается также с использованием индекса.

Например, если вместо IPhone X нужно внести IPhone 11, то по индексу 2 просто изменяем значение.

В результате выполнения кода будет выведен обновленный массив.

Многомерные массивы

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

Двумерные и N-мерные массивы позволяют хранить и обрабатывать многомерные данные. Синтаксис объявления таких массивов следующий:

Запятая в фигурных скобках указывает на многомерность массива, а его размер задается так:

type[,] arrName = new type[N, M];

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

Как видно из примера, мы создали два массива размером 3х3 с числами результирующий массив – resultMatrix. Для прохода по столбцам и строкам массивов, используются два цикла for.

На этом с массивами заканчиваем и более подробно поговорим о них и структурах данных в следующих частях.

Методы (функции)

С ростом сложности программ пришлось разбивать код на многократно используемые модули-функции или методы. Методы хранят наборы инструкций и бывают библиотечными или пользовательскими.

В нашей первой программе имеется пользовательский метод Main() – главный метод, а методы WriteLine() и ReadLine() являются библиотечными.

Метод – это блок кода, который выполняет определённые задачи и запускается только при его вызове.

Методы бывают с параметрами и без параметров, то есть могут принимать или не принимать данные, а также возвращать результат или только выполнять действия. Объявление метода выглядит следующим образом:

static type MethodName()

Где MethodName () – это имя метода, а static означает, что метод принадлежит классу Program, а не объекту класса Program.

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

void-методы

Рассмотрим пример создания и использования невозвращаемого метода без параметров и с параметрами.

Методы Hello() и HelloName(string input) вызываются в основном методе Main(), первый без параметров, а второй принимает строку и выводит уже Hello, Name.

return-методы

Методы с возвращаемым значением, как правило объявляются с указанием его типа. Рассмотрим пример вычисления суммы и произведения чисел.

Метод Sum получает в качестве параметров 2 числа и с помощью оператора return возвращает их сумму.



Приложение "Калькулятор" На первом занятии мы уже создавали простое приложение. Создадим ещё одно, назовём его Lesson2, и рассмотрим некоторые свойства формы и визуальных элементов. При этом мы будем создавать приложение "калькулятор". Итак, сначала присвоим форме заголовок "Калькулятор" (не путать с именем формы). Заголовок задаётся свойством Text. Панель свойств находится в правой части экрана.


Покрасим форму, например, в темно-синий цвет. Для этого найдём в редакторе свойств строку BackColor и выпадающем списке выберем нужный цвет.


Мы будем делать немного нетрадиционный калькулятор, в отличие, например от Windows калькулятора. Он будет иметь отдельные строки для ввода аргументов, знака математического действия и результата вычислений.
Поставим на форму четыре текстовых поля textBox1 . textBox4 сверху вниз.


Напротив каждого текстового поля поставим метки Label и в свойстве Text меток введём надписи, показанные на рисунке. Цвет надписей меток можно изменить свойством ForeColor.
Добавим кнопку и создадим событие на нажатие кнопки "Вычислить". Событие можно создать двойным щелчком на выделенной кнопке или, на панели свойств и событий, переключиться на раздел события (Properties) и выбрать событие Click.


Так же, двойным щелчком следует создать событие button1_Click. Допишем в полученную функцию обработчика события следующие строки (помечены синим цветом):

private void button1_Click(object sender, EventArgs e)
double x, y, z;
string znak = "";
x = Convert.ToDouble(textBox1.Text);
y = Convert.ToDouble(textBox3.Text);
z = 0;
znak = textBox2.Text;
if (znak == "+") z = x + y; else
if (znak == "-") z = x - y; else
if (znak == "/") z = x / y; else
if (znak == "*") z = x * y; else
textBox4.Text = Convert.ToString(z);
>



Примечание - при вводе чисел с плавающей запятой, в Windows принято вводить разделитель запятую, а не точку, как это принято в DOS.



Логические операции. Известно, что при делении на 0 возникает ошибка. Попробуем исключить такую ошибку, если пользователь введёт знаменателем 0. Доработаем строку определяющую ввод знака деления:

Введя изменения, посмотрим, как работает программа в такой ситуации.


if (znak == "^") z = Math.Pow(x, y); else

Это уже известное нам выражение определяющее ввод знака ^ и если знак введён, то произвести вычисление степени. Запустим приложение и убедимся, что оно исправно работает.



И, в заключение этого урока, добавим на форму ещё одну кнопку которая, для удобства пользователя, будет очищать все поля ввода и результата.


Двойным щелчком на кнопки создадим функцию события нажатия на кнопку. Добавим код очистки всех текстовых полей:

Читайте также: