SlideShare a Scribd company logo
Язык программирования C# и платформа
.NET.
Простые типы, операции, операторы.
Организация ввода и вывода
Максименкова Ольга Вениаминовна
Старший преподаватель
Кафедра управления разработкой программного обеспечения
Высшая школа экономики, Москва, 2012
www.hse.ru
«Программирование» 1 курс бакалавриата «Программная
инженерия»
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Бесплатно получить установочный файл Microsoft Visual C# 2010
Express можно с официального сайта компании Microsoft по ссылке:
http://www.microsoft.com/express/Downloads/.
Проекты и решения
• Решение (Solution)
• Проект (Project)
Project
Project 1
Project 2
Project N
…
Solution
Solution
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Программы на C#
Любая программа – это класс
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Абстракция - существенная характеристика объекта, отличающая его от
всех других объектов и четко определяющая его концептуальные границы с
точки зрения наблюдателя.
Класс – это шаблон для объекта
(тип данных), а объект – это
экземпляр класса (переменная).
Объект обладает состоянием
поведением и
индивидуальностью.
Типы данных
Типы-значения
Целые со знаком
byte (1 байт) short (2 байта)
int (4 байта) long (8 байт)
Целые без знака
sbyte ushort
uint ulong
С плавающей точкой
float double
Символьный
char (1 байт)
Логический
bool (true/false)
Повышенной точности
decimal
Типы-ссылок
String Array Классы пользователя
и т.д.
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Создание нового проекта
File -> New -> Project (Файл -> Создать -> Проект)
Templates
Console Application
Project types
Visual C#
Name
Задача_1
Location
Путь к папке Solution Name
По умолчанию
совпадает с
именем проекта,
изменим на
Тема_01
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Окно текстового редактора C# с заготовкой консольного
приложения
Компиляция и Исполнение:
Debug -> Start Without Debugging (или Ctrl+F5)
Результат:
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
ВВОД-ВЫВОД
• Организация ввода
• Организация вывода
• Преобразование данных
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Организация ввода
using System;
class Program {
static void Main() {
string str = Console.ReadLine();
}
}
Данные, полученные от пользователя - строки
Ctrl+F5
Класс Console
public static string ReadLine()
Получает очередную строку символов из стандартного потока ввода
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Организация вывода
using System;
class Program {
static void Main() {
Console.Write("Введите текст: ");
string str = Console.ReadLine();
Console.WriteLine("Ваш текст: " + str);
}
} Ctrl+F5
Класс Console
public static void Write(<параметры>)
Выводит в стандартный поток вывода представление первого
параметра
public static void WriteLine(<параметры>)
Выводит в стандартный поток вывода представление первого
параметра, завершающееся символом конца строки
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Как поместить в решение второй проект?
• Открыть Обозреватель решений:
View -> Solution Explorer
• Выделить Solution ‘Тема_01’, вызвать контекстное
меню
Add -> New Project
Заменить:
Name: Задача_2
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Обработка ввода
using System;
class Program {
static void Main() {
int a, b; // целочисленные переменные для хранения чисел
Console.Write("Целое число: "); // ввод числа a
string str = Console.ReadLine();
a = int.Parse(str);
Console.Write("Целое число: "); // ввод числа b
str = Console.ReadLine();
int.TryParse(str, out b);
Console.WriteLine("Ваш текст: " + a + b); // вывод
}
}
Эксперименты с программой
1. Ввести вместо первого числа букву
2. Ввести вместо второго числа букву
3. Заключить a + b в круглые скобки
Ctrl+F5
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Методы обработки ввода
bool <тип>.TryParse(string <строка>, out <тип> <параметр>)
Метод преобразует строковое представление числа (первый параметр) в эквивалентное ему
числовое значение типа <тип> и присваивает это значение переменной, использованной в
качестве аргумента, заменившего второй параметр метода. Метод возвращает значение true,
если преобразование выполнено успешно и false – в противном случае.
<тип> <тип>.Parse(<строка>)
преобразует строковое представление числа в эквивалентное ему число типа <тип>. В случае,
если строковое представление не может быть преобразовано к соответствующему типу,
возникает исключение.
a = int.Parse(str);
int.TryParse(str, out b);
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Форматирование строк
Структура поля подстановки:
{N[,W][:S[R]]}, где
N – номер аргумента;
W – ширина поля;
S – спецификатор формата;
R – спецификатор точности.
Статья «Строки стандартных числовых форматов на msdn.microsoft.com -
http://msdn.microsoft.com/ru-ru/library/dwhawy9k.aspx
Статья «Составное форматирование» на msdn.microsoft.com -
http://msdn.microsoft.com/ru-ru/library/txafckwd.aspx
Спецификатор S:
С или с – валютный
D или d – целочисленный
E или e – экспоненциальный
F или f – с фиксированной точкой
G или g – «короткий» из E или F
X или x – шестнадцатеричный
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Форматирование строк при выводе
int i = 3;
double d = 1 / (double)i;
Console.WriteLine("{0} - {1}", i, d);
#0 #1
Console.WriteLine("{0} - {0}", i, d);
3 - 0,333333333333333
3 - 3
Console.WriteLine("{0} - {1:f5}", i, d);
3 - 0,33333
Console.WriteLine("{1} - {2}", i, d);
Исключение!!!ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
ОПЕРАЦИИ
• Некоторые операции языка
• Тернарная операция
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Некоторые операции
short val = 10;
Console.WriteLine(val++);
Console.WriteLine(++val);
Console.WriteLine(val--);
Console.WriteLine(--val);
10
12
12
10
uint bin = 1;
Console.WriteLine(bin << 1);
Console.WriteLine(bin << 2);
Console.WriteLine(bin << 3);
2
4
8
uint bin = 1;
Console.WriteLine(bin << 3 == 8); True
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Побитовые
Унарные
Логические
Приведение типов
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Вещественные
Целые со знакомЦелые без знака
byte
ushort
uint
ulong
sbyte
short
int
long
float
double
decimal
При компиляции
некоторых объявлений
возникают ошибки
преобразования типов.
Неявное
преобразование типов
применимо в том
случае, когда при
преобразовании
переменной одного
типа к другому не
происходит потери
информации.
Тернарная операция
<операнд_1>?<операнд_2>:<операнд_3>
== true
== false
bool a, b, c;
a = true;
b = false;
c = true;
Console.WriteLine(!a&(b|c) ? "1" : "0");
Console.WriteLine(a & (b | c) ? "1" : "0");
int a, b, c;
// ввод значений a, b и c
int max = a > b ? a > c ? a : c : b > c ? b : c;
Console.WriteLine(max);
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Схема создания программы
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Шапка
-------------------------------
Пролог
Ввод
Обработка
Эпилог
Вывод
1
2
22
Задача
/* Задача.
Ввести значения трех переменных x, y, z.
Применяя выражения с тернарной операцией ?:,
обменять значения переменных так, чтобы
выполнялось требование:
x <= y <= z.
*/
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Задача
using System;
class Program {
public static void Main() {
int x, y, z;
string str; // Строка для приёма данных
23
Console.WriteLine("x = " + x);
Console.WriteLine("y = " + y);
Console.WriteLine("z = " + z);
Console.WriteLine(“Для выхода из программы нажмите ENTER.");
Console.ReadLine();
} //Конец определения метода Main()
} //Конец объявления класса Program
2
1
1
Пролог
Вывод
Эпилог
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Задача
int a1 = 0, a2 = 0, a3 = 0;
a1 = x < y ? (z < x ? z : x) : (y < z ? y : z);
a3 = x > y ? (z > x ? z : x) : (y > z ? y : z);
// Самостоятельно определите значение а2 !!!!
x = a1; y = a2; z = a3;
24
Ввод
Обработка
Console.Write("Введите значение x: ");
str = Console.ReadLine();
int.TryParse(str, out x);
Console.Write("Введите значение y: ");
str = Console.ReadLine();
int.TryParse(str, out y) ;
Console.Write("Введите значение z: ");
str = Console.ReadLine();
int.TryParse(str, out z);
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
М.Э. Абрамян 1000 задач по программированию, Ростов-на-Дону, 2004
Решите самостоятельно
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Задание с несколькими верными вариантами ответа
26
26
Необходимо создать переменную целочисленного
типа, принимающую отрицательные значения, по модулю
не превышающие 217. Для ее объявления можно выбрать
тип данных:
1. ushort
2. sbyte
3. byte
4. long
5. int
Необходимо выбрать тип данных, позволяющий представлять числа на
полуинтервале [-217; 0).
• ushort – беззнаковый тип данных;
• sbyte – знаковый байт. 1 бит отводится на знак числа и 7 бит на кодирование
значения.
• byte – беззнаковый тип данных;
• long – знаковый тип данных. Позволяет кодировать числа от –(263 – 1) до 263.
• int – знаковый тип данных. Позволяет кодировать числа от –(261 – 1) до 263.
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Задание с несколькими верными вариантами ответа
27
27
Укажите строки кода, вставка которых в программу приведет
к выводу числа 6
using System;
class Program {
static void Main() {
// TODO вставить код здесь
}
}
1. Console.WriteLine(12 >> 1);
2. Console.WriteLine(2 & 4);
3. Console.WriteLine(5 ^ 3);
4. Console.WriteLine(6 | 4);
5. Console.WriteLine(7 >> 1 << 1);
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Задание с кратким ответом
28
28
В результате выполнения фрагмента программы:
sbyte sByteValue = 115;
Console.WriteLine(sByteValue += 15);
на экран будет выведено:
1. -126
2. -3
3. 0
4. 128
5. 130
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
127 – 12 = 115
_127 -> 0111 1111
12 -> 0000 1100
115 -> 0111 0011
+ 15 -> 0000 1111
1000 0010 (дополнительный код)
Получим модуль числа. Для этого инвертируем
все разряды, включая знаковый и к
результату добавим единицу:
0111 1101
+ 1
0111 1110 <- 126 (модуль числа)
Объединяя знак и модуль, получаем ответ:
-126
Задание с несколькими верными вариантами ответа
29
29
Укажите номера строк, при компиляции которых возникнет
ошибка:
1. sbyte x = -8;
2. int x = 36.6;
3. Single x = 4.6;
4. long x = 123456789;
5. string s = 12;
Тип sbyte – знаковый и -8 входит в диапазон значений переменных этого
типа.
Тип int представляет целые числа. При таком объявлении происходит потеря
значимой информации.
По умолчанию всем вещественным константам в программе присваивается
тип double. Тип Single соответствует типу float. При преобразовании
произойдет потеря значимой информации.
В переменной типа long могут храниться положительные значения не
превосходящие 263. Размещение в такой переменной числа 123456789 не
приведет к потере информации.
Неявное преобразование числа в строку не допустимо. Для преобразования
необходимо использовать метод ToString() объекта числовой переменной.
ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
Задание с кратким ответом
В результате выполнения следующего фрагмента программы:
sbyte sb = -126, nb;
nb = (sbyte)(sb << 3);
Console.Write(nb);
на экран будет выведено:
Значение переменной sb типа sbyte занимает один байт и
представляется
в дополнительном коде, как 1000 0010
При выполнении сдвига
0001 0000 (знак потерялся – это прямой код положительного
числа)
16
В результате выполнения следующего фрагмента программы:
sbyte sb = -126;
Console.WriteLine(sb << 3);
на экран будет выведено:
31
Задание с кратким ответом
Значение переменной sb типа sbyte занимает один байт и
представляется в дополнительном коде, как 1000 0010
При выполнении сдвига, сначала происходит неявное приведение
типа
sbyte к типу int, то есть значение теперь занимает 4 байта
и представляется как
0000 0000 0000 0000 0000 0000 1000 0010
После выполнения сдвига на 3 бита влево, получим:
0000 0000 0000 0000 0000 0100 0001 0000 (знак)
Инвертируем:
0000 0000 0000 0000 0000 0011 1110 1111
Добавляем единицу, получаем:
0000 0000 0000 0000 0000 0011 1111 0000 (модуль)
-1008
101000, Россия, Москва, Мясницкая ул., д. 20
Тел.: (495) 621-7983, факс: (495) 628-7931
www.hse.ru

More Related Content

What's hot

Java vetores e matrizes
Java   vetores e matrizesJava   vetores e matrizes
Java vetores e matrizesArmando Daniel
 
Questionário sobre padrões de projeto revisão da tentativa
Questionário sobre padrões de projeto  revisão da tentativaQuestionário sobre padrões de projeto  revisão da tentativa
Questionário sobre padrões de projeto revisão da tentativa
AluisioSantos4
 
Vetores e Matrizes em C.
Vetores e Matrizes em C.Vetores e Matrizes em C.
Vetores e Matrizes em C.
SchoolByte
 
Access modifiers in java
Access modifiers in javaAccess modifiers in java
Access modifiers in java
Madishetty Prathibha
 
Компьютерная графика в Processing, часть 2. Основные 2D-примитивы
Компьютерная графика в Processing, часть 2. Основные 2D-примитивыКомпьютерная графика в Processing, часть 2. Основные 2D-примитивы
Компьютерная графика в Processing, часть 2. Основные 2D-примитивы
Tatiana Volkova
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
Mario Jorge Pereira
 
Типи веб-сторінок та веб-сайтів
Типи веб-сторінок та веб-сайтівТипи веб-сторінок та веб-сайтів
Типи веб-сторінок та веб-сайтів
Yulia Vlasenko
 
C# Inheritance
C# InheritanceC# Inheritance
C# Inheritance
Prem Kumar Badri
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
Jose Augusto Cintra
 
Лекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмовЛекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмов
Mikhail Kurnosov
 
[Curso Java Basico] Aula 14: Condicionais If-Else
[Curso Java Basico] Aula 14: Condicionais If-Else[Curso Java Basico] Aula 14: Condicionais If-Else
[Curso Java Basico] Aula 14: Condicionais If-Else
Loiane Groner
 
Презентація:Додавання, редагування та форматування таблиць
Презентація:Додавання, редагування та форматування таблицьПрезентація:Додавання, редагування та форматування таблиць
Презентація:Додавання, редагування та форматування таблиць
sveta7940
 
Интерфейсы
ИнтерфейсыИнтерфейсы
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмов
Mikhail Kurnosov
 
Awt and swing in java
Awt and swing in javaAwt and swing in java
Awt and swing in java
Shehrevar Davierwala
 
Programando em python interfaces graficas com tk
Programando em python   interfaces graficas com tkProgramando em python   interfaces graficas com tk
Programando em python interfaces graficas com tksamuelthiago
 
Giáo trình vb.net
Giáo trình vb.netGiáo trình vb.net
Giáo trình vb.netHung Pham
 
Організація програмного забезпечення комп’ютера
Організація програмного забезпечення комп’ютераОрганізація програмного забезпечення комп’ютера
Організація програмного забезпечення комп’ютера
Наталья Коба
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
Sedu
 

What's hot (20)

Java vetores e matrizes
Java   vetores e matrizesJava   vetores e matrizes
Java vetores e matrizes
 
Questionário sobre padrões de projeto revisão da tentativa
Questionário sobre padrões de projeto  revisão da tentativaQuestionário sobre padrões de projeto  revisão da tentativa
Questionário sobre padrões de projeto revisão da tentativa
 
Vetores e Matrizes em C.
Vetores e Matrizes em C.Vetores e Matrizes em C.
Vetores e Matrizes em C.
 
Access modifiers in java
Access modifiers in javaAccess modifiers in java
Access modifiers in java
 
Компьютерная графика в Processing, часть 2. Основные 2D-примитивы
Компьютерная графика в Processing, часть 2. Основные 2D-примитивыКомпьютерная графика в Processing, часть 2. Основные 2D-примитивы
Компьютерная графика в Processing, часть 2. Основные 2D-примитивы
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
Типи веб-сторінок та веб-сайтів
Типи веб-сторінок та веб-сайтівТипи веб-сторінок та веб-сайтів
Типи веб-сторінок та веб-сайтів
 
C# Inheritance
C# InheritanceC# Inheritance
C# Inheritance
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Лекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмовЛекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмов
 
Interface grafica
Interface graficaInterface grafica
Interface grafica
 
[Curso Java Basico] Aula 14: Condicionais If-Else
[Curso Java Basico] Aula 14: Condicionais If-Else[Curso Java Basico] Aula 14: Condicionais If-Else
[Curso Java Basico] Aula 14: Condicionais If-Else
 
Презентація:Додавання, редагування та форматування таблиць
Презентація:Додавання, редагування та форматування таблицьПрезентація:Додавання, редагування та форматування таблиць
Презентація:Додавання, редагування та форматування таблиць
 
Интерфейсы
ИнтерфейсыИнтерфейсы
Интерфейсы
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмов
 
Awt and swing in java
Awt and swing in javaAwt and swing in java
Awt and swing in java
 
Programando em python interfaces graficas com tk
Programando em python   interfaces graficas com tkProgramando em python   interfaces graficas com tk
Programando em python interfaces graficas com tk
 
Giáo trình vb.net
Giáo trình vb.netGiáo trình vb.net
Giáo trình vb.net
 
Організація програмного забезпечення комп’ютера
Організація програмного забезпечення комп’ютераОрганізація програмного забезпечення комп’ютера
Організація програмного забезпечення комп’ютера
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 

Viewers also liked

3. Массивы в C#
3. Массивы в C#3. Массивы в C#
3. Массивы в C#
Olga Maksimenkova
 
Абстрактные типы данных, последовательности, списки
Абстрактные типы данных, последовательности, спискиАбстрактные типы данных, последовательности, списки
Абстрактные типы данных, последовательности, списки
Olga Maksimenkova
 
4. Многомерные массивы и массивы массивов в C#
4. Многомерные массивы и массивы массивов в C#4. Многомерные массивы и массивы массивов в C#
4. Многомерные массивы и массивы массивов в C#
Olga Maksimenkova
 
Array y Objects C#
Array y Objects C#Array y Objects C#
Array y Objects C#
Manuel Antonio
 
Современные образовательные технологии в области компьютерных наук
Современные образовательные технологии в области компьютерных наукСовременные образовательные технологии в области компьютерных наук
Современные образовательные технологии в области компьютерных наук
Olga Maksimenkova
 
Абстрактные типы данных, контейнеры и списки
Абстрактные типы данных, контейнеры и спискиАбстрактные типы данных, контейнеры и списки
Абстрактные типы данных, контейнеры и списки
Olga Maksimenkova
 
Математические основы методов решений систем логических уравнений
Математические основы методов решений систем логических уравненийМатематические основы методов решений систем логических уравнений
Математические основы методов решений систем логических уравнений
Olga Maksimenkova
 
Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)
Olga Maksimenkova
 
