КИТА unofficial
Апрель 26, 2024, 07:49:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   ПРАВИЛА Помощь WIKI PDA Войти Регистрация  


Страниц: [1] 2 3 ... 12   Вниз
  Печать  
Автор Тема: Вопросы в С/С++  (Прочитано 149434 раз)
0 Пользователей и 1 Гость смотрят эту тему.
TARAKAN
Tifon
Бакалавр
**

Карма: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 134


WWW
« : Ноябрь 25, 2007, 10:02:40 »

Код:
Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
Loaded 'G:\Program Files\Agnitum\Outpost Firewall\wl_hook.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\user32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\gdi32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\advapi32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\rpcrt4.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\imm32.dll', no matching symbolic information found.
Как исправить ? Переставить ОС не выход из ситуации =\


З.Ы. Темы по типу такой как я создал не нашел.
(Отправлено в: Ноября 25, 2007, 18:48:11)

 Код любой ... пробывал даже
просто
Код: (cpp)
#include<stdio.h>
void main (){
printf("dwdaww");
}
выдает ошибку эту
(Отправлено в: Ноября 25, 2007, 19:28:17)

 Microsoft Visual C++ 6.0
ХП Проф СП2
(Отправлено в: Ноября 25, 2007, 19:44:47)
 

Просто все нормально работало, ничего не делал с этими файлами, а начало выдавать ошибку =\
От чего может такое произойти ? На будущее просто чтоб знать ...

(Отправлено в: 25 Ноября 2007, 19:10:02)

Код: (c)
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
float *max(float *mas,int n,float sred){
int i,j;
float max,maxo,*a;
           //всякие вычисления, потом
           *a=max;
return (a);
}

void main (){
float *mas,*a,sred,max,imax,jmax;
int i,j,n;
printf("vvedite n\n");
scanf("%d",&n);
create(&mas,n);
sred=sredarif(mas,n);
[color=red]a=max(mas,n,sred);[/color]
}

Цитировать
G:\Prog\lab\04\04.CPP(58) : error C2064: term does not evaluate to a function
Ругается на строчку выделеную. Программа не полная, удалил функции, которые на 100% правильные, чтоб сильно большой не была.
Написал программу поменьше для проверки перд этим, но без передачи данных.
Код: (c)
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
float *qwe(){
  float *a,max=10;
  *a=max;
return(a);
}
void main (){
float *a,n1;
a=qwe();
n1=*a;
printf("%f",n1);
}
Она работает.
Не пойму в чем ошибка ...
« Последнее редактирование: Июль 28, 2008, 11:01:16 от artem90 » Записан

Студент: По моему легче использовать printf...
EvilMax: Зато cout - это тру! = ))
Polyakov
Специалист
***

Карма: +12/-7
Offline Offline

Сообщений: 164


« Ответ #1 : Ноябрь 25, 2007, 10:46:02 »

Код: (cpp)
float *max(float *mas,int n,float sred){
   int i,j;
   float max,maxo,*a;
           //Some calculus, then
           *a=max;
return (a);
}

Область жизни и видимости локальных переменных обычно программный блок.
Говорю "обычно" потому что С++ посути дела является не совсем стабильным языком, выполнение программного кода которого зависит от многих факторов.
В вашем случае Вы указателю присваиваете адрес локальной переменной
*a=max;
а потом пытаетесь вернуть переменную "а", которая одновременно является и переменной "max", которая по окончанию выполнения программного блока (функции "float *max(float *mas,int n,float sred)" ) автоматически освобождается в памяти ( то есть говоря более понятным Вам языком уничтожается).
Получается что передается то, чего в момент передачи уже нет!!

Кроме того имя функции "*max" и тут же имя описанной переменной в данном программном блоке "float max,"  !!!

Никогда не перестаюшь удивлятся многообразию проявления абсурдных ситуаций которые пропускает компилятор С++.
« Последнее редактирование: Ноябрь 25, 2007, 11:15:36 от Романыч » Записан
Alder
Администратор
Проректор
*****

Карма: +331/-16
Offline Offline

Пол: Мужской
Награды:
За II место в конкурсе поэзии (весна-2007)2 место в фотоконкурсе \За II место в фотоконкурсе \3 место в фотоконкурсе \2 место в фотоконкурсе \Лучший знаток музыки 2009Лучший знаток музыки 2010
Сообщений: 11224


just for fun


WWW
« Ответ #2 : Ноябрь 25, 2007, 10:59:56 »

