Вопросы по программированию

Автор Богдан, 03 Листопад 2007, 11:41:18

Попередня тема - Наступна тема

Andrii

Цитата: firefire від 17 Січень 2009, 23:13:15
Все "Дякую" мне в карму  :%)
Если что-то не получится - обращайся. Я помогу как смогу  ;)
ЗЫ. Ты хоть какую-то книгу по пхп дочитал?  :-[
Нєа. :-* Можеш порадити якусь для  трохивище початківця?

firefire

#501
Цитата: Andrii від 18 Січень 2009, 12:48:04
Нєа. :-* Можеш порадити якусь для  трохивище початківця?
Я начал с книги "Разработка Веб-приложений на PHP5", Олищука и Чапрыгина, но потом как оказалось там информацию можно законспектировать на 2 страницы А4/2 и выкинуть. Не советую тебе вообще эту книгу покупать. Все что там узнал:
1) Принцип работы GET, POST
2) Работа со строками
3) конструкция языка пхп
4) как пишется mysql_query
....и...и все ;D
Много раз хотел его выкинуть, но пожалел свои 44 грн, за которые я купил ту говнокнигу на Петровке.
Вывод: Никогда не жалей денег на знание!
Потом я начал читать о MySQL(так как перед тем сталкивался с ним очень часто). Можно о нем прочитать тут. 
Это будет хорошо если ты хоть какой-то другой язык программирование знаешь нормально. Вот я например. Что я делал? Тупо брал аналогию с Turbo Pascal и начал писать алгоритмы   :). Они все (языки программирование) единообразные, так что если хоть что-то знаешь немного, то можно отштамповать его n-раз.
А потом, начал потихоньку читать мануал. Брать тут . Только не все бери и читай. Будет нудно и "не цікаво". Только читай что тебе надо для поставленной задании. Будет у тебя цель - будет у тебя стремление узнать что-то.

ЗЫ. Заметил что даже крохотные знание по пхп очень помогают при создание говносвоих сайтов. Вот пример: 2 года назад Я пользовался Зумлой бездумно, и не мог даже код хтмл в пхп файл добавить, так как боялся ошибиться. А сейчас - пишу туда все-что попало  ;D

UPD: Тут советую читать такие статьи для начала:
+Базы данных
+Графика и PHP
+Вопросы безопасности
Также не помешало найти нормальную книгу по алгоритмам (но! там хоть и интересно читать, но трудно все это понимать...).
Об алгоритмах можно найти тут, тут. Знание алгоритмов очень хорошо экономит системных ресурсов(ведь в некоторых хостингах типа ho.ua, iphoster.ua есть ограничение на нагрузку).

А вот еще мануал. Справочник языка, Безопасность, Куки. А остальное можно почитать если душа это захочет  :)

ЗЫ
ОМГ, что-то я начал много писать  О_О

UPD:Тут еще есть готовые скрипты. Но заходи туда только в крайних случаях!
UPD: Вот нашел маленький учебнег для начинающего. Тыкать сюда. Маленький учебник, но основа там прописана. Удачи!
UPD: Его кстати можно сказать себе на комп. Скачать можно, тыкая сюда.

Andrii

Хтось знає як забрати після входу користувача його меню і вивести інше? І як зробити функції (кнопка редагувати і т.п)  чисто для адміна (щоб більше ніхто не бачив цього, а якшо юзер якось найди силку і перейде, то буде написано: "У вас немає прав для редагування!"

firefire

Цитата: Andrii від 18 Січень 2009, 17:21:16
Хтось знає як забрати після входу користувача його меню і вивести інше? І як зробити функції (кнопка редагувати і т.п)  чисто для адміна (щоб більше ніхто не бачив цього, а якшо юзер якось найди силку і перейде, то буде написано: "У вас немає прав для редагування!"
Так сделай админский логин. Если ты вводишь логин админ и пароль например, то выводит то что надо,а если не админ то выводит другое....

ЗЫ. Может все-таки ты прочитаешь какую-то книжку прежде чем начать что-то на пхп юзать?  ;)

firefire

Есть у меня кусок кода
$query = "SELECT nick, comment FROM comment WHERE file=".$file;
  $result = mysql_query($query);
  while($row = mysql_fetch_array($result, MYSQL_NUM)){
  echo "<hr><b>" .$row[0] ."told:</b><br>".$row[1]. "<hr>";

  }

Выводится при этом ошибка
ЦитатаWarning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in...
Указывается строка
Цитатаwhile($row = mysql_fetch_array($result, MYSQL_NUM)){
Не подскажите пожалуйста в чем тут ошибка?

Andrii

Я не дуже програміст (сам знаєш), але не так має бути
$query = mysql_query ("SELECT nick, comment FROM comment WHERE file=".$file);
$result=mysql_fetch_array ($query);

?
Ногами сильно не бити :-* :)

firefire

#506
Цитата: Andrii від 21 Січень 2009, 19:45:20
Я не дуже програміст (сам знаєш), але не так має бути
$query = mysql_query ("SELECT nick, comment FROM comment WHERE file=".$file);
$result=mysql_fetch_array ($query);

?
Ногами сильно не бити :-* :)
Какой же ты умный. Может пойдешь почитаешь мануал перед тем как что-то сказать?  ;)
PHP.NET MANUAL MYSQL
Возьмем любой(самый простой) пример, который приведен там.
   <?php
   mysql_connect
("localhost", "mysql_user", "mysql_password") or
       die(
"Could not connect: " . mysql_error());
   
mysql_select_db("mydb");

   
$result = mysql_query("SELECT id, name FROM mytable");

   while (
$row = mysql_fetch_array($result, MYSQL_NUM)) {
       
printf ("ID: %s  Name: %s", $row[0], $row[1]);  
   }

   
mysql_free_result($result);
?>

ЦитатаЯ не дуже програміст (сам знаєш)
Видимо да  ;D

Нашел где спрятана проблема.
MySQL запрос имеет форму:
SELECT nick, comment FROM comment WHERE file=\'33_1.PNG\'
где 33_1.PNG - данный в текстовое поле СУБД. Но если представить запрос как:
"SELECT nick, comment FROM comment WHERE file=\'".$file."\'"
то сервер выдает ошибку.
ЗЫ
ЦитатаНогами сильно не бити
Надо-надо  ;D

Если кто-то знает как это решить - пожалуйста помогите.

Anton T.

#507
Цитата: firefire від 21 Січень 2009, 16:25:46
Указывается строкаНе подскажите пожалуйста в чем тут ошибка?
Ошибка в том, что нет проверки if(!$result) ...

UPD
Попробуй заменить:
$result = mysql_query($query);
на
$result = mysql_query($query) or exit(mysql_error());

firefire

#508
Цитата: AntonT від 22 Січень 2009, 09:51:43
Ошибка в том, что нет проверки if(!$result) ...

UPD
Попробуй заменить:
$result = mysql_query($query);
на
$result = mysql_query($query) or exit(mysql_error());
Дело в том что в СУБД есть данные.
А оно не выводится   если туда впихать переменную string $file :(
UPD:
ЦитатаInvalid query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'53_1.PNG\'' at line 1

Anton T.

Ошибка в том, что ты кавычки неправильно ту лишь...

Попробуй так: "SELECT nick, comment FROM comment WHERE file=\'+".$file.\"+'
или так:"SELECT nick, comment FROM comment WHERE file=\'+"$file\"+'

firefire

Цитата: AntonT від 22 Січень 2009, 22:53:11
Ошибка в том, что ты кавычки неправильно ту лишь...

Попробуй так: "SELECT nick, comment FROM comment WHERE file=\'+".$file.\"+'
или так:"SELECT nick, comment FROM comment WHERE file=\'+"$file\"+'
Спасибо, но я уже решил проблему. Ты никогда не догадаешь как надо было написать этот запрос  :). Его надо писать вот так :
<?php
$sql
= sprintf("SELECT nick,comment FROM `comment` WHERE file='%s'",mysql_real_escape_string($file));
 
$result =  mysql_query($sql) or die("Invalid query: " . mysql_error());
?>

Функция sprintf преобразовывает строковые значения в 1 значение
А то что ты написал всеравно не правильно. Так как $file - string, и в нем уже есть скобки  ;)

zybrra

Мне необходимо подсчитать кол-во слов в текстовом поле, но как? Через keyPress пробовала по подсчету пробелов, но процедура доходит до первого пробела и заканчивается, те не накапливает кол-во пробелов. как сделать? :'(

firefire

Цитата: zybrra від 23 Січень 2009, 20:40:56
Мне необходимо подсчитать кол-во слов в текстовом поле, но как? Через keyPress пробовала по подсчету пробелов, но процедура доходит до первого пробела и заканчивается, те не накапливает кол-во пробелов. как сделать? :'(
На каком языке хотите сделать?

немой

Цитата: zybrra від 23 Січень 2009, 20:40:56
Мне необходимо подсчитать кол-во слов в текстовом поле, но как? Через keyPress пробовала по подсчету пробелов, но процедура доходит до первого пробела и заканчивается, те не накапливает кол-во пробелов. как сделать? :'(
в чем проблема на нажатие пробела поставить счетчик и++, только объяви и=0 где то повыше, чтоб не обнулялась при каждом нажатии пробела.

Edd.Dragon

#514
Цитата: zybrra від 23 Січень 2009, 20:40:56
Мне необходимо подсчитать кол-во слов в текстовом поле, но как? Через keyPress пробовала по подсчету пробелов, но процедура доходит до первого пробела и заканчивается, те не накапливает кол-во пробелов. как сделать? :'(

Не знаю что там у тебя не получалось...


// по-умолчанию пробельными считаем пробел, табуляцию и перевод строки
// строку передаем по ссылке, чтобы гарантировать ее наличие и не копировать ее экземпляр
int CountWords(const string& str, string spaceList = " \t\n")
{
    if(str.length() == 0)
    {
       return 0;
    }

    int i = 0;
    int n = 0;

    while (i != string::npos)
    {
        // ищем начало слова (перебираем все пробельные, мешающиеся под ногами)
        i = find_first_not_of(spaceList, i);
        if(i != string::npos)
        {
            // ищем первый пробел после слова (i-й символ НЕ пробел после предыдущего поиска)
            i = str.find_first_of(spaceList, i);
            n++;
        }
    }

    return n;
}


- каждый раз пропускаем пробелы, потом пропускаем непробелы и увеличиваем счетчик (т.к. это было слово);
- при этом поиски начинаем с прошлого места (i), а не с начала строки;
- при этом поиски производим, если предыдущий раз поиск не был неудачным - иначе мы перебрали строку до конца и можно сваливать.


P.S.: Сорри за мой ломанный C++ с использованием STL - ты не указал в чем пишешь.
P.P.S.: Код не проверял - возможны ляпы. Передана суть.
P.P.P.S.: Кейпресс тебе не нужен. Тебе нужно событие "значение поля изменилось", а котором ты и будешь прогонять всю строку - ничего страшного в этом нет, это будет незаметно, даже если ты будешь проверять сотню строк. А при перехвате нажатия тебе нужно будет учитывать и удаление символов\слов ))

Andrii

Цитата: firefire від 18 Січень 2009, 13:54:21
Я начал с книги "Разработка Веб-приложений на PHP5", Олищука и Чапрыгина, но потом как оказалось там информацию можно законспектировать на 2 страницы А4/2 и выкинуть. Не советую тебе вообще эту книгу покупать. Все что там узнал:
1) Принцип работы GET, POST
2) Работа со строками
3) конструкция языка пхп
4) как пишется mysql_query
....и...и все ;D
Много раз хотел его выкинуть, но пожалел свои 44 грн, за которые я купил ту говнокнигу на Петровке.
Вывод: Никогда не жалей денег на знание!
Потом я начал читать о MySQL(так как перед тем сталкивался с ним очень часто). Можно о нем прочитать тут. 
Это будет хорошо если ты хоть какой-то другой язык программирование знаешь нормально. Вот я например. Что я делал? Тупо брал аналогию с Turbo Pascal и начал писать алгоритмы   :). Они все (языки программирование) единообразные, так что если хоть что-то знаешь немного, то можно отштамповать его n-раз.
А потом, начал потихоньку читать мануал. Брать тут . Только не все бери и читай. Будет нудно и "не цікаво". Только читай что тебе надо для поставленной задании. Будет у тебя цель - будет у тебя стремление узнать что-то.

ЗЫ. Заметил что даже крохотные знание по пхп очень помогают при создание говносвоих сайтов. Вот пример: 2 года назад Я пользовался Зумлой бездумно, и не мог даже код хтмл в пхп файл добавить, так как боялся ошибиться. А сейчас - пишу туда все-что попало  ;D

UPD: Тут советую читать такие статьи для начала:
+Базы данных
+Графика и PHP
+Вопросы безопасности
Также не помешало найти нормальную книгу по алгоритмам (но! там хоть и интересно читать, но трудно все это понимать...).
Об алгоритмах можно найти тут, тут. Знание алгоритмов очень хорошо экономит системных ресурсов(ведь в некоторых хостингах типа ho.ua, iphoster.ua есть ограничение на нагрузку).

А вот еще мануал. Справочник языка, Безопасность, Куки. А остальное можно почитать если душа это захочет  :)

ЗЫ
ОМГ, что-то я начал много писать  О_О

UPD:Тут еще есть готовые скрипты. Но заходи туда только в крайних случаях!
UPD: Вот нашел маленький учебнег для начинающего. Тыкать сюда. Маленький учебник, но основа там прописана. Удачи!
UPD: Его кстати можно сказать себе на комп. Скачать можно, тыкая сюда.
Дик, так порадь добру книгу! Або скажи де про це говорили чи говорять!

firefire

#516
Цитата: zybrra від 23 Січень 2009, 20:40:56
Мне необходимо подсчитать кол-во слов в текстовом поле, но как? Через keyPress пробовала по подсчету пробелов, но процедура доходит до первого пробела и заканчивается, те не накапливает кол-во пробелов. как сделать? :'(
Вот написал на Pascal
{Language: Turbo Pascal 7.1}
program p1;
var:a:string;
    n,n1:byte;
begin
Readln(a); // Считаем данные
n1:=0; //Устанавливаем значение счетчика
n:=pos(" ",a); //Находим первый пробел в строке
while n<>0 do //Пока будет находится пробелы, выполняем...
begin
n1:=n1+1;  //Cчетчик +1
delete(a,n,1); //Удаляем найденный пробел
n:=pos(" ",a); //Продолжаем поиск..
end;
Writeln("Probelov:",n1); //Вывод
Readln; //Ждем когда человег почитает вывод =)
end.

ЦитатаP.S.: Сорри за мой ломанный C++ с использованием STL - ты не указал в чем пишешь.
P.S. Сорри за мой ломанный Turbo Pascal. Ты не указал что пишешь  ;D

Думаю в комментах к коду я объяснил понятными словами... Ну если не понятно - спроси - отвечу  :%) .

Цитата: Andrii від 24 Січень 2009, 21:55:55
Дик, так порадь добру книгу! Або скажи де про це говорили чи говорять!
А что я там тебе писал??! Или ты даже до конца поста не прочитал?  >:(
Тыц, Тыц, Тыц. А все остальное читай в том посте. Я ссылки указал  >:(

немой

Цитата: немой від 24 Січень 2009, 00:35:31
в чем проблема на нажатие пробела поставить счетчик и++, только объяви и=0 где то повыше, чтоб не обнулялась при каждом нажатии пробела.

кста, так будет криво. получается если между словами будет 2 пробела или поставить пробел и удалить, то считать будет не верно, так что лучше уже брать в стринг и считать кол-во пробелов, если до пробела и после больше пробелов нет.

firefire

Цитата: немой від 25 Січень 2009, 16:26:43
кста, так будет криво. получается если между словами будет 2 пробела или поставить пробел и удалить, то считать будет не верно, так что лучше уже брать в стринг и считать кол-во пробелов, если до пробела и после больше пробелов нет.
{Language: Turbo Pascal 7.1}
program p1;
var:a:string;
    n,n1:byte;
begin
Readln(a); // Считаем данные
n1:=0; //Устанавливаем значение счетчика
n:=pos(" ",a); //Находим первый пробел в строке
while n<>0 do //Пока будет находится пробелы, выполняем...
begin
    If (copy(a,n+1,1)<>" ") and (copy(a,n-1,1)<>" ") then
n1:=n1+1;  //Cчетчик +1
delete(a,n,1); //Удаляем найденный пробел
n:=pos(" ",a); //Продолжаем поиск..
end;
Writeln("Probelov:",n1); //Вывод
Readln; //Ждем когда человег почитает вывод =)
end.

Если так, то можно таким образом - проверять какой знак стоит перед пробелом и после пробела. Если там не пробел - Счетчик +1, а если есть - Счетчик стоит на месте.

Andrii

Цитата: firefire від 25 Січень 2009, 16:44:30
А что я там тебе писал??! Или ты даже до конца поста не прочитал?  >:(
Тыц, Тыц, Тыц. А все остальное читай в том посте. Я ссылки указал  >:(
Перший раз коли я читав, останніх лінків не було, а читати знов не хотів (бо думав нічого не прибавилося)
Придививлююся до цього сайта, може шось найду. Найшов книгу "PHP. Практика создания Web-сайтов", але шось вони там намутили. Поганенько, як на мене, зробили. Не порадиш схожу книгу?


Edd.Dragon

Цитата: firefire від 24 Січень 2009, 21:58:25
Вот написал на Pascal
Похоже у тебя просто подсчет пробелов вышел. При чем, вместо того, чтобы просто пройтись по строке для подсчета пробелов, ты каждый раз ищешь с самого начала и удаляешь найденный. Т.е. выполняешь в десятки раз больше машинных команд и операций с памятью, чем нужно.


firefire

Цитата: edd_k від 26 Січень 2009, 13:32:57
Похоже у тебя просто подсчет пробелов вышел. При чем, вместо того, чтобы просто пройтись по строке для подсчета пробелов, ты каждый раз ищешь с самого начала и удаляешь найденный. Т.е. выполняешь в десятки раз больше машинных команд и операций с памятью, чем нужно.
Ну ответ же выходит  ;)  :)

Цитата: Andrii від 26 Січень 2009, 13:21:42
Перший раз коли я читав, останніх лінків не було, а читати знов не хотів (бо думав нічого не прибавилося)
Придививлююся до цього сайта, може шось найду. Найшов книгу "PHP. Практика создания Web-сайтов", але шось вони там намутили. Поганенько, як на мене, зробили. Не порадиш схожу книгу?
Надо на Петровке покопаться. Папа вот дал 100 грн. Пойду в суботу книжку куплю какую-ту  :)

Edd.Dragon

#522
Цитата: firefire від 26 Січень 2009, 16:34:34
Ну ответ же выходит  ;)  :)
Надо на Петровке покопаться. Папа вот дал 100 грн. Пойду в суботу книжку куплю какую-ту  :)

