Последние записи
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
19th
Фев
Программирование на ассемблере на платформе x86-64
В данной книге речь идет о работе процессора в двух его основных режимах: защищенном режиме и 64-битном, который также называют long mode («длинный режим»). Также помимо изложения принципов и механизмов работы процессора в защищенном и 64-битном режимах, речь пойдет о программировании на ассемблере в операционных системах семейства Windows, как в 32-битных, так и 64-битных версиях. Рассматривается не только разработка обычных приложений для операционных систем Windows, но и разработка драйверов на ассемблере. При написании книги уделялось большое внимание именно практической составляющей, т.е. изложение материала идет только по делу и только то, что необходимо знать любому системному и низко-уровневому программисту. Последний раздел книги посвящен принципам работы многопроцессорных систем, а также работе с расширенным программируемым контроллером прерываний (APIC).
26th
Ноя
Тема на форуме для начинающего сисадмина
MooNDeaR
С чего начать сисадмину — хотелось бы узнать об рабочих обязанностях сисадмина.
pu4koff
Админство бывает сильно разным. Можно вполне себе и ограничиваться переустановкой винды и быть приходящим админом, например.
В основном в обязанности входит (если не брать крутых админов с опытом и помощниками):
1) Поддержание компов в рабочем состоянии (как программная часть, так и аппаратная в виде замены термопасты)
2) Покупка новой техники (компы, принтеры, роутеры, …). При этом нужно уметь подобрать и дешево и функционально и круче чем у всех.
3) Общение с провайдерами и выслушивание за отсутствие интернета (аргумент про нежелание руководства платить двум провайдерам — не аргумент и во всём виноват админ)
4) Выпрашивание денег на новый комп/сервак/принтер и умение это дело грамотно обосновать (советую тут объединяться с бухами или кого руководство лучше слушает в плане «надо»).
5) Сохранение бэкапов и готовность к экстренной ситуации, когда отчёт нужно сдавать завтра, а ничего не работает.Руководство будет говорить, что это не нужно, но тем не менее… тут лучше проявить инициативу.Вот как-то так в случае небольшой организации и среднестатистического частника.
В целом же описанных знаний достаточно на админство в небольшой конторе за небольшие деньги или же работа помощником админа в большой конторе за небольшие деньги.
Нюансы настройки некоторых программ приходят с опытом общения с этими программами. Нюансы подбора техники так же приходят с опытом (у принтеров и мфу на самом деле больше характеристик, чем кажется, и эти характеристики нигде не описываются).
Если планируется виндовое админство, то я бы обязательно почитал про Active Directory, групповые политики и прочие плюшки доменов. Так же советую просветиться на популярную и полезную сегодня тему: Виртуализация и Hyper-V в частности. Виртуализация — друг админа. Два сервака не купят, а вот один мощный вполне могут, а с виртуализацией он один легко превратится в несколько
Могу сказать, что профессия неоднозначна и всё сильно зависит от места работы.
Хороший бонус в профессии: обучение за счет работодателя. основная ценность админа — практический опыт, а он накапливается за счет работодателя. Теория тут мало что значит.
Пост написан при поддержке Городского Дополнительного Профессионального Образования.
В настоящее время компьютерные курсы на сайте учебного центра doprof.ru пользуются большой популярностью, что неудивительно. Знание компьютера необходимо бухгалтерам, дизайнерам, менеджерам, секретарям и пр. НОУ «Городской Центр Дополнительного Профессионального Образования» приглашает всех, кто ещё не освоил азы компьютерной грамотности на курсы ПК для начинающих, на которых слушатели быстро освоят навыки уверенной работы с компьютером.
1st
Сен
КОД
Код (франц. code, от лат. codex — свод законов), система условных знаков (символов) для передачи, обработки и хранения (запоминания) различной информации. Конечная последовательность кодовых знаков называется словом. Число различных символов, которые используются в словах данного К., называется его основанием; например, К. с основанием 2 называется двоичным. Если все слова имеют одинаковую длину, или количество элементов, — n, то это равномерный n-значный К. (см. Код телеграфный). Если слова имеют переменную длину, то К. называется неравномерным, например Морзе код. К. называется полным, когда к нему без нарушения его различимости нельзя добавить ни одной новой кодовой комбинации. Полный равномерный n-значный К. содержит тn слов, где т — основание кода. К., содержащий кодовые комбинации, служащие для отделения одного сообщения от другого, называется К. с разделительными знаками; К., в котором все без исключения кодовые комбинации символов служат лишь для обозначе ния элементов сообщения, является К. без разделительных знаков. Кодовые комбинации, являющиеся разделительными знаками, могут конструироваться либо из специальных кодовых символов, либо из тех же кодовых символов, которые образуют кодовые комбинации, соответствующие определенным элементам сообщения. Иногда бывает удобно разбить элементы сообщения на несколько групп и для каждой из этих групп построить свой К.; сигнал о переходе от одного К. к другому подается специальными кодовыми комбинациями (адресами). Совокупность К. для каждой из групп элементов сообщения вместе с адресными кодовыми комбинациями называется многоадресным, или многопрограммным К.
Для записи К. чаще всего используют либо цифры и числа (0, 1, 2,… 57, 9276 и т.п.), либо знаки, например + (плюс), — (минус), • (точка), — (тире) и т.д. В технике каждый кодовый знак является условным обозначением некоторого элементарного сигнала, обладающего какими-либо физическими параметрами (сигнальными признаками), которые могут принимать несколько различных значений. Для электрических сигналов такими признаками могут служить амплитуда тока или напряжения, полярность или длительность электрических импульсов (посылок), периодичность их следования и др.
К., применяемые в телемеханике, в системах связи и автоматического управления, в вычислительной технике, представляют собой набор комбинаций из электрических импульсов и пауз между ними, что эквивалентно изображению значений кодируемой величины в виде двоичных чисел — наборов, состоящих из 0 и 1 (см. Код в телемеханике, Код в ЦВМ). Количество импульсов в комбинации или разрядов в эквивалентном двоичном числе определяет значность К.
Выбор К. определяется условиями передачи, обработки или хранения информации и связан главным образом с наиболее эффективным использованием каналов связи, обеспечением необходимой помехоустойчивости передачи и т.п. (см. Кодирование). С целью улучшения помехоустойчивости К. усложняются: к так называемым информационным знакам добавляются дополнительные — контрольные (проверочные). По такому принципу строятся К. обнаружения и исправления ошибок (см. Корректирующие коды).
Programming articles
Создание сайтов на шаблонах
Множество вариантов работы с графикой на канве
Шифруем файл с помощью другого файла
Перехват API функций — Основы
Как сделать действительно хороший сайт
Создание почтового клиента в Delphi 7
Применение паскаля для
решения геометрических задач
Управление windows с помощью Delphi
Создание wap сайта
Операционная система unix, термины и понятия
SQL враг или друг
Возникновение и первая редакция ОС UNIX
Оптимизация проекта в Delphi
Ресурсы, зачем нужны ресурсы
Термины программистов 20 века
Советы по созданию собственного сайта с нуля
Шифруем файл с помощью пароля
Фракталы — геометрия природы
Crypt — Delphi программа для шифрования
Рассылка, зачем она нужна и как ее организовать?
Учебник по C++ для начинающих программистов
Уроки для изучения ассемблера
Загадочный тип PCHAR
Средства по созданию сайтов
Операторы преобразования
классов is и as
Borland Developer studio 2006. Всё в одном
Создание базы данных в Delphi, без сторонних БД
Software engineering articles
1st
УЧЕБНИК ПО АССЕМБЛЕРУ
Туториал «ASSEMBLER&WIN32. Курс молодого бойца» — справочный материал, для тех, кто хочет научиться программировать в ассемблере. Этот справочник будет понятен чайникам, также будет интересен для тех, кто программировал в ассемблере под Dos и хочет попробовать свои силы в среде Win32. Изучение ассемблера необходимо для того чтобы понять как работает процессор, где хранятся данные, как проводятся простые арифметические операции, что такое умножение, циклы.
Programming articles
Создание сайтов на шаблонах
Множество вариантов работы с графикой на канве
Шифруем файл с помощью другого файла
Перехват API функций — Основы
Как сделать действительно хороший сайт
Создание почтового клиента в Delphi 7
Применение паскаля для
решения геометрических задач
Управление windows с помощью Delphi
Создание wap сайта
Операционная система unix, термины и понятия
SQL враг или друг
Возникновение и первая редакция ОС UNIX
Оптимизация проекта в Delphi
Ресурсы, зачем нужны ресурсы
Термины программистов 20 века
Советы по созданию собственного сайта с нуля
Шифруем файл с помощью пароля
Фракталы — геометрия природы
Crypt — Delphi программа для шифрования
Рассылка, зачем она нужна и как ее организовать?
Учебник по C++ для начинающих программистов
Уроки для изучения ассемблера
Загадочный тип PCHAR
Средства по созданию сайтов
Операторы преобразования
классов is и as
Borland Developer studio 2006. Всё в одном
Создание базы данных в Delphi, без сторонних БД
Software engineering articles
25th
Авг
УРОК 22. ЧАСТНЫЕ И ОБЩИЕ ДАННЫЕ
В уроке 21 вы создали свои первые классы в C++. При этом вы включали метку public в определение класса, чтобы обеспечить программе доступ к каждому элементу класса. Из данного урока вы узнаете, как атрибутыpublic и private управляют доступом к элементам класса со стороны программы. Вы узнаете, что ваши программы могут обратиться к общим (public) элементам из любой функции. С другой стороны, ваша программа может обращаться к частным (private) элементам только в функциях данного класса. Этот урок подробно исследует частные и общие элементы. К концу данного урока вы освоите следующие основные концепции:
- Чтобы управлять тем, как ваши программы обращаются к элементам класса, C++ позволяет вам определять элементы как частные или общие.
- Частные элементы дают возможность классу скрыть информацию, которую программе не требуется знать.
- Класс, использующий частные элементы, обеспечивает интерфейсные функции, которые обращаются к частным элементам класса.
Как уже вкратце обсуждалось в уроке 21, вы должны поместить в определение класса столько информации об объекте, сколько считаете необходимым. При этом объекты становятся самообеспеченными, что может повысить возможность их повторного использования несколькими программами.
25th
УРОК 34 ФАЙЛОВЫЕ ОПЕРАЦИИ В/В В C++
По мере усложнения ваших программ они будут сохранять и получать информацию, используя файлы. Если вы знакомы с файловыми манипуляциями в языке С, вы сможете использовать подобные методы и в C++. Кроме того, как вы узнаете из этого урока, C++ предоставляет набор классов файловых потоков, с помощью которых можно очень легко выполнять операции ввода и вывода (В/В) с файлами. К концу данного урока вы освоите следующие основные концепции:
- Используя выходной файловый поток, вы можете писать информацию в файл с помощью оператора вставки (<<).
- Используя входной файловый поток, вы можете читать хранимую в файле информацию с помощью оператора извлечения (>>).
- Для открытия и закрытия файла вы используете методы файловых классов.
- Для чтения и записи файловых данных вы можете использовать операторы вставки и извлечения, а также некоторые методы файловых классов.
Многие программы, которые вы создадите в будущем, будут интенсивно использовать файлы. Выберите время для экспериментов с программами, представленными в данном уроке. И вы обнаружите, что в C++ выполнять файловые операции очень просто.
25th
УРОК 28. ЧАСТНЫЕ ЭЛЕМЕНТЫ И ДРУЗЬЯ
Как вы уже знаете, ваши программы могут обращаться к частным (private) элементам класса только с помощью функций-элементов этого же класса. Используя частные элементы класса вместо общих во всех ситуациях, где это только возможно, вы уменьшаете возможность программы испортить значения элементов класса, так как программа может обращаться к таким элементам только через интерфейсные функции (которые управляют доступом к частным элементам). Однако в зависимости от использования объектов вашей программы, иногда вы можете существенно увеличить производительность позволяя одному классу напрямую обращаться к частным элементам другого. В этом случае уменьшаются издержки (требуемое время выполнения) на вызов интерфейсных функций. В подобных ситуациях C++ позволяет определить класс в качестве друга (friend} другого класса и разрешает классу-другу доступ к частным элементам этого другого класса. В этом уроке объясняется, как ваши программы могут указать, что два класса являются друзьями. К концу данного урока вы освоите следующие основные концепции:
- Используя ключевое слово friend, класс может сообщить C++, кто является его другом, т. е. другими словами, что другие классы могут обращаться напрямую к его частным элементам.
- Частные элементы класса защищают данные класса, следовательно, вы должны ограничить круг классов-друзей только теми классами, которым действительно необходим прямой доступ к частным элементам искомого класса.
- C++ позволяет ограничить дружественный доступ определенным набором функций.
Частные (private) элементы позволяют вам защищать классы и уменьшить вероятность ошибок. Таким образом, вы должны ограничить использование классов-друзей настолько, насколько это возможно. Иногда программа напрямую может изменить значения элементов класса, это увеличивает вероятность появления ошибок.
ОПРЕДЕЛЕНИЕ ДРУЗЕЙ КЛАССА
C++ позволяет друзьям определенного класса обращаться к частным элементам этого класса. Чтобы указать C++, что один класс является другом (friend) другого класса, вы просто помещаете ключевое слово friend и имя соответствующего класса-друга внутрь определения этого другого класса. Например, приведенный ниже класс book объявляет класс librarian своим другом. Поэтому объекты класса librarian могут напрямую обращаться к частным элементам класса book, используя оператор точку:
class book
{
public:
book (char *, char *, char *);
void show_book(void);
friend librarian;
private:
char title [64] ;
char author[64];
char catalog[64];
};
Как видите, чтобы указать друга, необходим только один оператор внутри определения класса. Например, следующая программа VIEWBOOK.CPP использует librarian в качестве друга класса book. Следовательно, функции класса librarian могут напрямую обращаться к частным элементам класса book. В данном случае программа использует функцию change_catalog класса librarian для изменения номера карточки каталога определенной книги:
#include <iostream.h>
#include <string.h>
class book
{
public:
book (char *, char *, char *);
void show_book(void);
friend librarian;
private:
char title[64] ;
char author[64];
char catalog[64];
};book::book(char *title, char *author, char •catalog)
{
strcpy(book::title, title);
strcpy(book::author, author) ;
strcpy(book::catalog, catalog);
}void book::show_book(void)
{
cout << «Название: » << title << endl;
cout << «Автор: » << author << endl;
cout << «Каталог: » << catalog << endl;
}class librarian
{
public:
void change_catalog(book *, char *);
char *get_catalog(book);
};void librarian::change_catalog(book *this_book, char *new_catalog)
{
strcpy(this_book->catalog, new_catalog);
}char *librarian: :get__catalog(book this_book)
{
static char catalog[64];
strcpy(catalog, this_book.catalog);
return(catalog) ;
}void main(void)
{
book programming( «Учимся программировать на языке C++», «Jamsa», «P101»);
librarian library;
programming.show_book();
library.change_catalog(&programming, «Легкий C++ 101»);
programming.show_book();
}
Как видите, программа передает объект book в функцию change_catalog класса librarian по адресу. Поскольку эта функция изменяет элемент класса book, программа должна передать параметр по адресу, а затем использовать указатель для обращения к элементу этого класса. Экспериментируйте с данной программой, попробуйте удалить оператор friend из определения класса book. Поскольку класс librarian больше не имеет доступа к частным элементам класса book, компилятор C++ сообщает о синтаксических ошибках при каждой ссылке на частные данные класса book.
О друзьях класса
Обычно единственный способ, с помощью которого ваши программы могут обращаться к частным элементам класса, заключается в использовании интерфейсных функций. В зависимости от использования объектов программы иногда может быть удобным (или более эффективным с точки зрения скорости вычислений) разрешить одному классу обращаться к частным элементам другого. Для этого вы должны информировать компилятор C++, что класс является другом (friend). Компилятор, в свою очередь, позволит классу-другу обращаться к частным элементам требуемого класса. Чтобы объявить класс другом, поместите ключевое слово friend и имя класса-друга в секцию public определения класса, как показано ниже:
class abbott
{
public:
friend costello;
// Общие элементы
private:
// Частные элементы
};Как друзья отличаются от защищенных (protected) элементов
Из урока 26 вы узнали, что в C++ существуют защищенные (protected) элементы класса, что позволяет производным классам обращаться к защищенным элементам базового класса напрямую, используя оператор точку. Помните, что к защищенным элементам класса могут обращаться только те классы, которые являются производными от данного базового класса, другими словами, классы, которые наследуют элементы базового класса (защищенные элементы класса являются как бы частными по отношению к остальным частям программы). Классы-друзья C++ обычно не связаны между собой узами наследования. Единственный способ для таких не связанных между собой классов получить доступ к частным элементам другого класса состоит в том, чтобы этот другой класс информировал компилятор, что данный класс является другом.
ОГРАНИЧЕНИЕ КОЛИЧЕСТВА ДРУЗЕЙ
Как вы только что узнали, если вы объявляете один класс другом другого класса, вы обеспечиваете классу-другу доступ к частным элементам данных этого другого класса. Вы также знаете и то, что чем больше доступа к частным данным класса, тем больше шансов на внесение ошибок в программу. Следовательно, если доступ к частным данным другого класса необходим только нескольким функциям класса, C++ позволяет указать, что только определенные функции дружественного класса будут иметь доступ к частным элементам. Предположим, например, что класс librarian, представленный в предыдущей программе, содержит много разных функций. Однако предположим, что только функциям change_catalog и get_catalog необходим доступ к частным элементам класса book. Внутри определения класса book мы можем ограничить доступ к частным элементам только этими двумя функциями, как показано ниже:
class book
{
public:
book(char *, char *, char *);
void show_book(void);
friend char *librarian::get_catalog(book);
friend void librarian: :change_catalog( book *, char *);
private:
char title[64];
char author[ 64 ];
char catalog[64];
};
Как видите, операторы friend содержат полные прототипы всех дружественных функций, которые могут напрямую обращаться к частным элементам.
О функциях-друзьях
Если ваша программа использует друзей для доступа к частным данным класса, вы можете ограничить количество функций-элементов класса-друга, который может обращаться к частным данным, используя дружественные функции. Для объявления функции-друга укажите ключевое слово friend, за которым следует полный прототип, как показано ниже:
public:
friend class_name::function_name(parameter types);Только функции-элементы, указанные как друзья, могут напрямую обращаться к частным элементам класса, используя оператор точку.
Если ваша программа начинает ссылаться на один класс из другого, вы можете получить синтаксические ошибки, если порядок определения классов неверен. В данном случае определение класса book использует прототипы функций, определенные в классе librarian. Следовательно, определение класса librarian должно предшествовать определению класса book. Однако если вы проанализируете класс librarian, то обнаружите, что он ссылается на класс book:
class librarian
{
public:
void change_catalog(book *, char *);
char *get_catalog(book);
};
Поскольку вы не можете поставить определение класса book перед определением класса librarian, C++ позволяет вам объявить класс book, тем самым сообщая компилятору, что такой класс есть, а позже определить его. Ниже показано, как это сделать:
class book; // объявление класса
Следующая программа LIMITFRI.CPP использует дружественные функции для ограничения доступа класса librarian к частным данным класса book. Обратите внимание на порядок определения классов:
#include <iostream.h>
#include <string.h>
class book;
class librarian
{
public:
void change_catalog(book *, char *);
char *get_catalog(book);
};class book
{
public:
book(char *, char *, char *) ;
void show_book (void);
friend char *librarian::get_catalog(book);
friend void librarian::change_catalog( book *, char *);
private:
char title[64];
char author[64];
char catalog[64];
};book::book(char *title, char *author, char *catalog)
{
strcpy(book::title, title);
strcpy(book::author, author);
strcpy(book::catalog, catalog);
}void book::show_book(void)
{
cout << «Название: » << title << endl;
cout << «Автор: » << author << endl;
cout << «Каталог: » << catalog << endl;
}void librarian::change_catalog(book *this_book, char *new_catalog)
{
strcpy(this_book->catalog, new_catalog) ;
}char *librarian::get_catalog(book this_book)
{
static char catalog[64];
strcpy(catalog, this_book.catalog);
return(catalog) ;
}void main(void)
{
book programming( «Учимся программировать на C++», «Jamsa», «P101»);
librarian library;
programming.show_book();
library.change_catalog(&programming, «Легкий C++ 101»);
programming.show_book();
}
Как видите, программа сначала использует объявление, чтобы сообщить компилятору, что класс book будет определен позже. Поскольку объявление извещает компилятор о классе book, определение класса librarian может ссылаться на класс book, который еще не определен в программе.
Что такое идентификатор класса
Идентификатор представляет собой имя, например имя переменной или класса. Если ваши программы используют дружественные классы, то может случиться, что определение одного класса ссылается на другой класс (его имя или идентификатор), о котором компилятор C++ еще ничего не знает. В таких случаях компилятор C++ будет сообщать о синтаксических ошибках. Чтобы избавиться от ошибок типа «что следует определять сначала», C++ позволяет вам включать в начало исходного текста программы объявление класса, тем самым вводя идентификатор класса:
class class_name;
Эта строка сообщает компилятору, что ваша программа позже определит указанный класс, а пока программе разрешается ссылаться на этот класс.
ЧТО ВАМ НЕОБХОДИМО ЗНАТЬ
В данном уроке вы изучили, как использовать классы-друзья для обращения к частным элементам другого класса напрямую с использованием оператора точки. В уроке 29 вы изучите, как использовать в C++ шаблоны функций для упрощения определения подобных функций. Но прежде чем перейти к уроку 29 убедитесь, что вы освоили следующее:
- Использование в ваших программах на C++ друзей позволяет одному классу обращаться к частным элементам другого класса напрямую, используя оператор точку.
- Для объявления одного класса другом (friend) другого класса вы должны внутри определения этого другого класса указать ключевое слово friend, за которым следует имя первого класса.
- После объявления класса другом по отношению к другому классу, все функции-элементы класса-друга могут обращаться к частным элементам этого другого класса.
- Чтобы ограничить количество дружественных методов, которые могут обращаться к частным данным класса, C++ позволяет указать дружественные функции. Для объявления функции-друга вы должны указать ключевое слово friend, за которым следует прототип функции, которой, собственно, и необходимо обращаться к частным элементам класса.
- При объявлении дружественных функций вы можете получить синтаксические ошибки, если неверен порядок определений классов. Если необходимо сообщить компилятору, что идентификатор представляет имя класса, который программа определит позже, вы можете использовать оператор такого вида class class_name;.
Programming articles
Создание сайтов на шаблонах
Множество вариантов работы с графикой на канве
Шифруем файл с помощью другого файла
Перехват API функций — Основы
Как сделать действительно хороший сайт
Создание почтового клиента в Delphi 7
Применение паскаля для
решения геометрических задач
Управление windows с помощью Delphi
Создание wap сайта
Операционная система unix, термины и понятия
SQL враг или друг
Возникновение и первая редакция ОС UNIX
Оптимизация проекта в Delphi
Ресурсы, зачем нужны ресурсы
Термины программистов 20 века
Советы по созданию собственного сайта с нуля
Шифруем файл с помощью пароля
Фракталы — геометрия природы
Crypt — Delphi программа для шифрования
Рассылка, зачем она нужна и как ее организовать?
Учебник по C++ для начинающих программистов
Уроки для изучения ассемблера
Загадочный тип PCHAR
Средства по созданию сайтов
Операторы преобразования
классов is и as
Borland Developer studio 2006. Всё в одном
Создание базы данных в Delphi, без сторонних БД
Software engineering articles
Облако меток
css реестр ассемблер timer SaveToFile ShellExecute программы массив советы word MySQL SQL ListView pos random компоненты дата LoadFromFile form база данных сеть html php RichEdit indy строки Win Api tstringlist Image мысли макросы Edit ListBox office C/C++ memo графика StringGrid canvas поиск файл Pascal форма Файлы интернет Microsoft Office Excel excel winapi журнал ПРОграммист DelphiКупить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)