В вашем случае Вы указателю присваиваете адрес локальной переменной
*a=max;
а потом пытаетесь вернуть переменную "а", которая одновременно является и переменной "max", которая по окончанию выполнения программного блока (функции "float *max(float *mas,int n,float sred)" ) автоматически освобождается в памяти ( то есть говоря более понятным Вам языком уничтожается).
Получается что передается то, чего в момент передачи уже нет!!
Бред! Оператор return затем и используется, чтобы вернуть значение из функции. Он копирует значение переменной а в область памяти, отведенную для возвращаемого результата функцией max.

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

Говорю "обычно" потому что С++ посути дела является не совсем стабильным языком, выполнение программного кода
Язык на котором написаны ОС для военных компьютеров является не совсем стабильным? Язык, который является основным в мире системного программирования и на нем пишут даже под микроконтроллеры с 512 байт памяти является не совсем стабильным? Я удивлен.
Записан

"There are things known and there are things unknown, and in between are the doors..." (Jim Morrison)
TARAKAN
Tifon
Бакалавр
**

Карма: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 134


WWW
« Ответ #3 : Ноябрь 25, 2007, 11:05:02 »

Polyakov
С название функции действительно не заметил  Строит глазки
Идея состояла в том, что если структуры нельзя использовать, а надо передать сразу несколько значений из функции, записать переменные в область памяти на которую ссылается указатель...
т е чтото типа такого
Код: (cpp)
*a=i;
a++;
*a=j;
a++;
*a=*(mas+i*n+j);
потом передать указатель обратно в программу....

С этим разобрался ... работает, коректно или нет попоже проверю вручную Улыбка


Вот еще проблема появилась
Код: (cpp)
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
Код: (cpp)
void create(float **mas, int n) {
int i,j;
*mas=(float*)malloc(n*n*sizeof(float));
randomize ();
for (i=0;i<n;i++)
{ printf("\n");
    for (j=0;j<n;j++)
    {
      *(*mas+i*n+j)=random(2001)-1000;
      printf("%.2f ",*(*mas+i*n+j));
    }
}

}
Цитировать
G:\Prog\lab\04\04.CPP(8 ) : error C2065: 'randomize' : undeclared identifier
G:\Prog\lab\04\04.CPP(13) : error C2065: 'random' : undeclared identifier

Почему может не работать рандом ?  Непонимающий
« Последнее редактирование: Ноябрь 25, 2007, 11:23:05 от KyDECHuK » Записан

Студент: По моему легче использовать printf...
EvilMax: Зато cout - это тру! = ))
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #4 : Ноябрь 25, 2007, 11:08:21 »

Polyakov, ошибка не в этом. Если в том месте, где стоит непонятный комментарий //а здесь всякие вычисления, будет корректно отводиться память под указатель * a, то присваивание разыменованному указателю и возврат return'ом его копии совершенно правомерен, что сказал Alder.

Что касается "абсурдных" ситуаций, то это не относится к данному случаю. Никто и ничто не мешает объявить внутри функции одноименную переменную. Но в результате мы не сможем использвать рекурсию, так как имя функции будет перекрыто и недоступно. Это нехорошо, программиста надо "бить по рукам" и учить, но это не ошибка.

А вот в функции main() переменная с именем max перекрыла функцию max(). И зря вы ругаете компилятор, он это не пропустил, о чем свидетельствует ошибка Visuall C++ C2064.
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
Alder
Администратор
Проректор
*****

Карма: +331/-16
Offline Offline

Пол: Мужской
Награды:
За II место в конкурсе поэзии (весна-2007)2 место в фотоконкурсе \За II место в фотоконкурсе \3 место в фотоконкурсе \2 место в фотоконкурсе \Лучший знаток музыки 2009Лучший знаток музыки 2010
Сообщений: 11224


just for fun


WWW
« Ответ #5 : Ноябрь 25, 2007, 11:10:37 »

TARAKAN, undeclared identifier = неописано. Т.е. не может найти описание этой функции в подключенных модулях.

З.Ы. RTFM Улыбка
З.Ы.Ы. Оформляй код правильно! Уже предупреждали.
Записан

"There are things known and there are things unknown, and in between are the doors..." (Jim Morrison)
Polyakov
Специалист
***

Карма: +12/-7
Offline Offline

Сообщений: 164


« Ответ #6 : Ноябрь 25, 2007, 11:16:07 »

Бред! Оператор return затем и используется, чтобы вернуть значение из функции. Он копирует значение переменной а в область памяти, отведенную для возвращаемого результата функцией max

