Здесь больше нет рекламы. Но могла бы быть, могла.


Ответ

Имя:
E-mail:
Тема:
Иконка сообщения:

подсказка: нажмите alt+s для отправки или alt+p для предварительного просмотра сообщения


Сообщения в этой теме

Автор: Corwin
« : 12/12/2010, 13:47:17 »

Слушать 80-й порт должен веб-сервер (Apache, IIS, nginx etc.), а браузер — отсылать на 80-й порт.
Автор: Амирель
« : 12/12/2010, 08:25:57 »

Зачем мне писать свой браузер или даунлоадер?
Если я правильно понял, то прослушать 80 порт- это значит настроить свой браузер на прием инфы только с этого порта. Причем это оказалось довольно легко. :)
Что дальше?
Автор: Corwin
« : 12/12/2010, 01:49:33 »

Ты хочешь чтобы я тебя так просто научил написать свой браузер или даунлоадер О_о
Автор: Амирель
« : 10/12/2010, 20:26:34 »

Цитировать
Слушать 80-й порт.
Угу, щас ухо к системнику приложу послушаю)
Ты мне подробно напиши так, как я в этом разбираюсь лишь слегка.
На этой ссылки я чей-т не нашел ответа.
Автор: Corwin
« : 10/12/2010, 20:10:42 »

Слушать 80-й порт.

А дальше:
http://ru.wikipedia.org/wiki/Заголовки_HTTP
RFC 2068, RFC 822 и т.д.
Автор: Амирель
« : 10/12/2010, 18:40:14 »

Еще один вопрос возник как можно "прочитать" протокол Http?
Автор: Амирель
« : 10/12/2010, 18:35:41 »

Собственно, когда я писал ответ на ваше приведущее сообщение, ко-мне подошел друг с шестого курса и указал мне те же ошибки, что и вы(еще некоторые другие у меня нашел) и объяснил их. Так что виноват, каюсь, был неправ.
Автор: Mrrl
« : 09/12/2010, 21:50:06 »

Злостный оффтопик
Откройте учебник по программированию...
Что тут полагается - обижаться или смеяться?  ;D

Цитировать
Цитировать
В C и в С++ "передача массива" и "передача указателя на первый элемент массива" это в точности одно и то же.
да, да, да, совсем одно и тоже. Откройте учебник по программирванию и посмотрите, чем указатель отличается от массива. К сожалению я свой конспект отдал так бы привел цитаты.
Но по памяти указатель-это переменная, которая содержит адрес некоторой области памяти.
Указатель отличается от массива в трех местах:
- они по-разному описываются
- имени массива нельзя ничего присвоить (и нельзя написать, например, A++), т.е. он ведет себя не как lvalue, а как константа.
- sizeof для них выдает разные значения.
Может быть, есть что-нибудь еще, но навскидку не вспомню.
Но если имя массива встречается в каком-то выражении (или присваивается указателю, или передается параметром), то оно воспринимается как указатель на первый элемент.
Вас же не смущает фрагмент:
int A[100],*b,*c;
b=A;
c=b+10;
*A=*(A+1)=*c=c[-1]+A[4];

Цитировать
зачем? Это же у нас переменная, которая используется не только в процедуре, но и в
основной программе?
Прежде всего - чтобы не вспоминать о том, что функция может испортить эту переменную. А то в какой-то момент у Вас появится код
for(i=0;i<16;i+=4) sin(4,A+i);
и придется долго разбираться, почему это программа вдруг стала бесконечно печатать одну и ту же строку.
Ну и вообще, простые переменные (не массивы) лучше описывать прямо там, где они используются. Всем будет проще - и программисту, и компилятору. Да и работать оно будет эффективнее.
Автор: Амирель
« : 09/12/2010, 21:28:10 »

Цитировать
В C и в С++ "передача массива" и "передача указателя на первый элемент массива" это в точности одно и то же.
да, да, да, совсем одно и тоже. Откройте учебник по программирванию и посмотрите, чем указатель отличается от массива. К сожалению я свой конспект отдал так бы привел цитаты.
Но по памяти указатель-это переменная, которая содержит адрес некоторой области памяти.
Цитировать
Кстати, зачем описывать массив дважды - снаружи и внутри main?
Да, теперь вижу, признаю прокол.
Цитировать
описал int i; внутри sin,
зачем? Это же у нас переменная, которая используется не только в процедуре, но и в
основной программе?
Цитировать
убрал &A[ i ] из printf после "vvedi chislo\n" - он там совсем не по делу
Угу тут вы правы.
Автор: Mrrl
« : 09/12/2010, 19:29:23 »

У вас в программе идет передача всего массива в процедур.
Легче передать указатель на первый эл-т массива.
В C и в С++ "передача массива" и "передача указателя на первый элемент массива" это в точности одно и то же. Вообще, любое использование имени массива в программе интерпретируется как указатель на его нулевой элемент.


Цитировать
Вероятно, предполагалось, что это будет массив, но идея осталась не реализованной.
Как это не реализованной?
Проблема была в том, что форум плохо показывает программу. Теперь я вижу, что там в самом деле массив, но:
  неужели компилятор в самом деле нормально воспринимает запись
int A[i];?
  Вообще то, при определении массива длина обязана быть константой (как это сделано в первом описании, перед sin). Кстати, зачем описывать массив дважды - снаружи и внутри main? Если он описан снаружи, то его видно ото всюду - его даже не надо передавать в фунцию sin.
   В последней версии я бы убрал строчку "int i,r, A[N];" перед sin, описал int i; внутри sin, исправил int A[ i ] на int A[N] в main и убрал &A[ i ] из printf после "vvedi chislo\n" - он там совсем не по делу. А так все еще остаются сомнения - в какой именно массив читаются вводимые числа. Не исключено, что в массив нулевой длины, описанный в main...




Автор: Амирель
« : 09/12/2010, 11:50:39 »

Mrrl

У вас в программе идет передача всего массива в процедур.
Легче передать указатель на первый эл-т массива.
Цитировать
Вероятно, предполагалось, что это будет массив, но идея осталась не реализованной.
Как это не реализованной? Я спрашиваю кол-во эл-тов нужных нам, потом запускаю цикл в котором и создаю массив из нужного кол-ва эл-тов. Сами элементы запрашиваются у пользователя.
То что я поставил N=100  я просто подстраховался (небудет же пользователь вводить 100 элементов, если надо можно сделать его нужного на размера).

Автор: Амирель
« : 09/12/2010, 11:36:21 »

вот исходник который надо было сделать, так как тот , который я выложил у меня не приняли пришлось на ходу перестраиваться.
#include <stdio.h>
#include <conio.h>
#include<math.h>
const int N = 100;
int i,r, A[N];
void sin(int r, int A[0])
{
  for ( i = 0; i < r; i ++ )
  printf("%d:%1.7f  ", A[i], sin(A[i]*3.141592/180) );
  }
main()
{
int i,r, A[i];
printf("vvedite kol-vo chisel\n");
scanf("%d",& r);
printf("vvedi chislo\n" , &A[i] );
for ( i = 0; i < r; i ++ )
 {
scanf ("%d", &A[i]);
}
sin(r,&A[0]) ;

getch();
}
Автор: Mrrl
« : 09/12/2010, 00:23:40 »

Если по исходной программе:
Сначала процедура. Принимает, вроде бы, массив, судя по описанию, из 100 элементов (потом станет понятно, что это не так, но это потом), дальше печатает 100-й элемент массива A[N] - но в этом массиве нет 100-го элемента - в нем есть элементы с индексами от 0 до 99 - и что дальше? Вероятно, после A идет [ i ] (которое съелось форумом)?
  В этом случае передача i идет не через параметр, как следовало бы, а через статическую переменную. Что не есть хороший стиль, который, к тому же, приводит к еще одной ошибке: переменная i, описанная в main, перекрывает область действия переменной i, описанной снаружи, и последняя не меняется. Так что странно, что печатались разные вещественные числа.
  Теперь main. В ней сначала все нормально, но потом в цикле вводятся числа, которые кладутся в одну и ту же переменную A. Вероятно, предполагалось, что это будет массив, но идея осталась не реализованной. Адрес A передается в процедуру, где он воспринимается, как начало массива. В результате, A[N] - это ячейка памяти, находящаяся где-то далеко от переменных программы. Хорошо, что в нее ничего не пишется.
  Более правильным был бы такой код (авторский стиль постараюсь сохранить):
#include <stdio.h>
#include <conio.h>
#include<math.h>
const int N = 100;
void sin(int r, int A[N])
{
 printf("%d:%1.7f ",r+1, sin(A[r]*3.141592/180) );
 }
main()
{
int i,r, A[N];
printf("vvedite kol-vo chisel\n");
scanf("%d",&r);
printf("vvedi chislo\n" );
for ( i = 0; i < r; i ++ )
 {
scanf ("%d", &A[i]);
}

for ( i = 0; i < r; i ++ )

sin(i,A) ;

getch();
}
Конечно, массив A следовало описать, как double, но это уже не так важно.
Автор: Амирель
« : 08/12/2010, 23:16:06 »

Ошибку не нашел, но результата добился)
Автор: Амирель
« : 08/12/2010, 22:43:30 »

ой здесь почему-то не печатает, но там идет не просто А , а А в квадратных скобочках и англ