Professional Documents
Culture Documents
Лабораторна№3 OP
Лабораторна№3 OP
Програмування.
Лабораторна робота №3
Тема: Управління потоком виконання
Варіант № 16
Виконала:
студентка групи ІС-33
Овсяник О.В.
Київ-2024
Мета роботи:
1. Вивчити особливості використання текстових файлів
2. Навчитися застосовувати текстові файли в програмуванні
using System;
using System.Text;
namespace laba3
{
class Program
{
Завдання №1
using System;
using System.Text;
using System.Data;
namespace Lab3
{
internal class Task1
{
public static void task1(String[] args)
{
Console.WriteLine("Завдання 1\nВаріант №16");
PrintResults(0, 0);
PrintResults(0, 1);
PrintResults(1, 0);
PrintResults(1, 1);
PrintResults(2, 1);
PrintResults(1, 2);
PrintResults(3, 2);
PrintResults(4, 11);
PrintResults(5, 1);
PrintResults(1, 1);
PrintResults(10, 15);
PrintResults(2, 10);
PrintResults(155, 1.25);
PrintResults(5, 16);
PrintResults(-105, 7);
PrintResults(21.85, 11);
PrintResults(-0.255, 14);
PrintResults(-1, 0);
PrintResults(0, 0);
PrintResults(Double.MinValue, 1);
PrintResults(1, Double.NaN);
PrintResults(1.25, Double.MinValue);
}
public static double Summa(double k, double m)
{
}
else if (m == 0)
{
throw new ArgumentOutOfRangeException("Невірне значення параметру 'm' ");
}
else
{
double insum = 0;
for (int i = 1; i <= k; i++)
{
insum += Math.Sqrt(m) * (1.0 / i) * Math.Sin(m * i);
}
sum = insum;
}
return sum;
}
public static void PrintResults(double k, double m)
{
Console.Write($"k:{k}, m:{m} result: ");
try
{
Console.WriteLine(Summa(k, m));
}
catch (ArgumentOutOfRangeException e)
{
}
}
Завдання №2
using System;
using System.Text;
namespace Lab3
{
internal class Task2
{
public static void task2(String[] args)
{
Console.WriteLine("Завдання 2\nВаріант №6");
PrintResults(1, 0);
PrintResults(1, 1);
PrintResults(1, 100);
PrintResults(1, -1);
PrintResults(2, 16);
PrintResults(2, 0);
PrintResults(2, 100);
PrintResults(2, -1);
PrintResults(5, 11);
PrintResults(3, 77);
PrintResults(-1, 11);
PrintResults(5, 0);
PrintResults(1, Double.NaN);
PrintResults(1, Double.MinValue);
PrintResults(2, Double.NaN);
PrintResults(3, Double.MinValue);
}
public static double function(double i, double t)
{
double x = 0.0;
if (i == 2 && t == 0)
{
throw new ArgumentOutOfRangeException();
}
else if (i < 1)
{
throw new ArgumentOutOfRangeException();
}
else if (t < 0)
{
throw new ArgumentOutOfRangeException();
}
else if (t >= 0)
{
if (i == 1)
{
x = Math.Sqrt(t);
}
else if (i == 2)
{
x = 1 / Math.Sqrt(t);
}
else if (i > 0 && i != 1 && i != 2)
{
for (int k = 1; k <= i; k++)
{
x = k * t;
}
}
}
else
{
throw new ArgumentOutOfRangeException();
}
return x;
}
public static void PrintResults(double i, double t)
{
catch (ArgumentOutOfRangeException e)
{
Console.WriteLine("EXCEPTION! {0}", e.Message);
}
}
}
}
Завдання №3
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Lab3
{
internal class Task3
{
public static void task3(String[] args)
{
Console.WriteLine("Завдання 3\nВаріант №12");
PrintResults(0.1);
PrintResults(0.2);
PrintResults(0.01);
PrintResults(0.001);
PrintResults(0.0001);
PrintResults(0.00001);
PrintResults(0.99);
PrintResults(1);
PrintResults(Double.NaN);
PrintResults(Double.MinValue);
PrintResults(Double.MaxValue);
}
static double infinsum(double eps)
{
double sum = 0;
double term;
int i = 1;
if (eps == Double.MaxValue || double.IsNaN(eps) || eps == Double.MinValue || eps <= 0 || eps > 1)
{
throw new ArgumentOutOfRangeException();
}
else
{
do
{
term = 1.0 / (i * (i + 1)); // Обчислюємо поточний доданок
sum += term; // Додаємо його до суми
i++; // Збільшуємо лічильник
}
while (Math.Abs(term) >= eps); // Перевіряємо умову точності
return sum;
}
}
Console.WriteLine(infinsum(eps));
}
catch (ArgumentOutOfRangeException e)
{
Console.WriteLine("EXCEPTION! {0}", e.Message);
}
}
}
Контрольні запитання
- if
- if-else
- switch
1)if: Коли потрібно перевірити одну просту умову та виконати певні дії, якщо ця умова є
істинною.
int x = 10;
if (x > 0)
{ Console.WriteLine("x додатне");}
2) if-else: Коли є дві альтернативні дії, які мають виконатися в залежності від результату
перевірки умови.
int x = 10;
if (x > 0)
{ Console.WriteLine("x додатне");}
else
3) ланцюги if-else if-else: Коли є багато альтернативних дій, і потрібно визначити, яка саме з них
має бути виконана.
int x = 10;
if (x > 0)
{Console.WriteLine("x додатне");}
else if (x < 0)
{ Console.WriteLine("x від'ємне");}
else
4) switch: Коли потрібно перевірити значення змінної та виконати певні дії в залежності
від цього значення.
int day = 3;
switch (day)
{
case 1:
Console.WriteLine("Понеділок");
break;
case 2:
Console.WriteLine("Вівторок");
break;
case 3:
Console.WriteLine("Середа");
break;
default:
Console.WriteLine("Інший день тижня");
break;
}
5) тернарна умовна операція ?:: Коли потрібно просто прийняти рішення на основі
простої умови.
int x = 10;
string result = (x > 0) ? "x додатне" : "x від'ємне або нуль";
Console.WriteLine(result);
- while
- do-while
- for
int x = 0;
{ Console.WriteLine(x);
x++;}
2) do-while: Використовуйте цей оператор, коли вам потрібно, щоб тіло циклу виконувалося
принаймні один раз, незалежно від умови.
int x = 0;
do
{ Console.WriteLine(x);
x++;}
3) for: Використовуйте цей оператор, коли кількість ітерацій вам відома заздалегідь або коли
вам потрібно інкрементувати або декрементувати змінну в межах циклу.
{ Console.WriteLine(i);}
Оператор break завершує найближче укладаюче оператор ітерації або інструкцію switch.
Оператор continue запускає нову ітерацію найближчого в'язня оператора ітерації.
12. До якого результату призведе виконання наступного фрагменту коду? Перевірте. Поясніть.
bool a = false;
bool b = false;
if (a=false) {
Console.WriteLine("a is false");
if (b=true) {
Console.WriteLine("b is true");
if (a=b) {
Console.WriteLine("a = b");
}
b is true
a=b
13. До якого результату призведе виконання наступного фрагменту коду? Перевірте. Поясніть.
int a = 1;
a++;
++a;
switch(a) {
case 1: Console.WriteLine("1");
case 2: Console.WriteLine("2");
case 3: Console.WriteLine("3");
case 4: Console.WriteLine("4");
14.double sum = 0;
Після виконання цього фрагменту коду sum буде містити суму ряду 1 + 1/2 + 1/3 + 1/4 + 1/5 + ...
+ 1/9. Результат цієї суми можна оцінити як близький до значення константи Єйлера
(0.5772156649). Це означає, що sum буде менше за 1.
Отже, результатом виразу sum > 1 буде false, оскільки сума sum не перевищує 1.