Правильно копирует значение переменной, а в переменной "а" находится указатель адреса.
Интересно какая у Вас была оценка по программированию?


(Отправлено в: 25 Ноября 2007, 22:10:50)


Polyakov, ошибка не в этом. Если в том месте, где стоит непонятный комментарий //а здесь всякие вычисления, будет корректно отводиться память под указатель * a, то присваивание разыменованному указателю и возврат return'ом его копии совершенно правомерен, что сказал Alder.

В примере явно присутствует строчка

          *a=max;

Поэтому о корректном выделении памяти под переменную "а" при данных примера нет и речи. А Alder пусть как говорят немного подучит матчасть.
Записан
TARAKAN
Tifon
Бакалавр
**

Карма: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 134


WWW
« Ответ #7 : Ноябрь 25, 2007, 11:25:15 »

Alder
Я понимаю, что неописанно, но рандом хранится в библиотеке stdlib.h она подключена
#include<stdlib.h>
у меня уже такое не первый раз ... иногда работает иногда нет

Оформляй код правильно! Уже предупреждали.
Пока печатал новое сообщение отправили новое, последнее поправил, остальные ввиду запрета на правку по времени, сам не могу поправить, Романыч сказал, что поправит, и это сделал : ))






Создал *а в программе и передал в функцию, вроде работает правильно.
Записан

Студент: По моему легче использовать printf...
EvilMax: Зато cout - это тру! = ))
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #8 : Ноябрь 25, 2007, 11:28:34 »

TARAKAN, ты используешь Visual C++, а в нем генерация случайных чисел не такая, как в старом досовском Turbo C или Borland C++. И функций randomize() и random() в stdlib.h этой среды нет, ибо они не относятся к кроссплатформенным. Так что меняя ОС и компилятор будь готов к тому, что их нет. Используй в VC++ функции void srand(unsigned int seed) и int rand(). Что-то вроде этого:

Код: (cpp)
#include <stdlib.h>
#include <time.h>
...
int main(void) {
  // Инициализируем генератор
  srand((unsigned) time(NULL));

  /* Генерируем случайное число
  от 0 до RAND_MAX (по умолчанию от 0 до 32767)
  */
  int randomNumber = rand();

}

Деля результат rand() на (double)RAND_MAX, можно нормализовать случайное число к 1, а затем поулчить число в нужном диапазоне. Дальше - сам... Тут хороший пример: http://msdn2.microsoft.com/en-us/library/398ax69y(VS.80).aspx

И вообще, если решил использовать для учебы изначально VC++, поставь и подружись с MSDN. И будет тебе счастье. Может быть Смеющийся
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
Polyakov
Специалист
***

Карма: +12/-7
Offline Offline

Сообщений: 164


« Ответ #9 : Ноябрь 25, 2007, 11:41:13 »


Язык на котором написаны ОС для военных компьютеров является не совсем стабильным? Язык, который является основным в мире системного программирования и на нем пишут даже под микроконтроллеры с 512 байт памяти является не совсем стабильным? Я удивлен.

Приготовьтесь к тому что в своей жизне Вам еще предстоит многому удивляться!
Ведь недаром говорят "исскуство программирования". Одним это дано, другим нет. Одни мастера, другие - в лучшем случае подмастерья.

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

(Отправлено в: 25 Ноября 2007, 22:38:15)


TARAKAN, ты используешь Visual C++, а в нем генерация случайных чисел не такая, как в старом досовском Turbo C или Borland C++. И функций randomize() и random() в stdlib.h этой среды нет, ибо они не относятся к кроссплатформенным. Так что меняя ОС и компилятор будь готов к тому, что их нет. Используй в VC++ функции void srand(unsigned int seed) и int rand().

А если преподаватель попросит запустить данную программу, а VC++ в аудитории и не пахнет? Что тогда будем делать?
Записан
Alder
Администратор
Проректор
*****

Карма: +331/-16
Offline Offline

Пол: Мужской
Награды:
За II место в конкурсе поэзии (весна-2007)2 место в фотоконкурсе \За II место в фотоконкурсе \3 место в фотоконкурсе \2 место в фотоконкурсе \Лучший знаток музыки 2009Лучший знаток музыки 2010
Сообщений: 11224


just for fun


WWW
« Ответ #10 : Ноябрь 25, 2007, 11:42:48 »

