Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » *Флейм* | Учить или не учить - вот в чём вопрос!

Ответить
Настройки темы
*Флейм* | Учить или не учить - вот в чём вопрос!

Аватара для Max009

Новый участник


Сообщения: 28
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Nicronomicom Software:

Пока я дельфи знаю ооооочень плохо.

Какие у неё возможности?

Продолжать ли мне её изучать?


Отправлено: 00:11, 05-01-2005

 

Аватара для Savant

Старожил


Сообщения: 300
Благодарности: 6

Профиль | Сайт | Отправить PM | Цитировать


Цитата frizzn:
Тут все от шрифта зависит, надо моноширинный ставить. Я этот пример сначала в тэге {CODE} пытался положить, так там такое получилось...
Я тут подумал, мож тэг {code} поменять, чтоб он выглядел
как-нибудь так? А к кому этим обращаться?

Отправлено: 19:06, 19-01-2005 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для frizzn

Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Надо топик в Forums OSzone.net » Общий » О сайте и форуме создать.

-------
Здесь могла быть ваша реклама


Отправлено: 19:22, 19-01-2005 | #22


Аватара для Savant

Старожил


Сообщения: 300
Благодарности: 6

Профиль | Сайт | Отправить PM | Цитировать


Эээ.... такой вопросик: а в чём, собственно, различие двух следующих вызовов функций (на Си)?
Код: Выделить весь код
::GetWindowText(hWnd,str,n);
 
  GetWindowText(hWnd,str,n);
Ну и, соответственно, что предпочтительнее?

Отправлено: 09:06, 20-01-2005 | #23


Аватара для frizzn

Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Это C++. В C оператора разрешения области видимости ( :: ) нет.
Если в одном пространстве имен есть глобальная функция FuncName() и она перекрыта локальной функцией FuncName(), то форма вызова ::FuncName() вызывает глобальную, а FuncName() - локальную функцию.

Код: Выделить весь код
#include "stdafx.h"
  
  namespace OSzone {
  	int GetWindowText(HWND hWnd, LPTSTR str, int n)
  	{
  		::MessageBox(NULL,"This is OSzone::GetWindowText()","",0);
  		return 0;
  	}
  	
  	void CallMyGetWindowText()
  	{
  		// Вызывает OSzone::GetWindowText()
  		GetWindowText(NULL,NULL,0);	
  	}
  
  	void CallWinAPIGetWindowText()
  	{
  		// Вызывает обычный GetWindowText()
  		::GetWindowText(NULL,NULL,0);
  	}
  }	
  
  
  int APIENTRY WinMain(HINSTANCE hInstance,
 					 HINSTANCE hPrevInstance,
 					 LPSTR lpCmdLine,
 					 int nCmdShow)
  {
  	OSzone::CallMyGetWindowText(); 
  	OSzone::CallWinAPIGetWindowText();
  	return 0;
  }
Или тоже самое с переменными:
Код: Выделить весь код
#include "stdafx.h"
  
  int i = 5; // глобальная переменная
  
  int main()
  {
  	int i = 0; // Локальная переменная
  	for (; i < 10; ++i)
  	{
  		::i++;
  	}
  	printf("i = %d, ::i = %d", i, ::i);
  	return 0;
  }

-------
Здесь могла быть ваша реклама


Отправлено: 12:04, 20-01-2005 | #24


Аватара для Savant

Старожил


Сообщения: 300
Благодарности: 6

Профиль | Сайт | Отправить PM | Цитировать


frizzn, супер. Мгновенно врубился. Правда пока не знаю как это использовать (с функциями-то понятно, а с переменными... хм... запутаться легко, проще наверно разные имена давать).
Это у меня тут такие вопросы пошли, поскольку я за Си вцепился. У меня просто по нему весьма поверхностные знания (в основном из ДОСа). За день съел томик Кернигана с Ричем, а потом ушел в кодинг. Видно надо почитать еще и про С++
Кстати, frizzn, ты не мог бы посмотреть на следующий код с точки зрения оптимизации?
Код: Выделить весь код
int Pos(char* s1, char* s2) { // Ищет вхождение строки s1 в строку s2
    for(int i=0;s2[i++]!='\0';) {
        if (s2[i]==s1[0]) {
            for(int k=1;(s1[++k]!='\0')&&(s1[k]==s2[i+k]);) ;
            if (s1[k]=='\0') return i;
        }
    }
    return 0;
}

Отправлено: 12:22, 20-01-2005 | #25


Аватара для frizzn

Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


  1. Когда ничего не найдено, надо возвращать такое число, которое явно покажет, что ничего не найдено. Напр. -1 ( 0 - это первый символ)
  2. Никогда так не пиши:



    Код: Выделить весь код
    for(int i=0;s2[i++]!='\0';)
Т.е. должно получиться вроде такого:
Код: Выделить весь код
int Pos(const char str[], const char pattern[])
  {
  	int i,j,k;
  	for (i = 0; str[i] != '\0'; ++i)
  	{
  		if (str[i] == pattern[0]) 
  		{
 			// Сравниваем str и pattern пока они равны и не закончились
 			for (j=i+1,k=1; str[j] == pattern[k] && pattern[k] != '\0'; ++k, ++j)
  				;
 			// Если досравнивались до того, что pattern закончился, а наши
 			// строки до сих пор равны - значит мы нашли! Возвращаем позицию.
  			if (pattern[k] == '\0')
  				return i;
  		}
  	}
  	// Не нашли :(
  	return -1;
  }

-------
Здесь могла быть ваша реклама


Отправлено: 14:55, 20-01-2005 | #26


Аватара для Savant

Старожил


Сообщения: 300
Благодарности: 6

Профиль | Сайт | Отправить PM | Цитировать


Thanks, frizzn. Дааа, с ошибкой return 0; соглашусь, уж слишком я привык к Object Pascal. Абсолютно согласен с const char в заголовке. А вот что не так с for(int i=0;s2[i++]!='\0'; )? Переменная i увеличивается после ее использования в качестве индекса. Побочных действий нет.

Через 2 минуты

Аааааа... Я балда!
Все, догнал....
Если бы совпадение было на первом символе (m.e. на s2[0]), то ни фига бы не нашлось.

Спасибо за помощь :beer:

Отправлено: 15:43, 20-01-2005 | #27



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » *Флейм* | Учить или не учить - вот в чём вопрос!

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
*Флейм* | яйцо или курица с чего начать??? 70x93n Программирование и базы данных 10 12-03-2008 14:39
Служебные - [флейм] GUI интегратор - зло или польза? pel_MEN Наборы обновлений для Windows XP/2003/Windows 7 93 14-02-2008 08:42
Видеокарта или монитор, вот в чем вопрос. Sandal Непонятные проблемы с Железом 11 13-02-2004 19:55
Вот такой интересный вопрос по С RulesLv Программирование и базы данных 2 26-10-2003 00:29
install или deinstall... вот в чём вопрос) Glook Microsoft Windows 95/98/Me (архив) 3 12-05-2003 08:02




 
Переход