И что получится на такой строке "[space][space][space][space]слово1[tab]слово2[space][space][space]"?


Если же условие жестко регламентирует, что табов в строке нет, лишних пробелов ни в начале, ни в конце, ни между словами тоже нет (что нежизнеспособно, учитывая, что ввод осуществляет пользователь), то посчитать пробелы логично так:

program p1;
var:s:string;
    i,n:byte;
begin
Readln(s);
n:=0;

           // собственно считаем
           for i:= 1 to Length(s)
begin
                 if(s[i] = ' ') Inc(n);
end;

           Writeln("Probelov:", n);
Readln;
end.


firefire

#523
[quote author=edd_k link=topic=1084.msg300841#msg300841 date=1232980672]
И что получится на такой строке "[color=pink][space][space][space][space][/color]слово1[color=pink][tab][/color]слово2[color=pink][space][space][space][/color]"?


Если же условие жестко регламентирует, что табов в строке нет, лишних пробелов ни в начале, ни в конце, ни между словами тоже нет (что нежизнеспособно, учитывая, что ввод осуществляет пользователь), то посчитать пробелы логично так:

[code]program p1;
var:s:string;
    i,n:byte;
begin
Readln(s);
n:=0;

           // собственно считаем
           for i:= 1 to Length(s)
begin
                 if(s[i] = ' ') Inc(n);
end;

           Writeln("Probelov:", n);
Readln;
end.


[/quote]
Ты видимо не прочитал дальше что я написал  ;). И строка состоит из 256 символов в Паскале, так что много место в памяти и в ресурсах не займет  ;)
Цитата: firefire від 25 Січень 2009, 16:44:30
{Language: Turbo Pascal 7.1}
program p1;
var:a:string;
    n,n1:byte;
begin
Readln(a); // Считаем данные
n1:=0; //Устанавливаем значение счетчика
n:=pos(" ",a); //Находим первый пробел в строке
while n<>0 do //Пока будет находится пробелы, выполняем...
begin
    If (copy(a,n+1,1)<>" ") and (copy(a,n-1,1)<>" ") then
n1:=n1+1;  //Cчетчик +1
delete(a,n,1); //Удаляем найденный пробел
n:=pos(" ",a); //Продолжаем поиск..
end;
Writeln("Probelov:",n1); //Вывод
Readln; //Ждем когда человег почитает вывод =)
end.

Если так, то можно таким образом - проверять какой знак стоит перед пробелом и после пробела. Если там не пробел - Счетчик +1, а если есть - Счетчик стоит на месте.
Цитата: edd_k від 26 Січень 2009, 16:37:52
if(s = ' ') Inc(n);
[/code]
у тебя переменная "s" не масив  ;)

βεερ_βooρ

