Напишите программу которая считывает с клавиатуры одно дробное число после чего выводит или 0
В прошлом уроке мы прошли целые числа: как они хранятся, считываются, выписываются и обрабатываются в языке программирования С/С++. Но в математике целые числа занимают лишь малую часть среди всех чисел. Потому что есть ещё и дробные числа, и они, конечно же, тоже есть и в языке программирования С/С++.
Хранение дробных чисел
Дробные числа хранятся в переменных типа double (от англ. double — двойной). Данный тип так называется, потому что для хранения дробного числа необходимо использовать две ячейки в памяти: для целой и для дробной части.
Целая часть числа
Целая часть [x] числа x - наибольшее целое число, не превосходящее x .[3.273] = [3.989] = 3 \\ [-3.273] = [-3.989] = -4
Для того, чтобы вычислить целую часть положительного числа в языке программирования С/С++, необходимо применить конвертацию переменной из типа double в тип int . Чтобы сконвертировать переменную типа double в тип int , необходимо просто поставить перед ней int и взять её в круглые скобки:
Для того, чтобы вычислить целую часть отрицательного числа в языке программирования С/С++, необходимо отнять единицу от числа, сконвертированного в тип int .
Дробная часть числа
Дробная часть \ числа x - это разность x - [x] числа x и его целой части [x] .\ = 3.273 - [3.273] = 3.273 - 3 = 0.273 \\ \ = -3.273 - [-3.273] = -3.273 - (-4) = -3.273 + 4 = 0.727
Проще говоря, целая часть - то, что слева от точки, а дробная часть - то, что справа.
Для того, чтобы вычислить дробную часть числа в языке программирования С/С++, необходимо вычесть из этого числа его целую часть.
Но бывают дробные числа, дробная часть которых бесконечна. Такие числа хранятся в компьютере с некоторой точностью в силу невозможности хранить бесконечное число чисел.
Дробные числа в языке программирования могут также храниться в типе float , но его чаще всего не используют, так как он храните меньшее количество цифр после точки.Создание переменной типа double
Чтобы создать переменную типа double :
Как и в случае с целыми переменными, рекомендуется сразу же очищать переменную от мусора, присваиванием ей нулевое значение:
В случае типа double необходимо присваивать значение именно 0.0 , так как первый нуль очищает целую часть, а второй - дробную. Это правило хорошего тона.Считывание дробных чисел с клавиатуры
Считывание дробных чисел с клавиатуры в языке программирования С/С++ происходит аналогично считыванию целых чисел с помощью функции scanf() за исключением другого типа данных (6 строка):
Для типа double короткое имя при считывании это lf .
lf - образовано от словосочетания long float (длинное плавающее число - англ.) и подразумевает, что будет считано длинное дробное число. Для типа float используется короткое имя f - от словосочетания float (плавающее число - англ.)Вывод дробных чисел на экран
Вывод дробных чисел на экран в языке программирования С/С++ происходит аналогично выводу целых чисел с помощью функции printf() (7-8 строки):
Формат вывода дробных чисел на экран
В языке программирования С/С++ можно регулировать, сколько цифр после точки будет выписано на экран. По умолчанию выписываются 6 цифр после точки.
Чтобы указать, сколько цифр после точки необходимо отобразить, можно написать следующий код (7-8 строки):
Пример вывода данного кода:
II Операция деления с остатком
В языке программирования С/С++ есть операция деления с остатком. Более того, данная операция является очень популярной и широко используемой.
Определение оператора %
Для того, чтобы узнать остаток при делении одного числа на другое, существует специальный оператор, обозначающийся символом процента % :
Остаток при делении отрицательных чисел
В математике принято, что остатки могут быть только положительными. Например, у числа -12 остаток 3 при делении на 5.
В языке программирования С/С++ остатки могут быть отрицательными. У числа -12 при делении на 5 остаток будет не 3, а -2. Необходимо иметь это в виду при решении зада
Процедура универсализации взятия остатка написана в данном уроке чуть ниже.
III Цикл if
Мы начинаем знакомство с таким объектом языка программирования С/С++, как цикл. В языке программирования С/С++ есть несколько основных базовых циклов.
Определение
Цикл - это функция, принимающая в качестве аргументов некоторые условия, а затем, в зависимости от истинности или ложности данных условий, запускающая или же не запускающая команды из своего тела.Самым базовым циклом в языке программирования С/С++, как и во многих других высокоуровневых языках программирования, является цикл if (от англ. if - если).
Цикл if выполняет ровно то, что он означает: "Если условие в аргументе истинно, то команды из цикла будут выполнены, а если ложно - не будут".
Разновидности условий
В качестве условий могут выступать совершенно любые математические выражения, которые могут быть абсолютно точно истинными или же абсолютно точки ложными. Например, условие "Среди чисел от 1 до 1000 есть число, которое делится на все положительные однозначные числа" указать в цикле if нельзя.
Условие должно быть односложным и легкопроверяемым компьютером с точки зрения вычисления. Условия могут быть как на созданные ранее переменные, так и на конкретные числа. Рассмотрим самые популярные разновидности условий:
Выражения со знаками:
В программировании существуют точно такие же знаки, что и в математике:
- Больше >
- Меньше <
- Больше или равно >=
- Меньше или равно <=
- Равно ==
- Не равно !=
Условие пишется в круглых скобочках через пробел после названия цикла:
Выражения, требующие вычисления:
Но порой требуется сравнить не просто переменные или числа, а результаты некоторых операций над ними. Например, будет ли число a больше числа b после прибавления к нему числа c .
Для этого, конечно можно создать дополнительную переменную, положить в неё сумму, а потом уже сравнить эту сумму и число c в цикле if :
Однако это не очень удобно с точки зрения лишнего кода, а также использования памяти, необходимо для создания новой переменной.
Данное сравнение можно осуществить гораздо удобней, сразу сравнив результат суммы и число:
Внутри цикла if можно вычислять выражения любой сложности:
Самое главное правильно расставить скобки и соблюсти синтаксис языка С/С++.Проверка делимости одного числа на другое:
Операция взятия остатка может пригодиться для проверки делимости одного числа на другое. Если число a делится на число b , то остаток при делении числа a на число b равен нулю.
Поэтому проверить делимость числа a на число b в программе можно следующим образом:
Сложные условия в цикле if:
Иногда необходимо проверить сразу несколько условий. Например, что число чётное и положительное. В таком случае можно воспользоваться двумя циклами if :
Чтобы проверить, что число чётное, необходимо проверить на равенство нулю остаток при делении на 2.Но иногда условия могут быть сложней: проверить, что число чётное, положительное и не делится на 7. И создавать для этого три вложенных друг в друга цикла if достаточно долго. Вместо этого можно воспользоваться одним циклом if со сложным условием, состоящем из нескольких простых:
Для связки простых условий можно использовать связки "И" или "ИЛИ". Связка "И" обозначается двумя символами амперсанта && , а связка "ИЛИ" - двумя вертикальными палочками || . В примере выше использована связка "И".
Чтобы в одном цикле if проверить, что число кратно 11 или 13, необходимо воспользоваться связкой "ИЛИ":
Иерархия простых условий в составе сложного:
Важно понимать, что связка "ИЛИ" относится к связке "И" точно также, как операция сложения к операции умножения.
Допустим, необходимо проверить условие, что число положительное, чётное и при этом кратно или 11 или 13.
Можно написать просто:
И это будет неправильно. Перейдём от условий к выражениям с операциями сложения и умножения:
(a>0) \times (a \% 2 == 0) \times (a \% 11 == 0) + (a \% 13 == 0)
Совершенно логично, что сначала будет произведено умножение, а только потом сложение полученного произведения с последним слагаемым. Но ведь нам необходимо, чтобы число гарантированно было чётно и положительно, и только потом кратно 11 или 13.
В стандартной арифметике для этого используются скобки:
(a>0) \times (a \% 2 == 0) \times \Big( (a \% 11 == 0) + (a \% 13 == 0)\Big)
В языке программирования происходит тоже самое. Чтобы условие работало корректно, необходимо добавить скобки:
Конструкция else
Чаще всего необходимо сделать что-либо не только, когда выполнено условие, но и когда оно не выполнено. Использовать для этого второй точно такой же цикл if , только с противоположным условием не рационально.
Для этого и была придумана конструкция else , которая определяет область невыполнимости условия цикла if . Данная конструкция образована от слова else (иначе - англ.).
Допустим, необходимо разделить число на 2 и выписать его на экран, если оно чётное, и просто выписать его на экран, если нечётное. Для этого и нужно использовать else :
Всё просто: "Если число a чётно, делим его на 2 и выписываем, иначе просто выписываем его".
Конструкция else if
Данная конструкция может быть использована и в ещё более сложном условии. Например, необходимо сделать что-то конкретное, в зависимости от остатка при делении на 3. Так как при делении на 3 может быть три остатка (0, 1 и 2), обыкновенно конструкцией "если. иначе. " ограничиться нельзя. В таком случае можно воспользоваться:
Взятие остатка от отрицательного числа
Как уже было замечено, в языке программирования С/С++ операция взятия остатка от отрицательных чисел работает не так, как принято у математиков. Если есть вероятность, что программному коду нужно будет работать с отрицательными числами, необходимо не просто брать остаток при делении одного числа на другое, а осуществлять проверку, с положительным или отрицательным числом идёт работа:
В представленном выше коде осуществляется проверка знака переменной a и в случае, если число a отрицательно, чтобы остаток был таким, как принято у математиков, к остатку прибавляется то, число, на которое делится переменная a .
Однако можно поступить проще. Так как ясно, что в языке программирования С/С++ при делении с остатком отрицательных чисел получается остаток, равный разности принятого у математиков остатка и делителя.
Например, число -12 при делении на 5 в стандартной операции даст остаток -2, а в общепринятой - 3, а число 3 как раз получается прибавлением -2 и 5.
Таким образом, например, при нахождении чисел, имеющих остаток 4 при делении на 11, можно написать следующее условие в цикле if :
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. Напишите программу, которая считывает с клавиатуры одно за другим два целых числа и выводит их сумму.
2. Напишите программу, которая считывает с клавиатуры одно за другим два дробных числа и выводит их сумму.
3.Напишите программу, которая считывает с клавиатуры строку и выводит фразу:
«Слово [введённая строка] имеет длину [длина введённой строки]».
4. Напишите программу, которая считывает с клавиатуры одно дробное число,
после чего выводит «+», «-» или «0», если это число – положительное, отрицательное или ноль, соответственно.
Напишите оставшуюся часть программы. Она должна вывести на экран решение уравнения x + b = a, где x — неизвестное, a и b — числа,
равные тем значениям, которые присвоены соответствующим переменным.
6. Напишите программу, которая считывает с клавиатуры одно целое число и выводит «чётное» или «нечётное» в зависимости от того, является ли число чётным или нечётным.
7. Один ветеран дизайна и вёрстки говаривал: «Вот верстаешь ты, к примеру, визитную карточку.
Сколько оставить места для букв имени? Возьми самое длинное имя, которое только сможешь придумать,
удвой количество букв (ты не представляешь, какие длинные имена бывают!) и добавь места ещё для трёх букв на всякий случай.»
Напишите программу, которая проводит нужные вычисления согласно совету ветерана.
Вводится одна строка — самое длинное имя, которое только можно придумать.
Выводится одно целое число — количество букв, на которое нужно оставить место на визитной карточке, согласно рецепту ветерана дизайна.
8. Напишите программу, которая считывает две строки и выводит «ВЕРНО», если в каждой из них записано или слово да, или слово нет (в любой комбинации).
9.Напишите программу, которая считывает три строки. Если эти три строки – «раз», «два» и «три», то программа выводит «ГОРИ», если нет, то «НЕ ГОРИ».
10.Усовершенствуйте предыдущую программу так, чтобы не только при вводе «раз», «два», «три», но и при вводе «1», «2» и «3» тоже выводилось «ГОРИ».
11. Добавьте в предыдущую программу возможность вместо «раз» ввести «один».
12. У нас есть бизнес-план! Надо написать программу-тест, которая по некоторым простым вопросам выдаёт «строго индивидуальный» анализ личностных качеств.
Задайте пользователю два вопроса с возможными ответами «да» или «нет» (например, «Любите ли вы котиков?» и «Умеете ли вы программировать?») и считайте ответ.
Если пользователь дал любой другой ответ на один из вопросов, сообщаем ему об ошибке и завершаем работу.
Если же он ответил «да» или «нет» на каждый из вопросов, выдаём пользователю результат (например, «Вы обладаете незаурядным умом.»),
Введение
При изучении любого языка программирования очень важно много практиковаться. В этом уроке Вы найдёте различные задачи, которые помогут Вам развить алгоритмическое мышление.
I like Python
Напишите программу, которая выводит на экран текст «I***like***Python» (без кавычек).
Управляемый разделитель
Напишите программу, которая считывает строку-разделитель и три строки, а затем выводит указанные строки через разделитель.
Сумма трёх чисел
Напишите программу, которая считывает три целых числа и выводит на экран их сумму. Каждое число записано в отдельной строке.
Следующее и предыдущее
Напишите программу, которая считывает целое число, после чего на экран выводится следующее и предыдущее целое число с пояснительным текстом.
Разделяй и властвуй
Напишите программу, которая считывает целое положительное число xx и выводит на экран последовательность чисел x, 2x, 3x, 4x, 5x, разделённых тремя черточками.
Расстояние в метрах
Напишите программу, которая находит полное число метров по заданному числу сантиметров.
Сама неотвратимость
Безумный титан Танос собрал все 6 камней бесконечности и намеревается уничтожить половину населения Вселенной по щелчку пальцев. При этом если население Вселенной является нечетным числом, то титан проявит милосердие и округлит количество выживших в большую сторону. Помогите Мстителям подсчитать количество выживших.
Пересчет временного интервала
Напишите программу для пересчёта величины временного интервала, заданного в минутах, в величину, выраженную в часах и минутах.
Трехзначное число
Напишите программу, в которой рассчитывается сумма и произведение цифр положительного трёхзначного числа.
Четырёхзначное число
Напишите программу для нахождения цифр четырёхзначного числа.
Пароль
При регистрации на сайтах требуется вводить пароль дважды. Это сделано для безопасности, поскольку такой подход уменьшает возможность неверного ввода пароля.
Напишите программу, которая сравнивает пароль и его подтверждение. Если они совпадают, то программа выводит: «Пароль принят», иначе: «Пароль не принят».
Четное или нечетное?
Напишите программу, которая определяет, является число четным или нечетным.
Роскомнадзор
Напишите программу, которая определяет, разрешен пользователю доступ к интернет-ресурсу или нет.
Формат входных данных
На вход программе подаётся целое число — возраст пользователя.
Формат выходных данных
Программа должна вывести текст «Доступ разрешен» если возраст не менее 18, и «Доступ запрещен» в противном случае.
Арифметическая прогрессия
Напишите программу, которая определяет, являются ли три заданных числа (в указанном порядке) последовательными членами арифметической прогрессии.
Наименьшее из четырёх чисел
Напишите программу, которая определяет наименьшее из четырёх чисел.
Только +
Напишите программу, которая считывает три числа и подсчитывает сумму только положительных чисел.
Принадлежность 1
Напишите программу, которая принимает целое число x и определяет, принадлежит ли данное число промежутку от -1 до 17.
Принадлежность 2
Напишите программу, которая принимает целое число x и определяет, принадлежит ли данное число указанным промежуткам: от минус бесконечности до -3 и от 7 до бесконечности.
Принадлежность 3
Напишите программу, которая принимает целое число x и определяет, принадлежит ли данное число указанным промежуткам: от -30 до -2 и от 7 до 25.
Високосный год
Напишите программу, которая определяет, является ли год с данным номером високосным. Если год является високосным, то выведите «YES», иначе выведите «NO». Год является високосным, если его номер кратен 4, но не кратен 100, или если он кратен 400.
Ход ладьи
Даны две различные клетки шахматной доски. Напишите программу, которая определяет, может ли ладья попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести «YES», если из первой клетки ходом ладьи можно попасть во вторую, или «NO» в противном случае.
Ход короля
Даны две различные клетки шахматной доски. Напишите программу, которая определяет, может ли король попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести «YES», если из первой клетки ходом короля можно попасть во вторую, или «NO» в противном случае.
Вид треугольника
Напишите программу, которая принимает три положительных числа и определяет вид треугольника, длины сторон которого равны введенным числам.
Самописный калькулятор
Напишите программу, которая считывает с клавиатуры два целых числа и строку. Если эта строка является обозначением одной из четырёх математических операций (+, -, *, /), то выведите результат применения этой операции к введённым ранее числам, в противном случае выведите «Неверная операция». Если пользователь захочет поделить на ноль, выведите текст «На ноль делить нельзя!».
Цветовой микшер
Красный, синий и желтый называются основными цветами, потому что их нельзя получить путем смешения других цветов. При смешивании двух основных цветов получается вторичный цвет:
- если смешать красный и синий, то получится фиолетовый;
- если смешать красный и желтый, то получится оранжевый;
- если смешать синий и желтый, то получится зеленый.
Напишите программу вывода на экран трех последовательно идущих чисел, каждое на отдельной строке. Первое число вводит пользователь, остальные числа вычисляются в программе.
Формат входных данных:
На вход программе подается одно целое число.
Формат выходных данных:
Программа должна вывести три последовательно идущих числа в соответствии с условием задачи.
Напишите программу, которая считывает три целых числа и выводит на экран их сумму. Каждое число записано в отдельной строке.
Формат входных данных:
На вход программе подаётся три целых числа, каждое на отдельной строке.
Формат выходных данных:
Программа должна вывести сумму введенных чисел.
Напишите программу, вычисляющую объём куба и площадь его полной поверхности, по введённому значению длины ребра.
Формат выходных данных:
Программа должна вывести текст и числа в соответствии с условием задачи.
Формат выходных данных:
Программа должна вывести значение функции по введённым числам a a и b b .
Напишите программу, которая считывает целое число, после чего на экран выводится следующее и предыдущее целое число с пояснительным текстом.
Формат входных данных:
На вход программе подаётся целое число.
Формат выходных данных:
Программа должна вывести текст согласно условию задачи.
Задача: Стоимость покупки
Напишите программу, которая считает стоимость трех компьютеров, состоящих из монитора, системного блока, клавиатуры и мыши.
Читайте также: