Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
30.10.2024
Размер:
47.03 Кб
Скачать

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики»

Центр заочного обучения по программам бакалавриата

Кафедра «Математической кибернетики и информационных технологий»

Дисциплина: Технологии программирования

Лабораторная работа №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;

}

}

}

Результат работы программы

Заключение

В ходе выполнения лабораторной работы была написана программа, содержащая циклический вычислительный процесс, с помощью которой мы смогли выполнить поставленную перед нами задачу.

Соседние файлы в папке Лабораторные работы