Абстрактные типы данных. Списки
Абстрактные типы данных. СпискиАбстрактные типы данных. Списки
Абстрактные типы данных. Списки
Olga Maksimenkova
 
[Maksimenkova_Neznanov] Peer Assessment to Programmers & Peer Assessment Syst...
[Maksimenkova_Neznanov] Peer Assessment to Programmers & Peer Assessment Syst...[Maksimenkova_Neznanov] Peer Assessment to Programmers & Peer Assessment Syst...
[Maksimenkova_Neznanov] Peer Assessment to Programmers & Peer Assessment Syst...
Olga Maksimenkova
 
Презентация курса "Основы программирования" на C#
Презентация курса "Основы программирования" на C#Презентация курса "Основы программирования" на C#
Презентация курса "Основы программирования" на C#
Vadim Martynov
 
Решение систем логических уравнений, ЕГЭ 23 информатика
Решение систем логических уравнений, ЕГЭ 23 информатикаРешение систем логических уравнений, ЕГЭ 23 информатика
Решение систем логических уравнений, ЕГЭ 23 информатика
Olga Maksimenkova
 
Основы С++ (массивы, указатели). Задачи с массивами
Основы С++ (массивы, указатели). Задачи с массивамиОсновы С++ (массивы, указатели). Задачи с массивами
Основы С++ (массивы, указатели). Задачи с массивами
Olga Maksimenkova
 
