Сложение двух целых чисел

Задания на самостоятельную работу

Самостоятельная работа № Iс

Создание простейшего консольного приложения

Запишем в теле функции main () следующие две строки:

printf("Hello world!\n");

Getch();

Это код нашего первого приложения. Он должен вывести на экран текст "Hello world!" и задержать изображение, чтобы оно "не убежало", не исчезло, пока мы рассматриваем, что там появилось на экране. В итоге наше консольное приложение будет иметь вид, представленный на рис.

1.4.

Чтобы приложение заработало, его надо откомпилировать, т. е. перевести то, что мы написали текстом на языке С в машинные коды. Для этого запускается программа-компилятор. Запускается она либо нажатием клавиши , либо выполнением опции главного меню Run/Run. Если мы проделаем подобные действия, то получим картину, показанную на рис.

1.5.

На рисунке видно, что наша компиляция не удалась: в нижнем поле окна высветилось сообщение о двух ошибках: "Вызов неизвестной функции". Если кнопкой мыши дважды щелкнуть на каждой строке с информацией об ошибке, то в поле функции main(), т. е. в нашей программе, подсветится та строка, в которой эта ошибка обнаружена. Разберемся с обнаруженными ошибками.

Выберем опцию Help/C++Builder Help главного меню. Откроется окно помощи. В нем выберем вкладку Указатель и в поле 1 наберем имя неизвестной (после компиляции программы) функции printf.

