Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3400651
А
Аноним
17 сентября 2025 13:01 · публичный вопрос
А
Аноним

Вопросы: 1 Каков результат выполнения операции 5 / 2 в C# и почему? Какие арифметические операторы существуют для получения остатка от деления и целочисленного результата? 2 В чем…

Запрос пользователя

Вопросы: 1 Каков результат выполнения операции 5 / 2 в C# и почему? Какие арифметические операторы существуют для получения остатка от деления и целочисленного результата? 2 В чем разница между логическими операторами & и &&, | и ? Почему для условных конструкций if рекомендуется использовать короткоцепочные операторы (&&, )? 3 Как работает условный оператор if с блоками else if и else? В какой ситуации выполняется блок else и может ли он существовать без блока if? 4 Опишите структуру цикла for (инициализатор, условие, итератор). Какова роль каждого компонента и в каком порядке они выполняются? 5 В чем ключевое отличие между операторами break и continue при использовании внутри цикла for? Какой оператор полностью прерывает цикл, а какой переходит к следующей итерации? 6 Какие три основных способа объединения строк (конкатенация, интерполяция, String.Format) вы знаете? Какой способ является наиболее современным, читаемым и менее подверженным ошибкам? 7 Как с помощью индексации строки (stringValue[index]) получить первый и последний символ строки, длина которой заранее неизвестна? Что произойдет, если обратиться по индексу, который выходит за границы строки? Задание 1: Получение расширения файла Напишите программу, которая запрашивает у пользователя имя файла (например, "document.pdf") и выводит его расширение в нижнем регистре без точки. Если расширения нет (например, "README"), выведите пустую строку. Используйте: LastIndexOf, Substring, ToLower. Задание 2: Сокращение строки Напишите программу, которая обрезает строку до указанной длины (например, 10 символов), и если длина превышена, добавляет в конце .... Пример: "Очень длинный текст" → "Очень дл...". Используйте: Length, Substring, конкатенацию строк. Задание 3: Подсчёт вхождений символа Напишите программу, которая подсчитывает, сколько раз определённый символ встречается в строке. Регистр имеет значение. Пример: для строки "Hello" и символа 'l' результат — 2. Используйте: цикл for, индексацию строки, сравнение символов. Задание 4: Capitalized Case Напишите программу, которая преобразует строку так, чтобы каждое слово начиналось с заглавной буквы, а остальные были строчными. Пример: "heLLo wOrLd" → "Hello World". Используйте: ToLower, Split, ToUpper, цикл for или foreach, конкатенацию строк.

Ответ нейросети
17 сентября 2025 13:01

Ниже краткие ответы на вопросы и готовые примеры к заданиям.

  1. Операция 5 / 2 и остаток
  • Результат: 5 / 2 в C# для целочисленных операндов будет 2. Деление целых чисел даёт целочисленный результат, остаток от деления можно получить оператором %.
  • Операторы:
    • / — обычное деление (у целых: целочисленное, у чисел с точкой — вещественное)
    • % — остаток от деления (модульное деление)
  1. & vs && и | vs ||, и почему короткоцепочные (&&, ||) предпочтительнее в if
  • & и | могут работать как булевы логические операции, но они не short-circuit: обе стороны вычисляются всегда. Также & и | могут использоваться как битовые операторы для целочисленных типов.
  • && и || — это короткоцепочные (short-circuit) логические операторы. При первом аргументе, делающем выражение ложным (для &&) или истинным (для ||), второе выражение не вычисляется. Это важно для побочных эффектов, исключений и повышения производительности.
  • В условных конструкциях if обычно используют && и ||, чтобы не вычислять ненужные выражения и не вызывать побочные эффекты.
  1. if с else if и else
  • Блок if выполняется, пока хотя бы одно условие в цепочке if/else if истинно. При первом истинном условии выполняется соответствующий ему блок, остальные ветви пропускаются.
  • Блок else выполняется только если ни одно из предыдущих условий не оказалось истинным.
  • else не может существовать без связанного if (он всегда привязан к ближайшему предыдущему if).
  1. Структура цикла for (инициализатор, условие, итератор)
  • Инициализатор выполняется один раз перед входом в цикл.
  • Условие проверяется перед каждой итерацией; если оно истинно, выполняется тело цикла.
  • Итератор выполняется после каждого прохода тела цикла.
  • Повторяется цикл: условие → тело → итератор → условие и т.д.
  1. break vs continue
  • break полностью прерывает выполнение цикла (выход из цикла).
  • continue пропускает оставшуюся часть текущей итерации и переходит к следующей проверке условия цикла (следующая итерация).
  1. Способы объединения строк
  • Конкатенация с оператором +.
  • Интерполяция строк: $"Текст {переменная}".
  • String.Format: String.Format("Текст {0}", переменная).
  • Наиболее современный, читаемый и менее подверженный ошибкам способ — интерполяция строк (строка начинaется с $).
  1. Доступ к первому и последнему символу строки
  • Первый символ: stringValue[0]
  • Последний символ: stringValue[stringValue.Length - 1]
  • Важно: если строка пустая (Length == 0), обращение к индексу вызывает исключение IndexOutOfRangeException (или аналогичную ошибку). Всегда проверяйте Length перед доступом к индексам.