Язык программирования C#
Язык программирования C#Язык программирования C#
Язык программирования C#
Dmitri Soshnikov
 
Очистка данных на практике: мифы и легенты Excel и R
Очистка данных на практике: мифы и легенты Excel и RОчистка данных на практике: мифы и легенты Excel и R
Очистка данных на практике: мифы и легенты Excel и R
Olga Maksimenkova
 
язык программирования с#
язык программирования с#язык программирования с#
язык программирования с#Nitrosalat
 
Программирование на языке C Sharp (СИ решетка)
Программирование на языке C Sharp (СИ решетка)Программирование на языке C Sharp (СИ решетка)
Программирование на языке C Sharp (СИ решетка)
Alexandr Konfidentsialno
 
SlideShare 101
SlideShare 101SlideShare 101
SlideShare 101
Amit Ranjan
 

Viewers also liked (18)

3. Массивы в C#
3. Массивы в C#3. Массивы в C#
3. Массивы в C#
 
Абстрактные типы данных, последовательности, списки
Абстрактные типы данных, последовательности, спискиАбстрактные типы данных, последовательности, списки
Абстрактные типы данных, последовательности, списки
 
4. Многомерные массивы и массивы массивов в C#
4. Многомерные массивы и массивы массивов в C#4. Многомерные массивы и массивы массивов в C#
4. Многомерные массивы и массивы массивов в C#
 
