Т6. Задачи на обработку цифр в строке

Напишите в комментариях к этой записи консольные приложения для решения этих задач, укажите также код задачи.
Решены задачи нет. Не решены: пока все.

Задачи

Т6.1. Дан символ. Выяснить, является ли он цифрой.
Т6.2. Дан текст. Напечатать все имеющиеся в нем цифры.
Т6.3. Дан текст. Определить количество цифр в нем.
Т6.4. Дан текст, в котором имеются цифры.
а) Найти их сумму.
б) Найти максимальную цифру.
Т6.5. Дан текст, в начале которого имеются пробелы и в котором имеются цифры. Найти порядковый номер максимальной цифры, начиная счет с первого символа, не являющегося пробелом. Если максимальных цифр несколько, то должен быть найден номер первой из них.
Т6.6. Дан текст. Определить, является ли он правильной десятичной записью целого числа.
Т6.7. Дан текст, представляющий собой десятичную запись целого числа. Вычислить сумму цифр этого числа.
Т6.8. Дан текст, имеющий вид: «d1 d2 … dn «, где di — цифры (n > 1). Вычислить записанную в тексте сумму.
Т6.9. Дан текст, имеющий вид: «d1 d2 d3 …», где di — цифры (n > 1). Вычислить записанную в тексте алгебраическую сумму.
Т6.10. Дан текст, имеющий вид: «d1 d2 … dn «, где di — цифры (n > 1). Вычислить записанную в тексте алгебраическую сумму.
Т6.11. Дан текст. Найти наибольшее количество идущих подряд цифр.
Т6.12. Дан текст, в котором имеется несколько идущих подряд цифр. Получить число, образованное этими цифрами.
Т6.13. Дан текст. Найти сумму всех имеющихся в нем чисел.
Т6.14. Дан текст. Найти максимальное из имеющихся в нем чисел.


NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Помощь проекту:

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
8 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Т6. Задачи на обработку цифр в строке

