Skip to content

Instantly share code, notes, and snippets.

@lazyval
Created December 16, 2011 21:13
Show Gist options
  • Save lazyval/1487999 to your computer and use it in GitHub Desktop.
Save lazyval/1487999 to your computer and use it in GitHub Desktop.
cycles
#include <stdio.h>
#include <math.h>
// Условия из задания. Не могут изменяться в ходе работы программы
// Значения определенные здесь видны во всей программе
const int N = 12,
a = 10,
xs = 2,
xe = 6;
// Длина шага. Так как начальное значение нам уже известно,
// мы делим промежуток на N-1 частей. (double) -- приведение
// типа арифметической операции справа. Без приведения результат
// автоматически округлится до ближайшего значения int'а
// (т.к. тип аргуметов int)
const double step = (double)(xe-xs)/(N-1);
double f(double x) {
return log (a-x)/(log(a+x)+log(x));
}
void main()
{
// Цикл. Можно прочитать его как
// "сделать(опредение переменной; пока это условие == true мы итерируемся; в каждой итерации сделать)"
// Т.е. перед заходом цикла определяем переменную, потом говорим что кружимся в цикле до тех пор пока она
// меньше конечного значения, на каждой итерации прибавляем значение шага (константа сверху).
for(double x=xs ; x < xe; x+=step) {
printf("Value of f(x) at x=%f equals to %f",x,f(x)); // используем "подстановки" -- на месте %f подставляется float (ну или double)
}
}
#include <stdio.h>
#include <math.h>
// Другой вариант (цикл while вместо for(...))
// Условия из задания. Не могут изменяться в ходе работы программы
// Значения определенные здесь видны во всей программе
const int N = 12,
a = 10,
xs = 2,
xe = 6;
// Длина шага. Так как начальное значение нам уже известно,
// мы делим промежуток на N-1 частей. (double) -- приведение
// типа арифметической операции справа. Без приведения результат
// автоматически округлится до ближайшего значения int'а
// (т.к. тип аргуметов int)
const double step = (double)(xe-xs)/(N-1);
double f(double x) {
return log (a-x)/(log(a+x)+log(x));
}
void main()
{
// Цикл. Можно прочитать его как
// Крутимся пока (условие) верно
double x=xs;
while (x < xe) {
printf("Value of f(x) at x=%f equals to %f\n",x,f(x)); // используем "подстановки" -- на месте %f подставляется float (ну или double)
x+=step;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment