SlideShare a Scribd company logo
1 of 32
Download to read offline
Язык программирования 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

Урок 42. Алгоритми з повтореннями для опрацювання величин. Цикл з лічильником
 Урок 42. Алгоритми з повтореннями  для опрацювання величин.  Цикл з лічильником Урок 42. Алгоритми з повтореннями  для опрацювання величин.  Цикл з лічильником
Урок 42. Алгоритми з повтореннями для опрацювання величин. Цикл з лічильникомВасиль Тереховський
 
Unit 1 - TypeScript & Introduction to Angular CLI.pptx
Unit 1 - TypeScript & Introduction to Angular CLI.pptxUnit 1 - TypeScript & Introduction to Angular CLI.pptx
Unit 1 - TypeScript & Introduction to Angular CLI.pptxMalla Reddy University
 
Angular Dependency Injection
Angular Dependency InjectionAngular Dependency Injection
Angular Dependency InjectionNir Kaufman
 
Лекция 9. Поиск кратчайшего пути в графе
Лекция 9. Поиск кратчайшего пути в графеЛекция 9. Поиск кратчайшего пути в графе
Лекция 9. Поиск кратчайшего пути в графеMikhail Kurnosov
 
Collections Framework
Collections FrameworkCollections Framework
Collections FrameworkSunil OS
 
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...Edureka!
 
Цикли з передумовою
Цикли з передумовоюЦикли з передумовою
Цикли з передумовоюrussoua
 
Advanced Java Practical File
Advanced Java Practical FileAdvanced Java Practical File
Advanced Java Practical FileSoumya Behera
 
An Introduction to Vuejs
An Introduction to VuejsAn Introduction to Vuejs
An Introduction to VuejsPaddy Lock
 
Java database connectivity with MySql
Java database connectivity with MySqlJava database connectivity with MySql
Java database connectivity with MySqlDhyey Dattani
 
javascript_funcional.pdf
javascript_funcional.pdfjavascript_funcional.pdf
javascript_funcional.pdfronaldo ramos
 
Deep dive into Vue.js
Deep dive into Vue.jsDeep dive into Vue.js
Deep dive into Vue.js선협 이
 
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기Manjong Han
 

What's hot (20)

Урок 42. Алгоритми з повтореннями для опрацювання величин. Цикл з лічильником
 Урок 42. Алгоритми з повтореннями  для опрацювання величин.  Цикл з лічильником Урок 42. Алгоритми з повтореннями  для опрацювання величин.  Цикл з лічильником
Урок 42. Алгоритми з повтореннями для опрацювання величин. Цикл з лічильником
 
Unit 1 - TypeScript & Introduction to Angular CLI.pptx
Unit 1 - TypeScript & Introduction to Angular CLI.pptxUnit 1 - TypeScript & Introduction to Angular CLI.pptx
Unit 1 - TypeScript & Introduction to Angular CLI.pptx
 
Java generics
Java genericsJava generics
Java generics
 
Angular Dependency Injection
Angular Dependency InjectionAngular Dependency Injection
Angular Dependency Injection
 
C++ Language
C++ LanguageC++ Language
C++ Language
 
Лекция 9. Поиск кратчайшего пути в графе
Лекция 9. Поиск кратчайшего пути в графеЛекция 9. Поиск кратчайшего пути в графе
Лекция 9. Поиск кратчайшего пути в графе
 
Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
 
Collections Framework
Collections FrameworkCollections Framework
Collections Framework
 
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...
Angular Directives | Angular 2 Custom Directives | Angular Tutorial | Angular...
 
C# - Part 1
C# - Part 1C# - Part 1
C# - Part 1
 
.Net Core 1.0 vs .NET Framework
.Net Core 1.0 vs .NET Framework.Net Core 1.0 vs .NET Framework
.Net Core 1.0 vs .NET Framework
 
Цикли з передумовою
Цикли з передумовоюЦикли з передумовою
Цикли з передумовою
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
 
C++ oop
C++ oopC++ oop
C++ oop
 
Advanced Java Practical File
Advanced Java Practical FileAdvanced Java Practical File
Advanced Java Practical File
 
An Introduction to Vuejs
An Introduction to VuejsAn Introduction to Vuejs
An Introduction to Vuejs
 
Java database connectivity with MySql
Java database connectivity with MySqlJava database connectivity with MySql
Java database connectivity with MySql
 
javascript_funcional.pdf
javascript_funcional.pdfjavascript_funcional.pdf
javascript_funcional.pdf
 
Deep dive into Vue.js
Deep dive into Vue.jsDeep dive into Vue.js
Deep dive into Vue.js
 
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
 

Viewers also liked

Абстрактные типы данных, последовательности, списки
Абстрактные типы данных, последовательности, спискиАбстрактные типы данных, последовательности, списки
Абстрактные типы данных, последовательности, спискиOlga Maksimenkova
 
4. Многомерные массивы и массивы массивов в C#
4. Многомерные массивы и массивы массивов в C#4. Многомерные массивы и массивы массивов в C#
4. Многомерные массивы и массивы массивов в C#Olga Maksimenkova
 
2. Операторы языка C#
2. Операторы языка C#2. Операторы языка C#
2. Операторы языка C#Olga Maksimenkova
 
Современные образовательные технологии в области компьютерных наук
Современные образовательные технологии в области компьютерных наукСовременные образовательные технологии в области компьютерных наук
Современные образовательные технологии в области компьютерных наук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 и ROlga Maksimenkova
 
язык программирования с#
язык программирования с#язык программирования с#
язык программирования с#Nitrosalat
 
Программирование на языке C Sharp (СИ решетка)
Программирование на языке C Sharp (СИ решетка)Программирование на языке C Sharp (СИ решетка)
Программирование на языке C Sharp (СИ решетка)Alexandr Konfidentsialno
 

Viewers also liked (19)

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#
 
2. Операторы языка C#
2. Операторы языка C#2. Операторы языка C#
2. Операторы языка 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
С.Ковалёв -- теория категорий как математическое основание MBSEAnatoly Levenchuk
 
Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.YakubovichDA
 
Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Alexander 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.NETGoSharp
 
Юрий Ефимочев, Компилируемые в реальном времени 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 expressionsIosif 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 learningOlga 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 EducationOlga 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
 
Maksimenkova edu infosystems-2018-05-25
Maksimenkova edu infosystems-2018-05-25Maksimenkova edu infosystems-2018-05-25
Maksimenkova edu infosystems-2018-05-25Olga 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 analyticsOlga 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, developmentOlga Maksimenkova
 
Lec 01. Mobile games development
Lec 01. Mobile games developmentLec 01. Mobile games development
Lec 01. Mobile games developmentOlga Maksimenkova
 
[Maksimenkova_ Neznanov]apkit 2017
[Maksimenkova_ Neznanov]apkit 2017[Maksimenkova_ Neznanov]apkit 2017
[Maksimenkova_ Neznanov]apkit 2017Olga 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