Старый 19.03.2011, 16:41   #51
saper
 
Аватар для saper
 
Регистрация: 13.03.2011
Сообщений: 26
Репутация: 1
По умолчанию

getchar();
В #include <conio.h> применяется насколько я знаю
getch(); и return 0; } нету, а какие ошибки бросает?

Синтаксис такой:
Цитата:
#include <conio.h>

int main()
{
int ....;

clrscr();
....
код
....
getch();

clrscr();
....код....
getch();

return 0;
}
__________________
Тяжёлое детство: восьмибитные игрушки :secret:
saper вне форума   Ответить с цитированием
Старый 19.03.2011, 16:47   #52
-Gory King-
 
Аватар для -Gory King-
 
Регистрация: 25.07.2010
Сообщений: 36
Репутация: 4
По умолчанию

Цитата:
Сообщение от saper Посмотреть сообщение
getchar();
В #include <conio.h> применяется насколько я знаю
getch(); и return 0; } нету, а какие ошибки бросает?
x,y never used .. Но вроде все норм описано

getchar(); и return 0 можна писать можна и не писать главное что б { были}
-Gory King- вне форума   Ответить с цитированием
Старый 19.03.2011, 17:16   #53
saper
 
Аватар для saper
 
Регистрация: 13.03.2011
Сообщений: 26
Репутация: 1
По умолчанию

return 0 дописал одной ошибкой меньше стало, секцыю из float'ами перенес за main ( кстати сделал int main() ) ошибок еще меньше стало
__________________
Тяжёлое детство: восьмибитные игрушки :secret:
saper вне форума   Ответить с цитированием
Старый 19.03.2011, 18:26   #54
-Gory King-
 
Аватар для -Gory King-
 
Регистрация: 25.07.2010
Сообщений: 36
Репутация: 4
По умолчанию

Цитата:
Сообщение от saper Посмотреть сообщение
секцыю из float'ами перенес за main ( кстати сделал int main() ) ошибок еще меньше стало
нее это уже ошибка там синтаксис не тот будет
Код:
#include <stdio.h>
#include <math.h>
 float f1(float x,float y)    {return 1.5-cos(x;}
 float f2(float x,float y)    {return (1-sin(y-0.5));}
 float f1x(float x,float y)   {return -sin(x-1);}
 float f1y(float x,float y)   {return 1;}
 float f2x(float x,float y)   {return 2;}
 float f2y(float x,float y)   {return cos(y);}
 main()
     {float x0=1,x1,y0=-0.2,y1,h1,k1,zn,ch_h1,ch_k1,eps=1e-4;  int k=0;
 A:    ch_h1=-f1(x0,y0)*f2y(x0,y0)+f2(x0,y0)*f1y(x0,y0);
         ch_k1=-f1x(x0,y0)*f2(x0,y0)+f2x(x0,y0)*f1(x0,y0);
      zn=f1x(x0,y0)*f2y(x0,y0)-f2x(x0,y0)*f1y(x0,y0);
      h1=ch_h1/zn;        k1=ch_k1/zn;
      y1=y0+k1;           x1=x0+h1;
      if(fabs(x0-x1)>eps && fabs(y0-y1)>eps) {x0=x1; y0=y1; k++; goto A;}
       printf("\n x1=%8.7f y1=%8.7f k=%d eps=%8.7f",x1,y1,k,eps);
      getchar();
      }
Вот ище задачка просто другой метод и все равно тоже самое
-Gory King- вне форума   Ответить с цитированием
Старый 19.03.2011, 20:16   #55
rsaReliableS
 
Регистрация: 29.07.2010
Сообщений: 36
Репутация: 7
По умолчанию

Цитата:
Сообщение от -Gory King- Посмотреть сообщение
Вот ище задачка просто другой метод и все равно тоже самое
Оформление ужасное. Ты все сделал, чтобы не дать прочесть с ходу код =)
Так же интересно: ты во многие функции передаешь агрументы, которые никак не влияют на результат вычислений. Зачем? Не стал убирать, м.б. ты что-то насчет них запланировал =\
Код:
#include <stdio.h>
#include <math.h>

float f1 (float x, float y) {
	return 1.5-cos(x);
}

float f2 (float x, float y) {
	return (1-sin(y-0.5));
}

float f1x (float x, float y) {
	return -sin(x-1);
}

float f1y (float x, float y) {
	return 1;
}

float f2x (float x, float y) {
	return 2;
}

float f2y (float x, float y) {
	return cos(y);
}