Правильно копирует значение переменной, а в переменной "а" находится указатель адреса.
А это что-то меняет? Функции, возвращающие указатель, ничем не отличаются от функций, возвращающих обычные переменные. Единственный нюанс - тип возвращаемого указателя должен соответствовать типу, описанному в заголовке функции (ну и память само собой должна быть грамотно выделена, что верно сказал EvilMax) То, что TARAKAN не описал это выделение не означает, что так нельзя делать.

Интересно какая у Вас была оценка по программированию?
Если вас это так интересует, то 4.

А Alder пусть как говорят немного подучит матчасть.
Матчасть я привел правильно с учетом нюансов выделения памяти. По стандарту (жаль, не нашел полный стандарт С, но вполне сгодился справочник Шилдта для подтверждения того, что я знал) все будет так, как я написал выше.
Записан

"There are things known and there are things unknown, and in between are the doors..." (Jim Morrison)
TARAKAN
Tifon
Бакалавр
**

Карма: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 134


WWW
« Ответ #11 : Ноябрь 25, 2007, 11:43:40 »

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


Я так понял, что без MSDN мне не обойтись уж точно, буду качать ...
Цитировать
Может
Хорошое слово Смеющийся
« Последнее редактирование: Июль 28, 2008, 11:14:22 от artem90 » Записан

Студент: По моему легче использовать printf...
EvilMax: Зато cout - это тру! = ))
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #12 : Ноябрь 25, 2007, 11:46:39 »

Off-Topic - помечено автором как "не соответствует обсуждаемой теме"
Программирование - не искусство. Это средство зарабатывания денег, ИМХО. Хотя, когда изучаешь какой-то раздел, хорошо бы к нему относиться как к искусству, быстрее научишься писать красивый и компактный код. Да и вырабатывается привычка хоть чуть-чуть оптимизировать его сразу, а не постфактум.

Что касается военных систем, я слышал замечания по поводу процессов разработки таких систем на C от друга, работающего в США. Детально изучаются все возможные и уже найденные ошибки и нестабильности компилятора. Потом пиештся код. А потом пишется _на порядок_ больше документации _только к коду_. Т.е. функция на пол-экрана может обрости несколькими страницами пояснений и примеров.

А вообще, смотрим название темы и не оффтопим. Если нужно обсудить достоинства, недостатки C/C++ и стабильность компиляторов, начните новую тему.
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
Polyakov
Специалист
***

Карма: +12/-7
Offline Offline

Сообщений: 164


« Ответ #13 : Ноябрь 25, 2007, 11:57:23 »

А это что-то меняет? Функции, возвращающие указатель, ничем не отличаются от функций, возвращающих обычные переменные. Единственный нюанс - тип возвращаемого указателя должен соответствовать типу, описанному в заголовке функции (ну и память само собой должна быть грамотно выделена, что верно сказал EvilMax) То, что TARAKAN не описал это выделение не означает, что так нельзя делать.

Возвращает - да.
Возвращает указатель на ту, область памяти которая уже не доступна.

То, что TARAKAN не описал это выделение не означает, что так нельзя делать.
Можно и на потолке спать - да одеяло на пол падать будет.
Записан
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #14 : Ноябрь 26, 2007, 12:01:11 »

Возвращает указатель на ту, область памяти которая уже не доступна.

Если память выделена malloc или ей подобной функцией, то все будет нормально. Ведь выход из функции не освобождает специально выделенную память. *a=max; - тоже корректно, разыменовали и в выделенную память записали float. Потом вернули копию адреса.

Если бы было a = &max;,  то тогда да, была бы ошибка. Так как float max имеет внутри функции класс памяти auto и эта память будет освобождена. Но в коде такого нет.
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
Polyakov
Специалист
***

Карма: +12/-7
Offline Offline

Сообщений: 164


« Ответ #15 : Ноябрь 26, 2007, 12:16:54 »

Так как float max имеет внутри функции класс памяти auto и эта память будет освобождена. Но в коде такого нет.
Как это "в коде такого нет"?
Код: (cpp)
float *max(float *mas,int n,float sred){
int i,j;
float max,maxo,*a;
          //всякие вычисления, потом
          *a=max;
return (a);
}
« Последнее редактирование: Ноябрь 26, 2007, 12:33:19 от Романыч » Записан
Alder
Администратор
Проректор
*****

Карма: +331/-16
Offline Offline

Пол: Мужской
Награды:
За II место в конкурсе поэзии (весна-2007)2 место в фотоконкурсе \За II место в фотоконкурсе \3 место в фотоконкурсе \2 место в фотоконкурсе \Лучший знаток музыки 2009Лучший знаток музыки 2010
Сообщений: 11224


just for fun