Array y Objects C#
Array y Objects C#Array y Objects C#
Array y Objects C#
 
Современные образовательные технологии в области компьютерных наук
Современные образовательные технологии в области компьютерных наукСовременные образовательные технологии в области компьютерных наук
Современные образовательные технологии в области компьютерных наук
 
Абстрактные типы данных, контейнеры и списки
Абстрактные типы данных, контейнеры и спискиАбстрактные типы данных, контейнеры и списки
Абстрактные типы данных, контейнеры и списки
 
Математические основы методов решений систем логических уравнений
Математические основы методов решений систем логических уравненийМатематические основы методов решений систем логических уравнений
Математические основы методов решений систем логических уравнений
 
Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)Основы С++ (операторы, типы данных, функции)
Основы С++ (операторы, типы данных, функции)
 
Абстрактные типы данных. Списки
Абстрактные типы данных. СпискиАбстрактные типы данных. Списки
Абстрактные типы данных. Списки
 
[Maksimenkova_Neznanov] Peer Assessment to Programmers & Peer Assessment Syst...
[Maksimenkova_Neznanov] Peer Assessment to Programmers & Peer Assessment Syst...[Maksimenkova_Neznanov] Peer Assessment to Programmers & Peer Assessment Syst...
[Maksimenkova_Neznanov] Peer Assessment to Programmers & Peer Assessment Syst...
 
Презентация курса "Основы программирования" на C#
Презентация курса "Основы программирования" на C#Презентация курса "Основы программирования" на C#
Презентация курса "Основы программирования" на C#
 
Решение систем логических уравнений, ЕГЭ 23 информатика
Решение систем логических уравнений, ЕГЭ 23 информатикаРешение систем логических уравнений, ЕГЭ 23 информатика
Решение систем логических уравнений, ЕГЭ 23 информатика
 
Основы С++ (массивы, указатели). Задачи с массивами
Основы С++ (массивы, указатели). Задачи с массивамиОсновы С++ (массивы, указатели). Задачи с массивами
Основы С++ (массивы, указатели). Задачи с массивами
 
Язык программирования C#
Язык программирования C#Язык программирования C#
Язык программирования C#
 
Очистка данных на практике: мифы и легенты Excel и R
Очистка данных на практике: мифы и легенты Excel и RОчистка данных на практике: мифы и легенты Excel и R
Очистка данных на практике: мифы и легенты Excel и R
 
язык программирования с#
язык программирования с#язык программирования с#
язык программирования с#
 
Программирование на языке C Sharp (СИ решетка)
Программирование на языке C Sharp (СИ решетка)Программирование на языке C Sharp (СИ решетка)
Программирование на языке C Sharp (СИ решетка)
 
SlideShare 101
SlideShare 101SlideShare 101
SlideShare 101
 

Similar to 1. Типы данных. Операции. Ввод и вывод C#

Основы программирования на C++
Основы программирования на C++Основы программирования на C++
Основы программирования на C++
Olga Maksimenkova
 