Задание 1: Получение расширения файла

  • Программа запрашивает имя файла и выводит расширение в нижнем регистре без точки; если расширения нет — выводит пустую строку.
  • Требуется использовать: LastIndexOf, Substring, ToLower.

Пример кода (Задание 1): using System;

class Program { static void Main() { Console.WriteLine("Введите имя файла:"); string fileName = Console.ReadLine(); int dot = fileName.LastIndexOf('.'); string extension = ""; if (dot >= 0 && dot < fileName.Length - 1) { extension = fileName.Substring(dot + 1).ToLower(); } Console.WriteLine(extension); } }

Задание 2: Сокращение строки

  • Обрезает строку до указанной длины (например, 10 символов). Если длина превышена, в конце добавляется "...".
  • Требуется использовать: Length, Substring, конкатенацию строк.

Пример кода (Задание 2): using System;

class Program { static void Main() { Console.WriteLine("Введите строку:"); string s = Console.ReadLine(); int maxLength = 10; string result = s; if (s != null && s.Length > maxLength) { result = s.Substring(0, maxLength - 3) + "..."; } Console.WriteLine(result); } }

Задание 3: Подсчёт вхождений символа

  • Подсчитать, сколько раз заданный символ встречается в строке. Регистр имеет значение.
  • Требуется использовать цикл for, индексацию и сравнение символов.

Пример кода (Задание 3): using System;

class Program { static void Main() { Console.WriteLine("Введите строку:"); string s = Console.ReadLine(); Console.WriteLine("Введите символ для подсчета:"); char target = Console.ReadLine()[0]; int count = 0; for (int i = 0; i < s.Length; i++) { if (s[i] == target) count++; } Console.WriteLine(count); } }

Задание 4: Capitalized Case

  • Преобразовать строку так, чтобы каждое слово начиналось с заглавной буквы, а остальные были строчными.
  • Требуется использовать: ToLower, Split, ToUpper, цикл for/foreach, конкатенацию.

Пример кода (Задание 4): using System; using System.Text;

class Program { static void Main() { Console.WriteLine("Введите строку:"); string input = Console.ReadLine();

    string lower = input.ToLower();
    string[] words = lower.Split(' ', StringSplitOptions.RemoveEmptyEntries);

    StringBuilder result = new StringBuilder();
    for (int i = 0; i < words.Length; i++) {
        string w = words[i];
        if (w.Length > 0) {
            result.Append(char.ToUpper(w[0]));
            if (w.Length > 1) result.Append(w.Substring(1));
        }
        if (i < words.Length - 1) result.Append(' ');
    }

    Console.WriteLine(result.ToString());
}

}

Примечания:

  • В Задании 4 можно сохранить и исходные пробелы между словами, но подход с Split и последующим соединением обычно упрощает задачу и соответствует заданию «Split, ToLower, ToUpper, цикл». При необходимости можно реализовать более точную обработку пробелов вручную.