
4 курс (заочка) / Лабораторные работы / ЛР4 (C) - ТП
.docxОрдена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики»
Центр заочного обучения по программам бакалавриата
Кафедра «Математической кибернетики и информационных технологий»
Дисциплина: Технологии программирования
Лабораторная работа №4
Вычисление характеристик числовых последовательностей
Выполнил: Иванов И.И., студент группы БСТ17XX Вариант №7
Проверил: Клешнин Н.Г.
Москва, 2021
Введение
В данной лабораторной работе мы изучаем создание программы, позволяющей произвести проверку попадания точки в область на плоскости. Необходимо написать программу, которая будет удовлетворять заданным условиям, указанным в варианте задания.
Задание
Последовательность данных не всегда нужно сохранять в памяти. Поэтому нужно уметь обрабатывать последовательность по мере поступления ее элементов: при чтении файла, при вводе некоторых данных с клавиатуры и т.д.
Пусть имеется последовательность произвольных целых ненулевых чисел, завершающаяся числом 0 (число 0 в последовательность не входит). Количество элементов в последовательности заранее неизвестно, поэтому в данной работе использовать массивы (статические и динамические) нельзя.
Вариант задания
Уровень C
В последовательности целых чисел найти максимальное количество чисел, идущих подряд, которые обладают свойством Q, и максимальное количество чисел, идущих подряд, которые не обладают свойством Q.
Свойство Q задается в варианте. Программа должна содержать логическую функцию, проверяющую, обладает ли заданное число свойством Q.
C7. Q: число состоит из двух равных частей и имеет в своем составе цифру 1.
Код программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lab4
{
class Program
{
static void Main(string[] args)
{
int input;
int countQ = 0;
int countNotQ = 0;
do
{
Console.Write("Введите число (0 - для выхода): ");
input = Convert.ToInt32(Console.ReadLine());
if (input != 0)
{
if (checkQ(input))
countQ++;
else
countNotQ++;
}
}
while (input != 0);
Console.WriteLine($"Количество чисел, обладающих свойством Q = {countQ}");
Console.WriteLine($"Количество чисел, НЕ обладающих свойством Q = {countNotQ}");
Console.ReadKey();
}
static bool checkQ (int input)
{
int len = input.ToString().Length;
if ((len % 2) == 0)
{
bool flag = false;
for (int i = 1; i <= len; i++)
{
if ((int)(input % Math.Pow(10,i) / Math.Pow(10, i-1)) == 1)
{
flag = true;
break;
}
}
if (flag)
{
int a = input % Convert.ToInt32(Math.Pow(10, len / 2));
int b = input / Convert.ToInt32(Math.Pow(10, len / 2));
if (a == b)
return true;
}
}
return false;
}
}
}
Результат работы программы
Заключение
В ходе выполнения лабораторной работы была написана программа, содержащая циклический вычислительный процесс, с помощью которой мы смогли выполнить поставленную перед нами задачу.