Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metodichka_SI.doc
Скачиваний:
30
Добавлен:
23.02.2015
Размер:
2.05 Mб
Скачать

2 Задача

Цель: вычисление суммы бесконечного ряда.

Вычислить с заданной точностью E (E>0). Считать, что требуемая точность достигнута, если вычислена сумма нескольких первых слагаемых и очередное слагаемое оказалось по модулю меньше, чем E.

Дополнительное условие: программа написана без использования функции.

#include <stdio.h>

#include <math.h>

// заданная точность

#defineEps0.001

int main()

{

double sum=0;

int i=1;

do

{

// вычисление суммы после добавления i-го члена ряда

sum=sum+(1.0)/(i*i);

i++;

}

// пока не достигнута заданная точность

while (((1.0)/(i*i)) > Eps);

// вывод количества подсчитанных чисел и суммы этих чисел

printf("\n This is the sum of %i numbers = %f\n ",i,sum);

return 0;

}

Дополнительное условие: программа написана с использованием функций.

#include <stdio.h>

#include <math.h>

#define EPS 0.00001

// функция возвращает значение агрегируемой функции

double value(int i);

// функция проверят условие цикла (модуль следующего слагаемого по модулю меньше EPS)

bool isMore(int i);

double value(int i)

{

return 1.0 / (i * i);

}

bool isMore(int i)

{

return fabs(value(i)) > EPS;

}

int main()

{

double sum = 0;

for (int i = 1; isMore(i); i++)

{

// вычисление суммы после добавления i-го члена ряда

sum += value(i);

}

// вывод количества вычисленной суммы для iслагаемых

printf("\n This is the sum of %i numbers = %f\n ", i, sum);

return 0;

}

3 Задача

Цель: работа с элементарными алгоритмами.

Вычисление НОК.

Дополнительное условие: программа написана без использования функции.

#include <stdio.h>

// функция для вычисления максимального значения двух чисел

int max(int a, int b);

intmain()

{

// первое число

inta;

// второе число

int b;

int NOK = 0;

printf("Input first number");

scanf("%d",&a);

printf("Input second number");

scanf("%d",&b);

// если число b больше чем a, меняем эти числа местами

if (max(a,b) == b)

{

int tmp = b;

b=a;

a=tmp;

}

// вычисление НОК

for (int i = a; i < a*b+1; i++)

{

//если число делится на a и на b, то это число является НОК

if (i % a == 0 && i % b == 0)

{

NOK = i;

break;

}

}

printf("NOK [%d,%d]=%d",a,b,NOK);

return 0;

}

int max (int a, int b)

{

// если a больше чем b, то возвращаем a

if (a>b)

returna;

else

// если b больше чем a, то возвращаем b

return b;

}

Дополнительное условие: программа написана с использованием функции.

#include <stdio.h>

int max(int a, int b);

int getNOK(int a, int b);

// функция для вычисления максимального числа

int max(int a, int b)

{

// если a < b, то max присвоить значение b, иначе max присвоить значение a

return (a < b) ? b : a;

}

// функция вычисления наименьшего общего кратного

int getNOK(int a, int b)

{

// ищем среди чисел больших a НОК

for (int i = max(a, b); i <= a * b; i++)

{

// ищем среди чисел больших a НОК

if (i % a == 0 && i % b == 0)

return i;

}

return -1;

}

int main()

{

int a;

int b;

printf("Input first number: ");

scanf("%d",&a);

printf("Input second number: ");

scanf("%d",&b);

// выводим НОК для чисел a и b

printf("NOK [%d,%d] = %d\n", a, b, getNOK(a, b));

return 0;

}

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