Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Следите за ошибками несовпадения типов



Как уже обсуждалось, программа FIRSTCIN.CPP предполагает, что пользователь вводит значение в диапазоне от -32768 до 32767. Если вместо ввода числа вне этого диапазона, пользователь вводит буквы или другие символы, то возникает другая ошибка — ошибка несовпадения типов. Другими словами, программа ожидала значение одного типа (int), а пользователь ввел значение другого типа (char). Для примера запустите программу второй раз. Когда программа запросит число, введите буквы АВС. Как и раньше, возникнет ошибка, поскольку программа ожидает целое число, а не буквы.

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

Чтение символьных данных

Обе предыдущие программы использовали cin для чтения целых чисел в переменные типа int. Следующая программа CIN_CHAR.CPP использует входной поток cin для чтения символов с клавиатуры. Как видите, программа читает символ в переменную типа char.

#include < iostream.h>

void main(void)

{
char letter;
cout < < " Введите любой символ и нажмите Enter: ";
cin > > letter;
cout < < " Был введен символ " < < letter < < endl;
}

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

Чтение слов с клавиатуры

Во второй части данной книги вы научитесь сохранять слова или даже строки текста в одной переменной. Там же вы узнаете, как использовать входной поток cin для чтения слов и целых строк. А сейчас можете создать свою собственную простую программу, которая читает значения типа float или long. Например, следующая программа CIN_LONG.CPP использует cin для чтения значения типа long:

#include < iostream.h>

void main(void)

{
long value;
cout < < " Введите большое число и нажмите Enter: ";
cin > > value;
cout < < " Было введено число " < < value < < endl;
}

Как и раньше, поэкспериментируйте с этой программой, вводя очень большие числа (и отрицательные тоже).

Перенаправление В/В и входной поток cin

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

ЧТО ВАМ НЕОБХОДИМО ЗНАТЬ

В этом уроке вы научились использовать входной поток cin длявыполнения ввода с клавиатуры. Как вы уже знаете, если ваши программы используют cin для чтения ввода с клавиатуры, вам следует указать переменные, которым cin присваивает вводимые значения. В уроке 7 вы научитесь использовать оператор C++ if, чтобы позволить программам принимать собственные решения. Однако перед тем, как приступить к уроку 7, убедитесь, что вы освоили следующие основные концепции:

    1. C++ предоставляет входной поток cin, который ваши программы могут использовать для чтения ввода с клавиатуры.
    2. Если программы для чтения ввода используют cin, они должны указать одну или несколько переменных, в которыеcin будет помещать данные.
    3. Чтобы направить ввод в переменную, вам следует использовать cin с оператором извлечения (> > ).
    4. При применении cin для чтения нескольких значений, cinиспользует пустые символы (пробел, табуляция или возврат каретки), чтобы определить, где заканчивается одно значение и начинается другое.
    5. Если пользователь вводит неверные данные, могут возникать ошибки переполнения или несоответствия типов, а значения, присвоенные входным потоком cin переменным вашей программы, будут неверны.

Как вы уже знаете, программа представляет собой последовательность инструкций, выполняемых компьютером для реализации определенных задач. Все созданные вами до сих пор простые программы на C++ выполняли операторы по порядку, начиная с первого до конца программы. По мере усложнения программ вам потребуется, чтобы выполнялся один набор операторов, если определенное условие соблюдается, и другой набор, если условие не соблюдается. Другими словами, вам потребуется, чтобы ваши программы приняли решение и соответственно отреагировали. В этом уроке описывается оператор C++ if, который будет использоваться вашей программой для принятия подобных решений. К концу данного урока вы освоите следующие основные концепции:

  • Программы на C++ используют операции сравнения, чтобы определить, равны ли два значения или одно значение больше или меньше другого.
  • Для принятия решений используется оператор C++ if.
  • Операторы C++ могут быть простыми(одна операция) илисоставными(несколько операций, сгруппированных внутри правой и левой фигурных скобок {}).
  • Ваши программы используют оператор C++ if-elseдля выполнения одного набора операторов, если определенное условие соблюдается, и другого набора операторов, если условие не соблюдается.
  • Комбинируя несколько операторов if-else, программы могут проверять несколько условий.
  • Используя логические операторы C++ И и ИЛИ, ваши программы могут проверить несколько условий, например: Есть ли у пользователя собака И долматин ли это?

Программы, которые принимают решения, выполняют условную обработку.Другими словами, на основании результата одного или нескольких Условий программа будет выполнять определенные операторы. Экспериментируйте с программами данного урока; ваш набор инструментальных средств C++ уже достаточно обширен для создания полезных программ.

СРАВНЕНИЕ ДВУХ ЗНАЧЕНИЙ

Когда ваши программы принимают решение, они обычно выполняют некоторый вид проверки. Например, одна программа может проверять, равны ли тестовые очки студента 100, а вторая программа — составляет ли стоимость покупки больше $50.00. Для выполнения подобных проверок ваши программы будут использовать операции сравнения C++, перечисленные в табл. 7.1. Операции сравнения позволяют проверять, каким образом одно значение соотносится с другим. Другими словами, используя операции сравнения, программы могут проверить, больше одно значение, меньше или равно другому.

Таблица 7.1. Операции сравнения C++.

Операция Проверка Пример
== Если два значения равны (score == 100)
! = Если два значения не равны (old! = new)
> Если первое значение больше второго (cost > 50.00)
< Если первое значение меньше второго (salary < 20000.00)
> = Если первое значение больше или равно второму (stock_price > = 30.0)
< = Если первое значение меньше или равно второму (age < = 21)

Если ваша программа использует операции сравнения для сравнения двух значений, результат сравнения может быть истиной или ложью. Другими словами, два значения или равны (истина), или нет (ложь). Каждый из операторов if, представленных в этой книге, использует операции сравнения, перечисленные в табл. 7.1.

ЗНАКОМСТВО С ОПЕРАТОРОМ if

Оператор C++ ifпозволяет вашим программам осуществлять проверку и затем на основании этой проверки выполнять операторы. Формат оператора ifследующий:

if (условие_выполняется) оператор;

Обычно оператор ifвыполняет проверку, используя операцию сравнения C++. Если результат проверки является истиной, ifвыполняет оператор, который следует за ним. Следующая программа FIRST_IF.CPP использует оператор ifдля сравнения значения переменной test_scoreсо значением 90. Если набранные тестовые очки больше или равны 90, программа выведетсообщениепользователю, что он получил А. В противном случае, если значение меньше 90, программа просто завершается:

#include < iostream.h>

void main(void)

{
int test_score = 95;
if (test_score > = 90) cout < < «Поздравляем, вы получили А! » < < endl;
}

Как видите, для выполнения проверки программа использует операцию сравнения C++ «больше или равно» (> =). Если результат сравнения значений является истиной, программа выполняет оператор, который следует за if, в данном случае вывод сообщения с использованием cout.Если результат сравнения не является истинным, программа не выводит сообщение. Экспериментируйте с этой программой, изменяя проверочные очки (в том числе и меньше 90), и обратите внимание на работу оператораif.


Поделиться:



Популярное:

  1. Анализ аналогов и прототипов
  2. АНАЛИЗ И СИНТЕЗ ТИПОВЫХ ЭЛЕКТРОННЫХ УСТРОЙСТВ
  3. В развитии аллергического воспаления бронхов при БА участвуют иммунные реакции I, II, и IV типов.
  4. В.10 Типовая операционная технологическая карта сборки и ручной дуговой сварки соединений люков-лазов с фланцами
  5. В.4 Типовая операционная технологическая карта сборки и механизированной сварки уторного шва резервуара
  6. В.7 Типовая операционная технологическая карта сборки и механизированной сварки соединений патрубков со стенкой резервуара
  7. Внутрипсихические конфликты представляют собой столкновения в психике животного тенденций к одновременному выполнению двух несовместимых типов поведения.
  8. Выделяют следующие пять типовых стратегий (стилей) поведения в конфликтных ситуациях.
  9. Г.1 Типовая операционная технологическая карта сборки и сварки соединений при замене окраечных листов днища в процессе ремонта резервуара
  10. Г.10 Типовая операционная технологическая карта сборки и сварки соединений при замене листов стенки рулонного резервуара в зоне хлопуна
  11. Г.10 Типовая операционная технологическая карта сборки и сварки соединений при замене монтажного стыка стенки рулонного резервуара
  12. Г.2 Типовая операционная технологическая карта сборки и сварки соединений при замене листов центральной части днища в процессе ремонта резервуара


Последнее изменение этой страницы: 2016-05-30; Просмотров: 575; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.015 с.)
Главная | Случайная страница | Обратная связь