С.Ковалёв -- теория категорий как математическое основание MBSE
С.Ковалёв -- теория категорий как математическое основание MBSEС.Ковалёв -- теория категорий как математическое основание MBSE
С.Ковалёв -- теория категорий как математическое основание MBSE
Anatoly Levenchuk
 
Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.
YakubovichDA
 
Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Microsoft Visual Studio 2010
Microsoft Visual Studio 2010
Alexander Babich
 
Алгоритмы и языки программирования
Алгоритмы и языки программированияАлгоритмы и языки программирования
Алгоритмы и языки программирования
Theoretical mechanics department
 
2011 Kurosh MSc presentation
2011 Kurosh MSc presentation2011 Kurosh MSc presentation
2011 Kurosh MSc presentationRF-Lab
 
апкс 2011 04_verilog_продолж
апкс 2011 04_verilog_продолжапкс 2011 04_verilog_продолж
апкс 2011 04_verilog_продолжIrina Hahanova
 
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NETОпыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
GoSharp
 
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Sergey Platonov
 
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструментыТехнологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
Positive Development User Group
 
«Облачный» сервис интеллектуального анализа данных. графический интерфейс пос...
«Облачный» сервис интеллектуального анализа данных. графический интерфейс пос...«Облачный» сервис интеллектуального анализа данных. графический интерфейс пос...
«Облачный» сервис интеллектуального анализа данных. графический интерфейс пос...
Анастасия Вязьмина
 
Всё о статическом анализе кода для Java программиста
Всё о статическом анализе кода для Java программистаВсё о статическом анализе кода для Java программиста
Всё о статическом анализе кода для Java программиста
Andrey Karpov
 
Статический анализ кода: Что? Как? Зачем?
Статический анализ кода: Что? Как? Зачем?Статический анализ кода: Что? Как? Зачем?
Статический анализ кода: Что? Как? Зачем?
Andrey Karpov
 
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Dima Dzuba
 
TMPA-2015: Lexical analysis of dynamically formed string expressions
TMPA-2015: Lexical analysis of dynamically formed string expressionsTMPA-2015: Lexical analysis of dynamically formed string expressions
TMPA-2015: Lexical analysis of dynamically formed string expressions
Iosif Itkin
 
Predzazhita 2009 v16
Predzazhita 2009 v16Predzazhita 2009 v16
Predzazhita 2009 v16guest1ba51d
 
06 vasenin roganov siis_2013
06 vasenin roganov siis_201306 vasenin roganov siis_2013
06 vasenin roganov siis_2013Marina_creautor
 

Similar to 1. Типы данных. Операции. Ввод и вывод C# (20)

Основы программирования на C++
Основы программирования на C++Основы программирования на C++
Основы программирования на C++
 
С.Ковалёв -- теория категорий как математическое основание MBSE
С.Ковалёв -- теория категорий как математическое основание MBSEС.Ковалёв -- теория категорий как математическое основание MBSE
С.Ковалёв -- теория категорий как математическое основание MBSE
 
Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.
 
лекция №1
лекция №1лекция №1
лекция №1
 
Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Microsoft Visual Studio 2010
Microsoft Visual Studio 2010
 
Алгоритмы и языки программирования
Алгоритмы и языки программированияАлгоритмы и языки программирования
Алгоритмы и языки программирования
 
2011 Kurosh MSc presentation
2011 Kurosh MSc presentation2011 Kurosh MSc presentation
2011 Kurosh MSc presentation
 
презентация1
презентация1презентация1
презентация1
 
апкс 2011 04_verilog_продолж
апкс 2011 04_verilog_продолжапкс 2011 04_verilog_продолж
апкс 2011 04_verilog_продолж
 
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NETОпыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
 
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
 
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструментыТехнологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
 
«Облачный» сервис интеллектуального анализа данных. графический интерфейс пос...
«Облачный» сервис интеллектуального анализа данных. графический интерфейс пос...«Облачный» сервис интеллектуального анализа данных. графический интерфейс пос...
«Облачный» сервис интеллектуального анализа данных. графический интерфейс пос...
 
Всё о статическом анализе кода для Java программиста
Всё о статическом анализе кода для Java программистаВсё о статическом анализе кода для Java программиста
Всё о статическом анализе кода для Java программиста
 
Статический анализ кода: Что? Как? Зачем?
Статический анализ кода: Что? Как? Зачем?Статический анализ кода: Что? Как? Зачем?
Статический анализ кода: Что? Как? Зачем?
 
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
 
TMPA-2015: Lexical analysis of dynamically formed string expressions
TMPA-2015: Lexical analysis of dynamically formed string expressionsTMPA-2015: Lexical analysis of dynamically formed string expressions
TMPA-2015: Lexical analysis of dynamically formed string expressions
 
Programming c++ (begin-if-else)
Programming c++ (begin-if-else)Programming c++ (begin-if-else)
Programming c++ (begin-if-else)
 
Predzazhita 2009 v16
Predzazhita 2009 v16Predzazhita 2009 v16
Predzazhita 2009 v16
 
06 vasenin roganov siis_2013
06 vasenin roganov siis_201306 vasenin roganov siis_2013
06 vasenin roganov siis_2013
 

More from Olga Maksimenkova

Информатика в школе: методы и технологии активного обучения
Информатика в школе: методы и технологии активного обученияИнформатика в школе: методы и технологии активного обучения
Информатика в школе: методы и технологии активного обучения
Olga Maksimenkova
 
Взаимное оценивание в дисцилине "Программирование"
Взаимное оценивание в дисцилине "Программирование"Взаимное оценивание в дисцилине "Программирование"
Взаимное оценивание в дисцилине "Программирование"
Olga Maksimenkova
 
2020 maksimenkova-dist learning
2020 maksimenkova-dist learning2020 maksimenkova-dist learning
2020 maksimenkova-dist learning
Olga Maksimenkova
 
Intelligent Virtual Reality Tutoring Systems as a New Generation of Simulator...
Intelligent Virtual Reality Tutoring Systems as a New Generation of Simulator...Intelligent Virtual Reality Tutoring Systems as a New Generation of Simulator...
Intelligent Virtual Reality Tutoring Systems as a New Generation of Simulator...
Olga Maksimenkova
 
