Задача1. Вычислить на ПЭВМ значения функции:
|

Обратим внимание, что функция y не определена в диапазоне 2 < x ≤ 4 {x > 2 & x ≤ 4}. В этой ситуации программа должна обеспечить вывод соответствующего сообщения, например "функция не определена". Таким образом, фактически имеем три диапазона изменения x:
функция
sin(x) не определена k·ln(x)
0 2 4 6 x
Примем диапазон изменения x от 0 до 6, что позволит протестировать программу по всем трем условиям. Поскольку в задаче три условия, число блоков «решение» в алгоритме должно быть два (на единицу меньше числа условий). Блок-схема одного из вариантов алгоритма решения задачи (рис.3.1) и соответствующая программа будут иметь вид:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double x, y, k = 1.2;
Console.Write("Введите х ");
x = Convert.ToDouble(Console.ReadLine());
/*преобразует вводимое с клавиатуры число в виде строки в вещественный тип данных*/
Console.WriteLine();
if (x <= 2 & x > 0)
{
y = Math.Sin(x);
Console.WriteLine("x={0,3:f} y={1,3:f}", x, y);
}
else
if (x <= 6 & x > 4)
{
y = k * Math.Log(x);
Console.WriteLine("x={0,3:f} y={1,5:f}", x, y);
}
else Console.WriteLine("x={0,3:f} Func No",x);
Console.WriteLine();
Console.WriteLine("Нажми любую клавишу");
Console.ReadKey();
}
}
} Результаты решения задачи 1:
Методы ввода данных
Вводить данные можно программно, присваивая переменным или константам значения в соответствии с объявленным ранее типом или непосредственно с клавиатуры при исполнении программы. Для этого используются следующие методы:
x = Convert.ToDouble(Console.ReadLine()); //вещественный тип
d = Convert.ToInt16(Console.ReadLine()); //целый тип
z = Convert.ToInt32(Console.ReadLine()); //целый тип
ch=Convert.ToChar(Console.ReadLine()); //символьный тип
Методы содержат процедуру чтения с последующим образованием новой строки (ReadLine()) и функцию преобразования вводимых с клавиатуры данных, воспринимаемых в виде строки в тип данных, соответствующих объявленному диапазону.
Задача 2. Программа принимает с клавиатуры номер дня недели и в зависимости от его значения выводит на дисплей текстовый комментарий: учеба, самоподготовка, отдых.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int d;
Console.Write("Введите день недели ");
d= Convert.ToInt16(Console.ReadLine());
//преобразует вводимое с клавиатуры число в виде строки в целый тип данных
switch (d)
{
case 1: Console.WriteLine("1 - учёба"); break;
case 2: Console.WriteLine("2 - учёба "); break;
case 3: Console.WriteLine("3 - учёба "); break;
case 4: Console.WriteLine("4 - учёба "); break;
case 5: Console.WriteLine("5 - учёба "); break;
case 6: Console.WriteLine("6 - самоподготовка"); break;
case 7: Console.WriteLine("7 - выходной день"); break;
default: Console.WriteLine("Неверный ввод данных. Введите 1<=d<=7"); break;
}
Console.ReadKey();
![]() |
}
}
} Результаты работы программы
Рис. 3.2. Блок-схема алгоритма задачи 2
Задания на дом для самостоятельного решения.
Составить блок-схему и написать программу, вычисляющую значения переменных, заданных по варианту, приведенному в таблице 3.2
Таблица 3.2
N | Задачи |
Даны 2 разных по значению числа (a и b). Меньшее из этих двух чисел заменить их полусуммой, а большее - их удвоенным произведением. | |
Даны х, у. Если х и у отрицательны, то их значения заменить абсолютной величиной; если отрицательно только одно их них, то оба значения увеличить на 0.5; если оба значения неотрицательны, то увеличить их в 10 раз. | |
Даны 2 разных по значению числа (a и b). Большее из этих двух чисел заменить их суммой, а меньшее - их утроенным произведением. | |
Даны х, у. Если х и у отрицательны, то их значения возвести в квадрат; если отрицательно только одно их них, то оба значения увеличить вдвое; если оба значения неотрицательны, то уменьшить их в 5 раз. | |
Даны 2 разных по значению числа (a и b). Меньшее из этих двух чисел заменить их разностью, а большее - их произведением. | |
Даны х, у. Если х и у отрицательны, то их значения возвести в куб; если отрицательно только одно их них, то оба значения увеличить вдвое; если оба значения неотрицательны, то уменьшить их в 2 раза. | |
Даны 2 разных по значению числа (a и b). Большее из этих двух чисел заменить его квадратом, а меньшее – полусуммой заданных чисел. | |
Даны х, у. Если х и у положительные, то их значения уменьшить втрое; если отрицательно только одно их них, то оба значения уменьшить на 0.5; если оба значения отрицательны, то заменить их абсолютной величиной. | |
Даны 2 разных по значению числа (a и b). Меньшее из этих двух чисел заменить их произведением, а большее – в два раза уменьшить. | |
Даны х, у. Если х и у положительные, то их значения увеличить на 1,5; если отрицательно только одно их них, то оба значения уменьшить вдсое; если оба значения отрицательны, то заменить их абсолютной величиной. | |
Даны 2 разных по значению числа (a и b). Большее из этих двух чисел заменить их полусуммой, а меньшее – его квадратом. | |
Даны х, у. Если х и у положительные, то их значения увеличить вдвое; если отрицательно только одно их них, то оба значения уменьшить на 0,5; если оба значения отрицательны, то возвести их в квадрат. |
Составить блок-схему и написать программу, вычисляющую функцию, приведенную по варианту в таблице 3.2, в заданном диапазоне с шагом dx,. Задачу решить с использованием операторов условного и безусловного переходов.
Таблица 3.3
N | Функции и условия | Диапазон, шаг dx |
![]() | x = [-20; 20], dx=2 | |
![]() | x = [-10; 20], dx=3 | |
![]() | ![]() | x = [-30; 10], dx=4 |
![]() | x = [-20; 20], dx=2 | |
![]() | x = [-10; 30], dx=3 | |
![]() | x = [-30; 30], dx=4 | |
![]() | x = [-10; 20], dx=2 | |
![]() | x = [-10; 20], dx=3 | |
![]() | x = [-20; 50], dx=4 | |
![]() | x = [-20; 10], dx=2 | |
![]() | x = [-10; 20], dx=3 | |
![]() | x = [-20; 20], dx=2 |
Программы ввести в редактор кода, отладить, исполнить и проанализировать результат на соответствие поставленной задачи.