
Лабараторки_Плотников(теория_и_задания) / Лабораторная работа 1 (УТП)
.pdfКФ МГТУ им. Н.Э. Баумана
Плотников Ф.А.
Лабораторная работа №1
по дисциплине:
«Учебный технологический практикум» на тему:
«Ввод-вывод и простые типы языка C#»
Калуга, 2012

Типы данных и переменные.
Любая программа обрабатывает данные, а для их хранения используется оперативная память. Первые языки программирования при обращении к памяти требовали явно указывать адрес ячейки памяти, что было очень неудобно. Современные языки программирования позволяют обращаться к ячейкам памяти, использую переменные.
Переменная – поименованная ячейка памяти, предназначенная для хранения данных заданного типа, обращение к ячейке памяти из программы осуществляется по ее идентификатору.
Тип – набор признаков характеризующих некоторую структуру памяти.
Тип определяет, сколько памяти выделяется для хранения переменной. Какие значения можно присваивать данной переменной. И какие действия можно выполнять с данной переменной.
Идентификатор – буквенное обозначение переменной в рамках программы. Содержит буквы, цифры и знак подчеркивания. Не может начинаться с цифры.
Синтаксический блок 1 – Объявление переменных
<объявление переменной>::= <тип> <идентификатор> [= <начальное значение>];
Тип – один из стандартных типов C# или пользовательский тип.
Идентификатор – последовательность букв, цифр и некоторых знаков задающих имя переменной по которому и будет вестись обращение к ней.
Рассмотрим пример:
Листинг 1. Программа «Объявление переменных»
01:using System;
02:public class HelloAnybody
03:{
04:public static void Main()
05:{
06: Console.WriteLine(”What is your name?”);
07: |
string Name; |
08: |
Name = Console.ReadLine(); |
09: |
Console.WriteLine(”Hello ”+Name); |
10: |
Console.ReadLine(); |
11: |
} |
12: |
} |
|
|
07: - идет объявление переменной Name типа string. Переменная тип string, как следует из его названия, может хранить строку.
08: - чтение с клавиатуры ввода пользователя и занесение в переменную Name строки набранной пользователем.
09: - Вывод на экран строки ”Hello ” с добавлением в вывод строки введенной пользователем.
Преимущества использования типов
В чем же достоинство системы типов? Когда мы определяем, например переменную типа string, мы для этой переменной задаем:
в ней будут храниться только строки;
программа должна выделить определенный объем памяти для хранения значения этой переменной;
при выполнении операций с этой переменной компилятор всегда знает что «ааа»+«ббб»=«аааббб» (собственно отличие строчных переменных от числовых в том и заключается что 3+4=7, а «3»+«4»=«34»);
при попытке присвоить нашей переменной несовместимое по типу значение компилятор выдаст ошибку, и мы сможем ее исправить на этапе разработки программы.
Форматирование вывода
И так, мы знаем, что существуют различные типы, которые хранят внутри себя данные в определенном формате. Возникает логичный вопрос как же сделать так, что бы было возможно вывести эти данные на экран.

Методы Console.ReadLine (Console.Read) и Console.WriteLine (Console.Write)
работают со строковыми переменными. Поэтому при выводе данных нам так или иначе необходимо перевести эти данные в строковый формат. Для этой процедуры у каждого типа есть метод ToString(), который переводит данные в строковое представление. Данный метод может принимать в качестве параметра как произвести форматирование при преобразование. Указывая параметры форматирования можно добиться необходимого вида представления. В качестве такого параметра используется строка форматирования String.Format.
Синтаксический блок 2 – Формирование строки формата
<строка форматирования>::= {<индекс аргумента> [, <выравнивание> [: <формат вывода>]]}
Выравнивание указывается в виде числового значения. Это значение указывает, сколько минимально необходимо выделить позиций для вывода значения. Если выравнивание положительное, то значение аргумента будет выводиться от правого края, если отрицательное, то от левого края.
Пример:
Правое выравнивание:
static void Main(string[] args)
{
double d = 1234.123; Console.WriteLine("--{0,20}--", d); Console.ReadLine();
}
Результат вывода:

Левое выравнивание:
static void Main(string[] args)
{
double d = 1234.123; Console.WriteLine("--{0,-20}--", d); Console.ReadLine();
}
Резултат вывода:
Особенности форматирования числовых данных:
|
Специ |
|
|
|
|
|
|
|
|
вывод |
|
|
вывод |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
фикат |
|
|
Тип |
|
|
формат |
|
|
|
|
|
||
|
|
|
|
|
|
|
(double 1.2345) |
|
|
(int -12345) |
|
|||
|
ор |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c |
|
currency |
|
{0:c} |
|
1.23р. |
|
-12 345.00р. |
|||||
|
|
|
|
|
|
|
|
|
|
|||||
|
d |
|
decimal |
|
{0:d} |
|
System.FormatExce |
-12345 |
|
|||||
|
|
|
(whole number) |
|
|
|
|
ption |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
e |
|
exponent / |
|
{0:e} |
|
1.234500e+000 |
|
-1.234500e+004 |
|||||
|
|
scientific |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|||||
|
f |
|
fixed point |
|
{0:f} |
1.23 |
|
-12345.00 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|||||
|
g |
|
general |
|
{0:g} |
1.2345 |
|
-12345 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|||||
|
n |
|
number |
|
{0:n} |
1.23 |
|
-12,345.00 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
|
round trippable |
|
{0:r} |
1.23 |
|
|
System.FormatExcepti |
|||||
|
|
|
|
|
on |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
hexadecimal |
|
{0:x4} |
|
System.FormatExce |
|
ffffcfc7 |
|||||
|
|
|
|
ption |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Пользовательское форматирование числовых данных:
|
Специ |
|
|
|
|
|
|
вывод |
|
|
|
|
|
|
|
|
|
||
|
фикат |
|
|
Тип |
формат |
|
|
(double |
|
|
ор |
|
|
|
|
|
|
1.2345) |
|
0 |
|
|
zero placeholder |
{0:00.000} |
|
1234.560 |
|
||
|
|
|
|
|
|
|
|
||
# |
|
|
digit placeholder |
{0:#.##} |
|
1234.56 |
|
||
|
|
|
|
|
|
|
|
|
|
. |
|
|
decimal point |
{0:0.0} |
|
1234.6 |
|
||
|
|
placeholder |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
, |
|
|
thousand |
{0:0,0} |
|
1,235 |
|
||
|
|
separator |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
% |
|
|
percentage |
{0:0%} |
|
123456% |
|
||
|
|
|
|
|
|
|
|
|
|
Задание на лабораторную работу №1
1.Спросить у пользователя имя и фамилию.
2.Спросить у пользователя возраст.
3.Вывести на экран сначала фамилию, затем имя (вывод в одну строку).
4.Вывести на экран сначала имя, затем фамилию, затем возраст
(каждое значение в новой строке, причем перед выводом соответствующего значения необходимо вывести, что это такое;
например: «Фамилия: Иванов»).
5.Вывести все, что указанно в пункте 4, но в виде таблицы, где первый столбец – фамилия, второй – имя, третий – возраст. Перед выводом
информации сформировать шапку таблицы.
Вывод должен иметь следующий вид:
Введите имя: Иван
Введите фамилию: Иванов
Введите возраст: 17
Иван Иванов |
|
|
Имя: Иван |
|
|
Фамилия: Иванов |
|
|
Возраст: 17 |
|
|
Фамилия |
Имя |
Возраст |
Иванов |
Иван |
17 |