ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #621  
Старый 10.06.2008, 16:10
Аватар для hoty
hoty
Познающий
Регистрация: 20.05.2008
Сообщений: 81
Провел на форуме:
224517

Репутация: 32
По умолчанию

--------PASCAL 7.0---------------
Все разобрался.
В программе две процедуры:
1) Заполняет массив, путем ввода цифр.
2) Выводит массив.
Также реализована возможность в теле программы создания и вывода массива через одну (!) строчку.

Цитата:
uses crt;
const n=5; {n-1}
var a,b, x: array [1..n] of integer;
var i,j: integer;

procedure fullmas (var x: array of integer); {procedure for create mas}
begin
writeln('x[i]');
for i:=1 to n do
begin
write('Enter ',i,' Element : '); readln(x[i]);
end;
end;

procedure printf (x: array of integer); {procedure for print mas to display}
begin
writeln('x[i]');
for i:=1 to n do
begin
writeln(i,'Element : ',x[i]);
end;
end;

begin
clrscr;

fullmas(a); {create mas with procedure}
printf (a); {print mas to dislay with procedure}

fullmas(b); {create mas with procedure}
printf (b); {print mas to dislay with procedure}

readkey;
end.
спасибо, всем кто помогал.

Последний раз редактировалось hoty; 10.06.2008 в 18:45..
 
Ответить с цитированием

  #622  
Старый 10.06.2008, 20:26
Аватар для xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx
Познающий
Регистрация: 20.01.2008
Сообщений: 65
Провел на форуме:
664107

Репутация: 25
Отправить сообщение для xxxxxxxxxxxxxxx с помощью ICQ
По умолчанию

задачка
дан *.cpp файл нужно убратьв нем все коментарии // и /* ----- */ помогите плиз
программа нужна на c++
 
Ответить с цитированием

  #623  
Старый 11.06.2008, 15:19
Аватар для Alrion
Alrion
Новичок
Регистрация: 07.06.2008
Сообщений: 9
Провел на форуме:
12960

Репутация: 0
По умолчанию

Мда такое ощущение что не видать мне зачета .
Теперь нужно в сниффер вставить анализатор пакетов, что бы содержимое пакета выводилось в виде 16 и ascii таблиц. Спасибо.
Код:
#include <conio.h>
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")

#define MAX_PACKET_SIZE    0x10000
#define SIO_RCVALL         0x98000001
// Буфер для приёма данных
char Buffer[MAX_PACKET_SIZE]; // 64 Kb

//Структура заголовка IP-пакета

typedef struct IPHeader {
  UCHAR   iph_verlen;   // версия и длина заголовка
  UCHAR   iph_tos;      // тип сервиса
  USHORT  iph_length;   // длина всего пакета
  USHORT  iph_id;       // Идентификация
  USHORT  iph_offset;   // флаги и смещения
  UCHAR   iph_ttl;      // время жизни пакета
  UCHAR   iph_protocol; // протокол
  USHORT  iph_xsum;     // контрольная сумма
  ULONG   iph_src;      // IP-адрес отправителя
  ULONG   iph_dest;     // IP-адрес назначения
} IPHeader;

char src[10];
char dest[10];
char ds[15];
unsigned short lowbyte;
unsigned short hibyte;

