Последние записи
- Windows 10 сменить администратора
- Рандомное слайдшоу
- Событие для произвольной области внутри TImage
- Удаление папки с файлами
- Распечатка файла
- Преобразовать массив байт в вещественное число (single)
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
8th
Ноя
ЗАПЯТАЯ ФИКСИРОВАННАЯ
А. В. Гусев.
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
8th
РАСШИРЕННЫЕ ВОЗМОЖНОСТИ C++
В первых пяти частях этой книги были представлены C++ и концепции объектно-ориентированного программирования, которые вам необходимо знать для создания мощных программ. В этой части вы расширите ваши знания о C++ сведениями о распределении памяти во время выполнения программ и знаниями о том, как выполнять файловые операции в C++. Уроки этой части представлены как «Расширенные возможности C++», но не позволяйте им запугать вас. Вы обнаружите, что концепции, представленные в этой части, не сложнее тех, которые вы уже освоили.
Урок 31. Использование свободной памяти в C++.
Урок 32. Управление свободной памятью.
Урок 33. Дополнительные возможности cin и cout.
Урок 34. Файловые операции В/В вC++.
Урок 35. Встроенные функции и ассемблерные коды.
Урок 36. Использование аргументов командной строки.
Урок 37. Использование констант и макрокоманд.
Урок 39. Использование исключительных ситуаций C++ для обработки ошибок.
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
8th
MESSAGEDLG
MESSAGEDLG
отображает диалоговое окно сообщений в центре экрана
|| function MessageDlg ( const Message : string; DialogType : TMsgDlgType; Buttons : TMsgDlgButtons; HelpContext : Longint ) : Integer;
Описание:
Delphi функция MessageDlg используется для вывода сообщения пользователю. Сообщение может быть информационным или предупреждающим, или каким-то другим по усмотрению разработчика. Разработчику предоставляется полная свобода выбора кнопок, которые будут использоваться в диалоге.
Например пользователю можно предупредить об ошибке, или предложить выбрать или отказаться от какого-либо действия.
Вызов MessageDlg выводит на экран диалоговое окно и ожидает ответа пользователя. Сообщение в окне задается параметром функции Msg.
Вид отображаемого окна задается параметром AType. Возможные значения этого параметра:
Значение Описание
mtWarning Окно замечаний, содержащее желтый восклицательный знак.
mtError Окно ошибок, содержащее красный стоп-сигнал.
mtInformation Информационное окно, содержащее голубой символ «i».
mtConfirmation Окно подтверждения, содержащее зеленый вопросительный знак.
mtCustom Заказное окно без рисунка. Заголовок соответствует имени выполняемого файла приложения.
Параметр AButtons определяет, какие кнопки будут присутствовать в окне. Тип TMsgDlgBtns параметра AButtons является множеством, которое включает различные кнопки. Возможные значения видов кнопок:
Значение Описание
mbYes Кнопка с надписью ‘Yes’
mbNo Кнопка с надписью ‘No’
mbOK Кнопка с надписью ‘OK’
mbCancel Кнопка с надписью ‘Cancel’
mbHelp Кнопка с надписью ‘Help’
mbAbort Кнопка с надписью ‘Abort’
mbRetry Кнопка с надписью ‘Retry’
mbIgnore Кнопка с надписью ‘Ignore’
mbAll Кнопка с надписью ‘All’
Список необходимых кнопок заключается в квадратные скобки [ ], поскольку параметр AButtons является множеством. Если внутри скобок список отсутствует, в окне не будет ни одной кнопки и пользователю придется закрывать окно системными кнопками Windows.
Кроме множества значений, соответствующих отдельным кнопкам, в Delphi определены три константы, соответствующие часто используемым сочетаниям кнопок:
Значение Описание
mbYesNoCancel Включает в окно кнопки Yes, No и Cancel
mbOkCancel Включает в окно кнопки OK и Cancel
mbAbortRetryIgnore Включает в окно кнопки Abort, Retry и Ignore
Эти константы являются предопределенными множествами. Поэтому при их использовании их не надо заключать в квадратные скобки [ ]. Параметр HelpCtx определяет экран контекстной справки, соответствующий данному диалоговому окну. Этот экран справки будет появляться при нажатии пользователем клавиши F1. Если вы справку не планируете, при вызове MessageDlg надо задать нулевое значение параметра HelpCtx. Подробнее о контекстной справке см. в описании свойства HelpContext.
Функция MessageDlg возвращает значение, соответствующее выбранной пользователем кнопке. Возможные возвращаемые значения:
mrNone mrAbort mrYes
mrOk mrRetry mrNo
mrCancel mrIgnore mrAll
Функция MessageDlg очень полезна для быстрого создания прототипа приложения и проверки диалогового взаимодействия с пользователем. Но у нее есть заметный недостаток: в заголовках и надписях на кнопках тексты английские, так что при использовании русских сообщений получается смесь русского с английским. Поэтому после создания прототипа приложения лучше заменить стандартные диалоговые окна на спроектированные самим разработчиком.
Имеется также функция MessageDlgPos, во всем аналогичная функции MessageDlg, но отображающее окно в заданном месте экрана. При выводе простых сообщений без необходимости анализировать ответ пользователя удобно использовать другие процедуры Delphi — ShowMessage и ShowMessageFmt.
Пример кода:
buttonSelected : Integer;
begin
// Show a confirmation dialog
buttonSelected := MessageDlg(‘Confirmation’,mtError, mbOKCancel, 0);
// Show the button type selected
if buttonSelected = mrOK then ShowMessage(‘OK pressed’);
if buttonSelected = mrCancel then ShowMessage(‘Cancel pressed’);
end;
Результат выполнения:
A confirmation dialog is displayed with OK and Cancel buttons.
The user presses OK :
OK pressed
is displayed in another dialog box.
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
8th
Как при вводе большого сообщения в MessageDlg перейти на новую строчку?
mihali4:
Элементарно… (читать всё…)
8th
CloseFile
CloseFile
закрывает файл с сохранением в нём данных
|| procedure CloseFile ( var FileHandle : TextFile ) ;
Описание:
Delphi процедура CloseFile закрывает открытый файл, связанный процедурой AssignFile. После закрытия файла процедурой CloseFile, все данные, записанные до этого в файл, сохраняются. Переменная типа TFile может после этого связываться с другим физическим файлом.
Пример кода:
var
myFile : TextFile;
text : string;
begin
// Try to open the Test.txt file for writing to
AssignFile(myFile, ‘Test.txt’);
ReWrite(myFile);
// Write a couple of well known words to this file
WriteLn(myFile, ‘Hello’);
WriteLn(myFile, ‘World’);
// Close the file
CloseFile(myFile);
// Reopen the file in read only mode
Reset(myFile);
// Display the file contents
while not Eof(myFile) do
begin
ReadLn(myFile, text);
ShowMessage(text);
end;
// Close the file for the last time
CloseFile(myFile);
end;
Результат выполнения:
Hello
World
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
8th
Программное открытие изображение, изменение размера, сохранение без потерь
Посоветуйте. Мне нужно: программно открыть изображение и изменить его размер, причем изменяя ширину, высота должна изменяться пропорционально. После нужно сохранить изображение под др. именем. (читать всё…)
8th
МОНИТОР
Для начала узнаем, с какой видеокартой мы работаем:
procedure TForm1.Button1Click(Sender: TObject);
var
lpDisplayDevice: TDisplayDevice;
dwFlags: DWORD;
cc: DWORD;
begin
Memo1.Clear;
lpDisplayDevice.cb := sizeof(lpDisplayDevice);
dwFlags := 0;
cc := 0;
while EnumDisplayDevices(nil, cc, lpDisplayDevice, dwFlags) do
begin
Inc(cc);
Memo1.lines.add(lpDisplayDevice.DeviceString);
end;
end;
Теперь разместим на форме ListBox и Button. В обработчике создания формы пишем:
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
DevMode: TDevMode;
begin
i:=0;
while EnumDisplaySettings(nil,i,DevMode) do
begin
with Devmode do
ListBox1.Items.Add(Format(‘%dx%d %d Colors’,
[dmPelsWidth,dmPelsHeight,1 shl dmBitsperPel]));
Inc(i);
end;
end;
Вы увидите все возможные комбинации разрешений и цветов, которые поддерживает дисплей. Теперь пишем в нажатии на кнопку:
procedure TForm1.Button1Click(Sender: TObject);
var
DevMode: TDeviceMode;
liRetValue: Longint;
begin
if EnumDisplaySettings(nil,Listbox1.ItemIndex,Devmode) then
liRetValue := ChangeDisplaySettings(DevMode, CDS_UPDATEREGISTRY);
SendMessage(HWND_BROADCAST, WM_DISPLAYCHANGE, SPI_SETNONCLIENTMETRICS, 0);
end;
function ChangeDisplaySettings(var lpDevMode: TDeviceMode; dwFlags: DWORD): Longint; stdcall;
Параметры:
- lpDevMode Структура с описанием видеорежима, на который мы хотим переключиться.
- dwFlags Определяет как будет изменен видеорежим.
- 0 — Немедленное изменение видеорежима. Установка данного флага возвращает в видеорежим по умолчанию, установленному в реестре, если он был изменен с применением флага CDS_FULLSCREEN, при этом первый параметр функции должен быть nil и флаги равны 0.
- CDS_UPDATEREGISTRY — Видеорежим будет изменен немедленно и информация записана в реестр в пользовательский профиль.
- CDS_TEST — Запрос теста видеорежима средствами Windows
- CDS_FULLSCREEN — Установка видеорежима временна.
- CDS_GLOBAL — Видеорежим будет изменен для всех пользователей данной машины. Иначе видеорежим меняется только для текущего пользователя. Используется вместе с флагом CDS_UPDATEREGISTRY.
- CDS_SET_PRIMARY — Видеорежим становится первичным.
- CDS_RESET — Параметры видеорежима будут изменены, даже если совпадают с текущими.
- CDS_NORESET — Изменения будут записаны в реестр, но не вступят в силу. Используется с флагом CDS_UPDATEREGISTRY
- Возвращаемое значение:
- DISP_CHANGE_SUCCESSFUL Изменения прошли успешно.
- DISP_CHANGE_RESTART Необходима перезагрузка для вступления изменений в силу
- DISP_CHANGE_BADFLAGS Передан неверный набор флагов
- DISP_CHANGE_BADPARAM Неверные параметры.
- DISP_CHANGE_FAILED Драйвер видеоустройства не смог установить режим
- DISP_CHANGE_BADMODE Видеорежим не поддерживается
- DISP_CHANGE_NOTUPDATED Windows NT/2000: Ошибка записи в реестр
После этого Вам достаточно выбрать в ListBox нужную комбинацию и изменить разрешение нажатием на Button.
Внимание:
- Не рекомендуется устанавливать значение видео-режима, который не присутствует в списке доступных. Это может привести к мерцанию экрана либо вообще к исчезновению изображения.
- Многие адаптеры требуют перезагрузку компьютера при смене разрешения.
- SendMessage используется для оповещения всех окна о смене видеорежима.
При изменениях видеорежима генерируется сообщение WM_DISPLAYCHANGE. Необходимо создать обработчик данного сообщения в вашем приложении.
private
procedure WMDisplayChange(var message:TMessage); message WM_DISPLAYCHANGE;
//…
procedure TForm1.WMDisplayChange(var message: TMessage);
begin
ShowMessage(‘Какие-то параметры дисплея изменили!’);
inherited;
end;
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
8th
УРОК 4. ПРОГРАММЫ ХРАНЯТ ИНФОРМАЦИЮ В ПЕРЕМЕННЫХ
Все программы, представленные в уроках 1—3, были очень простыми. Однако по мере того, как ваши программы начинают выполнять более многоплановые задачи, они должны хранить информацию во время выполнения. Например, программе, печатающей файл, нужно знать имя файла и, возможно, число копий, которые вы хотите напечатать. В процессе выполнения программы хранят такую информацию в памяти компьютера. Чтобы использовать определенные ячейки памяти, программы применяют переменные. Проще говоря, переменная представляет собой имя ячейки памяти, которая может хранить конкретное значение. В этом уроке описано, как создавать и использовать переменные в программах на C++. К концу данного урока вы освоите следующие основные концепции:
- Вы должны объявлять переменные, которые будете использовать в программе, сообщая компилятору имя и тип переменной.
- Тип переменной определяет тип значения (например, целое число или число с плавающей точкой), которое может хранить переменная, а также операции, которые ваши программы могут выполнять над переменной.
- Чтобы присвоить значения переменной, используйте оператор присваивания C++ (знак равно).
- Для вывода значения переменной на экран программы используют выходной поток cout.
- При объявлении переменных используйте имена, выражающие смысл переменных, чтобы ваши программы было легче читать и понимать.
- Используйте комментарии, описывающие работу программы. В этом случае, если другим программистам нужно изменить вашу программу, комментарии подробно опишут работу программы.
Когда вы присваиваете значение переменной, представьте себе переменную в виде ящика, в который можно поместить значение. Если вам позже потребуется использовать значение переменной, компьютер просто посмотрит значение, содержащееся в ящике.
ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ В ПРОГРАММАХ
Ваши программы используют переменные для хранения информации. В зависимости от типа хранимого значения, например, целое число, буква алфавита или число с плавающей точкой, тип вашей переменной будет разным.
Тип переменной указывает тип значения, хранимого в переменной, а также набор операций (таких как сложение, умножение и другие), которые программа может выполнять над значением переменной. Большинство программ на C+ + будут использовать типы переменных, перечисленные в табл. 4.1.
Таблица 4.1. Типы переменных C++.
Тип | Хранимые значения |
char | Значения в диапазоне от -128 до 127. Обычно используется для хранения букв алфавита |
int | Значения в диапазоне от -32768 до 32767 |
unsigned | Значения в диапазоне от 0 до 65535 |
long | Значения в диапазоне от -2147483648 до 2147483647 |
float | Значения в диапазоне от -3.4 x 10-38 до 3.4 x 1038 |
double | Значения в диапазоне от 1.7х 10-308 до 1.7х 10308 |
Прежде чем вы сможете использовать переменную, ваша программа должна ее объявить. Другими словами, вам следует представить переменную компилятору C++. Чтобы объявить переменную в программе, вам следует указать тип переменной и ее имя, по которому программа будет обращаться к данной переменной. Указывайте тип и имя переменной после открывающей фигурной скобки главной программы, как показано ниже:
тип_переменной имя_переменной;
Как правило, тип переменной будет одним из типов, перечисленных в табл. 4.1. Выбираемое вами имя переменной должно нести смысловую нагрузку, которая описывает (для всех, кто читает вашу программу) использование переменной. Например, ваша программа могла бы использовать переменные, такие как employee_name, employee_age и т. д. Обратите внимание на точку с запятой, которая следует за именем переменной. В C++ объявление переменной считается оператором. Поэтому вы должны поставить после объявления точку с запятой.
Фрагмент следующей программы объявляет три переменные, используя типы int, float и long:
#include <iostream.h>
void main(void)
{
int test_score;
float salary;
long distance_to_mars;
}
Важно обратить внимание, что данная программа ничего не выполняет, а только объявляет переменные. Как видите, объявление каждой переменной заканчивается точкой с запятой. Если вы объявляете несколько переменных одного и того же типа, можно разделять их имена запятой. Следующий оператор, например, объявляет три переменных с плавающей точкой:
float salary, income_tax, retirement_fund;
Изучение переменных
Переменная представляет собой имя ячейки в памяти компьютера. Во время выполнения ваши программы хранят информацию в переменных. При создании программ вы должны объявлять переменные, сообщая компилятору C++ имя и тип переменной. Например, следующий оператор объявляет переменную с именем age типа int:
int age;
Смысловые имена переменных
Каждая создаваемая вами переменная должна иметь уникальное имя. Чтобы сделать свои программы более легкими для чтения и понимания, следует использовать смысловые имена переменных. Например, следующий оператор объявляет три переменных с именами х, y и z:
int х, у, z;
Предположим, что эти переменные хранят возраст, тестовые очки и оценку студента, тогда следующие имена переменных более понятны по смыслу для других программистов, читающих ваш исходный код:
int student_age, test_score, grade;
При выборе имен переменных можно использовать комбинацию букв, цифр и подчеркивания (_). Первый символ в имени переменной должен быть буквой или подчеркиванием. Нельзя начинать имя переменной с цифры. Кроме того, в C++ буквы нижнего и верхнего регистров считаются разными. Сначала для имен своих переменных используйте только буквы нижнего регистра. Как только вы освоитесь в C++, можете комбинировать буквы верхнего и нижнего регистров для получения смысловых имен, как показано ниже:
float MonthlySalary, IncomeTax;
Слова, которые нельзя использовать для имен переменных
При создании имен переменных необходимо знать, что в C++ слова, перечисленные в табл. 4.2, резервируются в качестве ключевых слов, имеющих специальное значение для компилятора. Вы не имеете права использовать ключевые слова C++ в качестве имен переменных.
Таблица 4.2. Ключевые слова C++.
asm | auto | break | case | catch | char | class | const |
default | delete | do | double | else | enum | extern | float |
friend | goto | if | inline | int | long | new | operator |
protected | public | register | return | short | signed | sizeof | static |
switch | template | this | throw | try | typedef | union | unsigned |
void | volatile | while | continue | for | private | struct | virtual |
Почему ваши программы используют переменные
По мере усложнения ваши программы могут выполнять самые разнообразные операции. Например, программа платежей обрабатывает информацию о каждом служащем. В такой программе вы могли бы использовать переменные с именами employee_name, employee_id, employee_salary и т. д. После запуска программа занесет информацию о первом служащем в эти переменные. После расчета оклада первого служащего программа повторит весь процесс для следующего служащего. Чтобы рассчитать оклад второго служащего, программа занесет информацию о втором служащем (его или ее имя, номер и оклад) в перечисленные выше переменные, а затем выполнит свою обработку. Другими словами, в процессе выполнения программа присваивает переменной разные значения, которые, в свою очередь, изменяют или варьируют значение переменной.
ПРИСВАИВАНИЕ ЗНАЧЕНИЯ ПЕРЕМЕННОЙ
Как вы уже знаете, переменные хранят значения во время выполнения программы. После объявления переменной вы используете оператор присваивания C++ (знак равно), чтобы присвоить значение переменной. Следующие операторы присваивают значения нескольким разным переменным. Обратите внимание на использование точки с запятой в конце каждого оператора:
age = 32;
salary = 25000.75;
distance_to_the_moon = 238857;
Замечание: Значения, присваиваемые переменным, не должны содержать запятые (например, 25,000.75 и 238,857) *. Если вы включаете запятые, компилятор C++ будет генерировать и выводить сообщения о синтаксических ошибках.
Фрагмент следующей программы сначала объявляет переменные, а затем использует оператор присваивания, чтобы присвоить переменным значения:
* Американская запись чисел предполагает отделение каждых трех разрядов целой части числа запятой. — Прим. ред.
#include <iostream.h>
void main(void)
{
int age ;
float salary;
long distance_to_the_moon;age = 32;
salary = 25000.75;
distance_to_the_moon = 238857;
}
Присваивание значения при объявлении
При объявлении переменной часто удобно присваивать ей начальное значение. Чтобы упростить такую процедуру, C++ позволяет присваивать значение во время объявления переменной, как показано ниже:
int age = 32;
float salary = 25000.75;
long distance_to_the_moon = 238857;
Многие программы, представленные в этой книге, присваивают значения переменным при объявлении.
Присваивание значений переменным
При выполнении программы переменные хранят информацию. Для записи значения в переменную программы должны использовать оператор присваивания C++ (знак равно). Следующая строка использует оператор присваивания для записи значения 4 в переменную lesson:
lesson = 4;
Для упрощения этого процесса в C++ можно также присвоить значение переменной при ее объявлении:
int lesson = 4;
ИСПОЛЬЗОВАНИЕ ЗНАЧЕНИЯ ПЕРЕМЕННОЙ
После присвоения значения переменной ваши программы могут использовать это значение, просто обращаясь к ее имени. Следующая программа SHOWVARS.CPP присваивает значения трем переменным и затем выводит значение каждой переменной, используя cout:
#include <iostream.h>
void main (void)
{
int age = 32,
float salary = 25000.75;
long distance_to_the_moon = 238857;
cout << «Служащему » << age << » года (лет)» << endl;
cout << «Оклад служащего составляет $» << salary << endl;
cout << «От земли до луны » << distance_to_the_moon << » миль» << endl;
}
Замечание: Последний оператор cout не помещается на одной строке. В этом случае программа просто переносит слова на следующую строку. Вы можете сделать такой перенос, поскольку C++ использует точку с запятой для указания конца оператора. Если вам необходимо перенести строку, постарайтесь не делать этого в середине символьной строки (внутри двойных кавычек), используйте дополнительный отступ для перенесенной части строки, как показано выше.
Когда вы откомпилируете и запустите эту программу, на экране появится следующий вывод:
С:\> SHOWVARS <ENTER>
Служащему 32 года (лет)
Оклад служащего составляет $25000.75
От земли до луны 238857 миль
Как видите, для использования значения переменной вы просто обращаетесь к имени переменной в вашей программе.
ПРЕВЫШЕНИЕ ДИАПАЗОНА ЗНАЧЕНИЙ ПЕРЕМЕННОЙ
Как вы уже знаете, тип переменной определяет набор значений, которые переменная может хранить. Например, переменная типа int может хранить значения в диапазоне от -32768 до 32767. Если вы присваиваете переменной значение, которое находится вне этого диапазона, возникает ошибка переполнения. Например, следующая программа OVERFLOW.CPP иллюстрирует, как превышение диапазона значений переменной приводит к ошибке. Как видите, программа присваивает значения, которые находятся вне диапазона для переменной каждого типа:
#include <iostream.h>
void main(void)
{
int positive = 40000;
long big_positive = 4000000000;
char little_positive = 210;
cout << «сейчас positive содержит » << positive << endl;
cout << «сейчас big_positive содержит » << big_positive << endl;
cout << «сейчас little_poaitive содержит » << little_positive << endl;
}
Когда вы откомпилируете и запустите эту программу, на вашем экране появится следующий вывод:
сейчас positive содержит -25536
сейчас big_positive содержит -294967296
сейчас little_positive содержит Т
Как видите, программа присваивает переменным типа int, long и char значения, которые находятся вне диапазона хранения каждого типа, поэтому возникает ошибка переполнения. При работе с переменными вам необходимо помнить диапазон значений, которые может хранить переменная каждого типа. Ошибки переполнения плохо уловимы, и поэтому их трудно определить и исправить. Обратите внимание на значение, которое программа выводит для переменной little_positive.Поскольку это переменная типа char, выходной поток cout пытается вывести ее значение в символьном виде. В этом случае выведенное значение соответствует второй половине таблицы ASCII со значением 210.
ПРЕДСТАВЛЕНИЕ О ТОЧНОСТИ
В предыдущем разделе вы узнали, что ошибки переполнения возникают при присваивании переменной значения, которое находится вне диапазона значений для переменной данного типа. Подобно этому вам также необходимо знать, что компьютеры не могут обеспечить неограниченнуюточность при хранении чисел. Например, при работе с числами с плавающей точкой (числа с десятичной точкой) компьютер не всегда может представить число с требуемой точностью. Поэтому возможны ошибки округления, которые тяжело обнаружить.
Следующая программа PRECISE. CPP присваивает значение чуть меньше 0.5 переменным типа float и double. К сожалению, поскольку компьютер обладает ограниченной способностью в представлении чисел, переменные реально содержат не присваиваемые им значения, а число 0.5:
#include <iostream.h>
void main(void)
{
float f_not_half = 0.49999990;
double d_not_half = 0.49999990;
cout << «Значение типа float 0.49999990 равно » << f_not_half << endl;
cout << «Значение типа double 0.49999990 равно » << d_not_half << endl;
}
Когда вы откомпилируете и запустите эту программу, на вашем экране появится следующий вывод:
Значение типа float 0.49999990 равно 0.5
Значение типа double 0.49999990 равно 0.5
Как видите, значения, присваиваемые программой переменным, и значения, которые переменные содержат в действительности, не идентичны. Такие ошибки округления происходят потому, что компьютер должен представлять числа, используя фиксированное количество единиц и нулей. В большинстве случаев компьютер может точно представлять числа. Однако иногда, как показано в этой программе, компьютерпредставляет числа приближенно, а не точно. При программировании вам необходимо всегда помнить о точности. В зависимости от значений, с которыми работают ваши программы, могут возникать трудно обнаруживаемые ошибки округления.
ИСПОЛЬЗОВАНИЕ КОММЕНТАРИЕВ ДЛЯ УЛУЧШЕНИЯ ЧТЕНИЯ ВАШИХ ПРОГРАММ
По мере усложнения ваших программ количество содержащихся в них операторов может сделать программы слишком трудными для понимания. Поскольку другим программистам может потребоваться понять и, возможно, изменить ваши программы, вам следует делать программы более удобочитаемыми. Способы улучшения удобочитаемости программ включают:
- Использование понятных по смыслу имен переменных, описывающих их применение.
- Использование подходящих отступов и выравнивания (см. урок 7).
- Использование пустых строк для разделения несвязанных операторов.
- Использование комментариев, которые объясняют работу программы.
При создании программ вы можете поместить в исходном файле замечания, которые объясняют работу программы. Такие замечания (называемые комментариями) не только помогают другим программистам понять вашу программу, но могут напомнить, почему программа содержит определенные операторы, если вы ее посмотрите через несколько месяцев. Для размещения комментария в своих программах на C++ просто поставьте два знака прямого слеша (//), как показано ниже:
// Это комментарий
Когда компилятор C++ встречает двойной слеш, он игнорирует весь оставшийся на этой строке текст. По крайней мере размещайте в начале каждой программы комментарии, которые указывают, кто написал программу, когда и почему:
// Программа: BUDGET.CPP
// Программист: Kris Jamsa
// дата создания: 1-10-96
//
// Цель: Ежемесячная информация о бюджете.
При выполнении вашей программой различных процессов вам следует поместить до или после определенных операторов комментарии, которые объясняют их назначение. Например, рассмотрим следующий оператор присваивания:
distance_to_the_moon = 238857; // Расстояние в милях
Комментарий справа от оператора присваивания обеспечивает дополнительную информацию всем, кто читает программу. У начинающих программистов часто возникают проблемы, связанные с тем, что и когда комментировать. Как правило, вы включаете немного комментариев в ваши программы. Поэтому убедитесь, что они полезны. Следующие комментарии не дают дополнительной информации программистам, читающим код:
аде =32; // Присвоить 32 переменной age
salary = 25000.75; // Присвоить 25000.75 переменной salary
Цель использования комментариев заключается в том, чтобы объяснить работу программы.
Добавление комментариев в ваши программы
При создании программ включайте комментарии, которые объясняют работу программы. Если другим программистам понадобится изменить вашу программу, они смогут воспользоваться комментариями, чтобы понять поведение программы. Обычно в программах на C++ комментарий начинается с двойного слеша:
// Это комментарий C++
Когда компилятор C++ встречает двойной слеш, он игнорирует весь текст (оставшийся в текущей строке), который следует за слешем. Хорошие программы должны быть легки для чтения и понимания. Комментарии улучшают удобочитаемость вашей программы.
Замечание: В дополнение к использованию комментариев для улучшения удобочитаемости своей программы вам следует использовать пустые строки для разделения несвязанных операторов. Когда компилятор C++ встречает пустую строку, он просто пропускает ее.
ЧТО ВАМ НЕОБХОДИМО ЗНАТЬ
Из этого урока вы узнали, что программы во время выполнения хранят информацию в переменных. Говоря кратко, переменная представляет собой имя, которое ваша программа назначает ячейке памяти, в которой программа хранит информацию. Прежде чем ваша программа сможет использовать переменную, вы должны объявить ее тип и имя. Из урока 5 вы узнаете, как выполнять простые операции, например, сложение и вычитание переменных. Однако до изучения урока 5 убедитесь, что вы освоили следующие основные концепции:
-
- Для использования переменной в вашей программе вы должны объявить ее тип и имя.
- Имена переменных должны быть уникальны и понятны по смыслу другим программистам, читающим ваш исходный текст. Имя переменной должно соответствовать ее назначению.
- Имена переменных должны начинаться с буквы или символа подчеркивания.
- В C++ буквы верхнего и нижнего регистров считаются разными.
- Тип переменной определяет тип значения, которое переменная может содержать. Общими типами переменных являются char, int, float и long.
- Комментарии повышают удобочитаемость вашей программы, поясняя ее работу. В программах на C++ комментарии начинаются с двойного слеша (//).
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
8th
Почему полеты на марс приоритетнее полетов на луну?
На Луну? Вчерась глянул документальный фильм по каналу Россиия-24 и заинтересовался. Действительно ли на Луне полно инопланетян и США и Россия просто боятся лететь туда? Остальные просто не долетят…
Вот иногда читаю новости науки — готовятся в основном на Марс, а ведь для изучения Луна гораздо ближе. Кто как думает? (читать всё…)
Облако меток
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 (Компьютерное железо)