Здравствуйте
дорогие подписчики! Самое первое, хочу извинится перед Вами за опечатки
в прежним номере рассылке. Но и Вы поймите меня, наша рассылка существует
только 2 недели. Обещаю, в следующих номерах их не будет. Каждый
раз в номере вы сможете прочитать об новых темах у нас на форуме,
раз в неделю урок по С++, компьютерные шутки, и много, чего другого!
ВНИМАНИЕ! В рассылке возможно будут присутствовать картинки, потому
в Tне Bat! они не будут отображаются! Чтоб они стали видны, нужно
подключится в Интернет и открыть приатачений хтмл файл!
Форум
компютерные системы - Это совершенно
новый проект! Здесь вы всегда можете задать вопрос и будьте
уверены – вам ответят. Разделы делятся на самые разные теми
от программирования до антивирусов. Каждый пользователь сети
найдет здесь самое лучшее из мира компьютеров, Интернета, программ.
Как
я понял, вопросов по установке и первой программе нет. И это хорошо.
Но советую по личному опыту не запускать! Ввод-Вывод
Следующая (довольно многословная) программа предлагает вам ввести
число дюймов. После того, как вы это сделаете, она напечатает соответствующее
число сантиметров.
#include <iostream.h>
void main()
{
int inch = 0; // inch - дюйм
cout << "inches";
cin >> inch;
cout << inch;
cout << " in = ";
cout << inch*2.54;
cout << " cm\n";
}
Первая строка функции main() описывает целую переменную inch. Ее значение
считывается с помощью операции >> ("взять из") над
стандартным потоком ввода cin. Описания cin и >>, конечно же,
находятся в . После ее запуска ваш терминал может выглядеть примерно
так:
inches=12
12 in = 30.48 cm
В этом примере на каждую команду вывода приходится один оператор;
это слишком длинно. Операцию вывода << можно применять к ее
собственному результату, так что последние четыре команды вывода можно
было записать одним оператором:
cout << inch << " in = "
<< inch*2.54 << " cm\n";
В последующих разделах ввод и вывод будут описаны гораздо более подробно.
Вся эта глава фактически может рассматриваться как объяснение того,
как можно написать предыдущие программы на языке, который не обеспечивает
операции ввода-вывода. На самом деле, приведенные выше программы написаны
на C++, "расширенном" операциями ввода-вывода посредством
использования библиотек и включения файлов с помощью #include. Другими
словами, язык C++ в том виде, в котором он описан в справочном руководстве,
не определяет средств ввода-вывода; вместо этого исключительно с помощью
средств, доступных любому программисту, определены операции <<
и >>.
100% рабочую программу ехе можно взять тут:
Каждое
имя и каждое выражение имеет тип, определяющий операции, которые могут
над ними производиться. Например, описание
int inch;
определяет, что inch имеет тип int, то есть, inch является целой переменной.
Описание - это оператор, который вводит имя в программе. Описание
задает тип этого имени. Тип определяет правильное использование имени
или выражения. Для целых определены такие операции, как +, -, * и
/. После того, как включен файл stream.h, объект типа int может также
быть вторым операндом <<, когда первый операнд ostream.
Тип объекта определяет не только то, какие операции могут к нему применяться,
но и смысл этих операций. Например, оператор
cout << inch << " in = "
<< inch*2.54 << " cm\n";
правильно обрабатывает четыре входных значения различным образом.
Строки печатаются буквально, тогда как целое inch и значение с плавающей
точкой inch*2.54 преобразуются из их внутреннего представления в подходящее
для человеческого глаза символьное представление.
В C++ есть несколько основных типов и несколько способов создавать
новые. Простейшие виды типов C++ описываются в следующих разделах,
а более интересные оставлены на потом.
Основные
Tипы
Основные типы, наиболее непосредственно отвечающие средствам аппаратного
обеспечения, такие:
char short int long float double
Первые четыре типа используются для представления целых, последние
два - для представления чисел с плавающей точкой. Переменная типа
char имеет размер, естественный для хранения символа на данной машине
(обычно, байт), а переменная типа int имеет размер, соответствующий
целой арифметике на данной машине (обычно, слово). Диапазон целых
чисел, которые могут быть представлены типом, зависит от его размера.
В C++ размеры измеряются в единицах размера данных типа char, поэтому
char по определению имеет размер единица. Соотношение между основными
типами можно записать так:
1 = sizeof(char) <= sizeof(short) <= sizeof(int)
<= sizeof(long)
sizeof(float) <= sizeof(double)
В целом, предполагать что-либо еще относительно основных типов неразумно.
В частности, то, что целое достаточно для хранения указателя, верно
не для всех машин.
К основному типу можно применять прилагательное const. Это дает тип,
имеющий те же свойства, что и исходный тип, за исключением того, что
значение переменных типа const не может изменяться после инициализации.
const float pi = 3.14;
const char plus = '+';
Символ, заключенный в одинарные кавычки, является символьной константой.
Заметьте, что часто константа, определенная таким образом, не занимает
память; просто там, где требуется, ее значение может использоваться
непосредственно. Константа должна инициализироваться при описании.
Для переменных инициализация необязательна, но настоятельно рекомендуется.
Оснований для введения локальной переменной без ее инициализации очень
немного.
К любой комбинации этих типов могут применяться арифметические операции:
+
(плюс,
унарный и бинарный)
-
(минус,
унарный и бинарный)
*
(умножение)
/
(деление)
А
также операции сравнения:
==
(равно)
!=
(не
равно)
<
(меньше)
>
(больше)
<=
(меньше
или равно)
>=
(больше
или равно)
Заметьте,
что целое деление дает целый результат: 7/2 есть 3. Над целыми может
выполняться операция % получения остатка: 7%2 равно 1.
При присваивании и арифметических операциях C++ выполняет все осмысленные
преобразования между основными типами, чтобы их можно было сочетать
без ограничений:
double d = 1;
int i = 1;
d = d + i;
i = d + i; Производные Типы
Вот операции, создающие из основных типов новые типы:
*
указатель
на
*const
константный
указатель на
&
ссылка
на
[]
вектор
()
функция,
возвращающая
Например:
char*
p
//
указатель на символ
char
*const q
//
константный указатель на символ
char
v[10]
//
вектор из 10 символов
Переменная
указатель может содержать адрес объекта соответствующего типа:
char c;
// ...
p = &c; // p указывает на c
Унарное & является операцией взятия адреса.
Вот
и окончен второй урок.
Все вопросы по-прежнему сюда: http://krol-forum.webm.ru/cgi-bin/YaBB.cgi
И как я думаю, вы заметили, появился раздел Скачать. Где будут публиковаться
программы из уроков.
Не сочтите за труд, ответьте в форуме на вопрос: Откуда вы узнали
о нас? Ответы сюда http://krol-forum.webm.ru/cgi-bin/YaBB.cgi?board=new;action=display;num=1047417780
Кстати все кто не зарегистрировался на форуме, советую поспешить пока
только 20 пользователей.
Анонс: В #3 уроке мы рассмотрим тему Выражения и Операторы.
Примеры распострания и лечение Trojan.WebMoney.Wmpatch
Троянская
программа состоит из двух исполняемых Win32 PE-файлов: DBOLE.EXE
и SICKBOY.EXE. Эти файлы скачивались троянцем TrojanDownloader.Win32.Small.n.
Массовая рассылка этого троянца была обнаружена 5 марта 2003 года.
Текст письма с троянцем выглядит так:
From: Greeting cards [greeting_cards@yahoo.com]
Sent: 5 марта 2003 г. 8:20
To: Ivan Petrov
Subject: Вам пришла открытка!
Вам пришла открытка!
Вы можете получить ее, щелкнув по ссылке: http://www.yahoo-greeting-cards.com/*************/viewcard_680fe23d52.asp.scr
Открытка доступна для просмотра в течение двух месяцев.
____________________________________________________
Любимые открытки на http://www.yahoo-greeting-cards.com
Hello!
You've got a postcard!
To view this postcard, click on the link: http://www.yahoo-greeting-cards.com/*************/viewcard_680fe23d52.asp.scr
You will be able to see it at anytime within the next 60 days.
____________________________________________________
Favorite postcards on http://www.yahoo-greeting-cards.com
Файл DBOLE.EXE
Файл упакован утилитой PE-Pack. Размер упакованного файла 32768
байт. Программа написана на языке C. После старта троянец проверяет
наличие клиента программы WebMoney. Для этого он ищет файл "WMClient.dll"
в каталоге программы и встраивает в него новый код. Встроенный
новый код создает на диске два файла:
c:\wmkey.bin
c:\wmmem.bin
Программа создает файл-отчет с именем
c:\wmlog.bin
Затем троянец устанавливает себя в ключе автозапуска системного
реестра.
Содержит строки текста:
kernel32.dll rock the block c:\wmkey.bin
c:\wmmem.bin
CreateFileA WriteFile CloseHandle lstrlen CopyFileA
DatabaseOLE false
Software\Microsoft\Windows\CurrentVersion\Run
Command line: '%s' - Memory allocation failed + Shutting down
- Bad file version - File writing error + File written + Prepare
to patch
+ Entry point at %d (%x) + Patch at %d (%x) + Reading ok, %d bytes
read
- Error reading file + Memory allocation ok File size: %d bytes
+ Open
file ok - WM not installed - Error opening file Patching: %s +
Get path ok %s + Starting WMClient.dll
Software\Webmoney\Path
%s c:\wmlog.bin
Файл SICKBOY.EXE
Файл упакован утилитой PE-Pack. Размер упакованного файла 28672
байт. Программа написана на языке C. После старта программа постоянно
находится в памяти компьютера и отсылает файлы:
c:\wmlog.bin
c:\wmmem.bin
c:\wmkey.bin
по электронной почте на адрес:
sickboy@centrum.cz
Для этого программа самостоятельно связывается с SMTP сервером,
формурует текст письма и конвертирует бинарные файлы в текстовый
формат. Cодержит строки текста:
\xfm1.txt RegisterServiceProcess
kernel32.dll
c:\wmkey.bin c:\wmmem.bin c:\wmlog.bin WebMoney Keeper QUIT
Subject: %s
DATA
RCPT TO:
MAIL FROM:
HELO localhost
62.84.131.172 SOFTWARE\Webmoney\Options file not found Filename
plain text: %s %.2x Filename bin: %s
Как
вылечить? Интересный вопрос.
Конкретно для этого вируса противоядия нет. Так что поставьте
антивирус по новее и придерживайтесь некоторых рекомендаций:
1. Храните ключи к WM на отдельном диске (дискета, диск, IomegaZIP,
MemoryCard etc) и вставляете прямо перед работой с WM. И в конце
сразу вынимайте.
2. Лучше пользоваться почтовой программой The Bat, по причине
того, что в Outlook много "дыр".
3. При загрузке файла по почте досмотрите названия файла до
конца. Потому что очень часто делают так: price.doc____________________________________________________________.exe
4. Если вы пользуетесь одним из известных программ перекачки
файлов типа GetRight, Goozila, ReGet, не ленитесь поставить
в настройках: автоматически проверять файлы после перекачки.
Со всеми вопросами в соответствующий раздел: Антивирусы.
Теперь
на форуме существует раздел “Скачать”. В нем вы всегда можете
скачать программы которые пишутся и будут писаться в уроках
по С++. Так же хочу пригласить всех регистрироваться у нас
на форуме, чтоб иметь самый быстрый способ доступа до информации
нашей рассылки, мира Интернет, программ, активно обсуждать
вопросы связаны с рассылкой, форумом, и компьютерные вопросы
вообще. В разделе "Программирование" будут публиковаться
задачи и готовые *.exe файлы, а через несколько дней и решения.
Добавился раздел “Студенты всех стран объединяйтесь” – это
раздел для эхо-конференции “Студенты
всех стран объединяйтесь”. Здесь всегда можно будет обговорить
свежие анекдоты, студентские шутки, проблемы студенческой
жизни :) и т.п.
Дорогие друзья! Наша рассылка только вступила в жизнь.
Поэтому, если у Вас есть пожелание, которые улучшат нашу рассылку,
пишите мне на мыло или в форум.
Я с удовольствием посмотрю все пожелания.
Хотите
стать другом нашей рассылки? Тогда вступайте в круг друзей.
Для этого вам надо установить наш баннер у себя на главной
странице и прислать мне письмо, в котором указать url своего
сайта, его название и описание. Код нашего баннера: <!-
- Krol- FORUM 88x31- - >
<a href="http://krol- forum.webm.ru/cgi- bin/YaBB.cgi"
>
<img src="http://krol- forum.webm.ru/banner2.gif"alt="Новый
форум по компьютерным системам" width="88"
height="31"></a>
<!- - Krol- FORUM 88x31- - >
Гейтс
получил Hобелевскую премию по экономике и медицине за то, что
первый додумался продавать геморрой за ТАКИЕ деньги.
***
- В кого бы вы выстрелили, если бы оказались в одном лифте с
Садамом Хусейном, Гитлером, Сталиным и Билл Гейтсом и у вас
был бы только один револьвер с двумя патронами?
- В Билл Гейтса два раза, чтобы наверняка…
***
Лежат в корзине OS/2 три программы и разговаривают.
Первая второй:
- Тебя за что в корзину отправили?
- За то, что я не под Windows. А тебя?
- За то, что я под Windows.
Обе третьей:
- А тебя?
- За то, что я и есть Windows.