void main()
{
  WSADATA     wsadata;   // Инициализация WinSock.
  SOCKET      s;         // Cлущающий сокет.
  char        name[128]; // Имя хоста (компьютера).
  HOSTENT*    phe;       // Информация о хосте.
  SOCKADDR_IN sa;        // Адрес хоста
  IN_ADDR sa1;        //
  unsigned long        flag = 1;  // Флаг PROMISC Вкл/выкл.

  // инициализация
  WSAStartup(MAKEWORD(2,2), &wsadata);
  s = socket( PF_INET, SOCK_RAW, 0 );
  gethostname(name, sizeof(name));
  phe = gethostbyname( name );
  ZeroMemory( &sa, sizeof(sa) );
  sa.sin_family = AF_INET;
  sa.sin_addr.s_addr = ((struct in_addr *)phe->h_addr_list[0])->s_addr;
  bind(s, (SOCKADDR *)&sa, sizeof(SOCKADDR));
  
  // Включение promiscuous mode.
  ioctlsocket(s, SIO_RCVALL, &flag);

  // Бесконечный цикл приёма IP-пакетов.
  while( !_kbhit() )
  {
    int count;
    count = recv( s, Buffer, sizeof(Buffer), 0 );
    // обработка IP-пакета
    if( count >= sizeof(IPHeader) )
    {
      IPHeader* hdr = (IPHeader *)Buffer;
      //Начинаем разбор пакета...

	strcpy(src,"Пакет: ");
	CharToOem(src,dest);
	printf(dest);
	// Преобразуем в понятный вид адрес отправителя.
	printf("From ");
	sa1.s_addr = hdr->iph_src;
	printf(inet_ntoa(sa1));

	// Преобразуем в понятный вид адрес получателя.
	printf(" To ");
	sa1.s_addr = hdr->iph_dest;
	printf(inet_ntoa(sa1));

	// Вычисляем протокол. Полный список этих констант
	// содержится в файле winsock2.h
	printf(" Prot: ");
	if(hdr->iph_protocol == IPPROTO_TCP) printf("TCP ");
	if(hdr->iph_protocol == IPPROTO_UDP) printf("UDP ");
	if(hdr->iph_protocol == IPPROTO_IP) printf("IP ");
	if(hdr->iph_protocol == IPPROTO_ICMP) printf("ICMP ");
	if(hdr->iph_protocol == IPPROTO_IGMP) printf("IGMP ");
	if(hdr->iph_protocol == IPPROTO_GGP) printf("GGP ");
	if(hdr->iph_protocol == IPPROTO_PUP) printf("PUP ");
	if(hdr->iph_protocol == IPPROTO_IDP) printf("IDP ");
	if(hdr->iph_protocol == IPPROTO_ND) printf("ND ");
	if(hdr->iph_protocol == IPPROTO_ICLFXBM) printf("ICLFXBM"); 
    if(hdr->iph_protocol == IPPROTO_ICMPV6) printf("ICMPV6");
	if(hdr->iph_protocol == IPPROTO_IPV6) printf("IPv6");
	if(hdr->iph_protocol == IPPROTO_RAW) printf("RAW ");
	if(hdr->iph_protocol == IPPROTO_MAX) printf("MAX ");
	

	

	// Вычисляем размер. Так как в сети принят прямой порядок
	// байтов, а не обратный, то прийдётся поменять байты местами.
	printf("Size: ");
	lowbyte = hdr->iph_length>>8;
	hibyte = hdr->iph_length<<8;
	hibyte = hibyte + lowbyte;
	//printf("%s",itoa(hibyte,ds,10));
	printf("%u", hibyte);

	// Вычисляем время жизни пакета.
	printf(" TTL:%s",itoa(hdr->iph_ttl,ds,10));
	printf("\n");

    }
  }

  closesocket( s );
  WSACleanup();
}
Зы. Хотелось бы что бы код был вписан в текущий, потомучто сам я никак не спралюсь с этим . Еще раз спасибо
 
Ответить с цитированием

  #624  
Старый 11.06.2008, 15:48
Аватар для Delimiter
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

Код:
#include <conio.h>
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")

#define MAX_PACKET_SIZE    0x10000
#define SIO_RCVALL         0x98000001
// Буфер для приёма данных
char Buffer[MAX_PACKET_SIZE]; // 64 Kb

//Структура заголовка IP-пакета

typedef struct IPHeader {
  UCHAR   iph_verlen;   // версия и длина заголовка
  UCHAR   iph_tos;      // тип сервиса
  USHORT  iph_length;   // длина всего пакета
  USHORT  iph_id;       // Идентификация
  USHORT  iph_offset;   // флаги и смещения
  UCHAR   iph_ttl;      // время жизни пакета
  UCHAR   iph_protocol; // протокол
  USHORT  iph_xsum;     // контрольная сумма
  ULONG   iph_src;      // IP-адрес отправителя
  ULONG   iph_dest;     // IP-адрес назначения
} IPHeader;

char src[10];
char dest[10];
char ds[15];
unsigned short lowbyte;
unsigned short hibyte;


 void mytransstr( char *buf,int len,char *dst)
 {
   int i,k=0;
   char prstr[10];
   char tstr[10];
   char pstr[40];
   char dstr[40];
   unsigned long m;
   strcpy(dst,"");
   strcpy(pstr,"");
   for(i=0,k=0;i<len;i++)
   {
	   if(*((unsigned char *)(buf+i))<16)
	   {
		   strcpy(prstr,"0");
		   strcat(pstr,".");
	   }
	   else
	   {
		   strcpy(prstr,"");
		   sprintf(dstr,"%c",*((unsigned char *)(buf+i)));
		   strcat(pstr,dstr);
	   }
       m=(long )*((unsigned char *)(buf+i));
	   ultoa(m,tstr,16);
       strcat(prstr,tstr);
	   strcat(dst,prstr);
	   strcat(dst," ");
	   if(k>14)
	   {
		   strcat(dst,"\t| ");
		   strcat(dst,pstr);
		   strcpy(pstr,"");
		   strcat(dst,"\r\n");
		   k=0;
	   }
	   else
		   k++;


   }
   strcat(dst,"\t| ");
   strcat(dst,pstr);
   strcat(dst,"\r\n");
   strupr(dst);
 }



