Операции в программах на языке C#
Инкремент (++) и декремент (--). Применение операций умножения и деления для целочисленных и вещественных типов данных. Сущность метода заполнения освобождающихся левых битов. Умножение первого операнда на степень числа 2, равную второму операнду.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 05.04.2020 |
Размер файла | 488,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
Государственный университет
Институт прикладной математики и компьютерных наук
Кафедра вычислительной техники
Отчет по лабораторной работе
по дисциплине «Программирование»
Операции в программах на языке C#
Тула 2019
1. Теоретическая справка
Операции можно классифицировать по количеству операндов на: унарные - воздействуют на один операнд, бинарные - воздействуют на два операнда, тернарные - воздействует на три операнда. Некоторые символы используются для обозначения как унарных, так и бинарных операций. Например, символ "минус" используется как для обозначения унарной операции - арифметического отрицания, так и для обозначения бинарной операции вычитание. Будет ли данный символ обозначать унарную или бинарную операцию, определяется контекстом, в котором он используется.
Инкремент (++) и декремент(--).
Эти операции имеют две формы записи - префиксную, когда операция записывается перед операндом, и постфиксную - операция записывается после операнда. Префиксная операция инкремента (декремента) увеличивает (уменьшает) свой операнд и возвращает измененное значение как результат. Постфиксные версии инкремента и декремента возвращают первоначальное значение операнда, а затем изменяют его.
Операция new - Используется для создания нового объекта. С помощью ее можно создавать как объекты ссылочного типа, так и размерные, например:
object z=new object(); int i=new int(); // то же самое, что и int i =0;
Отрицание:
- Арифметическое отрицание (-) - меняет знак операнда на противоположный.
- Логическое отрицание (!) - определяет операцию инверсия для логического типа.
Умножение (*), деление (/) и деление с остатком (%).
Операции умножения и деления применимы для целочисленных и вещественных типов данных. Для других типов эти операции применимы, если для них возможно неявное преобразование к целым или вещественным типам. При этом тип результата равен "наибольшему" из типов операндов, но не менее int. Если оба операнда при делении целочисленные, то и результат тоже целочисленный.
Сложение (+) и вычитание (-).
Операции сложения и вычитания применимы для целочисленных и вещественных типов данных. Для других типов эти операции применимы, если для них возможно неявное преобразование к целым или вещественным типам.
Операции отношения ( <, <=, >, >=, ==, !=).
Операции отношения сравнивают значения левого и правого операндов. Результат операции логического типа: true - если значения совпадают, false - в противном случае.
Логические операции: И ( && ), ИЛИ ( || ).
Логические операции применяются к операндам логического типа.
Результат логической операции И имеет значение истина тогда и только тогда, когда оба операнда принимают значение истина.
Результат логической операции ИЛИ имеет значение истина тогда и только тогда, когда хотя бы один из операндов принимает значение истина.
Условная операция.
Формат: (<операнд1>)? <операнд2> : <операнд3> ;
Операнд1 - это логическое выражение, которое оценивается с точки зрения его эквивалентности константам true и false. Если результат вычисления операнда1 равен true, то результатом условной операции будет значение операнда2, иначе - операнда3. Фактически условная операция является сокращенной формой условного оператора if, который будет рассмотрен позже.
Операции присваивания: =, +=, -= и т.д.
Формат операции простого присваивания ( = ):
операнд_2 = операнд_1;
В результате выполнения этой операции вычисляется значение операнда_1, и результат записывается в операнд_2. Возможно связать воедино сразу несколько операторов присваивания, записывая такие цепочки: a=b=c=100. Выражение такого вида выполняется справа налево: результатом выполнения c=100 является число 100, которое затем присваивается переменной b, результатом чего опять является 100, которое присваивается переменной a.
Кроме простой операции присваивания существуют сложные операции присваивания, например, умножение с присваиванием ( *= ), деление с присваиванием ( /= ), остаток от деления с присваиванием ( % =), сложение с присваиванием ( += ), вычитание с присваиванием ( -= ) и т.д.
Кроме того, сложные операции присваивания позволяют сгенерировать более эффективный код, за счет того, что в простой операции присваивания для хранения значения правого операнда создается временная переменная, а в сложных операциях присваивания значение правого операнда сразу записывается в левый операнд.
2. Задания
Написать программу, которая подсчитывает:
радиус окружности, площадь круга которой равна s;
Рисунок 1. Программа подсчёта радиуса окружности
Какая из цифр трехзначного числа больше: первая или вторая
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Lab3_2
{
class Program
{
static void Main(string[] args)
{
int a, b;
bool t1;
do
{
Console.Write("Введите трёхзначное целое число: ");
//Проверяем, что число трёхзначное
a = int.Parse(Console.ReadLine());
if ((a < 100) || (a > 999))
{
t1 = true;
}else
{
t1 = false;
}
} while (t1);
a = a / 10;//Отбрасываем третью цифру
b = a % 10;//Вторая цифра
a = a / 10;//Первая цифра
Console.WriteLine("Первая цифра = " + a);
Console.WriteLine("Вторая цифра = " + b);
//Проверяем, какая цифра больше
if (a > b)
{
Console.WriteLine("Первая цифра больше");
}
else if(a < b)
{
Console.WriteLine("Вторая цифра больше");
}else
{
Console.WriteLine("Первая и вторая цифры одинаковые");
}
Console.ReadLine();
}
}
}
Рисунок 2. Запуск программы
В ходе лабораторной работы изучили операции в языке С#, научились применять их для решения задач.
Контрольные вопросы
Допустимы ли следующие способы записи ++(++i), (i--)--, ++(i--).
Префиксная версия требует существенно меньше действий: она изменяет значение переменной и запоминает результат в ту же переменную. Постфиксная операция должна отдельно сохранить исходное значение, чтобы затем вернуть его как результат. Для сложных типов подобные дополнительные действия могут оказаться трудоемки. Поэтому постфиксную форму имеет смысл использовать только при необходимости.
Приведите примеры операций: сдвиг влево ( << ), сдвиг вправо ( >> );
Оба операнда должны быть целыми величинами. Выполняются обычные арифметические преобразования. При сдвиге влево правые освобождающиеся биты устанавливаются в нуль. При сдвиге вправо метод заполнения освобождающихся левых битов зависит от типа первого операнда. Если тип unsigned, то свободные левые биты устанавливаются в нуль. В противном случае они заполняются копией знакового бита. Результат операции сдвига не определен, если второй операнд отрицательный.
Преобразования, выполненные операциями сдвига, не обеспечивают обработку ситуаций переполнения и потери значимости. Информация теряется, если результат операции сдвига не может быть представлен типом первого операнда, после преобразования.
Отметим, что сдвиг влево соответствует умножению первого операнда на степень числа 2, равную второму операнду, а сдвиг вправо соответствует делению первого операнда на 2 в степени, равной второму операнду.
Рисунок 3. Дополнительное задание
декремент операнд бит
Размещено на Allbest.ru
Подобные документы
Выполнение операции деления в ЭВМ. Умножение чисел, представленных в форме с плавающей запятой. Методы ускорения операции умножения. Матричный метод умножения. Деление чисел в машинах с плавающей запятой. Деление чисел с восстановлением остатков.
реферат [49,4 K], добавлен 18.01.2011Операция как элементарная конструкция, возвращающая некоторый результат. Таблица приоритетов операций. Правила преобразований типов: в выражениях, в присваиваниях. Логические операции и операции инкремента. Приведение целых и вещественных выражений.
лабораторная работа [33,6 K], добавлен 06.07.2009Составление программы, реализующей моделирование операции умножения, начиная со старших разрядов множителя, при сдвиге суммы частичного произведения влево и неподвижным множителем. Особенности реализации программы на алгоритмическом языке Assembler.
курсовая работа [26,9 K], добавлен 25.05.2014Характеристика таблицы умножения Пифагора; ее применение. Русские математические изобретения, основанные на манипуляциях, которые приводят к нужному результату. Изучение алгоритма работы русского крестьянского способа умножения. Вычисление длинных чисел.
курсовая работа [1,2 M], добавлен 05.12.2013Теоретическое изучение системы проведения арифметических операций над двоичными числами. Создание описания операций умножения и блок-схемы алгоритма её выполнения. Определение набора управляющих сигналов и синтез схемы арифметико-логического устройства.
курсовая работа [169,3 K], добавлен 25.12.2012Выполнение действий сложения, вычитания, умножения, деления, возведения в целую степень, извлечения квадратного корня по формуле Муавра и преобразования из одной формы в другую при помощи программы, разработанной на языке программирования С++.
курсовая работа [1,3 M], добавлен 16.01.2012Разработка алгоритма выполнения операций умножения двоичных чисел в формате расширенной точности на сумматоре обратного кода. Преобразование входной строки в десятичное число. Разработка алгоритма арифметической операции. Тестирование программы-эмулятора.
курсовая работа [119,1 K], добавлен 24.06.2012Строение класса complex. Примеры использования класса complex. Результат выполнения программы. Цикл возведения первого числа во второе. Операции с комплексными числами. Конструкторы и операции присваивания для типа complex. Неявные преобразования типов.
курсовая работа [1,5 M], добавлен 18.05.2011Изучение понятия и основных задач стеганографии - науки, изучающей способы и методы сокрытия информации. Характеристика метода замены наименее значащих битов для bmp файлов. Реализация метода замены НЗБ для bmp файлов на языке программирования Java.
курсовая работа [149,2 K], добавлен 13.02.2013Создание программы калькулятор, вычисляющий простейшие математические примеры на сложение, вычитание, умножение, деление и возведение в степень. Определение входных и выходных данных, требований к программе. Рекомендации по использованию программы.
курсовая работа [717,6 K], добавлен 17.01.2013