Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C# Задачи 1 сем 20110808.doc
Скачиваний:
35
Добавлен:
05.11.2018
Размер:
505.34 Кб
Скачать
  1. Процедуры и функции

    1. Модельная задача Пример функции

Рассмотрим пример применения функции подсчета среднего арифметического нескольких чисел.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Program5._1

{

class Program

{

// Главная функция:

static void Main(string[] args)

{

int number_A = 5, number_B = 3, number_C = 10;

Console.Write("The integer mean " + number_A + " and ");

Console.Write(number_B + " is equal ");

Console.WriteLine(average(number_A, number_B) + ".");

Console.WriteLine();

Console.Write("The integer mean " + number_A + ", " + number_B + " and ");

Console.Write(number_C + " is equal ");

Console.WriteLine(average(number_A, number_B, number_C) + ".");

// Ожидание ввода произвольного символа перед завершением программы

Console.ReadKey();

}

// Конец главной функции

// Функция для вычисления целочисленного среднего значения 3-х целых чисел:

static int average(int first_number, int second_number, int third_number)

{

return ((first_number + second_number + third_number) / 3);

}

// Конец функции

//Функция для вычисления целочисленного среднего значения 2-х целых чисел:

static int average(int first_number, int second_number)

{

return ((first_number + second_number) / 2);

}

// Конец функции

}

}

    1. Перегрузка функции

В примере заданы две разные функции с одним и тем же именем average. Такой прием называется перегрузкой. Какую именно функцию применить, компилятор решает по дополнительным признакам. В данном случае это число аргументов функции.

    1. Передача массива в функцию

// Вычисление суммы элементов массива

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Program5._4

{

class Program

{

static void Main(string[] args)

{

int[] a = new int[] { 3, 5, 7, 9, 11, 13, 15 }; //Присвоение начальных значений

int s = sum(7, a);

Console.WriteLine(s);

Console.ReadKey();

}

static int sum (int n, int []a)

{

int s = 0;

for (int i = 0; i < n; i++)

s = s + a[i];

return s;

}

}

}

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

Имеется два варианта решения. Можно вычленить и запомнить слова в массиве строк и далее организовать цикл по парам слов с анализом их расстояния.

Все это, более аккуратно, можно сделать в строке, отслеживая позиции слов.

  1. Для заданного натурального N определить наименьшее число S, которое можно представить в виде суммы aN + bN по крайней мере двумя различными (a, b - натуральные числа; представления, различающиеся лишь порядком слагаемых, различными не считаются).

Математическая модель

Алгоритм поиска требуемого представления оформим в виде процедуры. Уникальность обеспечим циклом по парам точек.

Псевдокод

Цикл по I от 2 до N

Цикл по парам чисел J, K от 1

Если JN > I/2 То

Выход из цикла по парам

Если есть представление То

Увеличить счетчик представлений

Напечатать

Все Если

Все Если

Все цикл по парам

Если два представления ТО

Выйти из цикла по I

Все Если

Все цикл

  1. Найти все простые числа не превосходящие заданного N двоичная запись которых представляет собой симметричную последовательность нулей и единиц (начинающуюся единицей!)

Математическая модель

Количество символов в двоичном представлении числа N определяется неравенством 2l ≤ N ≤ 2l+1. Получить значение j – того слева символа можно по формуле (N \ 2i - j +1) Mod 2, а j – того справа по формуле (N \ 2 j -1) Mod 2. Далее можно применить логику решения задачи 79. Для определения простоты числа применяется функция, реализующая алгоритм решета Эратосфена.

  1. Перечислить все натуральные числа, не превосходящие заданного N, в двоичном представлении которых номера ненулевых разрядов образуют арифметическую прогрессию.

  2. Среди простых чисел, не превосходящих заданного N, найти такое, в двоичном представлении которого максимальное число единиц.

  3. Перечислить все пары «соседних» простых чисел, не превосходящих N, троичные представления которых получаются друг из друга записью цифр в обратном порядке (первая такая пара – это 5 и 7).

  4. Задано множество точек в трехмерном пространстве. Найти минимум радиусов шаров с центрами в этих точках, содержащихся ровно n точек этого множества.

  5. Указать то число заданного множества целых чисел, в двоичном представлении которого больше всего единиц.

  6. Определить, является ли периодической последовательностью двоичная запись заданного натурального числа N, то есть имеет ли она вид aa…a, где a – некоторая непустая последовательность.

  7. Многоугольник (не обязательно выпуклый) задан на плоскости перечислением координат вершин в порядке обхода его границы. Определить площадь многоугольника.

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

  1. Дано 3n точек на плоскости, причем никакие три из них не лежат на одной прямой. Построить множество n треугольников с вершинами в этих точках так, чтобы никакие два треугольника не пересекались и не содержали друг друга.

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

  1. На плоскости задано множество окружностей. Две окружности A и B назовем связанными, если они пересекаются, либо существует третья окружность C заданного множества, связанная с A и B. Выбрать максимальное подмножество попарно не связанных друг с другом окружностей.

Построить функцию, определяющую связность окружностей.

В задачах 91:94 «Серия» означает последовательность одинаковых символов, например «аааа», «?????» …

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

  2. Характеристикой слова назовем длину содержащейся в нем максимальной серии. Упорядочить слова заданного предложения в соответствии с ростом их характеристик.

  3. Отредактировать заданное предложение, удаляя из него слова-серии, a также те слова, которые уже встречались в предложении раньше.

  4. Среди слов заданного предложения, которые не являются сериями, найти такое, которое имеет наибольшее число вхождений в предложение.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]