КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Методические указания по выполнению заданий
Программирование алгоритмических структур на ЯВУ C#
Пояснительная записка на ____листах
Студент(ка) группы (роспись) Фамилия И. О. № зач. кн. _________
Руководитель Фамилия И. О. Самара 200_ г.
Рис. 10. Образец оформления титульного листа Пример выполнения задачи 1. Вычислить значение переменных y и p, используя значения входных данных и расчетные формулы: , где а = 0.59, z = -4.8, x = 2.1 Расчетные функции y и p опишем как переменные. Величины a, z, x можно описать в программе как константы, так как их значения заранее определены условием задачи. Если же описать их как переменные, то нужные значения указываются при вводе. Теперь составим блок-схему алгоритма (рис. 11) и напишем программу. using System; … namespace ConsoleApplication1 { class Program { static void Main(string[] args) { const double x = 2.1, a = 0.59, z = -4.8; double y = 0, p = 0; y = a * Math.Pow(Math.Tan(x * x), 3) + Math.Sqrt(z * z / (a * a + x * x)); p = Math.Log(a + x * x) + Math.Pow(Math.Sin(z / a), 2); Console.WriteLine("Результаты"); Console.WriteLine(); Console.Write("y="); Console.WriteLine(y.ToString()); //формат вывода по умолчанию Console.WriteLine(); Console.WriteLine("p={0:E}",p); //экспоненциальный формат вывода переменной Console.WriteLine(); Console.WriteLine("y={0,5:f} p={1,5:f}", y, p); //фиксированный формат вывода переменных Console.WriteLine("Нажми клавишу Enter"); Console.ReadKey(); } } }
Результаты выполнения задачи1: Замечания. 1. В программе предусмотрен форматный вывод вещественных переменных y и p, который устанавливает при выводе на печать 5 символов, 2 из которых отведены для дробной части (F). 2. При небольших показателях степени задача возведения в степень решается умножением. Например: х3=х2∙х. При дробных и больших значениях показателя степени вычисление производится по формуле: Ах = ех∙ln(А) или (exp(x*ln(a)). Пример выполнения задания 2. Вычислить на ПЭВМ значения функции:
Обратим внимание, что функция y не определена в диапазоне a < x < b {(x > a) and (x < b)}. В этой ситуации программа должна обеспечить вывод соответствующего сообщения, например "функция не определена". Таким образом, фактически имеем три диапазона изменения x:
функция sin(x) не определена k·ln(x) 0 2 4 6 x
Примем диапазон изменения x от 0 до 6, что позволит протестировать программу по всем трем условиям. Поскольку в задаче три условия, число блоков «решение» в алгоритме должно быть два (на единицу меньше). Блок-схема одного из вариантов алгоритма решения задачи и соответствующая программа будут иметь вид:
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { double x, y, k = 1.2; Console.Write("Введите х "); x = Convert.ToDouble(Console.ReadLine()); /*преобразует вводимое с клавиатуры число в виде строки в вещественный тип данных*/ Console.WriteLine(); if (x <= 2 & x > 0) { y = Math.Sin(x); Console.WriteLine("x={0,3:f} y={1,3:f}", x, y); } else if (x <= 6 & x > 4) { y = k * Math.Log(x); Console.WriteLine("x={0,3:f} y={1,5:f}", x, y); } else Console.WriteLine("x={0,3:f} Func No",x); Console.WriteLine(); Console.WriteLine("Нажми любую клавишу"); Console.ReadKey(); } } } Результаты решения задачи 1:
Пример выполнения задания 3. Используя оператор fo … to … do, вычислить на ПК значения функции , при х=0,5. Параметром цикла является аргумент n. При вычислении конечных сумм и произведений искомый результат формируется постепенно. При вычислении суммы сначала вычисляется S1 = S0 + S(n1), во втором повторе цикла эта сумма увеличивается на второе слагаемое и получается S2 = S1 + S(n2), в третьем повторе - на третье слагаемое S3 = S2 + S(n3) и т.д. Здесь S0 - начальное значение суммы и т.к. S1 должна быть равна S(n1), то S0 = 0. При вычислении произведения сначала вычисляется Р1=Р0×P(n1), затем Р2 = Р1×P(n2) и т.д. Здесь Р0 - начальное значение произведения и т.к. Р1 должно быть равно P(n1), то Р0 = 1. Поскольку 5×х2 можно вынести за знак суммы, в тело цикла это произведение включать не следует. Тем самым сокращается время исполнения программы. Блок-схема алгоритма решения задачи и соответствующая программа будут иметь вид (рис. 13):
static void Main(string[] args) { double x = 0.5, t = 0, n; for (n = 1; n <= 10; n++) t = t + 1/ n; // накопление суммы в теле цикла t = 5*Math.Pow(x,2) * t; Console.WriteLine("Сумма членов ряда = {0:#.###}", t); Console.ReadKey(); }
Результаты работы программы:
Рис. 13. Блок схема алгоритма задания 3.
Пример выполнения задания 4. Используя операторы while… и do… while, вычислить значения функции , в диапазоне изменения x от 0 до 3 с шагом 0.5. При решении данной задачи можно использовать алгоритмы циклической структуры "до" и "пока". Параметром данного цикла является х, причем при каждом повторном вычислении его значение следует увеличивать на величину шага. Объявим переменную х в разделе объявлений вещественного типа и зададим в программе ей начальное значение равное 0. В процессе вычислений значение переменной будет изменяться с заданным шагом 0,5. Для вычисления y при х£1 будем использовать алгоритмическую структуру "цикл-до", а при вычислении функции в диапазоне 1<x£3 – "цикл-пока". Блок-схема одного из вариантов алгоритма решения задачи приведена на рис.14. Как видно, программно алгоритм можно описать с помощью условных операторов. Но мы будем использовать специальные средства языка, реализующие циклические структуры. С учетом сказанного, программа, соответствующая представленному алгоритму будет иметь вид:
Рис. 14. Блок схема алгоритма задания 4.
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { double y, x = 0; Console.WriteLine("_____________________"); do { y=Math.Cos(x); Console.WriteLine(" x = {0,2:f} | y = {1,3:f}", x,y); Console.WriteLine("_____________________"); x=x+0.5; } while (x<=1); while (x<=3) { y=Math.Sin(x); Console.WriteLine(" x = {0,2:f} | y = {1,3:f}", x,y); Console.WriteLine("_____________________"); x=x+0.5; } Console.ReadKey(); } } } Результаты работы программы:
Пример выполнения задания 5. В массиве из N £ 10 элементов вычислить наибольший элемент массива Х и его номер. Алгоритм поиска максимального (минимального) элемента массива заключается в следующем. Сначала предполагается, что первый элемент массива является максимальным (минимальным). В этом предположении он сравнивается с последующими элементами массива до тех пор, пока очередной из них не окажется больше (меньше). Этот больший (меньший) элемент массива принимается в качестве нового максимального (минимального) элемента, после чего процесс сравнения продолжается. И так продолжается до тех пор, пока не выявится максимальный (минимальный) элемент массива.
Рассмотрим вариант, когда одномерный массив инициализирован заранее, например:
static void Main(string[] args) { int[] A = new int[10] { -5, 6, -8, 2, 4, 9, -7, 4, 1, 0 }; // одномерный массив А из 10 целых чисел int Amin; // минимальный элемент int Imin; // номер минимального элемента for (int i = 0; i < 10; i++) Console.WriteLine("A[" + i + "]=" + A[i]); Console.WriteLine(); // вывод элементов массива Amin = A[0]; // предположение Imin = 0; for (int i = 1; i < 10; i++) if (A[i] < Amin) { Amin = A[i]; // выявление min элемента Imin = i; // его индекс } Console.WriteLine("Минимальный элемент: {0} ", Amin); Console.WriteLine("Его индекс: {0} ", Imin); Console.ReadKey(); }
Рис. 15. Блок схема алгоритма задания 5 Результаты работы программы:
Для создания оглавления в пояснительной записке с помощью средств текстового редактора необходимо: I. Организовать дополнительную страницу перед описательной частью выполнения заданий с целью размещения на ней будущего оглавления. Для этого: – поместить курсор на место вставки оглавления (перед заголовком Выполнение заданий); – выбрать команду Разрыв … в меню Вставка; – в диалоговом окне Разрыв установить переключатель Новую страницу и нажать кнопку ОК. Присвоить заголовку название Оглавление. II. Аналогично организовать дополнительную страницу для рецензии и присваивается название заголовок Рецензия. III. Присвоить стили всем заголовкам, которые должны быть в оглавлении. Например, 1. Рецензия (стиль Заголовок 1) 2. Оглавление (стиль Заголовок 1) 3. Выполнение заданий (стиль Заголовок 1) 3.1. Задание 1 (стиль Заголовок 2) 3.2. Задание 2 (стиль Заголовок 2) 3.3. Задание 3 (стиль Заголовок 2) 3.4. Задание 4 (стиль Заголовок 2) 3.4. Задание 5 (стиль Заголовок 2) 4. Выводы по работе (стиль Заголовок 1) 5. Литература (стиль Заголовок 1) IV. Вставка оглавления: – установить курсор в место вставки оглавления в начало новой страницы, но после заголовка «Оглавление»; – активизировать команду Вставка\Ссылка\Оглавление и указатели; – в диалоговом окне Оглавление и указатели открыть вкладку Оглавление; – в поле Форматы выбрать один из готовых стилей (например, Классический или любой другой понравившийся); – наличие флажка Показать номера страниц позволяет для каждого элемента списка отображать номера страниц; – установка флажка Номера страниц по правому краю даёт возможность выровнять номера страниц по правому полю; – в поле Уровни задать количество уровней для оглавления (в примере два); – нажать кнопку ОК.
Дата добавления: 2014-10-17; Просмотров: 454; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |