HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #3031  
Старый 11.03.2009, 02:41
cremator (c)
Постоянный
Регистрация: 20.06.2008
Сообщений: 323
Провел на форуме:
1240829

Репутация: 165
Отправить сообщение для cremator (c) с помощью ICQ
По умолчанию

Цитата:
Сообщение от lll6  
Помогите заполнить массив в таком вот порядке
Код:
1  3  4   10
2  5  9   11
6  8  12  15
7  13 14  16
То есть по диагонали заполняется. Размеры массива могут быть любыми, массив квадратный.
Код:
  
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var MyArray:array [1..4,1..4] of integer; i,j,x:integer;
begin
for i:=1 to 4 do
for j:=1 to 4 do
begin
readln(x);
MyArray[i,j]:=x;
end;
end.
Я так понял?//

PS не знал что в 1м классе уже паскаль проходят/// х(
 
Ответить с цитированием

  #3032  
Старый 11.03.2009, 13:12
KIR@PRO
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
Провел на форуме:
905389

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

Цитата:
Сообщение от cremator (c)  
Указательный тип! Pointer.
Объявление переменной как указателя на тип Integer - P: ^Integer;
P^ := 10; - присвоение значения указателю

http://www.rsdn.ru/article/Delphi/Delphi_7_02.xml - 2.15.1. Понятие указателя

спс за ссылку но то что ты написал понять трудно...
мог бы просто скопировать из статьи:

Цитата:
P^ := 10; // Здесь умышленно опущено приведение типа


Символ ^, записанный после имени указателя, называется оператором доступа по адресу. В данном примере переменной, расположенной по адресу, хранящемуся в P, присваивается значение 10. Так как в переменную P мы предварительно занесли адрес N, данное присваивание приводит к такому же результату, что иN := 10;
кратко смысл в том что мы в переменную (к примеру N1) заносим адрес другой переменной (N1:=@N2) теперь в N1 хранится адрес, в памяти, переменной N2 и мы можем изменять N2 исмользуя N1 (N1^:=15 (при условии что N2 числового типа)) вот... =)

the End.
 
Ответить с цитированием

  #3033  
Старый 11.03.2009, 14:38
FindeR
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
Провел на форуме:
2589211

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

Цитата:
Сообщение от cremator (c)  
.....Я так понял?//

PS не знал что в 1м классе уже паскаль проходят/// х(
И чё за чушь ты написал?

lll6, интересная, конечно, задача. Но нудноватая)) Если пишешь на дельфи, то кинь на форму edit, button и StrinGgrid. Если на паскале, просто бери readln'ом размерность массива, а вместо StringGrid1.Cells[....] пиши нужный тебе массив и нужный элемент массива.

Код:
procedure TForm1.Button1Click(Sender: TObject);
var mas: array of integer;
n,i,s,q,buf,buf2,number:integer;
begin
Setlength(mas,StrToInt(Edit1.text)); //задаём размер массива

stringgrid1.ColCount :=length(mas)+1; //размеры StringGrid
stringgrid1.RowCount := length(mas)+1;
number := 0;
for n:=1 to length(mas) do begin
i:=n;
 for s:=1 to n do begin
  number := number+1;
  stringgrid1.Cells[s,i]:=IntToStr(number);
  i:=i-1;
 end;
end;

i:=length(mas);

for s:=2 to length(mas) do begin
 number := number+1;
 buf:=s;buf2:=i;
 stringgrid1.Cells[s,i]:=IntToStr(number);;
 i:=i-1;
end;

for s:=3 to length(mas) do begin
 buf2:=s-1;
 for n:=length(mas) downto s do begin
  number := number+1;
  buf2:=buf2+1;
  stringgrid1.Cells[n,buf2]:=IntToStr(number);;
 end;
end;


end;
Ну а дальше вписывай в Edit нужную размерность и тыкай кнопку. Немного не такая последовательность, как ты просил, но переделать, думаю, труда не составит.
Код:
[1,1], [1,2], [2,1], [3,1], [2,2], [1,3], [1,4], [2,3], [3,2], [4,1], [4,2], [3,3], [2,4], [3,4], [4,3], [4,4]
Улови тут последовательность (для матрицы 4х4), будет тебе счастье))
 
Ответить с цитированием

Pascal
  #3034  
Старый 11.03.2009, 16:35
LASS0
Познающий
Регистрация: 03.01.2009
Сообщений: 33
Провел на форуме:
1536015

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

Помогите пожалуйста решить задачку двумя способами, через цикл repeat until
и через for

--------------------------------------------------
Дано a=2.8 , b=-0.3 , c=4
Вычислить и напечатать значение функции:

y=(a+b*x)/sqrt(x*x+4) ,если x<1.4
y=a*(x*x)+b*x+c ,если x=1.4
y=a/x+exp(a*b) ,ecли x>1.4

где x изменяется в интервале от 0.8 до 2.8 с шагом 0.2
--------------------------------------------------

Через while do смог написать, а через repeat until
и через for незнаю


Код:
Program z1;
uses crt;
var a,b,c,x,y:real;

begin
a:=2.8;
b:=-0.3;
c:=4;
x:=0.8;
while x<2.8 do
    begin
       if x<1.4 then
       y:=(a+b*x)/sqrt(x*x+4)
       else
       if x=1.4 then
       y:=a*(x*x)+b*x+c
       else
       y:=a/x+exp(a*b);
    writeln ('x=',x:8:2,'  y=',y:8:2);
    x:=x+0.2;
  end;
readkey;
end.

Последний раз редактировалось LASS0; 11.03.2009 в 16:38..
 
Ответить с цитированием

  #3035  
Старый 11.03.2009, 19:56
lll6
Познающий
Регистрация: 01.03.2008
Сообщений: 99
Провел на форуме:
613745

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

Цитата:
Сообщение от cremator (c)  
Я так понял?
Нет, ты понял не так, а на глупые шутки я не обижаюсь.
Цитата:
Сообщение от FindeR  
Код:
[1,1], [1,2], [2,1], [3,1], [2,2], [1,3], [1,4], [2,3], [3,2], [4,1], [4,2], [3,3], [2,4], [3,4], [4,3], [4,4]
Улови тут последовательность (для матрицы 4х4), будет тебе счастье))
Представлял уже так, но никак не мог реализовать, огромное спасибо за помощь, увидел код и сразу понял
 
Ответить с цитированием

  #3036  
Старый 11.03.2009, 20:09
lll6
Познающий
Регистрация: 01.03.2008
Сообщений: 99
Провел на форуме:
613745

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

Цитата:
Сообщение от LASS0  
Помогите пожалуйста решить задачку двумя способами, через цикл repeat until
и через for
С repeat
Код:
Program z1;
var a,b,c,x,y:real;

begin
a:=2.8;
b:=-0.3;
c:=4;
x:=0.8;
repeat
       if x<1.4 then
       y:=(a+b*x)/sqrt(x*x+4)
       else
       if x=1.4 then
       y:=a*(x*x)+b*x+c
       else
       y:=a/x+exp(a*b);
    writeln ('x=',x:8:2,'  y=',y:8:2);
    x:=x+0.2;
until x>2.8;
end.
А вот в for в паскале шаг может быть равен только единице, да и числа только целые, вот пример реализации, думаю пойдёт.
Код:
Program z1;
var a,b,c,y,f:real;
x:integer;
begin
a:=2.8;
b:=-0.3;
c:=4;
For x:=8 to 26 do
    begin
    if x mod 2 = 0 then begin
       f:=x/10;
       if f<1.4 then
       y:=(a+b*f)/sqrt(f*f+4)
       else
       if f=1.4 then
       y:=a*(f*f)+b*f+c
       else
       y:=a/f+exp(a*b);
    writeln ('x=',x/10:8:2,'  y=',y:8:2);
  end;
  end;
end.
 
Ответить с цитированием

  #3037  
Старый 11.03.2009, 21:16
ZET36
Участник форума
Регистрация: 08.10.2007
Сообщений: 259
Провел на форуме:
500748

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

Я вот всё пытаюсь загрузить файл по средствам сокетов