void main()
{
  WSADATA     wsadata;   // Инициализация WinSock.
  SOCKET      s;         // Cлущающий сокет.
  char        name[128]; // Имя хоста (компьютера).
  HOSTENT*    phe;       // Информация о хосте.
  SOCKADDR_IN sa;        // Адрес хоста
  IN_ADDR sa1;        //
  unsigned long        flag = 1;  // Флаг PROMISC Вкл/выкл.
  char *place_for; // added !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  // инициализация
  WSAStartup(MAKEWORD(2,2), &wsadata);
  s = socket( PF_INET, SOCK_RAW, 0 );
  gethostname(name, sizeof(name));
  phe = gethostbyname( name );
  ZeroMemory( &sa, sizeof(sa) );
  sa.sin_family = AF_INET;
  sa.sin_addr.s_addr = ((struct in_addr *)phe->h_addr_list[0])->s_addr;
  bind(s, (SOCKADDR *)&sa, sizeof(SOCKADDR));
  
  // Включение promiscuous mode.
  ioctlsocket(s, SIO_RCVALL, &flag);

  // Бесконечный цикл приёма IP-пакетов.
  while( !_kbhit() )
  {
    int count;
    count = recv( s, Buffer, sizeof(Buffer), 0 );
    // обработка IP-пакета
    if( count >= sizeof(IPHeader) )
    {
      place_for=new char[count*3]; // added !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      IPHeader* hdr = (IPHeader *)Buffer;
      //Начинаем разбор пакета...
      
	strcpy(src,"Пакет: ");
	CharToOem(src,dest);
	printf(dest);
	// Преобразуем в понятный вид адрес отправителя.
	printf("From ");
	sa1.s_addr = hdr->iph_src;
	printf(inet_ntoa(sa1));

	// Преобразуем в понятный вид адрес получателя.
	printf(" To ");
	sa1.s_addr = hdr->iph_dest;
	printf(inet_ntoa(sa1));

	// Вычисляем протокол. Полный список этих констант
	// содержится в файле winsock2.h
	printf(" Prot: ");
	if(hdr->iph_protocol == IPPROTO_TCP) printf("TCP ");
	if(hdr->iph_protocol == IPPROTO_UDP) printf("UDP ");
	if(hdr->iph_protocol == IPPROTO_IP) printf("IP ");
	if(hdr->iph_protocol == IPPROTO_ICMP) printf("ICMP ");
	if(hdr->iph_protocol == IPPROTO_IGMP) printf("IGMP ");
	if(hdr->iph_protocol == IPPROTO_GGP) printf("GGP ");
	if(hdr->iph_protocol == IPPROTO_PUP) printf("PUP ");
	if(hdr->iph_protocol == IPPROTO_IDP) printf("IDP ");
	if(hdr->iph_protocol == IPPROTO_ND) printf("ND ");
	if(hdr->iph_protocol == IPPROTO_ICLFXBM) printf("ICLFXBM"); 
    if(hdr->iph_protocol == IPPROTO_ICMPV6) printf("ICMPV6");
	if(hdr->iph_protocol == IPPROTO_IPV6) printf("IPv6");
	if(hdr->iph_protocol == IPPROTO_RAW) printf("RAW ");
	if(hdr->iph_protocol == IPPROTO_MAX) printf("MAX ");
	

	

	// Вычисляем размер. Так как в сети принят прямой порядок
	// байтов, а не обратный, то прийдётся поменять байты местами.
	printf("Size: ");
	lowbyte = hdr->iph_length>>8;
	hibyte = hdr->iph_length<<8;
	hibyte = hibyte + lowbyte;
	//printf("%s",itoa(hibyte,ds,10));
	printf("%u", hibyte);

	// Вычисляем время жизни пакета.
	printf(" TTL:%s",itoa(hdr->iph_ttl,ds,10));
	printf("\n");
        // added !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        mytransstr( Buffer,count,place_for); // дать весь 
        printf("%s\r\n",place_for);                // дамп включая
                                                                 // заголовок IP
              
        delete[] place_for;
    }
  }

  closesocket( s );
  WSACleanup();
}

Последний раз редактировалось Delimiter; 11.06.2008 в 15:55..
 
Ответить с цитированием

  #625  
Старый 11.06.2008, 19:02
Аватар для xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx
Познающий
Регистрация: 20.01.2008
Сообщений: 65
Провел на форуме:
664107

Репутация: 25
Отправить сообщение для xxxxxxxxxxxxxxx с помощью ICQ
По умолчанию

У кого есть исходники похожих программ на с++ поедлитесь плз с меня плюсы=)

1) решение квадратного уравнения
входные даннные текстовый файл с 3 мя действительными
числами. программа читает имя файла с командной строки

