Языки программирования

I.G.O.R.E.K.

>Toxic moder
Регистрация
28 Ноя 2008
Сообщения
762
Реакции
3
Баллы
0
Возраст
32
Адрес
Пермь
Веб-сайт
Посетить сайт
uses crt;
var ch : char;
begin
repeat
clrscr;
writeln ('#59;',
'Esc - exit.');
repeat
ch := readkey;
if ch =#0 then
begin
ch := readkey;
textcolor(12);writeln ('Клавиша', ' с кодом ' , ord(ch));
end
else
textcolor(12); writeln('Клавиша с кодом',' ',ord(ch));
until ch=#27;
writeln ('Poka');
until ch=#27;
end.

Моя первая программка. Показывает коды клавиш. Паскаль :huh:
P.S. А почему нельзя делать отступы от начала строчки в посте О_о((программа некрасиво выглядит.
Кому интересно, могу выложить змейку.
 

Mashyha

.:|| DCN ||:.
Регистрация
17 Апр 2009
Сообщения
596
Реакции
2
Баллы
0
Возраст
32
Адрес
Питер
Веб-сайт
www.ubi.com
Все на C, все мои
1. выдать все двоичные вектора длинной 32, имеющий заданный вес <=4
Код:
#include <stdio.h>

const int N=32;

char arr&#91;N&#93;;
FILE *f_out;

int main&#40;void&#41;
{
f_out = fopen&#40;&#34;test1.out&#34;,&#34;w&#34;&#41;;
int x,y,z,d;
for &#40;int k=0;k<N; k++&#41;
arr&#91;k&#93;=&#39;0&#39;;
for &#40;x=0; x<N; x++&#41;
{
	printf&#40;&#34;%d &#34;,x&#41;;
	for&#40;y=x+1; y<N; y++&#41;
	{
		for&#40;z=y+1; z<N; z++&#41;
		{
			for&#40;d=z+1; d<N; d++&#41;
			{
				arr&#91;x&#93;=&#39;1&#39;;
				arr&#91;y&#93;=&#39;1&#39;;
				arr&#91;z&#93;=&#39;1&#39;;
				arr&#91;d&#93;=&#39;1&#39;;
				fprintf&#40;f_out,&#34;%.32s \n&#34;,arr&#41;;
				arr&#91;x&#93;=&#39;0&#39;;
				arr&#91;y&#93;=&#39;0&#39;;
				arr&#91;z&#93;=&#39;0&#39;;
				arr&#91;d&#93;=&#39;0&#39;;

			}
		}
	}
}
printf&#40;&#34;1&#34;&#41;;
 for &#40;int k=0;k<N; k++&#41;
	 arr&#91;k&#93;=&#39;0&#39;;

for&#40;y=0; y<N; y++&#41;
	{
		for&#40;z=y+1; z<N; z++&#41;
		{
			for&#40;d=z+1; d<N; d++&#41;
			{
				arr&#91;y&#93;=&#39;1&#39;;
				arr&#91;z&#93;=&#39;1&#39;;
				arr&#91;d&#93;=&#39;1&#39;;
				fprintf&#40;f_out,&#34;%.32s \n&#34;,arr&#41;;
				arr&#91;y&#93;=&#39;0&#39;;
				arr&#91;z&#93;=&#39;0&#39;;
				arr&#91;d&#93;=&#39;0&#39;;

			}
		}
	}
printf&#40;&#34;2&#34;&#41;;

for &#40;int k=0;k<N; k++&#41;
	 arr&#91;k&#93;=&#39;0&#39;;

for&#40;z=0; z<N; z++&#41;
		{
			for&#40;d=z+1; d<N; d++&#41;
			{
				arr&#91;z&#93;=&#39;1&#39;;
				arr&#91;d&#93;=&#39;1&#39;;
				fprintf&#40;f_out,&#34;%.32s \n&#34;,arr&#41;;
				arr&#91;z&#93;=&#39;0&#39;;
				arr&#91;d&#93;=&#39;0&#39;;

			}
		}
printf&#40;&#34;3&#34;&#41;;
 
for &#40;int k=0;k<N; k++&#41;
	 arr&#91;k&#93;=&#39;0&#39;;

			for&#40;d=0; d<N; d++&#41;
			{
				arr&#91;d&#93;=&#39;1&#39;;
				fprintf&#40;f_out,&#34;%.32s \n&#34;,arr&#41;;
				arr&#91;d&#93;=&#39;0&#39;;

			}

 for &#40;int k=0;k<N; k++&#41;
	 arr&#91;k&#93;=&#39;0&#39;;
printf&#40;&#34;4&#34;&#41;;

for&#40;d=0; d<N; d++&#41;
			{
				arr&#91;d&#93;=&#39;0&#39;;

			}
fprintf&#40;f_out,&#34;%.32s \n&#34;,arr&#41;;

fclose&#40;f_out&#41;;
}
2. Между словами, имеющими наименьшую длину вставить слово, введенное с клавы
Код:
#include <stdio.h>
#define N 100
#define M 350
int word&#91;N&#93;;
char phrase&#91;M&#93;;
char mas&#91;M&#93;&#91;M&#93;;
int numbers&#91;M&#93;;
void main&#40;void&#41;
{
	char c=0;
	printf&#40;&#34;Input word\t&#34;&#41;;
	int i=0;
	int length_word=0;
	while&#40;&#40;c=getchar&#40;&#41;&#41;!=&#39;\n&#39;&#41;
	{
		word&#91;i&#93;=c;
		i++;
		length_word++;
	}
	i=0;
	int j=0;
	int u=0;
	int count=0;
	int g=0;
	printf&#40;&#34;Input phrase\t&#34;&#41;;
	do
	{
		c=getchar&#40;&#41;;
		if &#40;&#40;c!=&#39; &#39;&#41; && &#40;c!=&#39;,&#39;&#41; && &#40;c!=&#39;\n&#39;&#41;&#41;
		{
			
			mas&#91;i&#93;&#91;j&#93;=c;
			j++;
		}		
		else
		{
			g++;
			numbers&#91;u&#93;=j;
			u++;
			i++;
			j=0;
			count++;
		}
		
	}
	while&#40;c!=&#39;\n&#39;&#41;;
	if &#40;count>=2&#41;
	{
	int max=numbers&#91;i&#93;+numbers&#91;i+1&#93;;
	int place=0;
	for &#40;i=0;i<count;i++&#41;
	{
		if &#40;max<&#40;numbers&#91;i+1&#93;+numbers&#91;i+2&#93;&#41;&#41;
		{
			place=i+1;
			max=&#40;numbers&#91;i+1&#93;+numbers&#91;i+2&#93;&#41;;
			
		}
	}
	//printf&#40;&#34;%d\n&#34;,max&#41;; printf&#40;&#34;%d\n&#34;,place&#41;;
	if &#40;g==2&#41;
	{
		for&#40;i=0;i<&#40;place&#41;;i++&#41;
	{
		for&#40;j=0;j<=numbers&#91;i&#93;;j++&#41;
		{
			printf&#40;&#34;%c&#34;,mas&#91;i&#93;&#91;j&#93;&#41;;
		}
		printf&#40;&#34; &#34;&#41;;
	}
	for&#40;i=0;i<length_word;i++&#41;
		printf&#40;&#34;%c&#34;,word&#91;i&#93;&#41;;
	printf&#40;&#34; &#34;&#41;;
	for&#40;i=&#40;place&#41;;i<u;i++&#41;
	{
		for&#40;j=0;j<=numbers&#91;i&#93;;j++&#41;
		{
			printf&#40;&#34;%c&#34;,mas&#91;i&#93;&#91;j&#93;&#41;;
		}
		printf&#40;&#34; &#34;&#41;;
	}
	printf&#40;&#34;\n&#34;&#41;;
	}
	else
	{
	if &#40;&#40;u%2&#41;==0&#41;
	{
	for&#40;i=0;i<=&#40;place&#41;;i++&#41;
	{
		for&#40;j=0;j<=numbers&#91;i&#93;;j++&#41;
		{
			printf&#40;&#34;%c&#34;,mas&#91;i&#93;&#91;j&#93;&#41;;
		}
		printf&#40;&#34; &#34;&#41;;
	}
	for&#40;i=0;i<length_word;i++&#41;
		printf&#40;&#34;%c&#34;,word&#91;i&#93;&#41;;
	printf&#40;&#34; &#34;&#41;;
	for&#40;i=&#40;place+1&#41;;i<u;i++&#41;
	{
		for&#40;j=0;j<=numbers&#91;i&#93;;j++&#41;
		{
			printf&#40;&#34;%c&#34;,mas&#91;i&#93;&#91;j&#93;&#41;;
		}
		printf&#40;&#34; &#34;&#41;;
	}
	printf&#40;&#34;\n&#34;&#41;;
	}
	else 
	{
		for&#40;i=0;i<&#40;place+1&#41;;i++&#41;
	{
		for&#40;j=0;j<=numbers&#91;i&#93;;j++&#41;
		{
			printf&#40;&#34;%c&#34;,mas&#91;i&#93;&#91;j&#93;&#41;;
		}
		printf&#40;&#34; &#34;&#41;;
	}
	for&#40;i=0;i<length_word;i++&#41;
		printf&#40;&#34;%c&#34;,word&#91;i&#93;&#41;;
	printf&#40;&#34; &#34;&#41;;
	for&#40;i=&#40;place+1&#41;;i<u;i++&#41;
	{
		for&#40;j=0;j<=numbers&#91;i&#93;;j++&#41;
		{
			printf&#40;&#34;%c&#34;,mas&#91;i&#93;&#91;j&#93;&#41;;
		}
		printf&#40;&#34; &#34;&#41;;
	}
	}
	}
	}
	else
	{
		printf&#40;&#34;You have entered less than 2 words\n&#34;&#41;;
	}
}
Вот еще одна моя - полноценный текстовый редактор на языке C++. Все как положено - форматирование, изменение шрифта, цвета и прочего+пакет установки+значок в области задач, можно свернуть, развернуть и проч :huh: ТУТ
 

Mashyha

.:|| DCN ||:.
Регистрация
17 Апр 2009
Сообщения
596
Реакции
2
Баллы
0
Возраст
32
Адрес
Питер
Веб-сайт
www.ubi.com
P.S. А почему нельзя делать отступы от начала строчки в посте О_о((программа некрасиво выглядит.
Кому интересно, могу выложить змейку.
змейку выложи, может еще кому-нибудь пригодиться
ЗЫЫ юзай тэг
Код:
 :huh:
 

I.G.O.R.E.K.

>Toxic moder
Регистрация
28 Ноя 2008
Сообщения
762
Реакции
3
Баллы
0
Возраст
32
Адрес
Пермь
Веб-сайт
Посетить сайт
Код:
program snake;
uses crt;
var
a&#58;array of array of integer;
ch&#58;char;
x,y,i,j,z,s,g,k,t,e&#58;integer;
d&#58;boolean;
n,m&#58;byte;
begin
	 clrscr;
	 setlength&#40;a,3,2&#41;;
	 x&#58;=3;
	 y&#58;=1;
	 z&#58;=2;
	 g&#58;=1;
	 i&#58;=1;
	 t&#58;=0;
	 d&#58;=false;
	 randomize;
	 n&#58;=40;
	 m&#58;=12;
	 clrscr;
	 textcolor&#40;red&#41;;write&#40;&#39;Введите скорость&#39;&#41;;readln&#40;e&#41;;


	 a&#91;0,0&#93;&#58;=1; a&#91;0,1&#93;&#58;=1;
	 a&#91;1,0&#93;&#58;=2; a&#91;1,1&#93;&#58;=1;
	 a&#91;2,0&#93;&#58;=3; a&#91;2,1&#93;&#58;=1;

	 repeat
	 if d=true then begin textcolor&#40;red&#41;;gotoxy&#40;1,1&#41;;write&#40;&#39;Ты Неудачник,очков получил&#58;&#39;,t&#41;;
	 readln;{delay&#40;2000&#41;;} break;
	 end;

	 if keypressed=true then ch&#58;=readkey;

	gotoxy&#40;1,1&#41;;
	 delay&#40;e&#41;;
	 clrscr;

	   case ch of
	   #72&#58;begin j&#58;=-1;i&#58;=0;end;
	   #80&#58;begin j&#58;=1;i&#58;=0;end;
	   #75&#58;begin i&#58;=-1;j&#58;=0;end;
	   #77&#58;begin i&#58;=1;j&#58;=0;end;
	   end;


	x&#58;=x+i; y&#58;=y+j;
	if&#40;x<1&#41; or &#40;y<1&#41; or &#40;x>80&#41; or &#40;y>25&#41; then begin textcolor&#40;red&#41;;gotoxy&#40;1,1&#41;;
	write&#40;&#39;Ты неудачник, очков набрано&#58;&#39;,t&#41;;readln;{delay&#40;2000&#41;;}break;
	end;

	   textcolor&#40;10&#41;;
	   for k&#58;=z downto 1 do
	   begin
		 gotoxy&#40;a&#91;k,0&#93;,a&#91;k,1&#93;&#41;;
		 write&#40;&#39;*&#39;&#41;;
	   end;

	   if &#40;x=n&#41; and &#40;y=m&#41; then begin;
		 z&#58;=z+1;
		 inc&#40;t&#41;;
		 setlength&#40;a,z+1,2&#41;;
		 n&#58;=random&#40;79&#41;+1;
		 m&#58;=random&#40;24&#41;+1;
	   end;

	   a&#91;z,0&#93;&#58;=x; a&#91;z,1&#93;&#58;=y;
	   for k&#58;=0 to z-1 do
	   begin

		 a&#91;k,0&#93;&#58;=a&#91;k+1,0&#93;;
		 a&#91;k,1&#93;&#58;=a&#91;k+1,1&#93;;
	   end;

	   textcolor&#40;13&#41;;
	   gotoxy&#40;n,m&#41;;
	   write&#40;&#39;*&#39;&#41;;
	   for k&#58;=0 to z-2 do if &#40;x=a&#91;k,0&#93;&#41; and &#40;y=a&#91;k,1&#93;&#41; then d&#58;=true;


	   gotoxy&#40;a&#91;z,0&#93;,a&#91;z,1&#93;&#41;;
	   write&#40;&#39;@&#39;&#41;;
	   textcolor&#40;15&#41;;
	   gotoxy&#40;1,1&#41;;textcolor&#40;green&#41;;write&#40;&#39;Очки&#58;&#39;,t&#41;;
	  until ch=#27;

End.

Змейка. Язык Free Pascal
 

I.G.O.R.E.K.

>Toxic moder
Регистрация
28 Ноя 2008
Сообщения
762
Реакции
3
Баллы
0
Возраст
32
Адрес
Пермь
Веб-сайт
Посетить сайт
Калькулятор,язык Delphi

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class&#40;TForm&#41;
	Button1&#58; TButton;
	Button2&#58; TButton;
	Button3&#58; TButton;
	Button4&#58; TButton;
	Button5&#58; TButton;
	Button6&#58; TButton;
	Button7&#58; TButton;
	Button8&#58; TButton;
	Button9&#58; TButton;
	Button10&#58; TButton;
	Edit1&#58; TEdit;
	Button11&#58; TButton;
	Button12&#58; TButton;
	Button13&#58; TButton;
	Button14&#58; TButton;
	Button15&#58; TButton;
	Button16&#58; TButton;
	Button17&#58; TButton;
	Button18&#58; TButton;
	procedure Button1Click&#40;Sender&#58; TObject&#41;;
	procedure Button2Click&#40;Sender&#58; TObject&#41;;
	procedure Button3Click&#40;Sender&#58; TObject&#41;;
	procedure Button4Click&#40;Sender&#58; TObject&#41;;
	procedure Button5Click&#40;Sender&#58; TObject&#41;;
	procedure Button6Click&#40;Sender&#58; TObject&#41;;
	procedure Button7Click&#40;Sender&#58; TObject&#41;;
	procedure Button8Click&#40;Sender&#58; TObject&#41;;
	procedure Button9Click&#40;Sender&#58; TObject&#41;;
	procedure Button10Click&#40;Sender&#58; TObject&#41;;
	procedure Button11Click&#40;Sender&#58; TObject&#41;;
	procedure Button12Click&#40;Sender&#58; TObject&#41;;
	procedure Button13Click&#40;Sender&#58; TObject&#41;;
	procedure Button14Click&#40;Sender&#58; TObject&#41;;
	procedure Button15Click&#40;Sender&#58; TObject&#41;;
	procedure Button16Click&#40;Sender&#58; TObject&#41;;
	procedure Button17Click&#40;Sender&#58; TObject&#41;;
	procedure Button18Click&#40;Sender&#58; TObject&#41;;
  private
	{ Private declarations }
  public
	{ Public declarations }
  end;

var
  Form1&#58; TForm1;
s&#58;string&#91;255&#93;;a,b&#58;real;op&#58;integer;
implementation

{$R *.dfm}

procedure TForm1.Button10Click&#40;Sender&#58; TObject&#41;;
begin
  Edit1.Text&#58;=Edit1.Text+&#39;0&#39;;
end;

procedure TForm1.Button11Click&#40;Sender&#58; TObject&#41;;
begin
 if Edit1.Text=&#39;&#39; then exit;
b&#58;=strtofloat&#40;Edit1.Text&#41;;
if &#40;op=1&#41; then Edit1.Text&#58;=Floattostr&#40;a+b&#41;;
if &#40;op=2&#41; then Edit1.Text&#58;=Floattostr&#40;a-b&#41;;
if &#40;op=3&#41; then Edit1.Text&#58;=Floattostr&#40;a*b&#41;;
if &#40;op=4&#41; then Edit1.Text&#58;=Floattostr&#40;a/b&#41;;
if &#40;op=5&#41; then Edit1.Text&#58;=Floattostr&#40;a*a&#41;;
if &#40;op=6&#41; then Edit1.Text&#58;=Floattostr&#40;a*a*a&#41;;
end;

procedure TForm1.Button12Click&#40;Sender&#58; TObject&#41;;
begin
 if Edit1.Text=&#39;&#39; then exit;
a&#58;=strtofloat&#40;Edit1.Text&#41;;
Edit1.Text&#58;=&#39;&#39;;
op&#58;=1;
end;

procedure TForm1.Button13Click&#40;Sender&#58; TObject&#41;;
begin
  if Edit1.Text=&#39;&#39; then exit;
a&#58;=strtofloat&#40;Edit1.Text&#41;;
Edit1.Text&#58;=&#39;&#39;;
op&#58;=2;
end;

procedure TForm1.Button14Click&#40;Sender&#58; TObject&#41;;
begin
  if Edit1.Text=&#39;&#39; then exit;
a&#58;=strtofloat&#40;Edit1.Text&#41;;
Edit1.Text&#58;=&#39;&#39;;
op&#58;=3;
end;

procedure TForm1.Button15Click&#40;Sender&#58; TObject&#41;;
begin
 if Edit1.Text=&#39;&#39; then exit;
a&#58;=strtofloat&#40;Edit1.Text&#41;;
Edit1.Text&#58;=&#39;&#39;;
op&#58;=4;
end;

procedure TForm1.Button16Click&#40;Sender&#58; TObject&#41;;
begin
Edit1.Text&#58;=&#39;&#39;;
end;

procedure TForm1.Button1Click&#40;Sender&#58;TObject&#41;;
begin
 Edit1.Text&#58;=Edit1.Text+&#39;1&#39;;
end;

procedure TForm1.Button2Click&#40;Sender&#58; TObject&#41;;
begin
 Edit1.Text&#58;=Edit1.Text+&#39;2&#39;;
end;

procedure TForm1.Button3Click&#40;Sender&#58; TObject&#41;;
begin
 Edit1.Text&#58;=Edit1.Text+&#39;3&#39;;
end;

procedure TForm1.Button4Click&#40;Sender&#58; TObject&#41;;
begin
 Edit1.Text&#58;=Edit1.Text+&#39;4&#39;;
end;

procedure TForm1.Button5Click&#40;Sender&#58; TObject&#41;;
begin
 Edit1.Text&#58;=Edit1.Text+&#39;5&#39;;
end;

procedure TForm1.Button6Click&#40;Sender&#58; TObject&#41;;
begin
 Edit1.Text&#58;=Edit1.Text+&#39;6&#39;;
end;

procedure TForm1.Button7Click&#40;Sender&#58; TObject&#41;;
begin
 Edit1.Text&#58;=Edit1.Text+&#39;7&#39;;
end;

procedure TForm1.Button8Click&#40;Sender&#58; TObject&#41;;
begin
 Edit1.Text&#58;=Edit1.Text+&#39;8&#39;;
end;

procedure TForm1.Button9Click&#40;Sender&#58; TObject&#41;;
begin
 Edit1.Text&#58;=Edit1.Text+&#39;9&#39;;
end;

procedure TForm1.Button17Click&#40;Sender&#58; TObject&#41;;
begin
if Edit1.Text=&#39;&#39; then exit;
a&#58;=strtofloat&#40;Edit1.Text&#41;;
Edit1.Text&#58;=&#39;&#39;;
op&#58;=5;
end;

procedure TForm1.Button18Click&#40;Sender&#58; TObject&#41;;
begin
 if Edit1.Text=&#39;&#39; then exit;
a&#58;=strtofloat&#40;Edit1.Text&#41;;
Edit1.Text&#58;=&#39;&#39;;
op&#58;=6;
end;

end.
 

Mashyha

.:|| DCN ||:.
Регистрация
17 Апр 2009
Сообщения
596
Реакции
2
Баллы
0
Возраст
32
Адрес
Питер
Веб-сайт
www.ubi.com
База данных на Си с разными запросами, типа добавления, удаления, поиска записи в файл и проч
Код:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
FILE *f_out;
#define N 50
#define M 50
#define PEOPLE 100
void menu&#40;&#41;;
void new_f&#40;&#41;; 
void con_menu&#40;&#41;;
void show&#40;&#41;;
void search&#40;&#41;;
void save&#40;&#41;;
void correct&#40;&#41;;
void add&#40;&#41;;
void delete_f&#40;&#41;;
void load&#40;&#41;;
bool flag2;
#pragma pack&#40;push&#41;
#pragma pack&#40;1&#41;
struct phonebook
   {
	  long phone;
	  char name&#91;N&#93;;
	  char sirname&#91;N&#93;;
	  int length_1;
	  int length_2;
	  int year_birth;
	  int month_birth;
	  int day_birth;
   } persons&#91;PEOPLE&#93;;
#pragma pack&#40;pop&#41;
int count;
void main&#40;void&#41;
{
	
	int i,j;
	i=0;
	count=0;
	j=0;
	int u=0;
	char c=0;
	/*printf&#40;&#34;Input number of records you want to fill in\n&#34;&#41;;
	f_out=fopen&#40;&#34;test.out&#34;,&#34;wb&#34;&#41;;
	scanf&#40;&#34;%d&#34;,&count&#41;;
	system&#40;&#34;cls&#34;&#41;;
	c=getchar&#40;&#41;;
	{
		for &#40;i=0;i<count;i++&#41;
		{
			printf&#40;&#34;Input information about the &#34;&#41;;
			printf&#40;&#34;%d&#34;,i+1&#41;;
			printf&#40;&#34; person\n&#34;&#41;;
			printf&#40;&#34;Input name\t&#34;&#41;;
			do
			{
				c=getchar&#40;&#41;;
				if &#40;&#40;c!=&#39; &#39;&#41; && &#40;c!=&#39;,&#39;&#41; && &#40;c!=&#39;\n&#39;&#41;&#41;
				{
					persons&#91;i&#93;.name&#91;j&#93;=c;
					j++;
				}		
			}
			while &#40;c!=&#39;\n&#39;&#41;;
			//persons&#91;i&#93;.name&#91;j&#93; = 0;
			persons&#91;i&#93;.length_1=j;
			j=0;
			printf&#40;&#34;Input surname\t&#34;&#41;;
			do
			{
				c=getchar&#40;&#41;;
				if &#40;&#40;c!=&#39; &#39;&#41; && &#40;c!=&#39;,&#39;&#41; && &#40;c!=&#39;\n&#39;&#41;&#41;
				{
					persons&#91;i&#93;.sirname&#91;j&#93;=c;
					j++;
				}				
			}
			while &#40;c!=&#39;\n&#39;&#41;;
			persons&#91;i&#93;.length_2=j;
			//persons&#91;i&#93;.sirname&#91;j&#93; = 0;
			j=0;
			printf&#40;&#34;Input phone\t&#34;&#41;;
			scanf&#40;&#34;%d&#34;,&persons&#91;i&#93;.phone&#41;;
			printf&#40;&#34;Input day of birth\t&#34;&#41;;
			scanf&#40;&#34;%d&#34;,&persons&#91;i&#93;.day_birth&#41;;
			printf&#40;&#34;Input month of birth\t&#34;&#41;;
			scanf&#40;&#34;%d&#34;,&persons&#91;i&#93;.month_birth&#41;;
			printf&#40;&#34;Input year of birth\t&#34;&#41;;
			scanf&#40;&#34;%d&#34;,&persons&#91;i&#93;.year_birth&#41;;
			system&#40;&#34;cls&#34;&#41;;
			c=getchar&#40;&#41;;
		}
	}
	system&#40;&#34;cls&#34;&#41;;
	fprintf&#40;f_out,&#34;%d\n&#34;,count&#41;;
	fprintf&#40;f_out,&#34;%d\n&#34;,count&#41;;
	for &#40;int u=0;u<count;u++&#41;
	{
		fprintf&#40;f_out,&#34;%s\n&#34;,persons&#91;u&#93;.name&#41;;
		fprintf&#40;f_out,&#34;%s\n&#34;,persons&#91;u&#93;.sirname&#41;;
		fprintf&#40;f_out,&#34;%d\n&#34;,persons&#91;u&#93;.day_birth&#41;;
		fprintf&#40;f_out,&#34;%d\n&#34;,persons&#91;u&#93;.length_1&#41;;
		fprintf&#40;f_out,&#34;%d\n&#34;,persons&#91;u&#93;.length_2&#41;;
		fprintf&#40;f_out,&#34;%d\n&#34;,persons&#91;u&#93;.month_birth&#41;;
		fprintf&#40;f_out,&#34;%d\n&#34;,persons&#91;u&#93;.phone&#41;;
		fprintf&#40;f_out,&#34;%d\n&#34;,persons&#91;u&#93;.year_birth&#41;;
	}
	fclose&#40;f_out&#41;;*/
	menu&#40;&#41;;
	for&#40;;;&#41;
	{
		int flag=0;
		c=getchar&#40;&#41;;
		switch&#40;c&#41;
		{
			case &#39;0&#39;&#58;system&#40;&#34;cls&#34;&#41;;delete_f&#40;&#41;;menu&#40;&#41;;break;
			case &#39;1&#39;&#58;system&#40;&#34;cls&#34;&#41;;search&#40;&#41;;menu&#40;&#41;;break;
			case &#39;2&#39;&#58;system&#40;&#34;cls&#34;&#41;;add&#40;&#41;;menu&#40;&#41;;break;
			case &#39;3&#39;&#58;system&#40;&#34;cls&#34;&#41;;correct&#40;&#41;;menu&#40;&#41;;break;
			case &#39;4&#39;&#58;system&#40;&#34;cls&#34;&#41;;show&#40;&#41;;menu&#40;&#41;;break;
			case &#39;5&#39;&#58;system&#40;&#34;cls&#34;&#41;;load&#40;&#41;;menu&#40;&#41;;break;
			case &#39;6&#39;&#58;system&#40;&#34;cls&#34;&#41;;new_f&#40;&#41;;menu&#40;&#41;;break;
			case &#39;7&#39;&#58;system&#40;&#34;cls&#34;&#41;;save&#40;&#41;;menu&#40;&#41;;break;
			case &#39;8&#39;&#58;system&#40;&#34;cls&#34;&#41;;flag=1;break;
		}
		if &#40;flag==1&#41;
			break;
		if &#40;flag2&#41;
			fclose&#40;f_out&#41;;
	}
}
void menu&#40;&#41;
{
	printf&#40;&#34;\n&#34;&#41;;
	printf&#40;&#34;0-delete record\n&#34;&#41;;
	printf&#40;&#34;1-find record\n&#34;&#41;;
	printf&#40;&#34;2-add record\n&#34;&#41;;
	printf&#40;&#34;3-correct record\n&#34;&#41;;
	printf&#40;&#34;4-show records\n&#34;&#41;;
	printf&#40;&#34;5-load base\n&#34;&#41;;
	printf&#40;&#34;6-start new base\n&#34;&#41;;
	printf&#40;&#34;7-save\n&#34;&#41;;
	printf&#40;&#34;8-exit\n&#34;&#41;;
	printf&#40;&#34;\n&#34;&#41;;
}
void con_menu&#40;&#41;
{
	char c=0;
	system&#40;&#34;cls&#34;&#41;;
	printf&#40;&#34;Choose the field you want to search\n&#34;&#41;;
	printf&#40;&#34;1-searching using name\n&#34;&#41;;
	printf&#40;&#34;2-searching using surname\n&#34;&#41;;
	printf&#40;&#34;3-searching using phone\n&#34;&#41;;
	printf&#40;&#34;4-searching using the year of birth\n&#34;&#41;;
	printf&#40;&#34;5-searching using the month of birth\n&#34;&#41;;
	printf&#40;&#34;6-searching using thr day of birth\n&#34;&#41;;
	c=getchar&#40;&#41;;
}
void search&#40;&#41;
{
	//int k=0;
	if &#40;count!=0&#41;
	{
		int j=0;
		con_menu&#40;&#41;;
		char key=getchar&#40;&#41;;
		if &#40;key==&#39;5&#39;&#41;
		{
			system&#40;&#34;cls&#34;&#41;;
			int month_s=0;
			int k5=0;
			printf&#40;&#34;Input month of birth\t&#34;&#41;;
			scanf&#40;&#34;%d&#34;,&month_s&#41;;
			for&#40;j=0;j<count;j++&#41;
			{
				if &#40;persons&#91;j&#93;.month_birth==month_s&#41;
				{
					k5++;
					printf&#40;&#34;Name\t&#34;&#41;;
					for &#40;int u=0;u<persons&#91;j&#93;.length_1;u++&#41;
						putchar&#40;persons&#91;j&#93;.name&#91;u&#93;&#41;;
					printf&#40;&#34; &#34;&#41;;
					for &#40;int u=0;u<persons&#91;j&#93;.length_2;u++&#41;
						putchar&#40;persons&#91;j&#93;.sirname&#91;u&#93;&#41;;
					printf&#40;&#34;\n&#34;&#41;;
					printf&#40;&#34;Phone\t&#34;&#41;;
					printf&#40;&#34;%d\n&#34;,persons&#91;j&#93;.phone&#41;;
					printf&#40;&#34;Date of Birth\t&#34;&#41;;
					printf&#40;&#34;%d&#34;,persons&#91;j&#93;.day_birth&#41;;
					printf&#40;&#34;.&#34;&#41;;
					printf&#40;&#34;%d&#34;,persons&#91;j&#93;.month_birth&#41;;
					printf&#40;&#34;.&#34;&#41;;
					printf&#40;&#34;%d\n&#34;,persons&#91;j&#93;.year_birth&#41;;
				}
			}
			if &#40;k5==0&#41;
				printf&#40;&#34;There is no such person in the base&#34;&#41;;
		}
		if &#40;key==&#39;6&#39;&#41;
		{
			system&#40;&#34;cls&#34;&#41;;
			int day_s=0;
			int k6=0;
			printf&#40;&#34;Input day of birth\t&#34;&#41;;
			scanf&#40;&#34;%d&#34;,&day_s&#41;;
			for&#40;j=0;j<count;j++&#41;
			{
				if &#40;persons&#91;j&#93;.day_birth==day_s&#41;
				{
					k6++;
					printf&#40;&#34;Name\t&#34;&#41;;
					for &#40;int u=0;u<persons&#91;j&#93;.length_1;u++&#41;
						putchar&#40;persons&#91;j&#93;.name&#91;u&#93;&#41;;
					printf&#40;&#34; &#34;&#41;;
					for &#40;int u=0;u<persons&#91;j&#93;.length_2;u++&#41;
						putchar&#40;persons&#91;j&#93;.sirname&#91;u&#93;&#41;;
					printf&#40;&#34;\n&#34;&#41;;
					printf&#40;&#34;Phone\t&#34;&#41;;
					printf&#40;&#34;%d\n&#34;,persons&#91;j&#93;.phone&#41;;
					printf&#40;&#34;Date of Birth\t&#34;&#41;;
					printf&#40;&#34;%d&#34;,persons&#91;j&#93;.day_birth&#41;;
					printf&#40;&#34;.&#34;&#41;;
					printf&#40;&#34;%d&#34;,persons&#91;j&#93;.month_birth&#41;;
					printf&#40;&#34;.&#34;&#41;;
					printf&#40;&#34;%d\n&#34;,persons&#91;j&#93;.year_birth&#41;;
				}
			}
			if &#40;k6==0&#41;
				printf&#40;&#34;There is no such person in the base&#34;&#41;;
		}
		if &#40;key==&#39;3&#39;&#41;
		{
			system&#40;&#34;cls&#34;&#41;;
			long phone_s=0;
			int k1=0;
			printf&#40;&#34;Input phone\t&#34;&#41;;
			scanf&#40;&#34;%d&#34;,&phone_s&#41;;
			for&#40;j=0;j<count;j++&#41;
			{
				if &#40;persons&#91;j&#93;.phone==phone_s&#41;
				{
					k1++;
					printf&#40;&#34;Name\t&#34;&#41;;
					for &#40;int u=0;u<persons&#91;j&#93;.length_1;u++&#41;
						putchar&#40;persons&#91;j&#93;.name&#91;u&#93;&#41;;
					printf&#40;&#34; &#34;&#41;;
					for &#40;int u=0;u<persons&#91;j&#93;.length_2;u++&#41;
						putchar&#40;persons&#91;j&#93;.sirname&#91;u&#93;&#41;;
					printf&#40;&#34;\n&#34;&#41;;
					printf&#40;&#34;Date of Birth\t&#34;&#41;;
					printf&#40;&#34;%d&#34;,persons&#91;j&#93;.day_birth&#41;;
					printf&#40;&#34;.&#34;&#41;;
					printf&#40;&#34;%d&#34;,persons&#91;j&#93;.month_birth&#41;;
					printf&#40;&#34;.&#34;&#41;;
					printf&#40;&#34;%d\n&#34;,persons&#91;j&#93;.year_birth&#41;;
				}
			}
			if &#40;k1==0&#41;
				printf&#40;&#34;There is no such person in the base&#34;&#41;;
		}
		if &#40;key==&#39;4&#39;&#41;
		{
			int k2=0;
			system&#40;&#34;cls&#34;&#41;;
			int date_s=0;
			printf&#40;&#34;Input year of birth\t&#34;&#41;;
			scanf&#40;&#34;%d&#34;,&date_s&#41;;
			for &#40;j=0;j<count;j++&#41;
			{
				if &#40;persons&#91;j&#93;.year_birth==date_s&#41;
				{
					k2++;
					printf&#40;&#34;Name\t&#34;&#41;;
					for &#40;int u=0;u<persons&#91;j&#93;.length_1;u++&#41;
						putchar&#40;persons&#91;j&#93;.name&#91;u&#93;&#41;;
					printf&#40;&#34; &#34;&#41;;
					for &#40;int u=0;u<persons&#91;j&#93;.length_2;u++&#41;
						putchar&#40;persons&#91;j&#93;.sirname&#91;u&#93;&#41;;
					printf&#40;&#34;\n&#34;&#41;;
					printf&#40;&#34;Phone\t&#34;&#41;;
					printf&#40;&#34;%d\n&#34;,persons&#91;j&#93;.phone&#41;;
					printf&#40;&#34;Date of Birth\t&#34;&#41;;
					printf&#40;&#34;%d&#34;,persons&#91;j&#93;.day_birth&#41;;
					printf&#40;&#34;.&#34;&#41;;
					printf&#40;&#34;%d&#34;,persons&#91;j&#93;.month_birth&#41;;
					printf&#40;&#34;.&#34;&#41;;
					printf&#40;&#34;%d\n&#34;,persons&#91;j&#93;.year_birth&#41;;
				}
			}
			if &#40;k2==0&#41;
				printf&#40;&#34;There is no such person in the base&#34;&#41;;
		}
		if &#40;key==&#39;1&#39;&#41;
		{
			int dl=0;
			int k3=0;
			system&#40;&#34;cls&#34;&#41;;
			char name_1&#91;N&#93;;
			printf&#40;&#34;Input name\t&#34;&#41;;
			scanf&#40;&#34;%s&#34;,&name_1&#41;;
			dl=strlen&#40;name_1&#41;-1;
			for &#40;j=0;j<count;j++&#41;
			{
				int schet1=0;
				if &#40;dl!=persons&#91;j&#93;.length_1-1&#41;
				{
				}
				else
				{
					for&#40;int i=0;i<persons&#91;j&#93;.length_1;i++&#41;
					{
						if &#40;persons&#91;j&#93;.name&#91;i&#93;!=name_1&#91;i&#93;&#41;
							schet1++;
					}
						if &#40;schet1==0&#41;
						{
							k3++;
							printf&#40;&#34;Surname\t&#34;&#41;;
							for &#40;int u=0;u<persons&#91;j&#93;.length_2;u++&#41;
								putchar&#40;persons&#91;j&#93;.sirname&#91;u&#93;&#41;;
							printf&#40;&#34;\n&#34;&#41;;
							printf&#40;&#34;Phone\t&#34;&#41;;
							printf&#40;&#34;%d\n&#34;,persons&#91;j&#93;.phone&#41;;
							printf&#40;&#34;Date of Birth\t&#34;&#41;;
							printf&#40;&#34;%d&#34;,persons&#91;j&#93;.day_birth&#41;;
							printf&#40;&#34;.&#34;&#41;;
							printf&#40;&#34;%d&#34;,persons&#91;j&#93;.month_birth&#41;;
							printf&#40;&#34;.&#34;&#41;;
							printf&#40;&#34;%d\n&#34;,persons&#91;j&#93;.year_birth&#41;;
						}
				}
			}
			if &#40;k3==0&#41;
				printf&#40;&#34;There is no such person in the base\n&#34;&#41;;
		}
		if &#40;key==&#39;2&#39;&#41;
		{
			int dl=0;
			int k4=0;
			system&#40;&#34;cls&#34;&#41;;
			char sirname_1&#91;N&#93;;
			printf&#40;&#34;Input surname\t&#34;&#41;;
			scanf&#40;&#34;%s&#34;,&sirname_1&#41;;
			dl=strlen&#40;sirname_1&#41;-1;
			for &#40;j=0;j<count;j++&#41;
			{
				int schet2=0;
				if &#40;dl!=persons&#91;j&#93;.length_2-1&#41;
				{
				}
				else
				{
					for&#40;int i=0;i<persons&#91;j&#93;.length_2;i++&#41;
					{
						if &#40;persons&#91;j&#93;.sirname&#91;i&#93;!=sirname_1&#91;i&#93;&#41;
							schet2++;
					}
						if &#40;schet2==0&#41;
						{
							k4++;
							printf&#40;&#34;Name\t&#34;&#41;;
							for &#40;int u=0;u<persons&#91;j&#93;.length_1;u++&#41;
								putchar&#40;persons&#91;j&#93;.name&#91;u&#93;&#41;;
							printf&#40;&#34;\n&#34;&#41;;
							printf&#40;&#34;Phone\t&#34;&#41;;
							printf&#40;&#34;%d\n&#34;,persons&#91;j&#93;.phone&#41;;
							printf&#40;&#34;Date of Birth\t&#34;&#41;;
							printf&#40;&#34;%d&#34;,persons&#91;j&#93;.day_birth&#41;;
							printf&#40;&#34;.&#34;&#41;;
							printf&#40;&#34;%d&#34;,persons&#91;j&#93;.month_birth&#41;;
							printf&#40;&#34;.&#34;&#41;;
							printf&#40;&#34;%d\n&#34;,persons&#91;j&#93;.year_birth&#41;;
						}
				}
			}
			if &#40;k4==0&#41;
			printf&#40;&#34;There is no such person in the base\n&#34;&#41;;
		}
		}
		else
			printf&#40;&#34;The base is empty&#34;&#41;;
}
void add&#40;&#41;
{
		char c=0;
		system&#40;&#34;cls&#34;&#41;;
		c=getchar&#40;&#41;;
		int j=0;
		persons&#91;count&#93;.length_1=0;
		persons&#91;count&#93;.length_2=0;
		printf&#40;&#34;Adding information about the &#34;&#41;;
		printf&#40;&#34;%d&#34;,count+1&#41;;
		printf&#40;&#34; person\n&#34;&#41;;
		printf&#40;&#34;Input name\t&#34;&#41;;
		do
		{
			c=getchar&#40;&#41;;
			if &#40;&#40;c!=&#39; &#39;&#41; && &#40;c!=&#39;,&#39;&#41; && &#40;c!=&#39;\n&#39;&#41;&#41;
			{
				persons&#91;count&#93;.name&#91;j&#93;=c;
				j++;
			}		
		}
		while &#40;c!=&#39;\n&#39;&#41;;
		//persons&#91;count&#93;.name&#91;j&#93; = 0;
		persons&#91;count&#93;.length_1=j;
		j=0;
		printf&#40;&#34;Input surname\t&#34;&#41;;
		do
		{
			c=getchar&#40;&#41;;
			if &#40;&#40;c!=&#39; &#39;&#41; && &#40;c!=&#39;,&#39;&#41; && &#40;c!=&#39;\n&#39;&#41;&#41;
			{
				persons&#91;count&#93;.sirname&#91;j&#93;=c;
				j++;
			}
		}
		while &#40;c!=&#39;\n&#39;&#41;;
		persons&#91;count&#93;.length_2=j;
		//persons&#91;count&#93;.sirname&#91;j&#93; = 0;
		j=0;
		printf&#40;&#34;Input phone\t&#34;&#41;;
		scanf&#40;&#34;%d&#34;,&persons&#91;count&#93;.phone&#41;;
		printf&#40;&#34;Input day of birth\t&#34;&#41;;
		scanf&#40;&#34;%d&#34;,&persons&#91;count&#93;.day_birth&#41;;
		printf&#40;&#34;Input month of birth\t&#34;&#41;;
		scanf&#40;&#34;%d&#34;,&persons&#91;count&#93;.month_birth&#41;;
		printf&#40;&#34;Input year of birth\t&#34;&#41;;
		scanf&#40;&#34;%d&#34;,&persons&#91;count&#93;.year_birth&#41;;
		system&#40;&#34;cls&#34;&#41;;
		c=getchar&#40;&#41;;
		count++;
}
void show&#40;&#41;
{
	int j=0;
	system&#40;&#34;cls&#34;&#41;;
	for &#40;j=0;j<count;j++&#41;
	{
		printf&#40;&#34;Name\t&#34;&#41;;
		for &#40;int u=0;u<persons&#91;j&#93;.length_1;u++&#41;
			putchar&#40;persons&#91;j&#93;.name&#91;u&#93;&#41;;
		printf&#40;&#34; &#34;&#41;;
		for &#40;int u=0;u<persons&#91;j&#93;.length_2;u++&#41;
		putchar&#40;persons&#91;j&#93;.sirname&#91;u&#93;&#41;;
		printf&#40;&#34;\n&#34;&#41;;
		printf&#40;&#34;Phone\t&#34;&#41;;
		printf&#40;&#34;%d\n&#34;,persons&#91;j&#93;.phone&#41;;
		printf&#40;&#34;Date of Birth\t&#34;&#41;;
		printf&#40;&#34;%d&#34;,persons&#91;j&#93;.day_birth&#41;;
		printf&#40;&#34;.&#34;&#41;;
		printf&#40;&#34;%d&#34;,persons&#91;j&#93;.month_birth&#41;;
		printf&#40;&#34;.&#34;&#41;;
		printf&#40;&#34;%d\n&#34;,persons&#91;j&#93;.year_birth&#41;;
	}
}
void delete_f&#40;&#41;
{
	if &#40;count!=0&#41;
	{
	system&#40;&#34;cls&#34;&#41;;
	printf&#40;&#34;Input the number of the struct, you want to delete\t&#34;&#41;;
	int num=0;
	scanf&#40;&#34;%d&#34;,&num&#41;;
	if &#40;&#40;num<=count&#41; && &#40;num>=1&#41;&#41;
	{
		int per=num-1;
		int i=0;
		int j=0;
		for &#40;int u=per;&#40;u+1&#41;<count;u++&#41;
		{
			for &#40;i=0;i<persons&#91;u+1&#93;.length_1;i++&#41;
			{
				persons&#91;u&#93;.name&#91;i&#93;=persons&#91;u+1&#93;.name&#91;i&#93;;
			}
			for &#40;i=0;i<persons&#91;u+1&#93;.length_2;i++&#41;
			{
				persons&#91;u&#93;.sirname&#91;i&#93;=persons&#91;u+1&#93;.sirname&#91;i&#93;;
			}
			persons&#91;u&#93;.day_birth=persons&#91;u+1&#93;.day_birth;
			persons&#91;u&#93;.month_birth=persons&#91;u+1&#93;.month_birth;
			persons&#91;u&#93;.year_birth=persons&#91;u+1&#93;.year_birth;
			persons&#91;u&#93;.phone=persons&#91;u+1&#93;.phone;
		}
		count--;
	}
	else
		printf&#40;&#34;There is no element you want to delete\n&#34;&#41;;
	}
	else
		printf&#40;&#34;The base is empty&#34;&#41;;
			
}
void correct&#40;&#41;
{
	if &#40;count!=0&#41;
	{
		system&#40;&#34;cls&#34;&#41;;
		char c=getchar&#40;&#41;;
		printf&#40;&#34;Input the number of the struct, you want to correct\t&#34;&#41;;
		int num=0;
		scanf&#40;&#34;%d&#34;,&num&#41;;
		if &#40;&#40;num<=count&#41; && &#40;num>=1&#41;&#41;
		{
			for &#40;int k=0;k<persons&#91;num-1&#93;.length_1;k++&#41;
				persons&#91;num-1&#93;.name&#91;k&#93;=&#39; &#39;;
			for &#40;int k=0;k<persons&#91;num-1&#93;.length_2;k++&#41;
				persons&#91;num-1&#93;.sirname&#91;k&#93;=&#39; &#39;;
			persons&#91;num-1&#93;.length_1=0;
			persons&#91;num-1&#93;.length_2=0;
			int j=0;
			int i=0;
			i=num-1;
			c=getchar&#40;&#41;;
			printf&#40;&#34;Input new name\t&#34;&#41;;
			do
			{
				c=getchar&#40;&#41;;
				if &#40;&#40;c!=&#39; &#39;&#41; && &#40;c!=&#39;,&#39;&#41; && &#40;c!=&#39;\n&#39;&#41;&#41;
				{
					persons&#91;i&#93;.name&#91;j&#93;=c;
					j++;
				}		
			}
			while &#40;c!=&#39;\n&#39;&#41;;
			//persons&#91;i&#93;.name&#91;j&#93; = 0;
			persons&#91;i&#93;.length_1=j;
			j=0;
			printf&#40;&#34;Input new surname\t&#34;&#41;;
			do
			{
				c=getchar&#40;&#41;;
				if &#40;&#40;c!=&#39; &#39;&#41; && &#40;c!=&#39;,&#39;&#41; && &#40;c!=&#39;\n&#39;&#41;&#41;
				{
					persons&#91;i&#93;.sirname&#91;j&#93;=c;
					j++;
				}		
			}
			while &#40;c!=&#39;\n&#39;&#41;;
			persons&#91;i&#93;.length_2=j;	
			//persons&#91;i&#93;.sirname&#91;j&#93; = 0;
			j=0;
			printf&#40;&#34;Input new phone\t&#34;&#41;;
			scanf&#40;&#34;%d&#34;,&persons&#91;i&#93;.phone&#41;;
			printf&#40;&#34;Input new day of birth\t&#34;&#41;;
			scanf&#40;&#34;%d&#34;,&persons&#91;i&#93;.day_birth&#41;;
			printf&#40;&#34;Input new month of birth\t&#34;&#41;;
			scanf&#40;&#34;%d&#34;,&persons&#91;i&#93;.month_birth&#41;;
			printf&#40;&#34;Input new year of birth\t&#34;&#41;;
			scanf&#40;&#34;%d&#34;,&persons&#91;i&#93;.year_birth&#41;;
		}
		else
			printf&#40;&#34;There is no number you want to correct\n&#34;&#41;;
	}
	else
		printf&#40;&#34;The base is empty&#34;&#41;;
}
void save&#40;&#41;
{
	f_out=fopen&#40;&#34;test.out&#34;,&#34;wb&#34;&#41;;
	fprintf&#40;f_out,&#34;%d\n&#34;,count&#41;;
	for &#40;int u=0;u<count;u++&#41;
	{
		fprintf&#40;f_out,&#34;%s\n&#34;,persons&#91;u&#93;.name&#41;;
		fprintf&#40;f_out,&#34;%s\n&#34;,persons&#91;u&#93;.sirname&#41;;
		fprintf&#40;f_out,&#34;%d\n&#34;,persons&#91;u&#93;.day_birth&#41;;
		fprintf&#40;f_out,&#34;%d\n&#34;,persons&#91;u&#93;.length_1&#41;;
		fprintf&#40;f_out,&#34;%d\n&#34;,persons&#91;u&#93;.length_2&#41;;
		fprintf&#40;f_out,&#34;%d\n&#34;,persons&#91;u&#93;.month_birth&#41;;
		fprintf&#40;f_out,&#34;%d\n&#34;,persons&#91;u&#93;.phone&#41;;
		fprintf&#40;f_out,&#34;%d\n&#34;,persons&#91;u&#93;.year_birth&#41;;
	}
	system&#40;&#34;cls&#34;&#41;;
	fclose&#40;f_out&#41;;
}
void load&#40;&#41;
{
	f_out=fopen&#40;&#34;test.out&#34;,&#34;rb&#34;&#41;;
	if &#40;f_out== NULL&#41;
	{ 
		printf&#40;&#34;No file&#34;&#41;;
	}
	else
	{
		flag2=true;
	}
	fscanf&#40;f_out,&#34;%d&#34;,&count&#41;;
	for &#40;int u=0;u<count;u++&#41;
	{
		fscanf&#40;f_out,&#34;%s&#34;,persons&#91;u&#93;.name&#41;;
		fscanf&#40;f_out,&#34;%s&#34;,persons&#91;u&#93;.sirname&#41;;
		fscanf&#40;f_out,&#34;%d&#34;,&persons&#91;u&#93;.day_birth&#41;;
		fscanf&#40;f_out,&#34;%d&#34;,&persons&#91;u&#93;.length_1&#41;;
		fscanf&#40;f_out,&#34;%d&#34;,&persons&#91;u&#93;.length_2&#41;;
		fscanf&#40;f_out,&#34;%d&#34;,&persons&#91;u&#93;.month_birth&#41;;
		fscanf&#40;f_out,&#34;%d&#34;,&persons&#91;u&#93;.phone&#41;;
		fscanf&#40;f_out,&#34;%d&#34;,&persons&#91;u&#93;.year_birth&#41;;
	}
	system&#40;&#34;cls&#34;&#41;;
	fclose&#40;f_out&#41;;
}
void new_f&#40;&#41;
{
	count=0;
	for &#40;int u=0;u<count;u++&#41;
	{
		persons&#91;u&#93;.length_1=0;
		persons&#91;u&#93;.length_2=0;
	}
}
 

I.G.O.R.E.K.

>Toxic moder
Регистрация
28 Ноя 2008
Сообщения
762
Реакции
3
Баллы
0
Возраст
32
Адрес
Пермь
Веб-сайт
Посетить сайт
Ой кодеры,кодеры.
Гы,я тоже сейчас Базу Данных делаю, только на Дельфи. :D
Пы.сы. Можешь показать саму прогу,как выглядит?Мне оч интересно :)
 

Mashyha

.:|| DCN ||:.
Регистрация
17 Апр 2009
Сообщения
596
Реакции
2
Баллы
0
Возраст
32
Адрес
Питер
Веб-сайт
www.ubi.com
Гы-гы, в смысле саму? Вот она сама :blink:
И кстати: мой личный архиватор по алгоритму Хаффмана
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 100000
#define M 8
#pragma pack&#40;push&#41;
#pragma pack&#40;1&#41;
struct sym
{
	int n;
	char ch;
	float freq;	
	char code&#91;255&#93;;
	sym *left;
	sym *right;
};
#pragma pack&#40;pop&#41;
void through_tree&#40;sym *root&#41;;
sym *makeTree&#40;sym *psym&#91;&#93;,int k&#41;;
void makeCodes&#40;sym *root&#41;;
FILE *fp,*fp2,*fp3;
struct read
{
	char ch;
	char code&#91;255&#93;;
	int len1;

}sim&#91;256&#93;;
void main&#40;void&#41;
{
	
	char mode=0;
	char c=0;
	int chh;  
	int k=0;
	int kk=0;
	int fsize2=0;
	int ts;
	int kolvo&#91;256&#93;={0};
	sym simbols&#91;256&#93;={0};
	sym *psym&#91;256&#93;;
	float summir=0;
	int mes&#91;8&#93;;
	int j=0;
	sym *symbols=&#40;sym*&#41;malloc&#40;k*sizeof&#40;sym&#41;&#41;;
	sym **psum=&#40;sym**&#41;malloc&#40;k*sizeof&#40;sym*&#41;&#41;;
	printf&#40;&#34;a-code\n&#34;&#41;;
	printf&#40;&#34;d-recode\n&#34;&#41;;
	printf&#40;&#34;Input mode\t&#34;&#41;;
	scanf&#40;&#34;%c&#34;,&mode&#41;;
	if &#40;mode==&#39;a&#39;&#41;
	{
		printf&#40;&#34;Input name of input file\t&#34;&#41;;
		char name_in&#91;N&#93;;
		scanf&#40;&#34;%s&#34;,name_in&#41;;
		printf&#40;&#34;Input name of output file\t&#34;&#41;;
		char name_out&#91;N&#93;;
		scanf&#40;&#34;%s&#34;,name_out&#41;;
		fp=fopen&#40;name_in,&#34;rt&#34;&#41;;
		
		if&#40;fp==NULL&#41;
		{
				puts&#40;&#34;FILE NOT OPEN!!!!!!!&#34;&#41;;
		}
		else
		{
			fp2=fopen&#40;&#34;teemp.txt&#34;,&#34;wt&#34;&#41;;
			fp3=fopen&#40;&#34;7777.txt&#34;,&#34;wt&#34;&#41;;
			while&#40;&#40;chh=fgetc&#40;fp&#41;&#41;!=EOF&#41;
			{			  
					for&#40;int j=0; j<256; j++&#41;
					{
							if &#40;chh==simbols&#91;j&#93;.ch&#41;
							{
									kolvo&#91;j&#93;++;
									kk++;						  
									break;
								}
								if &#40;simbols&#91;j&#93;.ch==0&#41;
								{
									simbols&#91;j&#93;.ch=&#40;char&#41;chh;
									kolvo&#91;j&#93;=1;
									k++;
									kk++;
									break;
							}					  
					}			  
			}
			for&#40;int i=0;i<k;i++&#41;
					simbols&#91;i&#93;.freq=&#40;float&#41;kolvo&#91;i&#93;/kk;
			for&#40;int i=0;i<k;i++&#41;
					psym&#91;i&#93;=&simbols&#91;i&#93;;
			sym tempp;
			for&#40;int i=1;i<k;i++&#41;
					for&#40;int j=0;j<k-1;j++&#41;
							if&#40;simbols&#91;j&#93;.freq<simbols&#91;j+1&#93;.freq&#41;
							{
									tempp=simbols&#91;j&#93;;
									simbols&#91;j&#93;=simbols&#91;j+1&#93;;
									simbols&#91;j+1&#93;=tempp;
							}
							for&#40;int i=0;i<k;i++&#41;
							{
								summir+=simbols&#91;i&#93;.freq;		
							}
							sym *root=makeTree&#40;psym,k&#41;;
							makeCodes&#40;root&#41;;
							rewind&#40;fp&#41;;
							for&#40;int i=0;i<k;i++&#41;
							{
								sim&#91;i&#93;.len1=strlen&#40;simbols&#91;i&#93;.code&#41;;
							}
							while&#40;&#40;chh=fgetc&#40;fp&#41;&#41;!=EOF&#41;
							{
								for&#40;int i=0;i<k;i++&#41;
									if&#40;chh==simbols&#91;i&#93;.ch&#41;
									{		
										fwrite&#40;simbols&#91;i&#93;.code,sim&#91;i&#93;.len1,1,fp2&#41;;
									}
							}
							for &#40;int i=0;i<k;i++&#41;
									fputc&#40;simbols&#91;i&#93;.ch,fp2&#41;;
							//through_tree&#40;root&#41;;
							fclose&#40;fp2&#41;;
							fp2=fopen&#40;&#34;teemp.txt&#34;,&#34;rt&#34;&#41;;
							if&#40;fp2==NULL&#41;
							{
								puts&#40;&#34;FILE NOT OPEN!!!!!!!&#34;&#41;;
							}
							else
							{
								unsigned long long int counter1=0;
								int chhh=0;
								while&#40;&#40;chhh=fgetc&#40;fp2&#41;&#41;!=EOF&#41;
								{
									counter1++;
								}
								rewind&#40;fp2&#41;;
								FILE *fp4=fopen&#40;name_out,&#34;wt&#34;&#41;;
								char simbol=0;
								for &#40;unsigned long long int i=0;i<counter1;&#41;
								{
									char byte=0;
									for&#40;int bit = 0;bit<8 && i<counter1;++bit,++i&#41;
									{
										simbol=fgetc&#40;fp2&#41;;
										byte <<= 1;
										byte |= simbol- &#39;0&#39;;
									}
									fputc&#40;byte,fp4&#41;;
								}
								fclose&#40;fp2&#41;;
								int i=0;	
								rewind&#40;fp3&#41;;
								fprintf&#40;fp3,&#34;%s\n&#34;,name_in&#41;;
								fprintf&#40;fp3,&#34;%d\n&#34;,k&#41;;
								for&#40;i=0;i<k;i++&#41;
								{
									fprintf&#40;fp3,&#34;%c\n&#34;,simbols&#91;i&#93;.ch&#41;;
									fprintf&#40;fp3,&#34;%s\n&#34;,simbols&#91;i&#93;.code&#41;;
									sim&#91;i&#93;.len1=strlen&#40;simbols&#91;i&#93;.code&#41;;
									fprintf&#40;fp3,&#34;%d\n&#34;,sim&#91;i&#93;.len1&#41;;
								}
							}
		}
		//remove&#40;&#34;7777.txt&#34;&#41;;

	 }
	else
	{
		if &#40;mode==&#39;d&#39;&#41;
		{
			printf&#40;&#34;Input input file\t&#34;&#41;;
			char name_inn&#91;256&#93;;
			scanf&#40;&#34;%s&#34;,name_inn&#41;;
			printf&#40;&#34;Input output file\t&#34;&#41;;
			char name_out&#91;256&#93;;
			scanf&#40;&#34;%s&#34;,name_out&#41;;
			FILE *fp_res=fopen&#40;name_inn,&#34;rt&#34;&#41;;
			if &#40;fp_res==NULL&#41;
				puts&#40;&#34;FILE NOT OPEN!!!!!!!&#34;&#41;;
			else
			{
				fp3=fopen&#40;&#34;7777.txt&#34;,&#34;rt&#34;&#41;;
				if&#40;fp3==NULL&#41;
				{
					puts&#40;&#34;FILE NOT OPEN!!!!!!!&#34;&#41;;
				}
				else
				{
					char name_in&#91;256&#93;;
					fscanf&#40;fp3,&#34;%s&#34;,name_in&#41;;
					FILE *res;
					res=fopen&#40;name_out,&#34;wb&#34;&#41;;
					int chh=0;
					unsigned long long int counter1=0;
					FILE *fp=fopen&#40;name_in,&#34;rb&#34;&#41;;
					while&#40;&#40;chh=fgetc&#40;fp&#41;&#41;!=EOF&#41;
					{
						counter1++;
					}
					rewind&#40;fp&#41;;
					for &#40;unsigned long long int i=0;i<counter1;i++&#41;
					{
						chh=fgetc&#40;fp&#41;;
						putc&#40;chh,res&#41;;
					}
					/*FILE *fp5=fopen&#40;&#34;recode.txt&#34;,&#34;wb&#34;&#41;;
					rewind&#40;fp_res&#41;;
					for &#40;unsigned long long int i=0;i<counter1;&#41;
								{
									char byte=0;
									for&#40;int bit = 0;bit<8 && i<counter1;++bit,++i&#41;
									{
										char simbol=fgetc&#40;fp_res&#41;;
										byte >>= 1;
										byte &= simbol- &#39;0&#39;;
									}
									fputc&#40;byte,fp5&#41;;
								}*/
					fcloseall&#40;&#41;;
				}
			}
		}
		else
			printf&#40;&#34;You have pressed the wrong key\n&#34;&#41;;
		}
}
sym *makeTree&#40;sym *psym&#91;&#93;,int k&#41;
{
		sym *temp;
		temp=&#40;sym*&#41;malloc&#40;sizeof&#40;sym&#41;&#41;;
		temp->freq=psym&#91;k-1&#93;->freq+psym&#91;k-2&#93;->freq;
		temp->code&#91;0&#93;=0;
		temp->left=psym&#91;k-1&#93;;
		temp->right=psym&#91;k-2&#93;;
		if&#40;k==2&#41;
				return temp;
		else
		{
				for&#40;int i=0;i<k;i++&#41;
						if &#40;temp->freq>psym&#91;i&#93;->freq&#41;
						{	  
								for&#40;int j=k-1;j>i;j--&#41;
										psym&#91;j&#93;=psym&#91;j-1&#93;;																	  
								psym&#91;i&#93;=temp;
								break;
						}			  
		}
return makeTree&#40;psym,k-1&#41;;
}
void through_tree&#40;sym *root&#41;
{
	struct stek
	{
		sym *d;
		stek *s;
	} *st,*st1=NULL;
	sym *dr1;
	dr1=root;
	int pr=1;
	int i=0;
	for&#40;i=0;i<2;i++&#41;
	{
		st=&#40;stek*&#41;calloc&#40;1,sizeof&#40;stek&#41;&#41;;
		st->d=dr1;
		st->s=st1;
		st1=st;
	}
	FILE *fp5=fopen&#40;&#34;tree.txt&#34;,&#34;wt&#34;&#41;;
	fprintf&#40;fp5,&#34;%c\n&#34;,fp5,dr1->code,dr1->n&#41;;
	while&#40;st&#41;
		{
			do
			{
				if&#40;pr && dr1->left&#41; dr1=dr1->left;
				else
					if&#40;dr1->right&#41; dr1=dr1->right;
				pr=1;
				if&#40;dr1->left && dr1->right&#41;
				{
					st=&#40;stek*&#41;malloc&#40;sizeof&#40;stek&#41;&#41;;
					st->d=dr1;
					st->s=st1;
					st1=st;
				}
						
			}
			while&#40;dr1->left || dr1->right&#41;;
			fprintf&#40;fp5,&#34;%c\n&#34;,fp5,dr1->code,dr1->n&#41;;
			dr1=st->d;
			st1=st->s;
			free&#40;st&#41;;
			st=st1;
			if&#40;dr1->right&#41; pr=0;
		}
}
void makeCodes&#40;sym *root&#41;
{
		if&#40;root->left&#41;
		{
				strcpy&#40;root->left->code,root->code&#41;;
				strcat&#40;root->left->code,&#34;0&#34;&#41;;
				makeCodes&#40;root->left&#41;;
		}
		if&#40;root->right&#41;
		{
				strcpy&#40;root->right->code,root->code&#41;;
				strcat&#40;root->right->code,&#34;1&#34;&#41;;
				makeCodes&#40;root->right&#41;;
		}
}
 

I.G.O.R.E.K.

>Toxic moder
Регистрация
28 Ноя 2008
Сообщения
762
Реакции
3
Баллы
0
Возраст
32
Адрес
Пермь
Веб-сайт
Посетить сайт
Я в смысле визуально показать как выглядит.Скрин там что ли))
З.Ы. Скоро выложу свою базу.Это не так то легко,как казалось...

форум программистов.Очень помог в освоении программирования.
 

Mashyha

.:|| DCN ||:.
Регистрация
17 Апр 2009
Сообщения
596
Реакции
2
Баллы
0
Возраст
32
Адрес
Питер
Веб-сайт
www.ubi.com
вот визуально-то она выглядит нехорошо)) Просто консольное меню, даже без кнопок)) После нажатия чего-либо вылезает "контекстное меню" с доп подсказками

ЗЫ Э-не, как говорит 1 человек: "Все задачи бывают простые и очень простые". Если легко сделать, то очень простая, если нерешаемая - то тоже очень простая :p
ЗЫЫ у нас тут получилась персоональная тема :blink:
 

I.G.O.R.E.K.

>Toxic moder
Регистрация
28 Ноя 2008
Сообщения
762
Реакции
3
Баллы
0
Возраст
32
Адрес
Пермь
Веб-сайт
Посетить сайт
Покатит :blink: В паскале что то подобное у меня было.)



БД в Дельфи на 1000 записей.Пока реализованы ввод данных в таблицу,выход и прочие мелочи.Остается поиск и замена+сохранение в типизированный файл.
 

Mashyha

.:|| DCN ||:.
Регистрация
17 Апр 2009
Сообщения
596
Реакции
2
Баллы
0
Возраст
32
Адрес
Питер
Веб-сайт
www.ubi.com
красота :blink:
надо бы еще чего-нибудь из задач выложить....
 

Хамяг

Кандидат
Регистрация
19 Авг 2010
Сообщения
132
Реакции
3
Баллы
0
Увлекаюсь программированием на Object Pascal (он же Delphi). Довольно неплохо получается.
 
Сверху