Цитата: firefire від 26 Січень 2009, 18:09:26
И строка состоит из 256 символов в Паскале, так что много место в памяти и в ресурсах не займет  ;)
А если у меня этих строк 13 497 321 521?
Цитата: firefire від 26 Січень 2009, 18:09:26
у тебя переменная "s" не масив  ;)
С каких это пор классическая паскалевская строка не массив? >:(
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?

firefire

Цитата: beep_boop від 26 Січень 2009, 18:23:04
С каких это пор классическая паскалевская строка не массив? >:(
:-[  :%) Упс. Глаза кривые. Я посмотрел  не туда

Garfi

Компилятор - Dev-C++ 4.9.9.2, при выполнении выводит окно с ошибкой:


# include <iostream>
# include <math.h>

int main(){
  using namespace std;

  system ( "cls" );
  int n, i, j;
  const float pi=3.1415926535;
  cout << "n="; cin >> n;
   
  float **a=new float*[n];
    for (i=0; i<n; i++)
    a[i]=new float[n];
 

 
  for (i=1; i<=n; i++)
  for (j=1; j<=n; j++){
  a[i][j]=sin ((pow(i,2)-pow(j,3))/n)*pi/180;
  }

  for(i=1; i<=n; i++){
  for(j=1; j<=n; j++)
cout << a[i][j] << ' ';
cout << "\n";
  }

  int s=0;
  for (i=1; i<=n; i++)
  for (j=1; j<=n; j++){
    if (a[i][j]>0) {s++;}
  }
 
  delete [] a;
   
  cout << s << "\n";
  system ( "pause" );
  return 0;
}


никаких ошибок или предупреждений при компиляции не выводит...
собсно окно с ошибкой:

FalseMan

Цитата: Garfi від 26 Січень 2009, 21:03:08
Компилятор - Dev-C++ 4.9.9.2, при выполнении выводит окно с ошибкой:

...

bohdan@home-br ~/src/tmp % g++ -o a.o a.cpp
a.cpp: In function 'int main()':
a.cpp:7: ошибка: нет декларации 'system' в этой области видимости
bohdan@home-br ~/src/tmp % g++ -v
Используются внутренние спецификации.
Целевая архитектура: i686-pc-linux-gnu
Параметры конфигурации: ../configure --prefix=/usr --enable-shared --enable-languages=c,c++,fortran,objc,obj-c++,treelang --enable-threads=posix --mandir=/usr/share/man --infodir=/usr/share/info --enable-__cxa_atexit --disable-multilib --libdir=/usr/lib --libexecdir=/usr/lib --enable-clocale=gnu --disable-libstdcxx-pch --with-tune=generic
Модель многопотоковости: posix
gcc версия 4.3.2 (GCC)
bohdan@home-br ~/src/tmp %

что это за system такой? :-\

Богдан

#528
Я наступний в черзі.

Цей суперскріпт працює всюди, крім Лисиці:


<form action="" method="POST">
...
<label>
<input type="submit" id="submit" value="Login" />
</label>
</form>

<script type="text/javascript">
window.document.getElementById('submit').outerHTML = '<input type="button" id="submit" value="Login" />';
</script>
Тобто, якщо джаваскріпт увімкнений, то робиться заміна submit на button, щоб сторінка не оновлювалась ( дані форми будуть слатись аджаксом).

Помилок в логах немає. Фокс взагалі не реагує на будь-який outerHTML до цього сабміта. Чому?

Garfi

#529
FalseMan, system( "cls"); system( "pause" ); аналоги функций clrscr(); и getch(); библиотеки conio.h в Dev-Cpp.

FalseMan

#530
Цитата: Garfi від 26 Січень 2009, 21:23:22
FalseMan, system( "cls"); system( "pause" ); аналоги функций clrscr(); и getch(); библиотеки conio.h в Dev-Cpp.
закомментил те две строки. Твой код выдает Segmentation Fault.

UPD:

хм.. что-то не нраятся мне строки

float **a=new float*[n];
    for (i=0; i<n; i++)
    a[i]=new float[n];


хотя...

UPD2
туплю, там все ок.

UPD3

а почемы ты вылазишь за границы массива?

float **a=new float*[n];
    for (i=0; i<n; i++)
    a[i]=new float[n];

тут все ок
а тут, например:
for(i=1; i<=n; i++){
  for(j=1; j<=n; j++)
cout << a[i][j] << ' ';
cout << "\n";
  }

начинаешь с единицы еще и <= т.е. гарантированно вылезаешь за пределы на 1 элемент, а 0-ой вообще не используется...

ЗЫ И освобождение памяти, как и выделение, AFAIK тоже надо делать в цикле ;)

firefire

Цитата: Богдан від 26 Січень 2009, 21:14:04

<script type="text/javascript">
window.document.getElementById('submit').outerHTML = '<input type="button" id="submit" value="Login" />';
</script>

Ты пробовал поменять знак ' и " местами? В смысле вот так:

<script type="text/javascript">
window.document.getElementById('submit').outerHTML = "<input type='button' id='submit' value='Login' />";
</script>

Богдан

Цитата: firefire від 26 Січень 2009, 21:31:12

<script type="text/javascript">
window.document.getElementById('submit').outerHTML = "<input type='button' id='submit' value='Login' />";
</script>

Те саме.

Garfi

FalseMan, по условию подразумевается создание динамического двумерного масива...я экспериментировал с левой переменной для строк...не помогает...

firefire

Цитата: Богдан від 26 Січень 2009, 21:34:24
Те саме.
Я правильно подумал или нет? Что "те саме"?  :)

