русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Методические указания по выполнению заданий


Дата добавления: 2015-01-08; просмотров: 867; Нарушение авторских прав


Пример выполнения задачи 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. При небольших показателях степени задача возведения в степень решается умножением. Например: х32∙х. При дробных и больших значениях показателя степени вычисление производится по формуле:Ах = ех∙ln(А) или (exp(x*ln(a)).

Пример выполнения задания 2. Вычислить на ПЭВМ значения функции:



 
 
где k=1.2, a=2, b=4, xÎ0…6  

 


Обратим внимание, что функция 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. Используя оператор fotodo , вычислить на ПК значения функции , при х=0,5.

Параметром цикла является аргумент n.

При вычислении конечных сумм и произведений искомый результат формируется постепенно. При вычислении суммы сначала вычисляется S1 = S0 + S(n1), во втором повторе цикла эта сумма увеличивается на второе слагаемое и получается S2 = S1 + S(n2), в третьем повторе - на третье слагаемое S3 = S2 + S(n3) и т.д. Здесь S0 - начальное значение суммы и т.к. S1 должна быть равна S(n1) , то S0 = 0.

При вычислении произведения сначала вычисляется Р10×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. Вставка оглавления:

– установить курсор в место вставки оглавления в начало новой страницы, но после заголовка «Оглавление»;

– активизировать команду Вставка\Ссылка\Оглавление и указатели;

– в диалоговом окне Оглавление и указатели открыть вкладку Оглавление;

– в поле Форматы выбрать один из готовых стилей (например, Классический или любой другой понравившийся);

– наличие флажка Показать номера страниц позволяет для каждого элемента списка отображать номера страниц;

– установка флажка Номера страниц по правому краю даёт возможность выровнять номера страниц по правому полю;

– в поле Уровни задать количество уровней для оглавления (в примере два);

– нажать кнопку ОК.

Перечень контрольных вопросов

 

1. Алфавит C#

2. Операции в C#

3. Идентификаторы в C#

4. Типы данных в C#

5. Целые типа данных в C#

6. Вещественные типы данных в C#

7. Логический тип данных в C#

8. Символьный тип данных в C#

9. Строковый тип данных в C#

10. Структура программы консольного приложения в Lazarus

11. Где и как описываются константы, переменные, метки и типы данных?

12. Стандартные функции C#

13. Оператор присваивания в C#

14. Простой и составной операторы в C#

15. Процедуры ввода с клавиатуры Console.ReadLine() в C#

16. Процедуры вывода на монитор Console.WriteLine.в C#

17. Последовательность действий при выполнении оператора присваивания.

18. Как вывести переменные с сопровождением их значений именами переменных?

19. Как организовать пропуск одной, двух строк при выводе?

20. Какие структуры вычислительных процессов Вы знаете?

21. Формат условного оператора ifelse.

22. Вложенные условные операторы.

23. Формат оператора выбора switch.

24. Какие действия выполняются операторами условного и безусловного переходов?

25. Зачем нужно при отладке программы тестировать все ветви алгоритма?

26. Что такое итерационный циклический процесс? Его отличия от цикла с заданным числом повторений.

27. Чем отличаются циклы "до" от циклов "пока"?

28. Назначение и формат оператора whiledo?

29. Назначение и формат оператора dowhile?

30. Как подсчитать количество повторений в итерационном цикле?

31. Какие средства языка целесообразно использовать для организации циклов с заданным числом повторений?

32. Преимущества использования операторов цикла в программе.

33. Использование оператора цикла fortodo.

34. Отличие инкрементного и декрементного вариантов циклических процессов.

35. Организация вычисления сумм.

36. Организация вычисления произведения.

37. Что такое массив? Описание типа – массив.

38. Какие операторы языка можно использовать для описания массивов?

39. Какие типовые операции с элементами характерны для массивов?

40. Что такое подпрограмма? Ее назначение.

41. Понятие функций. Объявление функций и формат вызова.

42. Понятие процедур. Объявление процедур и формат вызова.

43. Назначение модулей.

44. Структура модуля и его подключение в программу.

 



<== предыдущая лекция | следующая лекция ==>
Требования по оформлению пояснительной записки | 


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.555 сек.