Пример выполнения практического задания
Напишите программу, которая определяет в строке слово максимальной длины. Строка должна читаться из файла, результат выводиться на экран. Словом считать любую последовательность символов, разделенных символами-разделителями.
Текст программы:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ExamDemo
{
class Program
{
static string ReadFile(string path)
{
if (!File.Exists(path))
{
return "";
}
string text;
using (StreamReader sr = new StreamReader(path))
{
text = sr.ReadToEnd();
}
return text;
}
static void Main(string[] args)
{
Console.WriteLine("Задание:");
string taskText = "Напишите программу, которая " +
"определяет в строке слово максимальной длины. "+
"Строка должна читаться из файла, результат - "+
"выводиться на экран.";
Console.WriteLine(taskText);
Console.WriteLine("Введите имя файла");
string path = Console.ReadLine();
string text = ReadFile(path);
if (text != "")
{
string[] words = GetWords(text);
string word = GetLongestWord(words);
Console.WriteLine("Максимальную длину имеет слово {0}", word);
}
Console.ReadLine();
}
static string GetLongestWord(string[] words)
{
string maxWord = words[0];
for (int i = 1; i < words.Length; i++)
{
if (words[i].Length > maxWord.Length)
{
maxWord = words[i];
}
}
return maxWord;
}
static string[] GetWords(string text)
{
// максимальное число слов = число символов пополам + 1.
string[] words = new string[text.Length / 2 + 1];
int wordsCount = 0;
string word = "";
for (int i = 0; i < text.Length; i++)
{
if (!char.IsSeparator(text[i]))
{
word += text[i];
}
else
{
if (word != "")
{
words[wordsCount] = word;
word = "";
wordsCount++;
}
}
}
string[] result = new string[wordsCount];
for (int i = 0; i < wordsCount; i++)
{
result[i] = words[i];
}
return result;
}
}
}
Теоретические вопросы
Билет содержит 2 теоретических вопроса.
Ключевые понятия программирования: алгоритм, программа, транслятор, языки высокого и низкого уровня.
Идентификаторы языка C#. Правила и рекомендации формирования идентификаторов. Ключевые слова и разделители. Комментарии, виды комментариев: многострочные, однострочные, документационные.
Понятие типа данных. Зачем нужны типы? Типы данных языка C# (перечислить и охарактеризовать каждый).
Понятие переменной. Характеристики переменной. Объявление переменных в C-подобных языках на примере языка C#.
Понятие статической и динамической памяти. Особенности размещения переменных в этих видах памяти.
Понятие оператора. Унарные, бинарные и тернарный операторы. Виды операторов в C#. Арифметические операторы.
Понятие оператора. Унарные, бинарные и тернарный операторы. Виды операторов в C#. Логические операторы и операторы сравнения.
Понятие оператора. Унарные, бинарные и тернарный операторы. Виды операторов в C#. Битовые операторы.
Типы данных в языке C#. Преобразование типов.
Особенности ввода-вывода. Ключевые операторы. Работа с консолью. Управляющие коды.
Условные операторы: if, ?: Синтаксис, ключевые особенности, рекомендации по использованию.
Оператор варианта: switch. Синтаксис, ключевые особенности, рекомендации по использованию. Переходы по веткам оператора switch.
Операторы цикла. Ключевые понятия, синтаксис, примеры использования.
Вложенные циклы, операторы break и continue;
Понятие массива. Особенности организации хранения массивов в памяти. Объявление одномерных массивов.
Понятие массива. Особенности организации хранения массивов в памяти. Объявление многомерных массивов.
Понятие массива. Особенности организации хранения массивов в памяти. Объявление рваных массивов.
Типовые операции с массивами: сортировка.
Типовые операции с массивами: подсчет суммы и определения позиции заданного элемента.
Типовые операции с массивами: поиск заданного значения (минимума, максимума).
Типовые операции с массивами: добавление элемента в массив.
Типовые операции с массивами: удаление элемента из массива.
Понятие функции (метода). Назначение, синтаксис объявления и использование методов. Критерии создания методов.
Способы передачи параметров в метод. Синтаксис, особенности, примеры использования.
Именованные и необязательные параметры.
Понятие объекта и класса. Типовые классы языка C#.
Строки. Типовые операции работы со строками. Работа со строками как с массивами символов. Класс StringBuilder.
Файлы. Текстовые и двоичные файлы. Классы для работы с файлами и каталогами в C# (DriveInfo, Directory, File и т.д.).
Файлы. Работа с файлами на чтение и запись. Ключевые перечисления.
Файловые потоки. Типовые операции.
© EPAM Systems, 2011 |
Страница:
|