int main() {
	float x0 = 1, x1, y0 = -0.2, y1, h1, k1, zn, ch_h1, ch_k1, eps = 1e-4;
	int k = 0;
 A:
    ch_h1 = -f1(x0, y0) * f2y(x0, y0) + f2(x0, y0) * f1y(x0, y0);
    ch_k1 = -f1x(x0,y0) * f2(x0, y0) + f2x(x0, y0) * f1(x0, y0);
    
    zn = f1x(x0, y0) * f2y(x0, y0) - f2x(x0, y0) * f1y(x0, y0);
    
    h1 = ch_h1 / zn;        
    k1 = ch_k1 / zn;
    
    y1 = y0 + k1;
    x1 = x0 + h1;
    
    if (fabs(x0 - x1) > eps && fabs(y0 - y1) > eps) {
    	x0 = x1;
    	y0 = y1;
    	k++;
    	goto A;
    }
    
    printf("\n x1=%8.7f y1=%8.7f k=%d eps=%8.7f", x1, y1, k, eps);
    getchar();
}
Цитата:
$ g++ 1.cpp
$ ./a.out

x1=-8169.5185547 y1=-16336.1826172 k=12651 eps=0.0001000
rsaReliableS вне форума   Ответить с цитированием
Старый 19.03.2011, 20:27   #56
rsaReliableS
 
Регистрация: 29.07.2010
Сообщений: 36
Репутация: 7
По умолчанию

Цитата:
Сообщение от -Gory King- Посмотреть сообщение
Код:
[.....]
Подскажите где ошибка? а то самому никак.Спасиб
Код:
#include <stdio.h>
#include <math.h>

float fi1 (float x, float y) {
	return (2-cos(x))/2;
}

float fi2 (float x, float y) {
	return sin(y+1)-1.2;
}
main() {
	FILE *stream = fopen("rezlab3", "w+");
    float x0 = -0.5, x1, y0 = 0.5,  y1, eps = 1e-6;
    int k=0;
 A:
  	y1 = fi1(x0, y0);
  	x1 = fi2(x0, y0);
    if(fabs(x0 - x1) > eps && fabs(y0 - y1) > eps) {
    	x0 = x1;
    	y0 = y1;
    	k++;
    	goto A;
    }
    fprintf(stream, "\n x1=%8.7f y1=%8.7f k=%d eps=%8.7f", x1, y1, k, eps);
    fclose(stream);
    getchar();
}
Цитата:
$ g++ 1.cpp
$ ./a.out

$ cat < rezlab3

x1=-0.2018383 y1=0.5101501 k=5 eps=0.0000010
rsaReliableS вне форума   Ответить с цитированием
Старый 21.03.2011, 01:25   #57
nobody
 
Аватар для nobody
 
Регистрация: 05.07.2010
Сообщений: 176
Репутация: 130
По умолчанию

как правильно на pure c проверять является ли переменная типа integer?
именно целочисленной, а не isdigit.

так как, везде говорят(и правильно говорят) что в си нет концепции "undefined value", то интересует самый достойный гомнокодистый вариант, пока то что у меня:
Код:
int isint(float x) {
    char buf[16];
    int itr;
    sprintf(buf, "%f", x);
    for(itr=0;itr<16;++itr)
        if(buf[itr] == '.') break;
    strncpy(buf, buf+itr, strlen(buf));
    return strcmp(buf, ".000000")?0:1;
}
nobody вне форума   Ответить с цитированием
Старый 21.03.2011, 04:47   #58
M_script
 
Регистрация: 06.07.2010
Сообщений: 113
Репутация: 33
По умолчанию

PHP код:
int isint(float x)
{
    return 
== (int)0;

M_script вне форума   Ответить с цитированием
Старый 21.03.2011, 19:45   #59
nobody
 
Аватар для nobody
 
Регистрация: 05.07.2010
Сообщений: 176
Репутация: 130
По умолчанию

Цитата:
Сообщение от M_script Посмотреть сообщение
PHP код:
int isint(float x)
{
    return 
== (int)0;

ах если бы всё было так просто
Код:
int main() {
    printf("%d\n", isint(33/17));
}

result: 1
nobody вне форума   Ответить с цитированием
Старый 21.03.2011, 21:09   #60
1nt
 
Регистрация: 21.10.2010
Сообщений: 19
Репутация: 0
По умолчанию

под int выделяется 4 байта. Может подойдет?
if (sizeof(x)==4) printf("is int\r\n");

А вообще глянь в справке сколько памяти выделяется под каждый тип переменной, по выделенной памяти определяется без проблем. И намного быстрее.
1nt вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot