<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Внутренние функции в си не работают с переменными]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=11443&amp;type=atom" />
	<updated>2011-03-04T15:52:29Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=11443</id>
		<entry>
			<title type="html"><![CDATA[Re: Внутренние функции в си не работают с переменными]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=152591#p152591" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>zhevak пишет:</cite><blockquote><p>1. Используйте функцию localtime() (или gmtime()) и руками (т.е. с помощью printf()) создавайте нужный Вам формат.<br />2. Используйте функцию asctime()<br />3. Используйте функцию ctime()<br />4. Используйте функцию strftime()</p></blockquote></div><p>ИМХО посл. вариант оптимальный обычно. strftime() тоже позволяет задавать ручками формат.</p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2011-03-04T15:52:29Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=152591#p152591</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Внутренние функции в си не работают с переменными]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=152569#p152569" />
			<content type="html"><![CDATA[<p>Вообще есть несколько способов. Плюс Ваш, который как я понял тоже работает.</p><p>1. Используйте функцию <strong>localtime()</strong> (или <strong>gmtime()</strong>) и руками (т.е. с помощью printf()) создавайте нужный Вам формат.<br />2. Используйте функцию <strong>asctime()</strong><br />3. Используйте функцию <strong>ctime()</strong><br />4. Используйте функцию <strong>strftime()</strong></p><p>Как применять эти функции, думаю, сможете сами нагуглить.</p><p>И простите за совет, не пожалейте 500 рэ -- купите книжку Н.Мэтью и Р.Стоунса &quot;Основы программирования в Linux&quot; <a href="http://www.books.ru/shop/books/646220">http://www.books.ru/shop/books/646220</a><br />Потом будете меня благодарить до конца дней. А мне будет приятно <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /> Серьезно. Книжка хорошая. Хватит надолго.</p>]]></content>
			<author>
				<name><![CDATA[zhevak]]></name>
				<uri>https://linuxforum.ru/profile.php?id=9718</uri>
			</author>
			<updated>2011-03-04T14:35:02Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=152569#p152569</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Внутренние функции в си не работают с переменными]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=152542#p152542" />
			<content type="html"><![CDATA[<p>Спасибо, с линкованием разобрался!<br />Еще вопрос: мне нужно на Си представить время в формате времени -&nbsp; hh:mm:ss&nbsp; , например 21:15:08..., (в исходных данных время в числовом формате (double) и не зависит от текущего времени);<br />в VB к примеру есть&nbsp; функция <strong>format</strong>&nbsp; , где можно задать нужный формат для преобразования времени в числовом формате в формат <strong>long time</strong>. В Си я подобной функции не нашел, пришлось придумывать свою, но думаю знатоки Си могли бы подсказать&nbsp; как оптимально преобразовать время из числового формата в формат времени и наоборот.&nbsp; &nbsp; &nbsp;<br />Как допустим в Excel :&nbsp; &nbsp;Формат - Ячейки&nbsp; -&nbsp; Дата/Время...</p>]]></content>
			<author>
				<name><![CDATA[pelejuy]]></name>
				<uri>https://linuxforum.ru/profile.php?id=15775</uri>
			</author>
			<updated>2011-03-04T13:19:27Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=152542#p152542</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Внутренние функции в си не работают с переменными]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151127#p151127" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>pelejuy пишет:</cite><blockquote><p>Я в Си&nbsp; начинающий, подскажите пожалуйста, как это реализовать практически (хорошо бы с примером).</p></blockquote></div><p><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">ksu@ksu:~$ cat fp.c <br />#include &lt;stdio.h&gt;<br />#include &lt;math.h&gt;</p><p>int main()<br />{<br />&nbsp; &nbsp; double x = 0.5;<br />&nbsp; &nbsp; double y = atanf(x);<br />&nbsp; &nbsp; printf(&quot;atanf(%f) == %f\n&quot;, x, y);<br />&nbsp; &nbsp; return 0;<br />}<br />ksu@ksu:~$ gcc -o fp fp.c <br />/tmp/ccPol6tT.o: In function `main&#039;:<br />fp.c:(.text+0x35): undefined reference to `atanf&#039;<br />collect2: выполнение ld завершилось с кодом возврата 1<br />ksu@ksu:~$ gcc -lm -o fp fp.c <br />ksu@ksu:~$ ./fp<br />atanf(0.500000) == 0.463648<br /></div><br />мой совет: начинайте с консоли. не наступайте на те-же грабли, которые несколько лет били меня по башке (когда я пользовался MSVC, т.к. в венде нет нормальной консоли).</p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2011-03-01T09:45:11Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151127#p151127</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Внутренние функции в си не работают с переменными]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151122#p151122" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p><span class="bbu">такая ошибка возникает, если вы линкуете без опции -lm, это подключение математической библиотеки.</span></p></blockquote></div><p>Я в Си&nbsp; начинающий, подскажите пожалуйста, как это реализовать практически (хорошо бы с примером).</p>]]></content>
			<author>
				<name><![CDATA[pelejuy]]></name>
				<uri>https://linuxforum.ru/profile.php?id=15775</uri>
			</author>
			<updated>2011-03-01T09:24:55Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151122#p151122</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Внутренние функции в си не работают с переменными]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151117#p151117" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>man atan пишет:</cite><blockquote><p>ATAN(3)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Linux Programmer&#039;s Manual&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ATAN(3)</p><p>NAME<br />&nbsp; &nbsp; &nbsp; &nbsp;atan, atanf, atanl - arc tangent function</p><p>SYNOPSIS<br />&nbsp; &nbsp; &nbsp; &nbsp;#include &lt;math.h&gt;</p><p>&nbsp; &nbsp; &nbsp; &nbsp;double atan(double x);<br />&nbsp; &nbsp; &nbsp; &nbsp;float atanf(float x);<br />&nbsp; &nbsp; &nbsp; &nbsp;long double atanl( long double x);</p><p>&nbsp; &nbsp; &nbsp; &nbsp;<strong>Link with -lm.</strong></p></blockquote></div><p>такая ошибка возникает, если вы линкуете без опции -lm, это подключение математической библиотеки.</p><div class="quotebox"><cite>pelejuy пишет:</cite><blockquote><p>Ошибка появляется, когда в качестве аргумента функции указываю переменную, с константами ошибки не возникает.</p></blockquote></div><p>потому-что синус от константы == константа. Её вычисляет компилятор во время компиляции. Во время работы это не нужно, и если в коде все функции от констант, то и считать ничего не нужно. И не нужна мат. либа.</p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2011-03-01T09:10:52Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151117#p151117</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Внутренние функции в си не работают с переменными]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151054#p151054" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>#include &lt;math.h&gt;
#include &lt;stdio.h&gt;


       int main(void) {
    puts(&quot;Р’РІРµРґРёС‚Рµ С‚РµРєСЃС‚&quot;);
    int rn, hh, mm, ss, zsh, shg, shm, zd, dg, dm, R;
    double ARG, ARC, kor, razn;
    double SHR, DOLR;
          scanf(&quot;%*u %2u%*u %2u %2u %2u %*u %1u %3u %2u %1u %3u %2u&quot; , &amp;rn, &amp;hh, &amp;mm, &amp;ss, &amp;zsh, &amp;shg, &amp;shm, &amp;zd, &amp;dg, &amp;dm);


if (zsh &gt; 2)
    SHR = (shg + (double)shm / 60) / 180 * 3.14159265358979;
else
    SHR=(-shg - (double)shm / 60) / 180 * 3.14159265358979;
if (zd &gt; 2)
    DOLR=(dg + (double)dm / 60) / 180 * 3.14159265358979;
else
    DOLR=(-dg - (double)dm / 60) / 180 * 3.14159265358979;

/*printf(&quot;%f %f\n&quot; , SHR, DOLR);*/

        razn = DOLR - 1.874532;
        double aa = sin(1.154374);
        double bb = sin(SHR);
        double cc = cos(1.154374);
        double dd = cos(SHR);
        double ee = cos(razn);

        ARG = aa*bb+cc*dd*ee;
        kor = (-ARG * ARG) + 1;
        ARC = atan(-ARG / sqrt(kor)) + 2 * atan(1);

           R = ARC * 180 / 3.14159265358979 * 111.1;
        printf(&quot;%u&quot; , R);

              return 0;
        }</code></pre></div><p>Пока копировал код,- заработало!, - восстановил параметры по умолчанию..., до этого явно прописывал пути к файлам include, менял их с разных ide...<br />Спасибо , что быстро откликнулись!</p>]]></content>
			<author>
				<name><![CDATA[pelejuy]]></name>
				<uri>https://linuxforum.ru/profile.php?id=15775</uri>
			</author>
			<updated>2011-03-01T01:14:19Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151054#p151054</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Внутренние функции в си не работают с переменными]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151050#p151050" />
			<content type="html"><![CDATA[<p>код в студию.</p>]]></content>
			<author>
				<name><![CDATA[Fat-Zer]]></name>
				<uri>https://linuxforum.ru/profile.php?id=11911</uri>
			</author>
			<updated>2011-03-01T00:39:56Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151050#p151050</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Внутренние функции в си не работают с переменными]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151049#p151049" />
			<content type="html"><![CDATA[<p>Суть проблемы: пишу программу на Си в Eclipse (на Mandriva), компилятор выдает ошибку <span style="color: red">undefined referense to &#039;sin&#039; (cos, atan, sqrt)</span>. Ошибка появляется, когда в качестве аргумента функции указываю переменную, с константами ошибки не возникает. <br />Использую include math.h и ctdio.h, может быть нужно что-то еще? <br />Если кто-то сталкивался, подскажите!<br />Ошибка повторяется и при использовании компилятора Eclipse и при компилировании в терминале.</p>]]></content>
			<author>
				<name><![CDATA[pelejuy]]></name>
				<uri>https://linuxforum.ru/profile.php?id=15775</uri>
			</author>
			<updated>2011-03-01T00:23:47Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151049#p151049</id>
		</entry>
</feed>
