<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум компьютерной помощи &mdash; Программы на языке C#]]></title>
	<link rel="self" href="https://itpmr.ru/extern.php?action=feed&amp;tid=920&amp;type=atom" />
	<updated>2015-07-14T19:31:21Z</updated>
	<generator>PunBB</generator>
	<id>https://itpmr.ru/viewtopic.php?id=920</id>
		<entry>
			<title type="html"><![CDATA[Re: Программы на языке C#]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124366#p124366" />
			<content type="html"><![CDATA[<p>/***********************************************************<br />&nbsp; &nbsp;setvbuf.c<br />&nbsp; &nbsp;Эта простая программа на языке Си показывает, как задавать<br />&nbsp; &nbsp;свой буфер ввода-вывода при помощи функции setvbuf(),<br />&nbsp; &nbsp;прототип которой задан в файле stdio.h.<br />&nbsp; &nbsp;Copyright (c) Chris H. Pappas и William H. Murray, 1995<br />***********************************************************/</p><div class="codebox"><pre><code>#include &lt;stdio.h&gt;

#define USER_DEFINED_BUFFER_SIZE 256

void main( void )
{
   FILE  *InputFilePtr,
         *OutputFilePtr;
   float  FloatData;
   char   ProgramControlledBuffer[ USER_DEFINED_BUFFER_SIZE ];

   InputFilePtr  = fopen( &quot;a:\\test.dat&quot;  , &quot;r&quot; );
   OutputFilePtr = fopen( &quot;a:\\outfil.dat&quot;, &quot;w&quot; );

   if( setvbuf(InputFilePtr, ProgramControlledBuffer,
               _IOFBF, USER_DEFINED_BUFFER_SIZE) != 0 )
        printf(&quot;InputFilePtr buffer allocation error\n&quot;);

   else
        printf(&quot;InputFilePtr buffer created\n&quot;);


   if ( setvbuf(OutputFilePtr, NULL, _IOLBF, 256) != 0 )
        printf(&quot;OutputFilePtr buffer allocation error\n&quot;);

   else
        printf(&quot;OutputFilePtr buffer created\n&quot;);


   while( fscanf( InputFilePtr,&quot;%f&quot;,&amp;FloatData ) != EOF )
        fprintf(OutputFilePtr,&quot;%f\n&quot;,FloatData);


   fclose( InputFilePtr  );
   fclose( OutputFilePtr );
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2015-07-14T19:31:21Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124366#p124366</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Программы на языке C#]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124365#p124365" />
			<content type="html"><![CDATA[<p>/***********************************************************<br />&nbsp; &nbsp; setbuf.c<br />&nbsp; &nbsp; Эта простая программа на языке Си показывает, как задать в<br />&nbsp; &nbsp;программе собственный буфер для стандартного потока вывода<br />&nbsp; &nbsp;сообщений об ошибках stderr.<br />&nbsp; &nbsp;Copyright (c) Chris H. Pappas и William H. Murray, 1995<br />***********************************************************/</p><div class="codebox"><pre><code>#include &lt;stdio.h&gt;

char UserDefinedOutputBuffer[ BUFSIZ ];/* BUFSIZ в stdio.h */

void main( void )
{
  setbuf( stderr, UserDefinedOutputBuffer );

  fputs ( &quot;Any information can now be sent to the\n&quot;,stderr );

  fputs ( &quot;\&quot;UserDefinedOutputBuffer.\&quot;\n&quot;          ,stderr );

  fflush( stderr );
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2015-07-14T19:30:57Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124365#p124365</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Программы на языке C#]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124364#p124364" />
			<content type="html"><![CDATA[<p>/***********************************************************<br />&nbsp; &nbsp;randomac.c<br />&nbsp; &nbsp;Эта простая программа на языке Си создает структуру для<br />&nbsp; &nbsp;произвольного доступа к файлу, используя функции fread(),<br />&nbsp; &nbsp;fseek() и fwrite(), прототипы которых заданы в файле<br />&nbsp; &nbsp;stdio.h.<br />&nbsp; &nbsp;Copyright (c) Chris H. Pappas и William H. Murray, 1995<br />***********************************************************/</p><div class="codebox"><pre><code>#include &lt;stdio.h&gt;
#include &lt;string.h&gt;

#define ONE 1
#define FORTY 40
#define DESCRIPTION_LENGTH 81
#define IN_STOCK 1
#define OUT_OF_STOCK 0
#define NUMBER_OF_RECORDS_TO_READ 1

typedef struct product {

    int   ProductID,
          IsAvailable;
    float Price;
    char  Description[ DESCRIPTION_LENGTH ];

} PRODUCT;

void main( void )
{
  FILE *  InputFilePtr;
  PRODUCT CurrentProduct;
  int     index,
          ProductToSearchFor;
  long    FileOffset;

  InputFilePtr = fopen( &quot;a:// product.fil&quot;,&quot;w+&quot; );

  for(index = ONE; index &lt;= FORTY; index++) {

    CurrentProduct.ProductID   =  index;
    CurrentProduct.IsAvailable =  OUT_OF_STOCK;

    fwrite( &amp;CurrentProduct, sizeof(PRODUCT), 1, InputFilePtr);
  }

  printf(&quot;Enter Product ID: &quot;);
  scanf(&quot;%d&quot;, &amp;ProductToSearchFor);

  FileOffset = ( ProductToSearchFor - 1) * sizeof( PRODUCT );

  fseek( InputFilePtr, FileOffset, 0 );

  fread( &amp;CurrentProduct, sizeof(PRODUCT), NUMBER_OF_RECORDS_TO_READ,
          InputFilePtr );

  fclose( InputFilePtr );
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2015-07-14T19:30:49Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124364#p124364</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Программы на языке C#]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124363#p124363" />
			<content type="html"><![CDATA[<p>printf.c<br />&nbsp; &nbsp;Эта простая программа на языке Си демонстрирует<br />&nbsp; &nbsp;некоторые из разнообразных возможностей форматирования<br />&nbsp; &nbsp;и преобразования данных функции printf(), прототип<br />&nbsp; &nbsp;которой задан в файле stdio.h.<br />&nbsp; &nbsp;Copyright (c) Chris H. Pappas и William H. Murray, 1995<br />***********************************************************/</p><div class="codebox"><pre><code>#include &lt;stdio.h&gt;

void main( void )
{
  int    int_Data           =   5555                              ;

  double double_Data        =   1.4578109                         ;

  char   c                  =   &#039;c&#039;                               ,
             SampleString_1[]   =   &quot;The fundamental things apply as &quot;,
             SampleString_2[]   =   &quot;time goes bye...&quot;                ;


  /* ============== автоматические преобразования типов =============== */

  /* Строка номер 1: выводит символ c */

  printf(&quot;\nLine Number %2d: %c&quot;,1,c);


  /* Строка номер 2: выводит ASCII-код символа c */

  printf(&quot;\nLine Number %2d: %d&quot;,2,c);


  /* Строка номер 3: выводит символ, ASCII-код которого равен 90 */

  printf(&quot;\nLine Number %2d: %c&quot;,3,90);


  /* Строка номер 4: выводит int_Data в виде восьмеричного значения */

  printf(&quot;\nLine Number %2d: %o&quot;,4,int_Data);


  /* Строка номер 5: выводит шестнадцатеричное значение в младшем регистре */

  printf(&quot;\nLine Number %2d: %x&quot;,5,int_Data);


  /* Строка номер 6: выводит шестнадцатеричное значение в старшем регистре */

  printf(&quot;\nLine Number %2d: %X&quot;,6,int_Data);




  /* ======= возможности форматирования и преобразования данных ====== */

  /* Строка номер 7: минимальная ширина 1                      */

  printf(&quot;\nLine Number %2d: %c&quot;,7,c);


  /* Строка номер 8: минимальная ширина 5, выравнивание вправо  */

  printf(&quot;\nLine Number %2d: %5c&quot;,8,c);


  /* Строка номер 9: минимальная ширина 5, выравнивание влево   */

  printf(&quot;\nLine Number %2d: %-5c&quot;,9,c);


  /* Строка номер 10: автоматически определяемая ширина строки = 33    */

  printf(&quot;\nLine Number %d: %s&quot;,10,SampleString_1);


  /* Строка номер 11: автоматически определяемая ширина строки = 17    */

  printf(&quot;\nLine Number %d: %s&quot;,11,SampleString_2);


  /* Строка номер 12: ширина 5 задана вместо автоматически определяемого значения 33 */

  printf(&quot;\nLine Number %d: %5s&quot;,12,SampleString_1);


  /* Строка номер 13: минимальная ширина 38, выравнивание вправо */

  printf(&quot;\nLine Number %d: %38s&quot;,13,SampleString_1);


  /* Строка номер 14: минимальная ширина 38, выравнивание влево */

  printf(&quot;\nLine Number %d: %-38s&quot;,14,SampleString_2);


  /* Строка номер 15: выводит int_Data с шириной, по умолчанию равной 4 */

  printf(&quot;\nLine Number %d: %d&quot;,15,int_Data);


  /* Строка номер 16: выводит int_Data со знаком   */

  printf(&quot;\nLine Number %d: %+d&quot;,16,int_Data);


  /* Строка номер 17: задана ширина 3 вместо автоматической 4   */

  printf(&quot;\nLine Number %d: %3d&quot;,17,int_Data);


  /* Строка номер 18: минимальная ширина 10, выравнивание вправо */

  printf(&quot;\nLine Number %d: %10d&quot;,18,int_Data);


  /* Строка номер 19: минимальная ширина по умолчанию 1, выравнивание влево */

  printf(&quot;\nLine Number %d: %-d&quot;,19,int_Data);


  /* Строка номер 20: выравнивание вправо с начальными нулями */

  printf(&quot;\nLine Number %d: %010d&quot;,20,int_Data);


  /* Строка номер 21: использование числа цифр, заданного по умолчанию */

  printf(&quot;\nLine Number %d: %f&quot;,21,double_Data);


  /* Строка номер 22: минимальная ширина 20, выравнивание вправо */

  printf(&quot;\nLine Number %d: %20f&quot;,22,double_Data);


  /* Строка номер 23: выравнивание вправо с начальными нулями */

  printf(&quot;\nLine Number %d: %020f&quot;,23,double_Data);


  /* Строка номер 24: минимальная ширина 20, выравнивание влево */

  printf(&quot;\nLine Number %d: %-20f&quot;,24,double_Data);


  /* Строка номер 25: выравнивание влево с конечными нулями */

  printf(&quot;\nLine Number %d: %-020f&quot;,25,double_Data);


  /* Строка номер 26: минимальная ширина 19, выводит все 19 символов */

  printf(&quot;\nLine Number %d: %19.19s&quot;,26,SampleString_1);


  /* Строка номер 27: выводит первые 2 символа         */

  printf(&quot;\nLine Number %d: %.2s&quot;,27,SampleString_1);


  /* Строка номер 28: выводит два символа, выравнивание вправо  */

  printf(&quot;\nLine Number %d: %19.2s&quot;,28,SampleString_1);


  /* Строка номер 29: выводит два символа, выравнивание влево   */

  printf(&quot;\nLine Number %d: %-19.2s&quot;,29,SampleString_1);


  /* Строка номер 30: использует параметры форматирования */

  printf(&quot;\nLine Number %d: %*.*s&quot;,30,19,6,SampleString_1);


  /* Строка номер 31: ширина 10, 8 символов после &#039;.&#039;     */ 

  printf(&quot;\nLine Number %d: %10.8f&quot;,31,double_Data);


  /* Строка номер 32: ширина 20, 2; выравнивание вправо    */

  printf(&quot;\nLine Number %d: %20.2f&quot;,32,double_Data);


  /* Строка номер 33: 4 позиции после точки, выравнивание влево */

  printf(&quot;\nLine Number %d: %-20.4f&quot;,33,double_Data);


  /* Строка номер 34: 4 позиции после точки, выравнивание вправо */

  printf(&quot;\nLine Number %d: %20.4f&quot;,34,double_Data);


  /* Строка номер 35: ширина 20, экспоненциальная запись   */

  printf(&quot;\nLine Number %d: %20.2e&quot;,35,double_Data);
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2015-07-14T19:30:33Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124363#p124363</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Программы на языке C#]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124362#p124362" />
			<content type="html"><![CDATA[<p>getwputw.c<br />&nbsp; &nbsp;Эта простая программа на языке Си использует функции<br />&nbsp; &nbsp;getw() и putw() для работы с двоичным файлом.<br />&nbsp; &nbsp;***********************************************************/<br /></p><div class="codebox"><pre><code>#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

#define TWENTY 20

int main( void )
{
  int    An_int,
         offset,
         ArrayOfTWENTY_ints[TWENTY];
  FILE * InputFilePtr;

  InputFilePtr = fopen( &quot;a:\\integer.dat&quot;, &quot;wb&quot; );

  if( !InputFilePtr ) {

    printf(&quot;The file integer.dat could not be found.&quot;);
    exit( EXIT_FAILURE );
  }


  for( offset = 0; offset &lt; TWENTY; offset++ ) {

    ArrayOfTWENTY_ints[ offset ] = offset + 1;
    putw(ArrayOfTWENTY_ints[ offset ], InputFilePtr);
  }


  fclose( InputFilePtr );

  InputFilePtr = fopen( &quot;a:\\integer.dat&quot;, &quot;rb&quot; );

  if( !InputFilePtr ) {

    printf(&quot;The file integer.dat could not be found.&quot;);
    exit( EXIT_FAILURE );
  }

  An_int = getw( InputFilePtr );

  while( !feof(InputFilePtr) ) {

    printf(&quot;%3d&quot;,An_int);
    An_int = getw( InputFilePtr );
  }

  return( EXIT_SUCCESS );
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2015-07-14T19:30:02Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124362#p124362</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Программы на языке C#]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124361#p124361" />
			<content type="html"><![CDATA[<p>fseek.c<br />&nbsp; &nbsp;Эта простая программа на языке Си показывает, как<br />&nbsp; &nbsp;использовать функции ftell(), fseek() и rewind() для<br />&nbsp; &nbsp;управления текущей позицией файла.<br />**********************************************************/<br />#include &lt;stdio.h&gt;<br />void main( void )<br />{<br />&nbsp; char&nbsp; &nbsp; &nbsp;char_Data;<br />&nbsp; FILE *&nbsp; &nbsp;InputOutputFilePtr;<br />&nbsp; long int NumberOfBytesFromBeginningOfFile;</p><p>&nbsp; InputOutputFilePtr=fopen(&quot;a:\\char.dat&quot;,&quot;rt+&quot;);</p><p>&nbsp; char_Data = fgetc( InputOutputFilePtr );<br />&nbsp; putchar( char_Data );</p><p>&nbsp; char_Data = fgetc( InputOutputFilePtr );<br />&nbsp; putchar( char_Data );</p><p>&nbsp; NumberOfBytesFromBeginningOfFile =<br />&nbsp; &nbsp; ftell( InputOutputFilePtr );</p><p>&nbsp; char_Data = fgetc( InputOutputFilePtr );<br />&nbsp; putchar( char_Data );</p><p>&nbsp; fseek( InputOutputFilePtr,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NumberOfBytesFromBeginningOfFile, 0);</p><p>&nbsp; char_Data = fgetc( InputOutputFilePtr );<br />&nbsp; putchar( char_Data );</p><p>&nbsp; fseek( InputOutputFilePtr,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NumberOfBytesFromBeginningOfFile, 0);</p><p>&nbsp; fputc(&#039;e&#039;,InputOutputFilePtr);</p><p>&nbsp; fseek( InputOutputFilePtr,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NumberOfBytesFromBeginningOfFile, 0);</p><p>&nbsp; char_Data = fgetc( InputOutputFilePtr );<br />&nbsp; putchar( char_Data );</p><p>&nbsp; rewind( InputOutputFilePtr );</p><p>&nbsp; char_Data = fgetc( InputOutputFilePtr );<br />&nbsp; putchar( char_Data );<br />}</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2015-07-14T19:29:48Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124361#p124361</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Программы на языке C#]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124360#p124360" />
			<content type="html"><![CDATA[<p>typedef.c<br />*&nbsp; Эта простая программа на Си использует ключевое слово&nbsp; Си/Си++ typedef для создания двух новых типов whole и real.<br />***********************************************************/ </p><p>#include &lt;stdio.h&gt;<br />typedef int&nbsp; &nbsp;whole;<br />typedef float real;<br />void main( void )<br />{<br />&nbsp; whole WholeNumber = 512;<br />&nbsp; real&nbsp; RealNumber&nbsp; = 3.14159;<br />&nbsp; printf(&quot;The whole value is %d: \n&quot;, WholeNumber);<br />&nbsp; printf(&quot;The real value is %f : \n&quot;, RealNumber );<br />}</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2015-07-14T19:29:41Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124360#p124360</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Программы на языке C#]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124359#p124359" />
			<content type="html"><![CDATA[<p>*&nbsp; stucptrs.c<br />*&nbsp; Эта простая программа на Си показывает, как описывать и&nbsp; использовать указатели на структуры для доступа&nbsp; к структурам и массивам структур.<br />***********************************************************/<br /></p><div class="codebox"><pre><code>#include &lt;stdio.h&gt;
#define NULL_STRING_TERMINATOR 1
#define MAX_VALID_CHARS       65
#define MAX_HOUSES            10
struct  house_tag {
  char  owner [ MAX_VALID_CHARS + NULL_STRING_TERMINATOR ],
        street[ MAX_VALID_CHARS + NULL_STRING_TERMINATOR ],
        city  [ MAX_VALID_CHARS + NULL_STRING_TERMINATOR ];
  int   bedrooms;
  float price;
};
void main( void )
{
  struct house_tag House_Catalog[ MAX_HOUSES ],   *A_House_Ptr = House_Catalog;
  int Which_House;
  float float_bug_fix;
  for( Which_House = 0; Which_House &lt; MAX_HOUSES;   Which_House++ ) {
    printf(&quot;Who currently owns the house? &quot;);
    gets(A_House_Ptr-&gt;owner);
    printf(&quot;\nThe house is on which street? &quot;);
    gets(House_Catalog[ Which_House ].street);
    printf(&quot;\nThe house is in which city? &quot;);
    gets(A_House_Ptr-&gt;city);
    printf(&quot;\nThe house has how many bedrooms? &quot;);
    scanf(&quot;%d&quot;, &amp;A_House_Ptr-&gt;bedrooms);
    printf(&quot;\nWhat is the selling price? &quot;);
    scanf(&quot;%f&quot;, &amp;float_bug_fix);
    A_House_Ptr-&gt;price = float_bug_fix;
    A_House_Ptr++;
    printf(&quot;\n\n&quot;);
    flushall();
  }

  A_House_Ptr = House_Catalog;
  for( Which_House = 0; Which_House &lt; MAX_HOUSES;   Which_House++ ) {
    printf(&quot;\f&quot;);
    printf(&quot;================ HOUSE 1 ================ &quot;
           &quot;\nOwner:\t\t%25s&quot;
           &quot;\nStreet:\t\t%25s&quot;
           &quot;\nCity:\t\t%25s&quot;
           &quot;\nBedrooms:\t%25d&quot;
           &quot;\nPrice:\t\t%25.2f&quot;,
           A_House_Ptr-&gt;owner, A_House_Ptr-&gt;street,
           A_House_Ptr-&gt;city,  A_House_Ptr-&gt;bedrooms,
           A_House_Ptr-&gt;price);
    A_House_Ptr++;
  }
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2015-07-14T19:29:35Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124359#p124359</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Программы на языке C#]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124358#p124358" />
			<content type="html"><![CDATA[<p>*&nbsp; structur.c<br />*&nbsp; Эта простая программа на Си показывает, как описывать и&nbsp; использовать структуры.<br />***********************************************************/<br /></p><div class="codebox"><pre><code>#include &lt;stdio.h&gt;
#define NULL_STRING_TERMINATOR 1
#define MAX_VALID_CHARS       65
struct  house_tag {
  char  owner [ MAX_VALID_CHARS + NULL_STRING_TERMINATOR ],
        street[ MAX_VALID_CHARS + NULL_STRING_TERMINATOR ],
        city  [ MAX_VALID_CHARS + NULL_STRING_TERMINATOR ];
  int   bedrooms;
  float price;
} A_House;
void main( void )
{
  printf(&quot;Who currently owns the house? &quot;);
  gets(A_House.owner);
  printf(&quot;\nThe house is on which street? &quot;);
  gets(A_House.street);
  printf(&quot;\nThe house is in which city? &quot;);
  gets(A_House.city);
  printf(&quot;\nThe house has how many bedrooms? &quot;);
  scanf(&quot;%d&quot;, &amp;A_House.bedrooms);
  printf(&quot;\nWhat is the selling price? &quot;);
  scanf(&quot;%f&quot;, &amp;A_House.price);
  printf(&quot;\f&quot;);
  printf(&quot;================ HOUSE 1 ================&quot;
         &quot;\nOwner:\t\t%25s&quot;
         &quot;\nStreet:\t\t%25s&quot;
         &quot;\nCity:\t\t%25s&quot;
         &quot;\nBedrooms:\t%25d&quot;
         &quot;\nPrice:\t\t%25.2f&quot;,

         A_House.owner,A_House.street,A_House.city,
         A_House.bedrooms,A_House.price);
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2015-07-14T19:29:27Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124358#p124358</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Программы на языке C#]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124357#p124357" />
			<content type="html"><![CDATA[<p>strucarg.c<br />*&nbsp; Эта программа на Си показывает, как создавать и использовать&nbsp; &nbsp;функции с аргументами-структурами.<br />***********************************************************/<br /></p><div class="codebox"><pre><code>#include &lt;stdio.h&gt;
#define NULL_STRING_TERMINATOR 1
#define MAX_VALID_CHARS       65
struct  house_tag {
  char  owner [ MAX_VALID_CHARS + NULL_STRING_TERMINATOR ],
        street[ MAX_VALID_CHARS + NULL_STRING_TERMINATOR ],
        city  [ MAX_VALID_CHARS + NULL_STRING_TERMINATOR ];
  int   bedrooms;
  float price;
} A_House;
void Print_A_House( struct house_tag Local_A_House );
void main( void )
{
  printf(&quot;Who currently owns the house? &quot;);
  gets(A_House.owner);
  printf(&quot;\nThe house is on which street? &quot;);
  gets(A_House.street);
  printf(&quot;\nThe house is in which city? &quot;);
  gets(A_House.city);
  printf(&quot;\nThe house has how many bedrooms? &quot;);
  scanf(&quot;%d&quot;, &amp;A_House.bedrooms);
  printf(&quot;\nWhat is the selling price? &quot;);
  scanf(&quot;%f&quot;, &amp;A_House.price);
  Print_A_House( A_House  );
 }
void Print_A_House( struct house_tag Local_A_House )
{
  printf(&quot;\f&quot;);
  printf(&quot;================ HOUSE 1 ================ &quot;
         &quot;\nOwner:\t\t%25s&quot;
         &quot;\nStreet:\t\t%25s&quot;
         &quot;\nCity:\t\t%25s&quot;
         &quot;\nBedrooms:\t%25d&quot;
         &quot;\nPrice:\t\t%25.2f&quot;,
         Local_A_House.owner,Local_A_House.street,
         Local_A_House.city,Local_A_House.bedrooms,
         Local_A_House.price);
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2015-07-14T19:29:20Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124357#p124357</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Программы на языке C#]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124356#p124356" />
			<content type="html"><![CDATA[<p>strcaray.c<br />*&nbsp; Эта программа на языке Си показывает, как описывать и&nbsp; использовать массивы структур.<br />***********************************************************/</p><div class="codebox"><pre><code>#include &lt;stdio.h&gt;
#define NULL_STRING_TERMINATOR 1
#define MAX_VALID_CHARS       65
#define MAX_HOUSES            10
struct  house_tag {
  char  owner [ MAX_VALID_CHARS + NULL_STRING_TERMINATOR ],
        street[ MAX_VALID_CHARS + NULL_STRING_TERMINATOR ],
        city  [ MAX_VALID_CHARS + NULL_STRING_TERMINATOR ];
  int   bedrooms;
  float price;
};
void main( void )
{
  struct house_tag House_Catalog[ MAX_HOUSES ];
  int Which_House;
  float float_bug_fix; /* для обхода недостатка компилятора, который не
                        * позволяет читать плавающие члены непосредственно */
  for( Which_House = 0; Which_House &lt; MAX_HOUSES;
       Which_House++ ) {
    printf(&quot;Who currently owns the house? &quot;);
    gets(House_Catalog[ Which_House ].owner);
    printf(&quot;\nThe house is on which street? &quot;);
    gets(House_Catalog[ Which_House ].street);
    printf(&quot;\nThe house is in which city? &quot;);
    gets(House_Catalog[ Which_House ].city);
    printf(&quot;\nThe house has how many bedrooms? &quot;);
    scanf(&quot;%d&quot;, &amp;House_Catalog[ Which_House ].bedrooms);
    printf(&quot;\nWhat is the selling price? &quot;);
    scanf(&quot;%f&quot;, &amp;float_bug_fix);
    House_Catalog[ Which_House ].price = float_bug_fix;
    printf(&quot;\n\n&quot;);
    flushall();
  }
  for( Which_House = 0; Which_House &lt; MAX_HOUSES;
       Which_House++ ) {
    printf(&quot;\f&quot;);
    printf(&quot;================ HOUSE 1 ================ &quot;
           &quot;\nOwner:\t\t%25s&quot;
           &quot;\nStreet:\t\t%25s&quot;
           &quot;\nCity:\t\t%25s&quot;
           &quot;\nBedrooms:\t%25d&quot;
           &quot;\nPrice:\t\t%25.2f&quot;,
           House_Catalog[ Which_House ].owner,
           House_Catalog[ Which_House ].street,
           House_Catalog[ Which_House ].city,
           House_Catalog[ Which_House ].bedrooms,
           House_Catalog[ Which_House ].price);
  }
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2015-07-14T19:29:11Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124356#p124356</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Программы на языке C#]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124355#p124355" />
			<content type="html"><![CDATA[<p>voidptrs.c<br />*&nbsp; Эта программа на языке Си демонстрирует применение&nbsp; указателей типа void *, которые позволяют одной функции&nbsp; принимать данные различных типов.<br />***********************************************************/<br />#include &lt;malloc.h&gt;<br />#include &lt;ctype.h&gt;<br />#include &lt;stdio.h&gt;<br />#include &lt;stdlib.h&gt;<br />#define THIRTY 30<br />void AnyDataType(void *DynamicData, char DataType);<br />float main( void )<br />{<br />&nbsp; char&nbsp; &nbsp;*A_char_Ptr, carriage_return;<br />&nbsp; long&nbsp; &nbsp;*A_long_Ptr;<br />&nbsp; double *A_double_Ptr;<br />&nbsp; char WhichType;<br />&nbsp; printf(&quot;This program allows the user to dynamically&nbsp; &nbsp; \n&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;allocate memory for one of three types of&nbsp; &nbsp; &nbsp; \n&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;variables, string, long, or double.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \n\n&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;To run the program simply select the data type \n&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;you would like to create by typing s, l, or d: &quot;);<br />&nbsp; scanf(&quot;%c%c&quot;, &amp;WhichType, &amp;carriage_return);<br />&nbsp; WhichType = tolower( WhichType );<br />&nbsp; if( (WhichType != &#039;s&#039;) &amp;&amp; (WhichType != &#039;l&#039;)&nbsp; &amp;&amp; (WhichType != &#039;d&#039;) )<br />&nbsp; &nbsp; exit( 1 );<br />&nbsp; switch( WhichType ) {<br />&nbsp; &nbsp; case &#039;s&#039;:&nbsp; &nbsp;A_char_Ptr = malloc( THIRTY * sizeof( char ) );<br />&nbsp; &nbsp; &nbsp; printf(&quot;\nEnter a string of up to 29 characters: &quot;);<br />&nbsp; &nbsp; &nbsp; scanf(&quot;%s&quot;, A_char_Ptr);<br />&nbsp; &nbsp; &nbsp; AnyDataType( A_char_Ptr, WhichType );<br />&nbsp; &nbsp; &nbsp; break;</p><p>&nbsp; &nbsp; case &#039;l&#039;:&nbsp; &nbsp;A_long_Ptr = malloc( sizeof( long ) );<br />&nbsp; &nbsp; &nbsp; printf(&quot;\nEnter a long: &quot;);<br />&nbsp; &nbsp; &nbsp; scanf(&quot;%ld&quot;, A_long_Ptr);<br />&nbsp; &nbsp; &nbsp; AnyDataType( A_long_Ptr, WhichType );<br />&nbsp; &nbsp; &nbsp; break;</p><p>&nbsp; &nbsp; case &#039;d&#039;:&nbsp; &nbsp;A_double_Ptr = malloc( sizeof ( double ) );<br />&nbsp; &nbsp; &nbsp; printf(&quot;\nEnter a double: &quot;);<br />&nbsp; &nbsp; &nbsp; scanf(&quot;%lf&quot;, A_double_Ptr);<br />&nbsp; &nbsp; &nbsp; AnyDataType( A_double_Ptr, WhichType );<br />&nbsp; }<br />&nbsp; return 0;<br />}</p><p>void AnyDataType(void *DynamicData, char DataType)<br />{<br />&nbsp; switch( DataType ) {</p><p>&nbsp; &nbsp; case &#039;s&#039;:&nbsp; &nbsp; printf(&quot;\nString type output:&nbsp; &nbsp; &nbsp; %s&quot;,&nbsp; &nbsp;(char *) DynamicData);<br />&nbsp; &nbsp; &nbsp; break;</p><p>&nbsp; &nbsp; case &#039;l&#039;:&nbsp; &nbsp;printf(&quot;\nLong type output:&nbsp; &nbsp; &nbsp; &nbsp;%ld&quot;,&nbsp; &nbsp; *(long *) DynamicData);<br />&nbsp; &nbsp; &nbsp; break;</p><p>&nbsp; &nbsp; case &#039;d&#039;:&nbsp; &nbsp;printf(&quot;\nDouble type output:&nbsp; &nbsp; &nbsp;%lf&quot;,&nbsp; &nbsp;*(double *) DynamicData);<br />&nbsp; &nbsp; &nbsp; break;<br />&nbsp; }<br />&nbsp; free( DynamicData );<br />}</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2015-07-14T19:29:03Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124355#p124355</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Программы на языке C#]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124354#p124354" />
			<content type="html"><![CDATA[<p>strngptr.c<br />*&nbsp; В этой программе на языке Cи показано использование указателей на строки.<br />***********************************************************/<br /></p><div class="codebox"><pre><code>#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
int main ( void )
{
  char *stack = &quot;1 2 3 4 5 6&quot;;
  int  offset ;
  for( offset = (strlen(stack)-1); offset &gt;= 0; offset-- )
    printf(&quot;%c&quot;, stack[ offset ]);
  printf(&quot;\n%s&quot;, stack);

  return( 0 );
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2015-07-14T19:28:52Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124354#p124354</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Программы на языке C#]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124353#p124353" />
			<content type="html"><![CDATA[<p>*&nbsp; ptraray.c<br />*&nbsp; Эта программа на языке Си использует массив указателей.<br />***********************************************************/<br /></p><div class="codebox"><pre><code>#include &lt;stdio.h&gt;
#include &lt;ctype.h&gt;
#define FOUR 4
char *ErrorMessageArray[ FOUR ] =
     {
       &quot;\nFile Creation Error!   \n&quot;,
       &quot;\nNot a character value! \n&quot;,
       &quot;\nNot an octal value!    \n&quot;,
       &quot;\nIllegal punctuation!   \n&quot;
     };
void FileCreate             ( char *FileName );
char InputChar              ( void           );
int  InputOctal             ( void           );
int  Valid                  ( void           );

FILE *FILE_structure_ptr;
int main( void )
{
  char charData;
  int intData;
  FileCreate( &quot;anyfile.dat&quot; );
  charData = InputChar();
  intData  = InputOctal();
  charData = Valid();
  return 0;
}
void FileCreate( char *FileName )
{
  const FileCreationErrorMsg = 0;
  FILE_structure_ptr = fopen( FileName,&quot;r&quot; );
  if( !FILE_structure_ptr )
    printf(&quot;%s&quot;,ErrorMessageArray[ FileCreationErrorMsg ]);
}
char InputChar( void )
{
  char charData;
  const NotCharDataErrorMsg = 1;
  printf(&quot;\nEnter a character: &quot;);
  scanf(&quot;%c&quot;,&amp;charData);
  if( !isalpha( charData ) )
    printf(&quot;%s&quot;,ErrorMessageArray[ NotCharDataErrorMsg ]);
  return( charData );
}
int InputOctal( void )
{
  int intData;
  const NotOctalDataErrorMsg = 2;

  printf(&quot;\nEnter an integer between 0 and 7: &quot;);
  scanf(&quot;%d&quot;,&amp;intData);
  if( (intData &lt; 0) || (intData &gt; 7) )
    printf(&quot;%s&quot;,ErrorMessageArray[ NotOctalDataErrorMsg ]);
  return( intData );
}
int Valid( void )
{
  char charData;
  const ContainsIllegalPunctuationErrorMsg = 3;
  printf(&quot;\nEnter a punctuation symbol: &quot;);
  scanf(&quot; %c&quot;,&amp;charData);
  if( !ispunct( charData ) )
    printf(&quot;%s&quot;,ErrorMessageArray
                   [ ContainsIllegalPunctuationErrorMsg ]);
  return( charData );
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2015-07-14T19:28:40Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124353#p124353</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Программы на языке C#]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124352#p124352" />
			<content type="html"><![CDATA[<p>malloc.c<br />*&nbsp; Эта программа на языке Cи показывает применение для&nbsp; &nbsp;динамического размещения памяти функций malloc(), calloc()&nbsp; и free(), прототипы которых находятся в файлах stdlib.h и&nbsp; alloc.h.<br />***********************************************************/<br />#include &lt;stdio.h&gt;<br />#include &lt;malloc.h&gt;<br />#define HOW_MANY 5<br />int main( void )<br />{<br />&nbsp; float *Float_Ptr_to_Garbage,&nbsp; *Float_Ptr_to_Initialized_Memory;<br />&nbsp; Float_Ptr_to_Garbage = malloc(HOW_MANY * sizeof( float ));<br />&nbsp; if(Float_Ptr_to_Garbage == NULL)<br />&nbsp; &nbsp; printf(&quot;malloc() Memory Allocation Failure\n&quot;);<br />&nbsp; else<br />&nbsp; &nbsp; printf(&quot;malloc() Memory Allocation Success\n&quot;);<br />&nbsp; printf(&quot;Garbage contents of the first float are: %f\n&quot;,&nbsp; *Float_Ptr_to_Garbage);<br />&nbsp; Float_Ptr_to_Initialized_Memory = calloc(HOW_MANY,&nbsp; &nbsp;sizeof( float ));<br />&nbsp; if(Float_Ptr_to_Initialized_Memory == NULL)<br />&nbsp; &nbsp; printf(&quot;calloc() Memory Allocation Failure\n&quot;);<br />&nbsp; else<br />&nbsp; &nbsp; printf(&quot;calloc() Memory Allocation Success\n&quot;);<br />&nbsp; printf(&quot;Initialized contents of the first float are: %f\n&quot;, *Float_Ptr_to_Initialized_Memory);<br />&nbsp; free( Float_Ptr_to_Garbage&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );<br />&nbsp; free( Float_Ptr_to_Initialized_Memory );<br />&nbsp; return(0);<br />}</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2015-07-14T19:28:29Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124352#p124352</id>
		</entry>
</feed>