В поле 2 появится подсвеченная строка с именем набранной в поле 1 функции. Нажмем . Откроется окно помощи Help, в котором приводятся сведения о функции printf, в том числе, в каком файле находится ее описание (Header file — stdio.h), и как включать этот файл в текст программного модуля (#include ). #include — это оператор компилятора. Он включает в текст программного модуля файл, который указан в угловых скобках.

Таким же образом с помощью раздела Help найдем, что для неизвестной функции getch() к программному модулю следует подключить строку #indude . После этого текст нашей первой программы будет выглядеть, как на рис. 1.6.

Рис. 1.6. Текст программы после подключения необходимых библиотек

Запускаем клавишейкомпилятор, результат показан на рис. 1.7.

Рис. 1.7. Результат выполнения первой программы.

Наша программа успешно откомпилировалась и сразу же выполнилась. В результате ее выполнения в окне черного цвета высветилось слово Hello world!. Если теперь нажать любую клавишу, программа завершится, и мы снова увидим ее текст.

Сохраним новый проект, выполнив опции File/Save All.

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

Имя главной функции, с которой собственно и начинается выполнение приложения, задано в среде программирования. Это имя — main (). В процессе выполнения программы сама функция main() обменивается данными с другими функциями и пользуется их результатами. Обмен данными между функциями происходит через параметры функций, которые указываются в круглых скобках, расположенных вслед за именем функции.

Функция может и не иметь параметров, но круглые скобки после имени всегда должны присутствовать: по ним компилятор узнает, что перед ним функция, а не что-либо другое. В нашем примере две функции, использованные в главной функции main(): это функция printf() и функция getch().

Функция printf() в качестве аргумента имеет строку символов (символы, заключенные в двойные кавычки). Среди символов этой строки есть специальный символ, записанный так:\n. Это так называемый управляющий символ — один из первых 32-х символов таблицы кодировки символов ASCII. Управляющие символы не имеют экранного отображения и используются для управления процессами.

В данном случае символ \n служит для выбрасывания буфера функции printf(), в котором находятся остальные символы строки, на экран и установки указателя изображения символов на экране в первую позицию — в начало следующей строки. То есть когда работает функция printf(), символы строки по одному записываются в некоторый буфер до тех пор, пока не встретится символ \n. Как только символ \n прочтен, содержимое буфера тут же передается на устройство вывода (в данном случае — на экран).

Функция getch() — это функция ввода одного символа с клавиатуры: она ждет нажатия какой-либо клавиши. Благодаря этой функции результат выполнения программы задерживается на экране до тех пор, пока мы не нажмем любой символ на клавиатуре. Если бы в коде не было функции getch(), то после выполнения printf() программа дошла бы до конца тела функции main(), до закрывающей фигурной скобки, и завершила бы свою работу.

В результате черное окно, в котором вывелось сообщение Hello world!, закрылось бы, и мы не увидели бы результата работы программы. Следовательно, когда мы захотим завершить нашу программу, мы должны нажать любой символ на клавиатуре, программа выполнит функцию getch() и перейдет к выполнению следующего оператора. А это будет конец тела main().

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

Самостоятельная работа № Iа

Самостоятельная работа № II

Очень простое приложение.

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

1. Если C++Builder уже работает, и вы уже делали какие-то эксперименты с формой, то откройте новое приложение. В C++ Builder 6 для этого надо выполнить команду File | New и в открывшемся каскадном меню выбрать раздел Application.

2. Перенесите на пустую форму, которая открылась вам, кнопку Buttonсо страницы Standard палитры компонентов. Для этого выделите пиктограмму кнопки и затем щелкните курсором мыши в нужном вам месте формы. На форме появится кнопка, которой C++Builder присвоит имя по умолчанию — Button1.

3. Аналогичным образом перенесите на форму с той же страницы Standardпалитры компонентов метку Label.В этой метке в процессе выполнения приложения будет появляться текст при нажатии пользователем кнопки. C++Builder присвоит метке имя Label1.

4. Разместите компоненты на форме примерно так, как показано на рисунке. При этом уменьшите до разумных размеров окно формы, так как в вашем первом приложении никаких других компонентов не будет.

5. Выделите на форме компонент Button 1— кнопку. Перейдите в Инспектор Объектов и измените ее свойство Caption(надпись), которое по умолчанию равно Buttonl(имя, которое по умолчанию присвоил этому компоненту C++Builder) на «Пуск».

6. Укажите метке Label1,что надписи на ней надо делать жирным шрифтом. Для этого выделите метку, в окне Инспектора Объектов раскройте двойным щелчком свойство Font(шрифт), затем также двойным щелчком раскройте подсвойство Style(стиль) и установите в trueсвойство fsBold(жирный).

7. Сотрите текст в свойстве Captionметки Label1,чтобы он не отображался, пока пользователь не нажмет кнопку приложения.

Теперь вам осталось только написать оператор, который заносил бы в свойство Captionметки Label1нужный вам текст в нужный момент. Этот момент определяется щелчком пользователя на кнопке. При щелчке в кнопке генерируется событие OnClick.Следовательно, обработчик этого события вы и должны написать.

8. Выделите кнопку Button1на форме, перейдите в Инспектор Объектов, откройте в нем страницу событий (Events), найдите событие кнопки OnClick(оно первое сверху) и сделайте двойной щелчок в окне справа от имени этого события. Это стандартный способ задания обработчиков любых событий. Но перейти в обработчик события OnClick(только этого события) можно и иначе: достаточно сделать двойной щелчок на компоненте Buttonlна форме. В обоих случаях вы окажетесь в окне Редактора Кода и увидите там текст:

void__fastcall TForml::Button1Click(TObject *Sender)

Заголовок этой функции складывается из имени класса вашей формы (TForml), имени компонента (Button1)и имени события без префикса On (Click).

9. Напишите в обработчике оператор задания надписи метки Label 1.Этот оператор может иметь вид:

Labell->Caption = "Это мое первое приложение!";

Таким образом, полностью ваш обработчик события должен иметь вид:

void __fastcall TForml::ButtonlClick(TObject *Sender)

{

Label1->Caption = "Это мое первое приложение!";

}

Оператор, который вы написали, означает следующее. Символ « = » обозначает операцию присваивания, в которой тому, что написано перед этим символом, присваивается значение того, что написано после символа присваивания.

Слева вы написали: Label1->Caption.Это значит, что вы присваиваете значение свойству Caption компонента Label1.Все указания свойств и методов производятся аналогичным образом: пишется имя компонента, затем ставятся символы операции стрелка «->»: символ минус «-» и символ больше «>», записанные без пробела. После этих символов пишется имя свойства или метода. В данном случае свойству Captionвы присваиваете строку текста «Это мое первое приложение!».

Если вы написали первый идентификатор оператора – Label1,поставили символы стрелки и ненадолго задумались, то вам всплывет подсказка, содержащая список всех свойств и методов метки. Это начал работать Знаток Кода, который стремится подсказать вам свойства и методы компонентов, аргументы функций и их типы, конструкции операторов. Вы можете выбрать из списка нужное ключевое слово, нажать клавишу Enter, и выбранное слово (свойство, метод) окажется вписанным в текст.

Можете поступить иначе: начать писать нужное свойство, Тогда Знаток Кода сам найдет по первым введенным символам нужное свойство. Когда вы увидели, что нужное слово найдено, можете его не дописывать, а нажать Enter, и Знаток Кода допишет его за вас.

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

Этот инструмент очень удобен во многих случаях, когда вы не очень точно помните последовательность перечисления параметров какой-нибудь функции, или когда не уверены в имени какого-то свойства (особенно в том, какие буквы этого слова в каком регистре надо писать). Но иногда, когда вы хорошо освоитесь с C++Builder, эти подсказки, может быть, начнут вас раздражать, особенно, если у вас не слишком мощный компьютер.

К тому же, иногда Знаток Кода безо всякого вашего желания дописывает начатое вами слово, причем дописывает не всегда верно. Имейте в виду, что при настройке ИСР вы можете временно отключить Знатока Кода или увеличить задержку, с которой он срабатывает.

Итак, ваше приложение готово. Можете откомпилировать и выполнить его. Для этого выполните команду Run Run, или нажмите соответствующую быструю кнопку или нажмите «горячую» клавишу F9. Если вы ничего не напутали, то после недолгой компиляции, сопровождающейся временным появлением на экране окна компилятора, перед вами появится окно вашего первого приложения. Нажав в нем кнопку «Пуск» вы увидите указанную вами строку текста.

Можете попробовать различные манипуляции с окном: перемещение его, изменение размеров его рамки курсором мыши, свертывание и развертывание. В заключение закройте приложение, щелкнув на кнопке в его правом верхнем углу.

Самостоятельная работа № IIIc

Сложение двух целых чисел.

Используйте объект cin входного потока и операцию взять из потока

1. В первой строке программы запишите директиву препроцессора #include , она включает в программу содержание заголовочного файла iostream.h, без которой компилятор не поймет определенные в ней функции cout.

2. Объявите переменные, тип данных int. Это значит, что эти переменные всегда будут содержать целые значения, т.е. целые числа, такие как 7, -11, 0, 31914.

3.Оператор

печатает на экране буквенное сообщение Введите первое целое число и позиционирует курсор на начало следующей строки. Это сообщение называется приглашением, потому что оно предлагает пользователю выполнить некоторое действие. О предыдущем операторе можно сказать так: «cout получаетсимвольную строку "Введите первое целоечисло\п"».

1. Оператор

,

использует объект входного потока cin и операцию взять из потока », чтобы получить от пользователя значение. Объект cinзабирает вводимую информацию из стандартного потока ввода, которым обычно является клавиатура. О предыдущем операторе можно сказать так: «cin дает значение первого целого числа».

Объекты потоков coutи cinвызывают взаимодействие между пользователем и компьютером. Поскольку это взаимодействие напоминает диалог, часто говорят о диалоговом расчете или интерактивном расчете.

5-6.аналогично 3-4.

7. Оператор присваивания

рассчитывает сумму переменных integer1 и integer2и присваивает результат переменной sum,используя операцию присваивания =. Оператор читается так: «sumполучает, значение, равное integerl + integer2».Оператор присваивания используется в большинстве расчетов.

8. Оператор

печатает символьную строку Сумма равна,затем численное значение переменной sum, за которым следует endl(аббревиатура словосочетания «end line» — конец строки) — так называемый манипулятор потока. Манипулятор endlвыводит символ новой строки и затем «очищает буфер вывода». Это просто означает, что в некоторых системах, где выводы накапливаются в вычислительной машине до тех пор, пока их не станет достаточно, чтобы «имело смысл печатать на экране», endlвызывает немедленную печать на экране всего накопленного.

Заметим, что предыдущий оператор выводит множество значений разных типов. Операция поместить в поток «знает», как выводить каждую единицу данных. Многократное использование операции поместить в поток («) в одном операторе называется сцепленной операцией поместить в поток.

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

В операторах вывода можно также выполнять вычисления. Мы могли бы объединить два предыдущих оператора в один

cout

Результат выполнения программы:

Самостоятельная работа № IIIa

Рандомно подобранные статьи с сайта:

Самостоятельная работа: сложение и вычитание положительных и отрицательных целых чисел.


Похожие статьи:

admin