Ознакомительная практика / Итоговое задание по ОП
.pdf41
Листинг программы А представлен ниже.
using System; namespace _1000_7
{
class Program
{
static void Main(string[] args)
{
Console.Write("Введите год: ");
int n = int.Parse(Console.ReadLine()); DateTime date1 = new DateTime(n, 1, 31); Console.WriteLine(getLastThursday(date1)); DateTime date2 = new DateTime(n, 2, 28); Console.WriteLine(getLastThursday(date2)); DateTime date3 = new DateTime(n, 3, 31); Console.WriteLine(getLastThursday(date3)); DateTime date4 = new DateTime(n, 4, 30); Console.WriteLine(getLastThursday(date4)); DateTime date5 = new DateTime(n, 5, 31); Console.WriteLine(getLastThursday(date5)); DateTime date6 = new DateTime(n, 6, 30); Console.WriteLine(getLastThursday(date6));
42
DateTime date7 = new DateTime(n, 7, 31); Console.WriteLine(getLastThursday(date7)); DateTime date8 = new DateTime(n, 8, 31); Console.WriteLine(getLastThursday(date8)); DateTime date9 = new DateTime(n, 9, 30); Console.WriteLine(getLastThursday(date9)); DateTime date10 = new DateTime(n, 10, 31); Console.WriteLine(getLastThursday(date10)); DateTime date11 = new DateTime(n, 11, 30); Console.WriteLine(getLastThursday(date11)); DateTime date12 = new DateTime(n, 12, 31); Console.WriteLine(getLastThursday(date12));
}
static DateTime getLastThursday(DateTime dt)
{
while (dt.DayOfWeek != DayOfWeek.Thursday)
{
dt = dt.AddDays(-1);
}
return dt;
}
}
43
}
Процесс выполнения программы А и вывод программы представлен на рисунке 3.2.
Рисунок 3.2 – Работа программы А
Согласно условию задания, словесное описание программы B будет иметь вид:
В0 начало;
В1 ввод n, k;
В2 count = 0;
B3 заполнение массива array рандомным числом;
B4 для j от 0 до j<k, выполнять В5;
44
В5 ввод c;
В6 если c == array[0], то выполнять В7, иначе выполнять В8;
B7 вывод «Ты выиграл», переход к В15;
B8 если с > array[0], то переход к В9, иначе переход к В11;
В9 вывод «Загаданное число меньше»;
В10 count +=1, переход к В4;
B11 вывод «Загаданное число больше»;
В12 count += 1, переход к В4;
B13 если k == count;
В14 Вывод «попытки закончились;
В15 остановка.
45
Графический способ записи программы B представлен на рисунке 3.3.
Рисунок 3.3 – Блок схема алгоритма В
Листинг программы В представлен ниже.
using System; namespace _1000_7
{
class Program
{
static void Main(string[] args)
46
{
Console.WriteLine("Введите промежуток"); int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите число попыток"); int k = Convert.ToInt32(Console.ReadLine()); int count = 0;
int[] array = new int[1]; Random r = new Random(); for (int i = 0; i < 1; i++)
{
array[i] = r.Next(1, n);
}
for (int j = 0; j < k; j++)
{
Console.WriteLine("Введите число");
int c = Convert.ToInt32(Console.ReadLine()); if (c == array[0])
{
Console.WriteLine("Ты выиграл"); break;
}
else
{
if (c > array[0])
{
Console.WriteLine("Загаданное число меньше"); count += 1;
47
}
else
{
Console.WriteLine("Загаданое число больше"); count += 1;
}
}
}
if (k==count)
{
Console.WriteLine("Попытки закончились, попробуй ещё
раз");
}
}
}
}
Процесс выполнения программы В и вывод программы представлен на рисунке 3.4.
48
Рисунок 3.4 – работа программы В
Согласно условию задания, словесное описание программы C будет иметь вид:
С0 начало;
С1 ввод m1 = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, m2 = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
C2 пока (m1[0] == 1 || m1[1] == 2 || m1[2] == 3 || m1[3] == 4 || m1[4] == 5 || m1[5] == 6 || m1[6] == 7 || m1[7] == 8 || m1[8] == 9 || m1[9] == 10), выполнять С3, иначе переход к С6;
C3 для всех i от 0 до i<=9, выполнять С4, иначе переход к С2;
С4 создаём рандомное число x;
С5 temp = m1[i], m1[i] = m1[x], m1[x] = temp;
С6 для i от 0 до < m1.Length выполнять С7, иначе переход к С8;
49
C7 вывод ($"{i+1}-{m1[i]}");
С8 остановка.
Графический способ записи программы C представлен на рисунке 3.5.
Рисунок 3.5 – Блок схема алгоритма С
50
Листинг программы С представлен ниже.
using System;
using System.Linq;
namespace _1000_7
{
class Program
{
static void Main(string[] args)
{
int[] m1 = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int[] m2 = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Random rand = new Random();
while(m1[0] == 1 || m1[1] == 2 || m1[2] == 3 || m1[3] == 4 || m1[4] == 5 || m1[5] == 6 || m1[6] == 7 || m1[7] == 8 || m1[8] == 9 || m1[9] == 10)
{
for (int i = 0; i <= 9; i++)
{
int x = rand.Next(i+1);
int temp = m1[i];
m1[i] = m1[x];
m1[x] = temp;
}