using System;
using System.Text.RegularExpressions;
//Т6. Задачи на обработку цифр в строке
namespace T6
{
    class Program
    {
        static string Input(string Name)
        {
            Console.WriteLine($"Введите {Name}:");
            string S = Console.ReadLine();
            return S;
        }
        static void Clear()
        {
            Console.ReadKey();
            Console.Clear();
        }
        static void Main()
        {
            //T6.1
            Console.WriteLine("Т6.1. Дан символ. Выяснить, является ли он цифрой.");
            string S1char;
            do
            {
                S1char = Input("символ");
            }
            while (S1char.Length != 1);
            Console.WriteLine(int.TryParse(S1char, out _) ? "цифра" : "не цифра");
            Clear();
            //T6.2
            Console.WriteLine("Т6.2. Дан текст. Напечатать все имеющиеся в нем цифры.");
            string S2 = Input("текст");
            string S2sample = "0123456789";
            foreach (char symbol in S2)
            {
                if (S2sample.IndexOf(symbol) >= 0)
                    Console.Write(symbol);
            }
            Clear();
            //T6.3
            Console.WriteLine("Т6.3. Дан текст. Определить количество цифр в нем.");
            string S3 = Input("текст");
            int N3count = 0;
            char [] C3samples = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
            for (int a = 0; a < S3.Length; a++)
            {
                for (int b = 0; b < C3samples.Length; b++)
                {
                    if (S3[a] == C3samples[b])
                        N3count++;
                }
            }
            Console.WriteLine(N3count);
            Clear();
            //T6.4
            Console.WriteLine("Т6.4. Дан текст, в котором имеются цифры.\nа) Найти их сумму.\nб) Найти максимальную цифру.");
            string S4 = Input("текст");
            int N4sum = 0;
            int N4max = 0;
            int[] N4samples = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
            foreach (char symbol in S4)
            {
                foreach (int number in N4samples)
                {
                    if (symbol == Convert.ToChar(number.ToString()))
                    {
                        N4sum += number;
                        if (number > N4max)
                            N4max = number;
                    }
                }
            }
            Console.WriteLine(N4sum);
            Console.WriteLine(N4max);
            Clear();
            //T6.5
            Console.WriteLine("Т6.5. Дан текст, в начале которого имеются пробелы и в котором имеются цифры. Найти порядковый номер максимальной цифры, начиная счет с первого символа, не являющегося пробелом. Если максимальных цифр несколько, то должен быть найден номер первой из них.");
            string S5 = Input("текст");
            int N5max = 0;
            int N5place = 0;
            S5 = S5.Trim();
            for (int symbol = 0; symbol < S5.Length; symbol++)
            {
                if (char.IsDigit(S5[symbol]))
                {
                    int charNum = (int) char.GetNumericValue(S5[symbol]);
                    if (charNum > N5max)
                    {
                        N5max = charNum;
                        N5place = symbol + 1;
                    }
                }
            }
            Console.WriteLine(N5max);
            Console.WriteLine(N5place);
            Clear();
            //T6.6
            Console.WriteLine("Т6.6. Дан текст. Определить, является ли он правильной десятичной записью целого числа.");
            string S6 = Input("текст");
            Console.WriteLine(int.TryParse(S6, out _) ? "число" : "не число" );
            Clear();
            //T6.7
            Console.WriteLine("Т6.7. Дан текст, представляющий собой десятичную запись целого числа. Вычислить сумму цифр этого числа.");
            string S7 = Input("текст");
            int N7number;
            int N7sum = 0;
            if (!int.TryParse(S7, out N7number))
            {
                Console.WriteLine("Это не число");
            }
            else
            {
                for (int a = 0; a < S7.Length; a++)
                {
                    int tempNum = (N7number / (int)(Math.Pow(10,a))) % 10;
                    N7sum += tempNum;
                }
                Console.WriteLine(N7sum);
            }
            Clear();  
            //T6.8
            Console.WriteLine("Т6.8. Дан текст, имеющий вид: «d1 d2 … dn «, где di — цифры (n > 1). Вычислить записанную в тексте сумму.");
            string S8 = Input("текст, имеющий вид: «d1 d2 … dn «, где di — цифры (n > 1)");
            int N8sum = 0;
            string[] S8subString = S8.Split(' ');
            for (int a = 0; a<S8subString.Length ; a++)
            {
                if (int.TryParse(S8subString[a], out int currentDigit))
                {
                    N8sum += currentDigit;
                }
            }
            Console.WriteLine(N8sum);
            Clear();
            //T6.9
            Console.WriteLine("Т6.9. Дан текст, имеющий вид: «d1 d2 d3 …», где di — цифры (n > 1). Вычислить записанную в тексте алгебраическую сумму.");
            string S9 = Input("текст, имеющий вид: «d1 d2 d3 …», где di — цифры (n > 1)");
            int N9sum = 0;
            while (S9.Length > 0)
            {
                int nextSpace = S9.IndexOf(' ');
                string tempString;
                if (nextSpace > -1)
                {
                    tempString = S9.Substring(0, nextSpace);
                    S9 = S9.Remove(0, tempString.Length + 1);
                }
                else
                {
                    tempString = S9;
                    S9 = S9.Remove(0, tempString.Length);
                }
                if (int.TryParse(tempString, out int tempNum))
                {
                    N9sum += tempNum;
                }
            }
            Console.WriteLine(N9sum);
            Clear();
            //T6.10
            Console.WriteLine("Т6.10. Дан текст, имеющий вид: «d1 d2 … dn «, где di — цифры (n > 1). Вычислить записанную в тексте алгебраическую сумму.");
            string S10 = Input("текст, имеющий вид: «d1 d2 … dn «, где di — цифры (n > 1)");
            int N10sum = 0;
            Regex R10numbers = new Regex(@"-*\d+");
            MatchCollection MC10numbers = R10numbers.Matches(S10);
            foreach (Match number in MC10numbers)
            {
               int num = int.Parse(number.Value);
               N10sum += num;
            }
            Console.WriteLine(N10sum);
            Clear();
            //T6.11
            Console.WriteLine("Т6.11. Дан текст. Найти наибольшее количество идущих подряд цифр.");
            string S11 = Input("текст");
            int N11count=0;
            MatchCollection MC11digits = Regex.Matches(S11, @"\d+");
            foreach (Match a in MC11digits)
            {
                if (a.Value.Length > N11count)
                    N11count = a.Value.Length;
            }
            Console.WriteLine(N11count);
            Clear();
            //T6.12
            Console.WriteLine("Т6.12. Дан текст, в котором имеется несколько идущих подряд цифр. Получить число, образованное этими цифрами.");
            string S12 = Input("текст");
            string S12textNumber = "";
            for (int symbol = 0; symbol < S12.Length; symbol++)
            {
                if (char.IsDigit(S12[symbol]))
                    S12textNumber += S12[symbol];
                if (S12textNumber.Length > 0 && !char.IsDigit(S12[symbol]))
                    break;
            }
            int N12number = int.Parse(S12textNumber);
            Console.WriteLine(N12number);
            Clear();
            //T6.13
            Console.WriteLine("Т6.13. Дан текст. Найти сумму всех имеющихся в нем чисел.");
            string S13 = Input("текст");
            int N13currentNum = 0;
            int N13sum = 0;
            for (int symbol = 0; symbol < S13.Length; symbol++)
            {
                if (symbol < S13.Length - 1 && int.TryParse(S13[symbol].ToString(), out int tempNum) && int.TryParse(S13[symbol + 1].ToString(), out _))
                    N13currentNum = (N13currentNum * 10) + tempNum;
                if (symbol < S13.Length - 1 && int.TryParse(S13[symbol].ToString(), out tempNum) && !int.TryParse(S13[symbol + 1].ToString(), out _))
                {
                    N13currentNum = (N13currentNum * 10) + tempNum;
                    N13sum += N13currentNum;
                    N13currentNum = 0;
                }
                if (symbol == S13.Length - 1 && int.TryParse(S13[symbol].ToString(), out tempNum))
                {
                    N13currentNum = (N13currentNum * 10) + tempNum;
                    N13sum += N13currentNum;
                }
            }
            Console.WriteLine(N13sum);
            Clear();
            //T6.14
            Console.WriteLine("Т6.14. Дан текст. Найти максимальное из имеющихся в нем чисел.");
            string S14 = Input("текст");
            MatchCollection MC14numbers = Regex.Matches(S14, @"-*\d+");
            int N14max = int.MinValue;
            foreach (Match textNumber in MC14numbers)
            {
                int curentNumber = int.Parse(textNumber.Value);
                if (curentNumber > N14max)
                    N14max = curentNumber;
            }
            Console.WriteLine(N14max);
            Clear();
        }
    }
}


