Программирование на языках высшего уровня

Автор работы: Пользователь скрыл имя, 18 Января 2012 в 14:58, курсовая работа

Краткое описание

Написать программу вычисления значений функции y=ln(2+x) на интервале x(- [0;4] с шагом dx=0.2 с помощью разложения функции в степенной ряд

Содержимое работы - 1 файл

Курсовая работа1.docx

— 113.44 Кб (Скачать файл)

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

«Южно-Уральский  государственный университет» 
 
 
 
 
 

Информатика 

Курсовая  работа 
 
 
 
 
 

                                               Выполнил:

                                                                     Студент ЗИЭФ, гр.№130

                                                     Лупандин Д.А.

                                                                                  

      Проверил:

      доцент 

      Садов В.Б. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Челябинск

2011

а. Написать программу вычисления значений функции y=ln(2+x) на интервале x(- [0;4] с шагом dx=0.2 с помощью разложения функции в степенной ряд

  
   Сравнить полученные данные значения с точными(вычисленными с помощью библиотечной функции вычисления натурального логарифма). Вычисления логарифма по формуле оформить в виде функции с двумя параметрами : значением х и значением относительной погрешности d.
 

Решение:

Если  учесть что ln(2)=0,6931, то сделаем разложение по формуле: 

делаем замену, такую, чтобы 2 + x = (1 + y) / (1 - y), 
отсюда: 
y = (1 + x) / (3 + x) 
затем всё по формуле: 
k - степень при y 
r - результат
 

// ln2(x,d) === ln(2+x, d) 
function ln2(x, d) { 
  var y = (1 + x) / (3 + x), 
    r = 0, 
    k = 1, 
    n = 1; 
  while (n * n > d * r * d * r) { 
    n *= y; // n === y ^ k 
    r += k % 2 ? 2 * n / k : 0; 
    k++; 
  } 
  return r; 

// результат: 
// Math.log(2+2) - ln2(2, 0.0001) = 0.00000953187804708655
 
 
 
 
 
 
 
 

б. Составить  программу нахождения наибольшего  элемента массива X={xi},i=1,n. Значения элементов массива и его размер (до 10) вводить с клавиатуры. Вывести массив с пометкой этого массива. 

Решение: 

  1. program max;
  2. uses crt;
  3. const N=10;
  4. type x=array [1..N] of integer;
  5. var a:x;
  6. i:integer;
  7. max:integer;
  8. imax:integer;
  9. begin
  10. clrscr;
  11. randomize;
  12. for i:=1 to N do
  13. begin
  14. a[i]:= -50+random(101);
  15. write (A[i]:5)
  16. end;
  17. writeln;
  18. imax:=1;
  19. max:=A[1];
  20. for i:=2 to N do
  21. if max<a[i] then
  22. begin
  23. max:=a[i];
  24. imax:=i
  25. end;
  26. writeln (‘Максимальный элемент в массиве=’,max:5);
  27. writeln (‘Его индекс=’,imax:5);
  28. readln
  29. end.
 
 
 
 
 
 

В строке №7 записываем переменную для хранения величины максимального элемента.

В строке №8 записываем переменную для хранения индекса максимального элемента.

В строке №11 мы включаем функцию Randomize. Эта функция  позволяет генерировать случайные  числа в программе. В данном случае нам необходимо каждому элементу массива [1..N] присвоить какое-нибудь значение. В задаче №33 эти значения мы вводили с клавиатуры. В этой задаче мы ничего вводить не будем. Функция Randomize сама создаст значения для каждого элемента массива. В  массиве у нас 10 элементов ([1..N], const N=10), соответственно будет сгенерировано 10 случайных чисел.

В строке №12 включаем цикл. Переменная «I» будет  изменяться в цикле от 1 до «N»

В строке №14 очередному элементу массива мы присваиваем случайное число, которое  лежит в диапазоне от – 50 до + 50. (Сначала пишется минимальное  число – 50, затем знак +, затем  слово RANDOM, затем в скобках указывается  общее количество возможных чисел  в диапазоне; в диапазоне от – 50 до + 50 получается 100 чисел + число  0, всего 101) 
Таким образом, если мы запустим программу на данном этапе, у нас выведется на экран 10 различных чисел со значением от – 50 до + 50.

В строке №18 в переменную для хранения индекса (номера)  максимального элемента мы записали число 1, т.е. будем считать, что первый элемент массива – максимальный (т.е. первое число, которое сгенерирует программа – максимальное).

В строке №19 в переменную для хранения величины максимального элемента записываем значение для первого элемента массива (например, если первое сгенерированное  число будет 13, то его и будем  считать максимальным)

В строке №20 задаем цикл. В него мы не включаем 1-ый элемент. А затем, в строке №21 мы проверяем условие. Мы сравниваем все значения элементов  массива (т.е. все сгенерированные числа) начиная со 2-го и до 10-го с  1 - ым числом. И если очередное число в массиве больше чем 1-ое число, то в переменную для хранения числа записываем это очередное число (строка  №23), а в переменную для хранения индекса  числа записываем индекс этого очередного числа. После выполнения цикла в переменной max должно остаться максимальное число, а в переменной «imax» должен остаться номер этого числа.

Результат:

Информация о работе Программирование на языках высшего уровня