Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Алгоритм решения задачи: После ввода данных запускается цикл-счетчик в ходе которого по формуле представленной в условии задачи, находится цепная дробь до n-ого элемнта

ЛАБОРАТОРНАЯ РАБОТА №3

по курсу Информатика

Ряды, цепные дроби.

 

 

Группа: АБ 121

Студент: Дик М.Е.

Преподаватель: Малявко А.А.

 

Новосибирск 2011


1. Цель работы:

Научиться решать задачи связанные с рядами и цепными дробями

2. Задание 3: Определить корень третьей степени от Z по итерационной формуле, пока |Wn+1 - Wn| < e

Wn+1 = Wn +(1/3)(Z/ Wn2- Wn)

начальное значение

Z/3, если Z >= 0 W0= 3 Z если Z < 0

Использовать функцию F(w) = w + (1/3)(Z/ w2- w)

Алгоритм решения задачи: Вводится значение переменной Z, затем в зависимости от ее знака, ей присваивается значение, после чего запускается цикл с предусловием, в ходе которого вычисляется корень третьей степени из введенного с клавиатуры числа.

4. Текст программы решения задачи:

#include "stdafx.h"

//#include <stdio.h>

#include <conio.h>

#include <iostream>

 

 

int _tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_ALL,"russian");

//Объявление переменных

float z = 0;

float wn1 = 0;

float wn = 0;

float e = 0;

float x = 0;

 

//Ввод данных

printf("Введите Z: ");

scanf("%f",&z);

printf("Введите точность(разделение целой и дробной части через запятую): ");

scanf("%f",&e);

 

//Определение корня третьей степени

wn = 0;

wn1 = 0;

 

if (z < 0)

wn = 3 * z;

else

wn = z / 3;

x = wn;

 

while (x > e)

{

wn1 = wn + (z / (wn * wn) - wn) / 3;

x = wn1 > wn? wn1 - wn: wn - wn1;

wn = wn1;

//printf("%f %f %f\n", e, x, Wn);

}

 

printf("%9.2f",wn1);

 

getchar();

getchar();

return 0;

}

5. Результаты работы программ:

2. Задание: Вычислить квадратный корень из произвольного вещественного числа А>0 по итерационной формуле, пока |Yn+1 - Yn| < e

Yn+1 = 0.5(Yn +A/Yn) и полагая Y0=A

3. Алгоритм решения задачи:

Вводятся данные с клавиатуры, затем запускается цикл с предусловием в ходе которого вычисляется квадратный корень, по формуле приведенной в условии задачи.

4. Текст программы решения задачи:

#include "stdafx.h"

#include <stdio.h>

#include <conio.h>

#include <iostream>

 

 

int _tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_ALL,"russian");

//Объявление переменных

float A=0;

float Yn1=0;

float Yn=0;

float e=0;

float x=0;

 

//Ввод значений переменных

printf("Введите число А: ");

scanf("%f", &A);

printf("Введите точность: ");

scanf("%f", &e);

 

//Вычисление корня

Yn = A;

x = A;

while (x > e)

{

Yn1 = (Yn + A/Yn) / 2;

x = Yn1 > Yn? Yn1 - Yn: Yn - Yn1;

Yn = Yn1;

}

printf("%f",Yn);

getchar();

getchar();

return 0;

}

5. Результаты работы программ:

2. Задание 5: Получение N-го числа Фибоначи, т.е. числа из последовательности

0 1 1 2 3 5 8 13 21 34

ci= ci-1 + ci-2 (c1 = 0 c2 = 1) n=10 c=34

Алгоритм решения задачи: После ввода данных, запускается цикл-счетчик в котором находится n-ый член последовательности, путем воспроизведения этой последовательности до n-ого члена.

4. Текст программы решения задачи:

#include "stdafx.h"

#include <stdio.h>

#include <conio.h>

#include <iostream>

 

 

int _tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_ALL,"russian");

//Объявление переменных

int c=0;

int cp=1; //сi-1 из формулы

int cpp=0; //ci-2 из формулы

int i=0;

int n=0;

 

//Ввод данных

printf("Введите номер элемента последовательности: ");

scanf("%d",&n);

 

//Нахождение n-ого члена последовательности

 

for (i=3;i<=n;i++)

{

c=cpp+cp;

cpp=cp;

cp=c;

}

printf("%d",c);

getchar();

getchar();

return 0;

}

5. Результаты работы программ:

2. Задание 7:

Нахождение наибольшего общего делителя двух чисел N и M по рекуррентному соотношению

(N=23345 M=9135 => 1015 N=238 M=347 => 34)

Nk = Nk-2 - INT(Nk-2 / Nk-1) N k-1 k=2,3...

N0 = max(|N|, |M|) N1 = min(|N|, |M|)

Если Nk = 0 => НОД = Nk-1

Алгоритм решения задачи: После ввода данных, переменным N и M присваивается модуль их же значения, затем запускается цикл с предусловием, в ходе которого по формуле представленной в условии задачи, находится наибольший общий делитель.

4. Текст программы решения задачи:

#include "stdafx.h"

#include <stdio.h>

#include <conio.h>

#include <iostream>

 

 

int _tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_ALL,"russian");

//Объявление переменных

int N = 0;

int M = 0;

int Npp = 0;// Nk-2 из формулы

int Np = 0; //Nk-1 из формулы

int i = 0;

 

//Ввод данных

printf("Введите N и M: ");

scanf("%d%d",&N,&M);

 

// модуль числа

N = N > 0? N: - N;

M = M > 0? M: - M;

 

// нахождение начальных значений

Npp = N > M? N: M;

Np = N < M? N: M;

 

// нахождение НОД

while (N!= 0)

{

N = Npp - (Npp / Np) * Np;

Npp = Np;

Np = N;

}

 

//вывод

printf("%d",Npp);

getchar();

getchar();

return 0;

}

5. Результаты работы программ:

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

Xi = 1/(Xi-1 - INT(Xi-1))

Алгоритм решения задачи: После ввода данных запускается цикл-счетчик в ходе которого по формуле представленной в условии задачи, находится цепная дробь до n-ого элемнта.

4. Текст программы решения задачи:

#include "stdafx.h"

#include <stdio.h>

#include <conio.h>

#include <iostream>

 

 

int _tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_ALL,"russian");

 

//Объявление переменных

int integralpart = 0;

float xi = 0; //Xi из формулы

float xi1 = 0; //Xi-1 из формулы

int i = 0;

int n = 0;

 

//Ввод данных

printf("Введите десятичное число: ");

scanf("%f", &xi1);

printf("Введите количество элементов дроби: ");

scanf("%d", &n);

 

//Нахождение непрерывной дроби

xi = xi1;

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

{

if (xi1!= integralpart)

{

integralpart = xi/1;

printf("%d, ", integralpart);

xi = 1 / (xi1 - integralpart);

xi1 = xi;

}

}

 

getchar();

getchar();

return 0;

}

5. Результаты работы программ:

6. Выводы и заключение: В ходе проделанной работы я научился решать задачи с цепными дробями и рядами.



<== предыдущая лекция | следующая лекция ==>
Список использованных источников. 1. Безопасность жизнедеятельности | Образец рецензии на дипломную работу №3
Поделиться с друзьями:


Дата добавления: 2016-09-03; Мы поможем в написании ваших работ!; просмотров: 728 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студент может не знать в двух случаях: не знал, или забыл. © Неизвестно
==> читать все изречения...

2754 - | 2314 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.