Слайд 2
Задача 1
Написать метод, выполняющий арифметические операции над значениями
двух параметров. Третий параметр – символ операции.
В основной программе,
вводить значения двух переменных целого типа и символ операции, обращаясь к методу, вычислять значение соответствующего выражения.
Слайд 3
Задача 1
using System;
namespace Задача_1 {
class Program
{
static void Main( )
{
int x, y;
do Console.Write("Введите целое число: ");
while (!int.TryParse(Console.ReadLine(), out x));
//TODO: Получить значение y
char sig = ' ';
do Console.Write("Введите знак операции: ");
while (!char.TryParse(Console.ReadLine(), out sig)
|| (sig != '+' & sig != '-' & sig != '*' & sig != '/'));
int result = Expression(x, y, sig); // вызов метода Expression()
Console.WriteLine("result = " + result);
}
// Объявление метода Expression()
}
}
Слайд 4
Задача 1
static int Expression(int op1, int op2, char
operation) {
int res = 0;
switch
(operation) {
case '+': res = op1 + op2; break;
case '-': res = op1 - op2; break;
case '*': res = op1 * op2; break;
case '/': res = op1 / op2; break;
default: Console.WriteLine("Error!"); break;
}
return res;
}
!!! НЕ ЗАБУДЬТЕ ДОПОЛНИТЬ КОД ЦИКЛОМ ПОВТОРЕНИЯ РЕШЕНИЙ
#TODO: Дополнить программу операцией получения остатка от деления двух чисел - %.
Для вычисления остатка от деления написать метод, встроенную операцию получения остатка от деления не использовать.
Слайд 5
Задача 2
Написать метод с логическими параметрами, вычисляющий и
возвращающий значение логического выражения (конкретное выражение в условии должно
быть явно задано).
В основной программе построить таблицу истинности логического выражения, заданного методом.
static bool Function(bool b1, bool b2) {
return !(b1 & b2) & !(b1 | !b2);
}
Слайд 6
Задача 2
// Метод вычисляет логическое выражение: !(p &
q) & !(p | !q)
using System;
class Program {
static void Main() {
bool p = true, q, res;
Console.WriteLine("Таблица истинности !(p & q) & !(p | !q)");
Console.WriteLine(" p \t q \t F");
do { q = true;
do {
res = Function(p, q);
Console.WriteLine("{0}\t{1}\t{2}", p, q, res);
q = !q;
} while (!q);
p = !p;
} while(!p);
Console.WriteLine("Для выхода нажмите ENTER");
Console.ReadLine();
}
// TODO: ОБЪЯВЛЕНИЕ метода Function()
}
Слайд 7
Условный оператор
Например,
if (x > 0) {
x = x;
}
else {
x =
-x;
}
Например,
if (true) {
Console.Write(“11”);
}
Полная форма
Неполная форма
Слайд 8
Задача 3
Написать метод для вычисления по формуле Ньютона
с точностью до «машинного нуля» приближенного значения арифметического квадратного
корня.
Параметры: подкоренное значение, полученное значение корня и значение точности, достигнутой при его вычислении. Если подкоренное значение отрицательно - метод должен возвращать в точку вызова значение false, иначе - true.
В основной программе вводить вещественные числа и выводить их корни. При отрицательных числах выводить сообщения.
Слайд 9
Задача 3
// Корень по формуле Ньютона
using System;
class Program
{
static void Main( )
{
double x, result = 0, eps = 0;
Console.Title = "Формула Ньютона";
ConsoleKeyInfo клавиша; //Нажатая пользователем клавиша
do {
do {
Console.Clear(); // очистка консольного окна
Console.Write("x=");
} while (!double.TryParse(Console.ReadLine(), out x));
// TODO: вычисления (обращение к методу Newton) и вывод
Console.WriteLine("Для выхода нажмите клавишу ESC");
клавиша = Console.ReadKey(true);
} while (клавиша.Key != ConsoleKey.Escape);
Console.Beep(500, 1000);
}
// TODO: Объявление метода Newton()
}
Слайд 10
Задача 3
static bool Newton(double x, out double sq,
out double eps) {
double r1, r2 = x;
sq = eps = 0.0;
if (x <= 0.0) { Console.WriteLine("Ошибка в данных!");
return false; }
do {
r1 = r2;
eps = x / r1 / 2 - r1 / 2;
r2 = r1 + eps;
} while (r1 != r2); // пока приближения «различимы» для ЭВМ
sq = r2;
return true;
}
// вычисления и вывод
if (!Newton(x, out result, out eps)) {
Console.WriteLine("Error!"); return;
}
Console.WriteLine("root({0}) = {1,8:f4}, eps = {2,8:e4}", x, result, eps);
Слайд 11
Задача 4
Написать метод для расчета сложных процентов.
Параметры:
начальный капитал, годовая процентная ставка, число лет (вклада).
Возвращаемое
значение – итоговая сумма в конце срока вклада.
В основной программе ввести начальный капитал (больший нуля), процентную ставку и число лет. Вывести таблицу значений итоговых сумм в конце каждого года вплоть до заданного числа лет.
Слайд 12
Задача 4
using System;
class Program {
static void Main( )
{
double k, r, s, temp;
uint n;
do Console.Write("Введите начальный капитал: ");
while (!double.TryParse(Console.ReadLine(), out k)
| k <= 0); // Капитал не отрицателен
do Console.Write("Введите годовую процентную ставку: ");
while (!double.TryParse(Console.ReadLine(), out r)
| r <= 0); // Процент не отрицателен
do Console.Write("Введите число лет: ");
while (!uint.TryParse(Console.ReadLine(), out n)
| n == 0); // число лет не равно нулю
s = Total(k, r, n); // обращение к методу
Console.WriteLine("Итоговая сумма: " + s);
} // end of Main()
} // end of Program
Слайд 13
Задача 4
static double Total(double k, double r, uint
n) {
double s
= 0;
double term = 1 + r / 100;
for (int i = 1; i <= n; i++, term *= 1 + r / 100)
s = k * term;
return s;
}
#TODO: Самостоятельно добавьте в метод Main() цикл повторения решения.
Слайд 14
Задача 5
Написать метод для решения квадратного уравнения.
Параметры
– коэффициенты уравнения А, В, С, и два параметра,
для получения значений вещественных корней.
При отсутствии вещественных корней (если А=В=С=0 или А=В=0 и С!=0) метод должен возвращать в точку вызова значение false, иначе - true.
В основной программе вводить коэффициенты квадратного уравнения, выводить значения вещественных корней или сообщение об их отсутствии.
Слайд 15
Выполните самостоятельно
1) Написать метод, находящий трехзначное десятичное число
s, все цифры которого одинаковы и которое представляет собой
сумму первых членов натурального ряда, то есть s = 1+2+3+4+…
Вывести полученное число, количество членов ряда и условное изображение соответствующей суммы, в которой указаны первые три и последние три члена, а средние члены обозначены многоточием. Например, если последний член равен 25, то вывести: 1+2+3+…+23+24+25.
2) Написать метод, преобразующий число переданное в качестве параметра в число, записанное теми же цифрами, но идущими в обратном порядке.
Например, 1024 - > 4201, 120 -> 21
2) Модифицируйте коды заданий из семинара 2, включив в них проверки корректности и осмысленности введенных данных.
Слайд 16
Задачи для самостоятельного решения
1. Написать метод вычисления площади
треугольника по формуле Герона. Параметры – длины сторон и
вычисляемая площадь. Если значения параметров не могут быть длинами сторон треугольника, метод должен возвращать в точку вызова значение false, иначе - true.
2. Написать метод определения принадлежности точки заданной области на плоскости. Область задана соотношениями: -10 < y < 10 и y < -x +10 и y > -x – 10. В основной программе, вводя значения координат, проверять принадлежность точки области.
3. Написать метод перевода оценки в баллах десятибалльной шкалы в аттестационную (четырех балльную) шкалу:
* 1, 2, 3 балла – неудовлетворительно;
* 4,5 – удовлетворительно;
* 6,7 – хорошо;
* 8, 9, 10 – отлично.
Слайд 17
Домашнее задание
Задан круг с центром (10; 10) и
радиусом 5. Ввести координаты центра и радиус второго круга.
Если круги пересекаются, ввести координаты новой точки и оценить ее принадлежность пересечению кругов. Проверку пересечения кругов выполнять в методе IsCrossed(), оценку принадлежности точки пересечению кругов в методе IsLaidIn().
Куб с известным ребром из вещества с заданной плотностью погружен в воду (гранью вниз). Напишите метод, выводящий в консольное приложение сообщение «Тонет» или «Плавает». Если плавает – вычислите «осадку» (расстояние от дна куба до поверхности воды).
Написать метод, вычисляющий значение функции Y=F(X), заданной требованиями:
| 0.5 при X<=-0.5
| X+1 при -0.5 Y = <
| X*X-1 при 0 | X-1 при X>1