Богдан

Цитата: firefire від 26 Січень 2009, 21:35:30
Я правильно подумал или нет? Что "те саме"?  :)
Заміною лапок проблема не вирішилась)

firefire

Цитата: Богдан від 26 Січень 2009, 21:37:22
Заміною лапок проблема не вирішилась)
А может быть:
<script type="text/javascript">
window.document.getElementById([b]id[/b]).outerHTML = "<input type='button' id='submit' value='Login' />";
</script>

а не submit?

FalseMan

Garfi, вот рабочий вариант и его вызов:
bohdan@home-br ~/src/tmp % cat a.cpp
# include <iostream>
# include <math.h>

int main(){
 using namespace std;

//  system ( "cls" );
 int n, i, j;
 const float pi=3.1415926535;
 cout << "n="; cin >> n;
 
 float **a=new float*[n];
   for (i=0; i<n; i++)
   a[i]=new float[n];
 

 
 for (i=0; i<n; i++)
 for (j=0; j<n; j++){
 a[i][j]=sin ((pow(i,2)-pow(j,3))/n)*pi/180;
 }

 for(i=0; i<n; i++){
 for(j=0; j<n; j++)
cout << a[i][j] << ' ';
cout << "\n";
 }

 int s=0;
 for (i=0; i<n; i++)
 for (j=0; j<n; j++){
   if (a[i][j]>0) {s++;}
 }
 
 for(i=0; i<n; i++) delete a[i]; delete[]a;
 //delete [] a;
 
 cout << s << "\n";
//  system ( "pause" );
 return 0;
}
bohdan@home-br ~/src/tmp % g++ -o a.o a.cpp
bohdan@home-br ~/src/tmp % ./a.o
n=5
0 -0.00346743 -0.0174459 0.0134873 -0.00404061
0.00346743 0 -0.0171993 0.0154192 -0.000586833
0.0125202 0.00985487 -0.0125202 0.0173432 0.00936496
0.0169968 0.0174459 0.00346743 0.00772344 0.0174531
-0.00101882 0.00246301 0.0174459 -0.0141109 0.00304258
15
bohdan@home-br ~/src/tmp %

Резалт как я понял правильный. Ну и ок :) Ты же понял свою ошибку?

Богдан

Цитата: firefire від 26 Січень 2009, 21:42:45
А может быть:
<script type="text/javascript">
window.document.getElementById([b]id[/b]).outerHTML = "<input type='button' id='submit' value='Login' />";
</script>

а не submit?

Нє, функції getElementById() треба сам айдішник) Ти щось плутаєш.

Ммм. Спробую переписати з <noscript></noscript>

Garfi

FalseMan, понял...память выгружал неправильно...в методичке криво описали сам процесс...не так понял... :-[

FalseMan

Цитата: Garfi від 26 Січень 2009, 21:56:38
FalseMan, понял...память выгружал неправильно...в методичке криво описали сам процесс...не так понял... :-[
+вылез за границы масссива :)

firefire

#541
Цитата: Богдан від 26 Січень 2009, 21:50:34
Нє, функції getElementById() треба сам айдішник) Ти щось плутаєш.

Ммм. Спробую переписати з <noscript></noscript>
Я путаю?  :P
Зайди сюда и посмотри исходный код страницы. Скрипт я писал.
Цитирую код
<script type="text/javascript">
function SelectAll(id)
{
document.getElementById(id).focus();
document.getElementById(id).select();
}
</script>

Что делает этот код? При нажатие на поле инпут выделяется все данные. Можешь нажать для проверки. И вроде-бы нормально работает  ;)
ЗЫ. поле инпут находится на следующей вкладке. И не нажимай на рекламу, а то модераторы скажут что я рекламирую свой сайт  ;D

Garfi

FalseMan, то уже я протупил...эксперементируя...изначально предполагалось везде делать (for x=1; x<=n; x++)...а потом забыл исправить... :-[

Богдан

Все, розібрався. А то вже хотів розбитись об стінку)

Так працює всюди:


<form action="" method="POST">
...
<label id="submit_form">
<noscript>
<input type="submit" id="submit" value="Login" />
</noscript>
</label>
</form>

<script language="javascript" type="text/javascript">
window.document.getElementById('submit_form').innerHTML = "<input type='button' id='submit' value='Login' />";
</script>