Геймификация образования: фан, мотивация и преодоление себя
Геймификация образования: фан, мотивация и преодоление себяГеймификация образования: фан, мотивация и преодоление себя
Геймификация образования: фан, мотивация и преодоление себя
Olga Maksimenkova
 
2019-01-11-Digital Transformation of Education
2019-01-11-Digital Transformation of Education2019-01-11-Digital Transformation of Education
2019-01-11-Digital Transformation of Education
Olga Maksimenkova
 
Providing Cognitive Scaffolding within Computer-Supported Adaptive Learning E...
Providing Cognitive Scaffolding within Computer-Supported Adaptive Learning E...Providing Cognitive Scaffolding within Computer-Supported Adaptive Learning E...
Providing Cognitive Scaffolding within Computer-Supported Adaptive Learning E...
Olga Maksimenkova
 
Collaborative Learning in Data Science Education: a Data Expedition as a Form...
Collaborative Learning in Data Science Education: a Data Expedition as a Form...Collaborative Learning in Data Science Education: a Data Expedition as a Form...
Collaborative Learning in Data Science Education: a Data Expedition as a Form...
Olga Maksimenkova
 
Инженерия Хаоса или научите меня геймдеву
Инженерия Хаоса или научите меня геймдевуИнженерия Хаоса или научите меня геймдеву
Инженерия Хаоса или научите меня геймдеву
Olga Maksimenkova
 
Video Game Design History
Video Game Design HistoryVideo Game Design History
Video Game Design History
Olga Maksimenkova
 
Maksimenkova edu infosystems-2018-05-25
Maksimenkova edu infosystems-2018-05-25Maksimenkova edu infosystems-2018-05-25
Maksimenkova edu infosystems-2018-05-25
Olga Maksimenkova
 
Lec 04. The way to production: game testing and analytics
Lec 04. The way to production: game testing and analyticsLec 04. The way to production: game testing and analytics
Lec 04. The way to production: game testing and analytics
Olga Maksimenkova
 
Lec 03. The fates of the Games. Game engines, development
Lec 03. The fates of the Games. Game engines, developmentLec 03. The fates of the Games. Game engines, development
Lec 03. The fates of the Games. Game engines, development
Olga Maksimenkova
 
Lec 01. Mobile games development
Lec 01. Mobile games developmentLec 01. Mobile games development
Lec 01. Mobile games development
Olga Maksimenkova
 
[Maksimenkova_ Neznanov]apkit 2017
[Maksimenkova_ Neznanov]apkit 2017[Maksimenkova_ Neznanov]apkit 2017
[Maksimenkova_ Neznanov]apkit 2017
Olga Maksimenkova
 
Что скрывают открытые образовательные ресурсы?
Что скрывают открытые образовательные ресурсы?Что скрывают открытые образовательные ресурсы?
Что скрывают открытые образовательные ресурсы?
Olga Maksimenkova
 
Представление графов в памяти компьютера (c++).
Представление графов в памяти компьютера (c++).Представление графов в памяти компьютера (c++).
Представление графов в памяти компьютера (c++).
Olga Maksimenkova
 

More from Olga Maksimenkova (17)

Информатика в школе: методы и технологии активного обучения
Информатика в школе: методы и технологии активного обученияИнформатика в школе: методы и технологии активного обучения
Информатика в школе: методы и технологии активного обучения
 
Взаимное оценивание в дисцилине "Программирование"
Взаимное оценивание в дисцилине "Программирование"Взаимное оценивание в дисцилине "Программирование"
Взаимное оценивание в дисцилине "Программирование"
 
2020 maksimenkova-dist learning
2020 maksimenkova-dist learning2020 maksimenkova-dist learning
2020 maksimenkova-dist learning
 
Intelligent Virtual Reality Tutoring Systems as a New Generation of Simulator...
Intelligent Virtual Reality Tutoring Systems as a New Generation of Simulator...Intelligent Virtual Reality Tutoring Systems as a New Generation of Simulator...
Intelligent Virtual Reality Tutoring Systems as a New Generation of Simulator...
 
Геймификация образования: фан, мотивация и преодоление себя
Геймификация образования: фан, мотивация и преодоление себяГеймификация образования: фан, мотивация и преодоление себя
Геймификация образования: фан, мотивация и преодоление себя
 
2019-01-11-Digital Transformation of Education
2019-01-11-Digital Transformation of Education2019-01-11-Digital Transformation of Education
2019-01-11-Digital Transformation of Education
 
Providing Cognitive Scaffolding within Computer-Supported Adaptive Learning E...
Providing Cognitive Scaffolding within Computer-Supported Adaptive Learning E...Providing Cognitive Scaffolding within Computer-Supported Adaptive Learning E...
Providing Cognitive Scaffolding within Computer-Supported Adaptive Learning E...
 
Collaborative Learning in Data Science Education: a Data Expedition as a Form...
Collaborative Learning in Data Science Education: a Data Expedition as a Form...Collaborative Learning in Data Science Education: a Data Expedition as a Form...
Collaborative Learning in Data Science Education: a Data Expedition as a Form...
 
Инженерия Хаоса или научите меня геймдеву
Инженерия Хаоса или научите меня геймдевуИнженерия Хаоса или научите меня геймдеву
Инженерия Хаоса или научите меня геймдеву
 
Video Game Design History
Video Game Design HistoryVideo Game Design History
Video Game Design History
 
Maksimenkova edu infosystems-2018-05-25
Maksimenkova edu infosystems-2018-05-25Maksimenkova edu infosystems-2018-05-25
Maksimenkova edu infosystems-2018-05-25
 
Lec 04. The way to production: game testing and analytics
Lec 04. The way to production: game testing and analyticsLec 04. The way to production: game testing and analytics
Lec 04. The way to production: game testing and analytics
 
Lec 03. The fates of the Games. Game engines, development
Lec 03. The fates of the Games. Game engines, developmentLec 03. The fates of the Games. Game engines, development
Lec 03. The fates of the Games. Game engines, development
 
Lec 01. Mobile games development
Lec 01. Mobile games developmentLec 01. Mobile games development
Lec 01. Mobile games development
 
[Maksimenkova_ Neznanov]apkit 2017
[Maksimenkova_ Neznanov]apkit 2017[Maksimenkova_ Neznanov]apkit 2017
[Maksimenkova_ Neznanov]apkit 2017
 