WWW
« Ответ #16 : Ноябрь 26, 2007, 12:20:25 »

Polyakov, имелось ввиду вот это - "Если бы было a = &max;,  то тогда да, была бы ошибка." В коде такого действительно нет.
Записан

"There are things known and there are things unknown, and in between are the doors..." (Jim Morrison)
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #17 : Ноябрь 26, 2007, 12:23:50 »

Polyakov, я не вижу взятия адреса локальной переменной. Разыменование указателя, под который не отведена память есть, это ошибка. А то, о чем вы говорили, нет. Смотрим подробно:
Код: (cpp)
float *max(float *mas,int n,float sred){
   int i,j;
   float max,maxo,*a;
          //всякие вычисления, потом

   /* Разыменовываем указатель
      и записываем в память значение типа float
      Это абсолютно корректно, если до этого где-то встретися a=(float*)malloc(sizeof(float));
      Иначе - разыменовываем "мусор". И пишем данные "в космос". В Windows и Unix программа здесь должна "вылететь"
   */
   *a=max;
   // Возвращаем копию адреса в программу. Все ОК, если указатель корректный
   return (a);
}

То же, о чем говорите вы, и что касается уничтожения локальных переменных при выходе было бы так:

Код: (cpp)
  float max,maxo,*a;
  a=&max; // Некорректно! max будет уничтожена при выходе!
  return a;

Но этого нет.
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #18 : Ноябрь 26, 2007, 12:34:41 »

Off-Topic - помечено автором как "не соответствует обсуждаемой теме"
Никто ничего не перекрывает. Заметьте, ни вас никого другого ограничивать никто не собирается. Речь идет об элементарном уважении форумчан. Здесь преподаватель на равных со студентом. Что же касается предупреждений:
- код нужно оформлять. В быстром написании этиго инструмента нет, но если нажать на "Ответ" - там есть варианты оформления кодя для многих языков программирования.
- флуд - вместо обсуждения вопроса, начали выяснять, у кого что по программированию, рассуждать  стабильности компиляторов и т.п. Надо хотя бы пользоваться тегом offtop для этого (см. это сообщение)

А в целом, думаю, в этом споре какая-то истина родилась, посему общение оказалось небесполезным.

Модератор(ы) и форумчане, если вопрос, заданный TARAKAN  исчерпан, предлагаю данную тему закрыть.
Возражения есть?
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
Alder
Администратор
Проректор
*****

Карма: +331/-16
Offline Offline

Пол: Мужской
Награды:
За II место в конкурсе поэзии (весна-2007)2 место в фотоконкурсе \За II место в фотоконкурсе \3 место в фотоконкурсе \2 место в фотоконкурсе \Лучший знаток музыки 2009Лучший знаток музыки 2010
Сообщений: 11224


just for fun


WWW
« Ответ #19 : Ноябрь 26, 2007, 12:43:50 »

Off-Topic - помечено автором как "не соответствует обсуждаемой теме"
А мне и не надо с Вами выяснять кто умнее. Кто есть кто мы и так знаем. Если кому-то не нравятся мои ответы на вопросы некоторых из участников форума, то это их личное дело.
Дело не в том - нравятся или нет, а в уважении к собеседнику.

Это вполне естественно, но как у нас говорят прав тот у кого больше прав.
Своими правами мы не злоупотребляем!

Вы можете перекрыть мне вход на форум
Если говорить прямо, то есть все основания это сделать. На данный момент вы нарушили 3 пункта правил форума:
п.6 Правил раздела "Программирование" - 6. Оформление кода
п. 3.3.3. Общих правил форума - 3.3.3. Чрезмерный оффтопик
п.1 Правил раздела "Программирование" - 1. Общие положения  "Уважайте друг друга."

Но у нас лояльный админо-модерский состав, поэтому рекомендуем вам ознакомится с Правилами форума, а также с правилами тех разделов, в которых оставляете сообщения. Точно также как в каждой стране есть свои законы, так есть законы и на нашем форуме и их нужно соблюдать.

Любой ответ на это сообщение будет удален без объяснения как оффтопик! Отныне пишем только в рамках темы. Если есть претензии - мне в ЛС.

Записан

"There are things known and there are things unknown, and in between are the doors..." (Jim Morrison)
Страниц: [1] 2 3 ... 12   Вверх
  Печать  
 
Перейти в:  

Penguins Counter Powered by MySQL Powered by PHP Powered by SMF 1.1.8 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS! Internetmap
Страница сгенерирована за 0.117 секунд. Запросов: 29.