ЗАДАЧИ НА ВЫЧИСЛЕНИЯ. 1. Вычислить с заданной точностью значение числа π, используя следующее разложение 1 4 8 ( 41 i ) ( 41 i ) i 1 в ряд: Предварительно следует записать рекуррентное соотношение для текущего члена суммы. Сравните вычисленное значение π со стандартным значением PI, возвращаемым классом Math. Для разных значений ε вычислите n – число членов суммы, требуемых для достижения заданной точности. 2. Вычислить с заданной точностью значение числа e, используя следующее разложение в 1 e i0 (i)! ряд: Предварительно следует записать рекуррентное соотношение для текущего члена суммы. Сравните вычисленное значение e со стандартным значением E, возвращаемым классом Math. Для разных значений ε вычислите n – число членов суммы, требуемых для достижения заданной точности. 3. Дано вещественное число x. Вычислить с заданной точностью ex: xi e i0 i! x Сравните вычисленное значение ex со стандартным значением метода exp(x), возвращаемым классом Math. Для разных значений ε вычислите n – число членов суммы, требуемых для достижения заданной точности. 4. Дано вещественное число x. Вычислить с заданной точностью sin(x): i 21 (1 ) xi s in () x 2 i 1 ) ! i 0( Помните, что sin(x) – это периодическая функция, так что всегда можно привести x к интервалу [-π, π]. Сравните вычисленное значение со стандартным значением метода sin(x), возвращаемым классом Math. Для разных значений ε вычислите n – число членов суммы, требуемых для достижения заданной точности. 5. Дано вещественное число x. Вычислить с заданной точностью cos(x): i 2 (1 ) xi c o s () x 2 i) ! i 0 ( Помните, что cos(x) – это периодическая функция, так что всегда можно привести x к интервалу [-π, π]. Сравните вычисленное значение со стандартным значением метода cos(x), возвращаемым классом Math. Для разных значений ε вычислите n – число членов суммы, требуемых для достижения заданной точности. 6. Дано вещественное число x >0. Вычислить с заданной точностью 2 i 1 ( x 1 ) l n ( x ) 2 i 1 ( 21 i ) ( x 1 ) i 0 Сравните вычисленное значение со стандартным значением метода Log(x), возвращаемым классом Math. Для разных значений ε вычислите n – число членов суммы, требуемых для достижения заданной точности. 7. Дано вещественное число x. Вычислить с заданной точностью sh(x): 21 i x s h () x 2 i 1 ) ! i 1( Сравните вычисленное значение со стандартным значением метода Sinh(x), возвращаемым классом Math. Для разных значений ε вычислите n – число членов суммы, требуемых для достижения заданной точности. 8. Дано вещественное число x. Вычислить с заданной точностью ch(x): 2 i x c h (x ) 2 i)! i 0( Сравните вычисленное значение со стандартным значением метода Cosh(x), возвращаемым классом Math. Для разных значений ε вычислите n – число членов суммы, требуемых для достижения заданной точности. 9. Вычислить с заданной точностью значение числа π, используя следующее разложение в ряд: 1 i1 i 2 62 Предварительно следует записать рекуррентное соотношение для текущего члена суммы. Сравните вычисленное значение π со стандартным значением PI, возвращаемым классом Math. Для разных значений ε вычислите n – число членов суммы, требуемых для достижения заданной точности. 10. Вычислить с заданной точностью значение числа π, используя следующее разложение в ряд: ( 1 ) ( 1 ) 1 6 4 ( 2 i 1 ) * 5 ( 2 i 1 ) * 2 3 9 i 1 i 1 2 i 1 i 1 i 1 2 i 1 Предварительно следует записать рекуррентное соотношение для текущего члена суммы. Сравните вычисленное значение π со стандартным значением PI, возвращаемым классом Math. Для разных значений ε вычислите n – число членов суммы, требуемых для достижения заданной точности. ЗАДАЧИ НА СТРОКИ 1) Дана строка, содержащая несколько слов. Слова разделены одним или несколькими пробелами, символом табуляции или запятой. Необходимо напечатать слово максимальной длины. Для этого в программе определить статический метод, принимающий в качестве параметра исходную строку и возвращающего искомое слово. 2) Дана строка, содержащая несколько слов. Слова разделены одним или несколькими пробелами, символом перевода строки или точкой с запятой. Необходимо напечатать слово минимальной длины. Для этого в программе определить статический метод, принимающий в качестве параметра исходную строку и возвращающего искомое слово. 3) Дана строка, содержащая несколько слов. Слова разделены одним или несколькими пробелами, запятой или точкой с запятой. Необходимо определить количество слов, которые начинаются со слога «аб». Для этого в программе определить статический метод, принимающий в качестве параметра исходную строку. 4) Дана строка, содержащая несколько слов. Слова разделены одним или несколькими пробелами, точкой или запятой. Необходимо напечатать все симметричные слова (например, «АББА»). Для этого в программе определить два статических метода: 1) метод, определяющий, является ли слово симметричным; 2) метод, принимающий в качестве параметра исходную строку и выводящий симметричные слова на экран. 5) Дана строка, содержащая несколько слов. Слова разделены одним или несколькими пробелами, запятой или точкой с запятой. Сформировать новую строку, содержащую слова в обратном порядке и вывести эту строку на экран. Решение оформить в виде статического метода, принимающего в качестве параметра исходную строку. 6) Дана строка, содержащая несколько слов. Слова разделены одним или несколькими пробелами, тире, двоеточием или запятой. Необходимо проверить, есть ли среди слов хотя бы одно, не включающее в себя символы «@» и «$». Решение оформить в виде статического метода, принимающего в качестве параметра исходную строку, и возвращающего логическое значение. 7) Написать и протестировать статический метод, который принимает два строковых параметра s1 и s2. Метод определяет, сколько раз строка s2 входит в строку s1, и выводит на экран позиции (индексы) соответствующих вхождений. 8) Написать и протестировать статический метод, который проверяет, что строка, переданная в качестве аргумента, представляет время в формате "чч.мм" или "чч.мм.сс" (например, «12.30» или «12.30.18»). Если это так, то метод возвращает true, в противном случае - false. 9) Написать и протестировать статический метод, который проверяет, что в строке, переданной в качестве аргумента, содержится дата в формате "дд.мм.гг" или "дд.мм.гггг" (например, «12.01.08» или «12.01.2008»). Если это так, то метод возвращает true, в противном случае - false. 10) ** Дана строка, содержащая несколько слов. Слова разделены одним или несколькими пробелами, запятой или точкой с запятой. Необходимо напечатать все различные слова. Решение оформить в виде статического метода, принимающего в качестве параметра исходную строку. Массивы, матрицы, случайные числа 1. Сгенерировать массив из вещественных чисел. Длина массива – случайное число в диапазоне от 10 до 20. Массив заполнен случайными вещественными числами в диапазоне от -5.0 до 5.0. Определить, сколько в массиве имеется соседних элементов, отличающихся друг от друга менее чем на e. Создание и заполнение массива реализовать в одном статическом методе. Анализ парсоседей – в другом статическом методе с параметром e. 2. Сгенерировать массив из вещественных чисел. Длина массива – случайное число, кратное 3 и находящееся в диапазоне от 6 до 42. Элементы массива – случайные числа в диапазоне от 20 до 40. Разделить массив на 3 равные по длине части. Переставить эти части в массиве в порядке возрастания их среднего арифметического. Например: массив 9 2 5 4 2 4 «превратится» в 2 4 5 4 9 2. В программе определить метод для нахождения среднего арифметического заданной параметрами части массива. 3. Сгенерировать массив из целых чисел. Длина массива – случайное число в диапазоне от 12 до 24. Массив заполнен случайными целыми числами в диапазоне от 100 до 200. Определить, сколько чисел в массиве заканчиваются на 12. Использовать статический метод, определяющий, заканчивается ли число на 12. 4. Сгенерировать массив из вещественных чисел. Длина массива – случайное число, кратное 4 и находящееся в диапазоне от 8 до 40. Элементы массива – случайные числа в диапазоне от 11 до 44. Разделить массив на 4 равные по длине части. Заменить каждый элемент на среднее арифметическое его части. В программе определить метод для нахождения среднего арифметического заданной параметрами части массива. 5. Сгенерировать массив из вещественных чисел. Длина массива – случайное число, находящееся в диапазоне от 12 до 55. Элементы массива – случайные числа в диапазоне от 2 до 27. Определить, верно ли что количество элементов, попавших в диапазон от 2.5 до 7.5 кратно 4. 6. Сгенерировать одномерный массив. Количество элементов – случайное число от 10 до 40. Элементы массива – случайные целые числа от 1 до 20. Вывести массив на экран. Далее создать «квадратный» массив наименьшего размера, способный хранить все элементы первого массива. Скопировать элементы первого массива во второй (в произвольном порядке). Не использованные элементы второго массива содержат 0. Вывести второй массив на экран в удобной для просмотра форме. 7. Сгенерировать двумерный прямоугольный массив. Количество строк и столбцов – случайные числа в диапазоне от 3 до 8. Элементы массива – случайные целые числа от 10 до 30. Вывести массив на экран в удобной для просмотра форме. Далее создать одномерный массив, способный хранить все элементы первого массива. В нем сначала располагаются элементы последнего столбца первого массива, затем – элементы предпоследнего столбца и т.д. Вывести второй массив на экран. 8. Сгенерировать двумерный прямоугольный массив. Количество строк и столбцов – случайные вещественные числа в диапазоне от 4 до 8. Элементы массива – случайные вещественные числа от 10 до 100. Вывести массив на экран в удобной для просмотра форме. Далее создать второй массив, хранящий элементы первого в транспонированной форме. Вывести второй массив на экран в удобной для просмотра форме. 9. Сгенерировать «рваный» двумерный массив целых чисел, количество «главных» элементов которого – случайное число от 5 до 10, а количество «внутренних» элементов – от 3 до 15. Элементы массива – случайные числа от 10 до 30.Вывести массив на экран в удобной для просмотра форме. Далее создать двумерный прямоугольный массив, количество столбцов которого – наименьшая длина «внутренних» массивов первого. Во второй массив скопировать только элементы согласно рисунку: ТЕОРЕТИЧЕСКИЕ ВОПРОСЫ 1. Чем отличается метод Read() от метода ReadLine()? 2. Что вернет метод ToDouble() класса Convert, если ему передать в качестве аргумента строку, которая не является представлением вещественного числа? 3. Скажите, допустим ли следующий фрагмент программы: string s = “Qwerty”; s[3] = ‘A’; Ответ обоснуйте. 4. Скажите, допустима ли следующая конструкция вывода сообщения на экран: Console.WriteLine( “Sin({2}) = {1}”, 0, Math.Sin( Math.PI ), Math.PI ); Если – да, то укажите, каков будет результат. 5. Запишите оператор или последовательность операторов, позволяющих выяснить, все ли символы, содержащиеся в строке, указаны в верхнем регистре. 6. Скажите, эквивалентны ли следующие конструкции: 1) string s = “ Qwe ”; Console.WriteLine( s.Trim() ); 2) string s = “ Qwe ”; Console.WriteLine( s.TrimStart().TrimEnd() ); Ответ обоснуйте. 7. Запишите оператор или последовательность операторов, позволяющих выяснить, все ли символы, содержащиеся в строке, указаны в нижнем регистре. 8. Дана строка символов: string s = «Абвгд её жзик лмн.»; Скажите, эквивалентны ли следующие фрагменты вызовов: 1) s.Remove( 6, 2 ); 2) s.Replace( “её”, string.Empty ); Ответ обоснуйте. 9. Скажите, что общего и в чем разница между методами Contains() и IndexOf() класса System.String. 10. Что выведет на экран следующий фрагмент кода: string s = “ Qwer tyui 56b,uu; ggg ”; string[] ss = s.Split( ‘ ’, ‘,’, ‘;’ ); for( int i = 0; i<ss.Length; i++ ) Console.WriteLine( ss[i] );