Цитата: firefire від 26 Січень 2009, 22:00:23
Я путаю?  :P
Зайди сюда и посмотри исходный код страницы. Скрипт я писал.
Цитирую код
<script type="text/javascript">
function SelectAll(id)
{
document.getElementById(id).focus();
document.getElementById(id).select();
}
</script>

Что делает этот код? При нажатие на поле инпут выделяется все данные. Можешь нажать для проверки. И вроде-бы нормально работает  ;)
Там же id - задана функції при виклику змінна. В мене ж такої змінної нема) Я прямо передаю айді елемента)

FalseMan

Цитата: Garfi від 26 Січень 2009, 22:03:08
FalseMan, то уже я протупил...эксперементируя...изначально предполагалось везде делать (for x=1; x<=n; x++)...а потом забыл исправить... :-[
а зачем так? Нет, конечно, можно, но ведь один элемент остается неиспользованным... да и моя версия ИМХО более стандартна  :-\ Впрочем, это уже твоя головная боль :)

Garfi

Цитата: FalseMan від 26 Січень 2009, 22:05:49
а зачем так? Нет, конечно, можно, но ведь один элемент остается неиспользованным... да и моя версия ИМХО более стандартна  :-\ Впрочем, это уже твоя головная боль :)
так, лично мне, удобней потом вызывать определенные элементы массива...а нулевым элементом ради этого можно принебречь... ;)

βεερ_βooρ

Цитата: Garfi від 26 Січень 2009, 21:23:22
FalseMan, system( "cls"); system( "pause" ); аналоги функций clrscr(); и getch(); библиотеки conio.h в Dev-Cpp.
Приблезительнй смысл фразы: "В лаборатории микроскоп - это аналог молотка."
Функция system выполняет fork, затем заменяет контекст процесса на системный интерпритатор, которому передается параметр ф-ции - команда для выполнения. При этом основной процесс ждет завершения дочерного, созданого ф-цией fork.  Так что то что результат одинаковый в данном случае - то пускай и не совсем сучайность, но не из-за того что эта функция аналогична. К примеру в отличии от clrscr() system("cmd") нельзя вызывать в цикле.

system( "pause" ); - редкая дурость. Выполнение высокозатратного описаного выше процесса для создания паузы крайне нерационально. Вместо создания индуского кода неплохо почитать в начале документацию по стандартной библиотеке.
c=getch();
и
c=getc(stdin);
Одно и то же.
Если не знаешь как написать полноценную замену clrscr(); мог бы уже вывести 24 '\n'

Цитата: Garfi від 26 Січень 2009, 22:19:33
так, лично мне, удобней потом вызывать определенные элементы массива...а нулевым элементом ради этого можно принебречь... ;)
Ты С с Паскалем перепутал.
Цитата: Garfi від 26 Січень 2009, 21:03:08
никаких ошибок или предупреждений при компиляции не выводит...
собсно окно с ошибкой:

На будущие - подобные сообщения ОС, сообщающие о Segmentation fault, bus error и прочие в 99% случаев указывают на ошибки при работе с указателями. Если не видешь сам ошибок - пользуйся утилитами типа lint.
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?

Edd.Dragon

Цитата: firefire від 26 Січень 2009, 18:09:26
строка состоит из 256 символов в Паскале, так что много место в памяти и в ресурсах не займет  ;)
Паскали бывают древние, а бывают и посвежее. Я например не помню, когда последний раз брал в руки ДОСовский, если есть Delphi, в котором писать гораздо удобнее.
Но я о длине строки и не говорил. Я говорил об операциях с ними.

ЦитатаТы видимо не прочитал дальше что я написал
Прочитал. Запустил, получил:

ff  ff
Probelov:1

  ff  ff
Probelov:1

ff  ff
Probelov:2

  ff  ff
Probelov:2


В последних двух примерах есть пробелы после последнего слова

firefire

`
Цитата: edd_k від 27 Січень 2009, 10:45:08
В последних двух примерах есть пробелы после последнего слова
Значит где-то я там сделал не так...

Edd.Dragon

Стало интересно - расчехлил BP7, получилось так:

const
  space: set of char = [#9, #10, #13, #32];

var
  i, n, count: integer;
  s: string;

begin
  ReadLn(s);

  n:= Length(s);
  count:= 0;
  i:= 1;

  while (i <= n) do
  begin
    while ((i <= n) and (s[i] in space)) do Inc(i);
    if (i <= n) then
    begin
      Inc(count);
      while ((i <= n) and not (s[i] in space)) do Inc(i);
    end;
  end;

  WriteLn('*** ', count, ' words ***');
end.