Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4lab.doc
Скачиваний:
4
Добавлен:
22.04.2019
Размер:
664.58 Кб
Скачать

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

/* ) Получение N-го числа Фибоначи, т.е. числа из последовательности

0 1 1 2 3 5 8 13 21 34

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

*/

#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

3. После ввода данных, переменным 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. 4_1: Найти функцию с точностью e , т.е. пока |fn+1-fn| < e .

ex = 1 + x +x2/2! + x3/3! + ...

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

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

/*Найти функцию с точностью e , т.е. пока |fn+1-fn| < e .

ex = 1 + x +x2/2! + x3/3! + ...

*/

#include "stdafx.h"

#include <stdio.h>

#include <conio.h>

#include <iostream>

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

{

setlocale(LC_ALL,"russian");

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

float argument = 0;

float error = 0;

float accuracy = 0;

float currentValue = 0;

float previousValue = 0;

float intermediateValue = 0;

int i = 0;

int j = 0;

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

printf( "Введите значение аргумента: ");

scanf( "%f", &argument);

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

scanf( "%f", &accuracy);

//Эксопеннта в степени x

intermediateValue = argument;

previousValue = 1 + argument;

i = 3;

j = 2;

error = argument;

while ( error > accuracy )

{

intermediateValue = intermediateValue * argument;

currentValue = previousValue + intermediateValue / j;

error = currentValue >= previousValue ? currentValue - previousValue : previousValue - currentValue;

previousValue = currentValue;

j = j * i;

i = i + 1;

}

printf("e^x = %f", previousValue);

getchar();

getchar();

return 0;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]