Создать консольную программу вывода вещественного числа в нестандартных форматах.
Варианты к заданию.Вещественное число определяется аналогично заданию 3.2. При запуске программы также выводится информация об исполнителе работы.
Пример.
Листинг программы
using System;
namespace ChislaFormatNestand
{
class Program
{
static void Main()
{
double d;
string data, stud;
Console.WriteLine("Студент группы ИТСС-1 Иванов И.И.");
Console.WriteLine("Введите дату рождения в формате ДДММГГГГ");
data = Console.ReadLine();
Console.WriteLine("Введите номер студенческого билета");
stud = Console.ReadLine();
d = -Convert.ToDouble(data) / Convert.ToDouble(stud);
Console.Write("Число c плавающей точкой ");
Console.WriteLine(d);
Console.WriteLine();
Console.Write("формат с символами E+0 ");
Console.WriteLine("{0:000E+000}", d);
Console.Write("формат с символами E-0 ");
Console.WriteLine("{0:000E-000}", d);
Console.Write("формат с символом 0 ");
Console.WriteLine("{0:000}", d);
Console.Write("формат с символом # ");
Console.WriteLine("{0:###}", d);
Console.Write("Формат с символом точка ");
Console.WriteLine("{0:###.000}", d);
Console.Write("Формат с символом запятая ");
Console.WriteLine("{0:###,000}", d);
Console.Write("Формат с символом % ");
Console.WriteLine("{0:###.000%}", d);
Console.WriteLine();
Console.WriteLine("Нажмите любую клавишу");
Console.ReadKey();
}
}
}
Результат выполнения:
2. Строковые и символьные типы в языке C#
Предмет исследований
· Типы строкых и символьных типов.
· Строки и их обработка.
· Методы работы состроками..
· Организация ввода-вывода строковых данных.
Контрольные вопросы
1. Переменные. Их объявление.
2. Сравнение строк.
3. Объдинение строк
4. Разбиение строк
5. Символьный тип: char.
6. Строковый тип string.
7. Совместимость типов при присвоениях.
8. Назначение форматирования чисел.
9. Стандартные форматы. G формат – общий. F формат - c фиксированной точкой. N формат – числовой. E формат – научный. C формат – денежный. P формат – процентный. D формат – десятичный.
10. Нестандартные форматы. Форматы с символами E+0 и E-0. формат с символом 0. формат с символом #. Формат с символом точка. Формат с символом запятая. Формат с символом %.
Объединение строк
Создать консольную программу объединения в одну строку строковоой и символьной переменной. Она должна отображать фамилию студента строкой и добавлять к строке два символа, которые определяются двумя последними цифрами номера студенческого билета АВ.
Значение А или В
Символ
)
!
@
#
$
Значение А или В
Символ
%
^
&
*
(
Результат занести в отчет.
Пример. Создать программу взаимных преобразований строковых и символьных типов. Она должна отображать строку Фамилия строками разного типа и добавлять к строке символ восклицательного знака ( ! ).
Листинг программы
using System;
namespace ConsoleChar
{
class Program
{
static void Main()
{
string Фамилия;
char Символ;
Console.WriteLine("Введите фамилию и нажмите Enter");
Фамилия = Console.ReadLine(); // тип string
Console.WriteLine(); // Пропуск строки
Символ = '!'; // тип char
Console.WriteLine(Фамилия + Символ);
Console.WriteLine(); // Пропуск строки
Console.WriteLine("Нажмите Enter");
Console.ReadLine(); // Пауза
}
}
}
Результат выполнения:
Сравнение строк
Создать программу сравнения строк. Проект – консольное приложение. Варианты задания используют строки, набранные из Фамилии, Имени и Отчества студента.
Занести результат в отчет, пояснить полученные значения.
Пример.
Листинг программы
using System;
namespace StrokSravnenie
{
class Program
{
static void Main()
{
string s1 = "Иванов,Иван,Иванович";
string s2 = "Иванов,Иван";
Console.WriteLine("Сравниваемые строки");
Console.Write("s1 = ");
Console.WriteLine(s1);
Console.Write("s2 = ");
Console.WriteLine(s2);
Console.WriteLine();
Console.WriteLine("Нажмите любую клавишу");
Console.ReadKey();
Console.WriteLine();
Console.WriteLine("Сравниваем s2 с s1");
int r = s2.CompareTo(s1);
Console.WriteLine("Результат = " + r.ToString());
Console.WriteLine();
Console.WriteLine("Нажмите любую клавишу");
Console.ReadKey();
Console.WriteLine();
Console.WriteLine("Сравниваем s2 с s2");
r = s2.CompareTo(s2);
Console.WriteLine("Результат = " + r.ToString());
Console.WriteLine();
Console.WriteLine("Нажмите любую клавишу");
Console.ReadKey();
Console.WriteLine();
Console.WriteLine("Сравниваем s1 с s2");
r = s1.CompareTo(s2);
Console.WriteLine("Результат = " + r.ToString());
Console.WriteLine();
Console.WriteLine("Нажмите любую клавишу");
Console.ReadKey();
}
}
}
Консоль перед закрытием программы:
Разбиение строк
Создать программу разбиения строк. Проект – консольное приложение.
Вариант: Вводятся группа, фамилия, имя и отчество исполнителя работы через разделитель в соответствии с таблицей задания 3.1 по значению последней цифры студенческого билета (В). В результате происходит вывод соответствующих записей в столбик без разделителей
Пример.
Листинг программы
using System;
namespace StrokRazbienie
{
class Program
{
static void Main()
{
Console.WriteLine("Введите группу фамилию имя отчество через разделитель в соответствии с заданием");
string s1 = Console.ReadLine();
string[] s2; //Массив строк
Console.WriteLine("Исходная строка");
Console.WriteLine(s1);
Console.WriteLine();
s2 = s1.Split(';'); // символ раэделения в массиве
// Вывод подстрок
string output = "";
int ctr = 1;
foreach (string substring in s2)
{
output += ctr++;
output += ": ";
output += substring;
output += "\n";
}
Console.WriteLine("Выделенные подстроки");
Console.WriteLine(output);
Console.WriteLine("Нажмите любую клавишу");
Console.ReadKey();
}
}
}
Консоль перед закрытием программы:
3. Тип DateTime в языке C#
Предмет исследований
· Структура программы на языкеC#.
· Задание констант, переменных.
· Тип DateTime.
· Компонент DateTimePicker.
· Программа решения задачи в виде консольного приложения.
· Программа решения задачи в виде Windows приложения.
Контрольные вопросы
1. Алфавит языка C#, операции, идентификаторы.
2. Структура программы.
3. Переменные. Их объявление.
4. Тип DateTime. Назначение
5. Компонент DateTimePicker.
6. Совместимость типов при присвоениях.
7. От какой даты происходит отсчет времени в ЭВМ.
Задание
Создать консольное приложение для работы с типом DateTime. Оно должно запрашивать дату и время рождения студента, выводить текущие дату/время, запрашивать желаемое время дальнейшего обучения, выводить дату/время и день недели конца обучения.
Варианты к заданиям.Индивидуальные данные студента.
Пример.
Листинг программы
using System;
namespace ConsoleDateTime
{
class Program
{
static void Main()
{
string d1, s, f;
Console.WriteLine("Введите Вашу фамилию");
f = Console.ReadLine();
Console.WriteLine();
Console.WriteLine("Введите дату рождения дд.мм.гггг");
d1 = Console.ReadLine();
DateTime dt1 = Convert.ToDateTime(d1);
Console.WriteLine();
Console.WriteLine("Ваша фамилия - " + f);
Console.WriteLine();
Console.WriteLine("Вы рождены");
Console.WriteLine(dt1);
DateTime dt2 = DateTime.Now;
Console.WriteLine();
Console.WriteLine("Сегодня");
Console.WriteLine(dt2);
Console.WriteLine();
int i = (dt2.Year - dt1.Year) * 365;
Console.WriteLine("Вы прожили " + i + " дней");
Console.WriteLine();
Console.WriteLine("Сколько дней еще хотите учиться?");
s = Console.ReadLine();
dt2 = dt2.AddDays(Convert.ToInt32(s));
Console.WriteLine();
Console.WriteLine("Вы станете умным " + dt2);
Console.WriteLine();
Console.WriteLine("Это будет " + dt2.DayOfWeek);
Console.WriteLine();
Console.WriteLine("Если не все поняли, подучите английский");
Console.WriteLine();
Console.WriteLine("Нажмите любую клавишу");
Console.ReadKey();
}
}
}
Результат выполнения:
Логические операции
Предмет исследований
· Логические операции в C#.
· Разработать алгоритмы решения в соответствии с заданием.
· Составить программы решения задач.
Контрольные вопросы
1. Операция НЕ – Not.
2. Операция ИЛИ – OR.
3. Операция И – AND.
4. Операция исключающее ИЛИ – XOR.
5. Логические сдвиги.
6. Циклические сдвиги
7. Арефмитические сдвиги
Задание
Выполнить над операндами X и Y операции ИЛИ – OR, И – AND, исключающее ИЛИ – XOR. Выполнить над операндом X логические сдвиги влево и вправо на Z разрядов. Проект – консольное приложение.
Предварительный расчет:
До выполнения работы произвести соответствующие операции с заданными числами в двоичном эквиваленте с получением десятичного значения.
Реультат предварительного расчета сравнить с полученным в программе.
Варианты задания
· Значение чисел X = DE; Y=BC; Z=A+1; Q = «истина» для четных Е; Q = «ложь» для нечетных Е;
Где ABCDE – последние цифры номера студенческого билета.
Пример.Выполнить над операндами X = 10 и Y = 16 операции ИЛИ – OR, И – AND, исключающее ИЛИ – XOR. Выполнить над операндом X = 10 логическиские сдвиги влево и вправо на Z = 2 разряда. Над операндомQ = true операцию НЕ – Not.
Листинг программы
using System;
namespace ConsoleLogic
{
class Program
{
static void Main()
{
int X = 16, Y = 10, i=0;
bool Q = true;
int Z = 2; // Размер свига
Console.WriteLine("Операция НЕ - Not");
Console.WriteLine();
Console.WriteLine("Операнд = {0}", Q);
Console.WriteLine("Not(Операнд) = {0}", !Q);
Console.WriteLine();
Console.WriteLine("Операция ИЛИ - OR");
Console.WriteLine();
i = X | Y;
Console.WriteLine("Операнды = {0}, {1}", X, Y);
Console.WriteLine("(Оп1) OR (Оп2) = {0}", i);
Console.WriteLine();
Console.WriteLine("Операция И - AND");
Console.WriteLine();
i = X & Y;
Console.WriteLine("Операнды = {0}, {1}", X, Y);
Console.WriteLine("(Оп1) AND (Оп2) = {0}", i);
Console.WriteLine();
Console.WriteLine("Операция исключающее ИЛИ - XOR");
Console.WriteLine();
i = X ^ Y;
Console.WriteLine("Операнды = {0}, {1}", X, Y);
Console.WriteLine("(Оп1) XOR (Оп2) = {0}", i);
Console.WriteLine();
Console.WriteLine("Логический сдвиг");
Console.WriteLine();
Console.WriteLine("Исходное число = {0}", X);
i = X >> Z;
Console.WriteLine("Cдвиг вправо на {1} бита = {0}", i,Z);
i = X << Z;
Console.WriteLine("Cдвиг влево на {1} бита = {0}", i,Z);
Console.WriteLine();
Console.WriteLine("Нажмите любую клавишу");
Console.ReadKey();
}
}
}
Консоль перед закрытием программы:
Линейные структуры
Предмет исследований
· Запись констант, переменных, стандартных функций.
· Правила записи арифметических выражений.
· Арифметические операторы присваивания.
· Разработка алгоритма решения в соответствии с заданием.
· Составление программы решения задачи в виде консольного приложения.
Контрольные вопросы
1. Алфавит языка C#.
2. Операции.
3. Идентификаторы.
4. Типы данных.
5. Структура программы консольного приложения.
6. Где описываются константы, переменные и типы данных?
7. Стандартные функции.
8. Операторы присваивания.
9. Пустая и составная инструкция.
10. Процедуры ввода Read и ReadLine.
11. Процедуры вывода Write и WriteLine.
12. Последовательность действий при выполнении оператора присваивания.
13. Приоритетность выполнения операций в выражениях.
14. Как организовать пропуск одной, двух строк при выводе?
Задание.Вычислить значения переменных в соответствии с вариантами задания. Вывести значения вводимых исходных данных и результаты, сопровождая их вывод именами выводимых переменных. Задание выполнить в виде консольного приложения.
Заполнить отчет.
Варианты задания
Номер варианта определяется номером ЭВМ в аудитории (закрепляется на первом занятии на весь семестр).
Ввод данных для вычислений должен производиться с клавиатуры.
Работу программы проверить при различных наборах исходных данных не менее 6 раз. Вводимые данные для вычислений должны содержать положительные и отрицательные вещественные и целые числа.
№
Задание
№
Задание
Пример. Вычислить при x = 2.1, y = 0.59, z = -4.8 значения a и b, используя формулы:
Листинг программы
using System;
namespace ConsoleLineStr
{
class Program
{
static void Main()
{
double x =2.1, y =0.59, z = -4.8, a =0, b = 0; // Переменные типа double
a = y * Math.Pow(Math.Tan(x * x), 3);// Вычисляем a
a += Math.Sqrt(z * z / (y * y + x * x));
Console.WriteLine("Результаты");
Console.WriteLine();
Console.Write("a="); // Вывод a
Console.WriteLine(a.ToString());
b = Math.Log(y + x * x); // Вычисляем b
b += Math.Pow(Math.Sin(z / x), 2);
Console.Write("b="); // Вывод b
Console.WriteLine(b.ToString());
Console.WriteLine();
Console.WriteLine("Нажмите любую клавишу");
Console.ReadKey(); // Пауза
}
}
}
Ветвления
Предмет исследований
· Условная и безусловная передача управления;
· Вычислительные процессы с разветвляющейся структурой.
· Разработать алгоритмы решения в соответствии с заданием.
· Составить программы решения задач.
Контрольные вопросы
1. Какие структуры вычислительных процессов Вы знаете?
2. Как организовать разветвление вычислений?
3. Ветвление if... else.
4. Вложенные ветвления.
5. Инструкция выбора switch.
6. Фраза case.
7. Зачем во фразе case применяется оператор break?
Ветвление if; else
Задание
Вычислить значения функции по варианту задания. Вывести значения исходных данных и полученные результаты, сопровождая их именами переменных. Значения аргумента взять из указанного диапазона так, чтобы протестировать все ветви программы. Проект – консольное приложение. Значения не определенные исходными данными запрашивать у пользователя.
Работу программы проверить при различных наборах исходных данных не менее 6 раз. Вводимые данные для вычислений должны содержать положительные и отрицательные вещественные и целые числа.
Заполнить отчет
Примечание. Принципом работы оператора безусловного перехода goto. Инструкция goto используется следующим образом:
В коде программы создается метка с именем (начинается с символа).
Организуется переход на эту метку инструкцией goto «имя метки».
Имя метки в коде обязательно должно заканчиваться двоеточием (:). Оно указывает на точку в программе, с которой будет выполняться программа после использования инструкции goto.
В основном инструкция goto используется с условими.
Варианты заданий
Номер варианта определяется номером ЭВМ в аудитории (закрепляется на первом занятии на весь семестр).
Вариант
Задание
Диапазон
дополнительно
Пример. Вычислить при y=1.3, x=[0.. 2.1] с шагом 0.3 значения функции a. Результат вывести в виде таблицы. Проект – консольное приложение.
Блок-схема алгоритма представлена на рисунке.
Для организации множественных вычислений введены следующие переменные: x - начальное значение, xk - конечное значение dx - шаг изменения аргумента x. Для осуществления повторного вычисления используется проверка условия вхождения переменной х в заданный диапазон.
Блок-схема решения задачи
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double a = 0, x = 0, c = 0, dx = 0.3, xk = 2.1, y = 0;
Console.WriteLine("введите у");
y = Convert.ToDouble(Console.ReadLine()); // считываем значение у
M: c = y * x; //вычисляем промежуточное значение для меньших вычислений
if (c > 1) a = c + 1;
else if (c == 1) a = Math.Cos(c); //вложенное условие
else a = Math.Exp(-c) * Math.Cos(c);
Console.WriteLine("x = {0,3} a = {1}", x, a);
x += dx; //увеличиваем шаг вычислений
if (x <= xk) goto M; /* если не выходим за пределы заданного диапазона
* возвращаемся к вычислениям*/
Console.WriteLine("нажмите любую клавишу");
Console.ReadKey();//ожидание нажатия клавиши для просмотра результата