Т6.4. Дан текст, в котором имеются цифры.
а) Найти их сумму.
б) Найти максимальную цифру.

Console.Write(«текст: «);
string s = Console.ReadLine();

int sum = 0, max = 0;

for(int i = 0; i < s.Length; i++)
{
if(char.IsDigit(s[i]))
{
int k = (int)(s[i] — ‘0’);
sum = sum + k; // a
if(k > max)
max = k; // б
}
}

Console.WriteLine(«Сумма {0} || max = {1}», sum, max);

Т6.14. Дан текст. Найти максимальное из имеющихся в нем чисел.

string txt = «2 13 fgh 10″;
string x1 = » «;
int num = 0;
int max = int.MinValue;
for (int i = 0; i < txt.Length; i++)
{
  if (Char.IsDigit(txt[i]))
  {}
  if (Char.IsLetter(txt[i])||Char.IsPunctuation(txt[i])) 
  {
    continue;
  }
  x1 += txt[i].ToString();
}
string[] text = x1.Split(new char[] { ‘ ‘ }, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in text)
{
  num = Convert.ToInt32(s);
  if (num>max)
  {
    max = num;
  }
}
Console.WriteLine(max);

Т6.13. Дан текст. Найти сумму всех имеющихся в нем чисел.

string txt = «2 13 fgh 10″;
string x1 = » «;
int sum = 0;
for (int i = 0; i < txt.Length; i++)
{
  if (Char.IsDigit(txt[i]))
  {}
  if (Char.IsLetter(txt[i]))
  {
    continue;
  }
  x1 += txt[i].ToString();
}
string[] text = x1.Split(new char[] { ‘ ‘ }, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in text)
{
  sum += Convert.ToInt32(s);
}
Console.Write(sum);

Последний раз редактировалось 1 год назад Евгений ем

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

string word = «125sdf»;
double sum = 0;
for (int i = 0; i < word.Length; i++)
{
  if (char.IsDigit(word[i]))
    sum+= Char.GetNumericValue(word[i]);
}
Console.Write(sum);

#6.2
string word = «Т.6.2. Дан текст. Напечатать все имеющиеся в нем цифры.»;
int num = 0;
for (int i = 0; i <= word.Length — 1; i++)
  if (char.IsDigit(word[i]))
    Console.Write(word[i]+» «);
  else
  {num++;
    if (num==word.Length)
    Console.Write(«цифр нет»);
  }

Т6.1. Дан символ. Выяснить, является ли он цифрой.

string word = «3»;
if (char.IsDigit(word[0]))
  Console.Write(«Цифра»);
else
  Console.Write(«буква»);

Т6.3. Дан текст. Определить количество цифр в нем.

static void Main(string[] args)
        {
            string str = "dfg4fgjfgh4dsh";
            int count = 0;
            for(int i=0; i<str.Length; i++)
            {
                if(char.IsDigit(str[i]))
                {
                    count++;
                }
            }
            Console.WriteLine(count);
        }
8
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x