Код:
var Site : PChar;
   sock : TSocket;
   HostEnt : PHostEnt;
   WSA : TWSAData;
   addr : sockaddr_in;
   sendbuff : String;
   PostData : String;


  f:TextFile;
  i:integer;
  buf:array[0..255] of char;
begin

if WSAStartup($0101, WSA) <> 0 then
Exit;
sock := Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
FillChar(addr, SizeOf(sockaddr_in), 0);
addr.sin_family := AF_INET;
addr.sin_port := htons(80);
Site := 'www.google.ru';
HostEnt := gethostbyname(Site);
addr.sin_addr.s_addr := Longint(PLongint(HostEnt^.h_addr_list^)^);

Connect(sock, addr, SizeOf(addr));
 sendbuff := 'GET /images/nav_logo3.png HTTP/1.0'#13#10+
'Accept: */*;q=0.1'#13#10+
'Referer: http://www.google.ru/search?hl=ru&newwindow=1&q=zz&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=&aq=f&oq='#13#10+
'Accept-Language: ru'#13#10+
'Proxy-Connection: Keep-Alive'#13#10+
'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.8 (build 01709); .NET CLR 1.1.4322)'#13#10+
'Host: www.google.ru'#13#10#13#10;

       send(sock, sendbuff [1], Length(sendbuff), 0);
       AssignFile(f, 'logo.html');
          Rewrite(f);
         repeat
            i := recv(sock, buf, sizeof(255), 0);
             write(f, copy(buf,1,i));

          until
            (i = 0) or (i = SOCKET_ERROR);

       CloseSocket(sock);
        CloseFile(f);
     end;
но в файл, как и положено вместе с телом запроса добавляется и header
Код:
HTTP/1.0 200 OK
Content-Type: image/png
Last-Modified: Wed, 11 Feb 2009 03:40:02 GMT
Expires: Sun, 17 Jan 2038 19:14:07 GMT
Cache-Control: public
Date: Wed, 11 Mar 2009 17:10:09 GMT
Server: gws
Content-Length: 6339
Age: 3
Connection: Close
как этого избежать и не будет ли файл битым или тело запроса нужно ещё шифровать в base64 перед приёмом?
 
Ответить с цитированием

  #3038  
Старый 11.03.2009, 21:24
eLWAux
Постоянный
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

LASS0, зачем создавать тему и тут писать?!
https://forum.antichat.ru/showthread.php?p=1163693#post1163693
 
Ответить с цитированием

  #3039  
Старый 11.03.2009, 21:50
Maxxxtri23
Познающий
Регистрация: 20.12.2008
Сообщений: 76
Провел на форуме:
432982

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

Собсно вопрос еще актуален
Цитата:
Сообщение от Maxxxtri23  
Так как обозначить процедуру для элемента массива?
Незнаю может быть я неправильно выражаюсь но мне надо: Вот у обычного TICQclient компонента кинутого на форму, есть эвенты, например OnLogin, тоесть как клиент подключается выполняется некое действие. Например
Код:
procedure TMain.ICQclientLogin(Sender: TObject);
begin
Label1.Caption:='Connected';
end;
А вот как работать с этими эвентами только с массивом компонентов
Код:
Bot:array of TICQClient;
Тоесть это должно быть нечто
Код:
procedure TMain.Bot[i]Login(Sender: TObject)
где i это будет цикл всех компонентов массива например от 0 до 10. Помогите плиз, если можно киньте исходник
 
Ответить с цитированием

  #3040  
Старый 11.03.2009, 22:10
Hellsp@wn
Постоянный
Регистрация: 29.04.2007
Сообщений: 496
Провел на форуме:
2715445

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

как то так:
Код:
type
  TForm1 = class(TForm)
...
procedure OnMessageRecv(Sender: TObject; Msg, UIN: String);
...
procedure TForm1.OnMessageRecv(Sender: TObject; Msg, UIN: String);
begin
...
end;
...
bot[n].OnMessageRecv:=Form1.OnMessageRecv;
с остальными событиями также.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2568 25.04.2026 12:58
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



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


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




ANTICHAT.XYZ