Что скрывают открытые образовательные ресурсы?
Что скрывают открытые образовательные ресурсы?Что скрывают открытые образовательные ресурсы?
Что скрывают открытые образовательные ресурсы?
 
Представление графов в памяти компьютера (c++).
Представление графов в памяти компьютера (c++).Представление графов в памяти компьютера (c++).
Представление графов в памяти компьютера (c++).
 

1. Типы данных. Операции. Ввод и вывод C#

  • 1. Язык программирования C# и платформа .NET. Простые типы, операции, операторы. Организация ввода и вывода Максименкова Ольга Вениаминовна Старший преподаватель Кафедра управления разработкой программного обеспечения Высшая школа экономики, Москва, 2012 www.hse.ru
  • 2. «Программирование» 1 курс бакалавриата «Программная инженерия» ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 3. ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В. Бесплатно получить установочный файл Microsoft Visual C# 2010 Express можно с официального сайта компании Microsoft по ссылке: http://www.microsoft.com/express/Downloads/.
  • 4. Проекты и решения • Решение (Solution) • Проект (Project) Project Project 1 Project 2 Project N … Solution Solution ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 5. Программы на C# Любая программа – это класс ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В. Абстракция - существенная характеристика объекта, отличающая его от всех других объектов и четко определяющая его концептуальные границы с точки зрения наблюдателя. Класс – это шаблон для объекта (тип данных), а объект – это экземпляр класса (переменная). Объект обладает состоянием поведением и индивидуальностью.
  • 6. Типы данных Типы-значения Целые со знаком byte (1 байт) short (2 байта) int (4 байта) long (8 байт) Целые без знака sbyte ushort uint ulong С плавающей точкой float double Символьный char (1 байт) Логический bool (true/false) Повышенной точности decimal Типы-ссылок String Array Классы пользователя и т.д. ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 7. Создание нового проекта File -> New -> Project (Файл -> Создать -> Проект) Templates Console Application Project types Visual C# Name Задача_1 Location Путь к папке Solution Name По умолчанию совпадает с именем проекта, изменим на Тема_01 ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 8. Окно текстового редактора C# с заготовкой консольного приложения Компиляция и Исполнение: Debug -> Start Without Debugging (или Ctrl+F5) Результат: ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 9. ВВОД-ВЫВОД • Организация ввода • Организация вывода • Преобразование данных ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 10. Организация ввода using System; class Program { static void Main() { string str = Console.ReadLine(); } } Данные, полученные от пользователя - строки Ctrl+F5 Класс Console public static string ReadLine() Получает очередную строку символов из стандартного потока ввода ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 11. Организация вывода using System; class Program { static void Main() { Console.Write("Введите текст: "); string str = Console.ReadLine(); Console.WriteLine("Ваш текст: " + str); } } Ctrl+F5 Класс Console public static void Write(<параметры>) Выводит в стандартный поток вывода представление первого параметра public static void WriteLine(<параметры>) Выводит в стандартный поток вывода представление первого параметра, завершающееся символом конца строки ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 12. Как поместить в решение второй проект? • Открыть Обозреватель решений: View -> Solution Explorer • Выделить Solution ‘Тема_01’, вызвать контекстное меню Add -> New Project Заменить: Name: Задача_2 ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 13. Обработка ввода using System; class Program { static void Main() { int a, b; // целочисленные переменные для хранения чисел Console.Write("Целое число: "); // ввод числа a string str = Console.ReadLine(); a = int.Parse(str); Console.Write("Целое число: "); // ввод числа b str = Console.ReadLine(); int.TryParse(str, out b); Console.WriteLine("Ваш текст: " + a + b); // вывод } } Эксперименты с программой 1. Ввести вместо первого числа букву 2. Ввести вместо второго числа букву 3. Заключить a + b в круглые скобки Ctrl+F5 ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 14. Методы обработки ввода bool <тип>.TryParse(string <строка>, out <тип> <параметр>) Метод преобразует строковое представление числа (первый параметр) в эквивалентное ему числовое значение типа <тип> и присваивает это значение переменной, использованной в качестве аргумента, заменившего второй параметр метода. Метод возвращает значение true, если преобразование выполнено успешно и false – в противном случае. <тип> <тип>.Parse(<строка>) преобразует строковое представление числа в эквивалентное ему число типа <тип>. В случае, если строковое представление не может быть преобразовано к соответствующему типу, возникает исключение. a = int.Parse(str); int.TryParse(str, out b); ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 15. Форматирование строк Структура поля подстановки: {N[,W][:S[R]]}, где N – номер аргумента; W – ширина поля; S – спецификатор формата; R – спецификатор точности. Статья «Строки стандартных числовых форматов на msdn.microsoft.com - http://msdn.microsoft.com/ru-ru/library/dwhawy9k.aspx Статья «Составное форматирование» на msdn.microsoft.com - http://msdn.microsoft.com/ru-ru/library/txafckwd.aspx Спецификатор S: С или с – валютный D или d – целочисленный E или e – экспоненциальный F или f – с фиксированной точкой G или g – «короткий» из E или F X или x – шестнадцатеричный ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 16. Форматирование строк при выводе int i = 3; double d = 1 / (double)i; Console.WriteLine("{0} - {1}", i, d); #0 #1 Console.WriteLine("{0} - {0}", i, d); 3 - 0,333333333333333 3 - 3 Console.WriteLine("{0} - {1:f5}", i, d); 3 - 0,33333 Console.WriteLine("{1} - {2}", i, d); Исключение!!!ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 17. ОПЕРАЦИИ • Некоторые операции языка • Тернарная операция ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 18. Некоторые операции short val = 10; Console.WriteLine(val++); Console.WriteLine(++val); Console.WriteLine(val--); Console.WriteLine(--val); 10 12 12 10 uint bin = 1; Console.WriteLine(bin << 1); Console.WriteLine(bin << 2); Console.WriteLine(bin << 3); 2 4 8 uint bin = 1; Console.WriteLine(bin << 3 == 8); True ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В. Побитовые Унарные Логические
  • 19. Приведение типов ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В. Вещественные Целые со знакомЦелые без знака byte ushort uint ulong sbyte short int long float double decimal При компиляции некоторых объявлений возникают ошибки преобразования типов. Неявное преобразование типов применимо в том случае, когда при преобразовании переменной одного типа к другому не происходит потери информации.
  • 20. Тернарная операция <операнд_1>?<операнд_2>:<операнд_3> == true == false bool a, b, c; a = true; b = false; c = true; Console.WriteLine(!a&(b|c) ? "1" : "0"); Console.WriteLine(a & (b | c) ? "1" : "0"); int a, b, c; // ввод значений a, b и c int max = a > b ? a > c ? a : c : b > c ? b : c; Console.WriteLine(max); ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 21. Схема создания программы ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В. Шапка ------------------------------- Пролог Ввод Обработка Эпилог Вывод 1 2
  • 22. 22 Задача /* Задача. Ввести значения трех переменных x, y, z. Применяя выражения с тернарной операцией ?:, обменять значения переменных так, чтобы выполнялось требование: x <= y <= z. */ ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 23. Задача using System; class Program { public static void Main() { int x, y, z; string str; // Строка для приёма данных 23 Console.WriteLine("x = " + x); Console.WriteLine("y = " + y); Console.WriteLine("z = " + z); Console.WriteLine(“Для выхода из программы нажмите ENTER."); Console.ReadLine(); } //Конец определения метода Main() } //Конец объявления класса Program 2 1 1 Пролог Вывод Эпилог ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 24. Задача int a1 = 0, a2 = 0, a3 = 0; a1 = x < y ? (z < x ? z : x) : (y < z ? y : z); a3 = x > y ? (z > x ? z : x) : (y > z ? y : z); // Самостоятельно определите значение а2 !!!! x = a1; y = a2; z = a3; 24 Ввод Обработка Console.Write("Введите значение x: "); str = Console.ReadLine(); int.TryParse(str, out x); Console.Write("Введите значение y: "); str = Console.ReadLine(); int.TryParse(str, out y) ; Console.Write("Введите значение z: "); str = Console.ReadLine(); int.TryParse(str, out z); ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 25. М.Э. Абрамян 1000 задач по программированию, Ростов-на-Дону, 2004 Решите самостоятельно ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 26. Задание с несколькими верными вариантами ответа 26 26 Необходимо создать переменную целочисленного типа, принимающую отрицательные значения, по модулю не превышающие 217. Для ее объявления можно выбрать тип данных: 1. ushort 2. sbyte 3. byte 4. long 5. int Необходимо выбрать тип данных, позволяющий представлять числа на полуинтервале [-217; 0). • ushort – беззнаковый тип данных; • sbyte – знаковый байт. 1 бит отводится на знак числа и 7 бит на кодирование значения. • byte – беззнаковый тип данных; • long – знаковый тип данных. Позволяет кодировать числа от –(263 – 1) до 263. • int – знаковый тип данных. Позволяет кодировать числа от –(261 – 1) до 263. ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 27. Задание с несколькими верными вариантами ответа 27 27 Укажите строки кода, вставка которых в программу приведет к выводу числа 6 using System; class Program { static void Main() { // TODO вставить код здесь } } 1. Console.WriteLine(12 >> 1); 2. Console.WriteLine(2 & 4); 3. Console.WriteLine(5 ^ 3); 4. Console.WriteLine(6 | 4); 5. Console.WriteLine(7 >> 1 << 1); ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 28. Задание с кратким ответом 28 28 В результате выполнения фрагмента программы: sbyte sByteValue = 115; Console.WriteLine(sByteValue += 15); на экран будет выведено: 1. -126 2. -3 3. 0 4. 128 5. 130 ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В. 127 – 12 = 115 _127 -> 0111 1111 12 -> 0000 1100 115 -> 0111 0011 + 15 -> 0000 1111 1000 0010 (дополнительный код) Получим модуль числа. Для этого инвертируем все разряды, включая знаковый и к результату добавим единицу: 0111 1101 + 1 0111 1110 <- 126 (модуль числа) Объединяя знак и модуль, получаем ответ: -126
  • 29. Задание с несколькими верными вариантами ответа 29 29 Укажите номера строк, при компиляции которых возникнет ошибка: 1. sbyte x = -8; 2. int x = 36.6; 3. Single x = 4.6; 4. long x = 123456789; 5. string s = 12; Тип sbyte – знаковый и -8 входит в диапазон значений переменных этого типа. Тип int представляет целые числа. При таком объявлении происходит потеря значимой информации. По умолчанию всем вещественным константам в программе присваивается тип double. Тип Single соответствует типу float. При преобразовании произойдет потеря значимой информации. В переменной типа long могут храниться положительные значения не превосходящие 263. Размещение в такой переменной числа 123456789 не приведет к потере информации. Неявное преобразование числа в строку не допустимо. Для преобразования необходимо использовать метод ToString() объекта числовой переменной. ФПК учителей НИУ ВШЭ 11.2012, Максименкова О.В.
  • 30. Задание с кратким ответом В результате выполнения следующего фрагмента программы: sbyte sb = -126, nb; nb = (sbyte)(sb << 3); Console.Write(nb); на экран будет выведено: Значение переменной sb типа sbyte занимает один байт и представляется в дополнительном коде, как 1000 0010 При выполнении сдвига 0001 0000 (знак потерялся – это прямой код положительного числа) 16
  • 31. В результате выполнения следующего фрагмента программы: sbyte sb = -126; Console.WriteLine(sb << 3); на экран будет выведено: 31 Задание с кратким ответом Значение переменной sb типа sbyte занимает один байт и представляется в дополнительном коде, как 1000 0010 При выполнении сдвига, сначала происходит неявное приведение типа sbyte к типу int, то есть значение теперь занимает 4 байта и представляется как 0000 0000 0000 0000 0000 0000 1000 0010 После выполнения сдвига на 3 бита влево, получим: 0000 0000 0000 0000 0000 0100 0001 0000 (знак) Инвертируем: 0000 0000 0000 0000 0000 0011 1110 1111 Добавляем единицу, получаем: 0000 0000 0000 0000 0000 0011 1111 0000 (модуль) -1008
  • 32. 101000, Россия, Москва, Мясницкая ул., д. 20 Тел.: (495) 621-7983, факс: (495) 628-7931 www.hse.ru