2) найти угол между двумя векторами данные в файле ( размерность векторов, действительные коэфициенты векторов(
угол вывести в градусах

3) дан файл с исходником на убрать все коментарии с него такие как (// и /* */)

4) перевод ссуммы с одной валюты в другую входные данные вывод в виде матрицы. 3 валюты
 
Ответить с цитированием

  #626  
Старый 11.06.2008, 19:31
Аватар для Delimiter
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

2 xxxxxxxxxxxx (3-я)
Код:
 void delete_rem(char *m_path)
{
   CFile f;
   CFileException e;
   char *file_buf;
   int fl=0;
   long l,i,n;
    if(f.Open(m_path,CFile::modeRead,&e))
   {
   	f.SeekToEnd();
        l=f.GetPosition();
        file_buf=new char[l];
	f.SeekToBegin();
	l=f.ReadHuge(file_buf,l);
	f.Close();
       for(i=0;i<l;i++)
       {
          switch(*(file_buf+i))
		  {
		  case 0x0d:
			  if(fl==1)
			  {
				  memmove(file_buf+n,file_buf+i,l-i);
				  l-=i-n;
				  i-=i-n;
				  fl=0;
			  }
			  break;
		  default:
			     if(i>0)
				  if(strncmp(file_buf+i-1,"//",2)==0 && fl==0)
				  { fl=1; n=i-1;}
				  else
				    if(strncmp(file_buf+i-1,"/*",2)==0)
					{ fl=2; n=i-1;}
					else
				          if(strncmp(file_buf+i-1,"*/",2)==0)
					 { 
					   if(fl==2)
					   {
			                         memmove(file_buf+n,file_buf+i+1,l-i-1);
						   l-=i-n;
				                   i-=i-n;
						   fl=0;
					   }

					 }

		  }
	   }
	   if(f.Open(m_path,CFile::modeCreate | CFile::modeWrite,&e))
	   {
                  f.WriteHuge(file_buf,l-1);
		   f.Close();
	   }
	delete[] file_buf;
  }
}
по поводу остальных задач .... ты должен был давать примеры входных данных в файле, если планируешь что ктото напишет, а если как некоторые думаешь ,что все уже кем то было написано, то Google в руки!

Последний раз редактировалось Delimiter; 11.06.2008 в 23:13..
 
Ответить с цитированием

  #627  
Старый 12.06.2008, 00:56
Аватар для xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx
Познающий
Регистрация: 20.01.2008
Сообщений: 65
Провел на форуме:
664107

Репутация: 25
Отправить сообщение для xxxxxxxxxxxxxxx с помощью ICQ
По умолчанию

а как реализовать получение входных данных с текстового файла ? к прммеру в блокноте написано 1 3 6 и что бы эти цыфры заганялись в переменные в программе?
 
Ответить с цитированием

  #628  
Старый 12.06.2008, 01:04
Аватар для Delimiter
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

считывай строку из файла затем из строки тащи числа sscanf -ОМ!
 
Ответить с цитированием

  #629  
Старый 12.06.2008, 17:29
Аватар для Mosvit
Mosvit
Познающий
Регистрация: 05.03.2007
Сообщений: 99
Провел на форуме:
744734

Репутация: 44
По умолчанию

Попытался составить программу, но чувствую что делаю не правильно
Задание такое:
Составить программу, предусматривающую чтение исходных данных с дискового файла. Задана числовая матрица. Представить столбцы в порядке возрастания наибольших элементов столбцов.

Я не могу понять, как файлу с набором цифр, загружаемому с компьютера, присвоить значение матрицы (a:array[1..n,1..m] of integer) если ему не надо ничего присваивать, то как дальше с ним работать (искать наибльший элемент в столбцах)?

Хочу загрузить этот файл, каким-то образом объяснить Паскалю что это матрица, а потом уже с помощью циклов искать в столбцах максимальные элементы и переставлять их соответственно.

Заранее всем откликнувшемся спасибо!

Вот что я сам написал:

Код:
program lab2;
uses crt;
const
m=5; n=5;
var a:array[1..n,1..m] of integer;
max,i,j,max,k:integer;
ft:text;
begin
clrscr;
assign(ft,'123.pas');
reset(ft);
max:=-1e20;
for j:=1 to m do
i:=i+1;
if max<a[i,j] then begin max:=a[j];
end;


readkey;
end.
Pascal.

Последний раз редактировалось Mosvit; 12.06.2008 в 17:32..
 
Ответить с цитированием

  #630  
Старый 12.06.2008, 17:32
Аватар для Fata1ex
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Берешь символ - если цифра, записываешь в массив, если пробел, идешь дальше. Берешь символ - если цифра, записываешь в массив, если переход на новую строку, инкрементируешь соответствующий аргумент. И так до конца файла.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сюда выкладываем все проги для фрикринга мобильников, которых знаем! nigger Сотовый фрикинг 5 11.04.2009 11:15
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT.XYZ