Запишите команду которая во время работы программы обеспечит вывод значений двух переменных one two


Предмет: Информатика,


автор: Даня12423567457

Ответы

Автор ответа: FAS3l





14

Ответ: write (one, two)

Объяснение:

Предыдущий вопрос

Следующий вопрос

Интересные вопросы

Предмет: География,
автор: milka200916

Что такое Адриатика?​

4 года назад

Предмет: География,
автор: zulfiya9559

20 рек и озёр евразии
Помогите пожалуйста если вам не трудно​

4 года назад

Предмет: Литература,
автор: euwued

А. Платонов «В прекрасном и яростном мире», озаглавит главы, составить вопросы по главам
даю 30 баллов

4 года назад

Предмет: Физика,
автор: vitekcsgo

Нужно решить задачи,помогите пожвлуйста

6 лет назад

Предмет: Физика,
автор: la6buldueIstashu

площадь поперечного сечения соснового бревна равна 500 см 2 , а длина бревна – 5 м. ка- кой массой угля можно заменить это бревно (для получения такого же количества тепло- ты), если плотность сосны 520 кг/м 3 , удельная теплота сгорания древесины 10 мдж/кг, угля – 27 мдж/кг? ответ выразите в кг и округлите до целого

6 лет назад



Как можно объяснить одинаковые результаты выполнения операторов в приведённых ниже примерах?

Оператор вывода Результат выполнения оператора
write (‘s=’, s:3:1) s:=15.0
write (‘s=’, s:4:1) s:=15.0

В первом примере у нас само число меньше, чем зарезервированных позиций, поэтому автоматически будет увеличино количество позиций до минимально необходимого. То есть вывод (15.0), здесь четыре позиции, как во втором примере и никаких пробелов не нужно, так как нету свободных позиций.
По этой причине результаты будут одинаковые.


Задание 2. Запишите оператор, обеспечивающий во время работы программы ввод значения переменной summa.

readln (summa);


Задание 3. Целочисленным переменным i, j, k нужно присвоить соответственно значения 10, 20 и 30. Запишите оператор ввода, соответствующий входному потоку.

а) 20 10 30
readln (j, i, k);

б) 30 20 10
readln (k, j, i);

в) 10 30 20
readln (i, k, j);


Задание 4. Опишите переменные, необходимые для вычисления площади треугольника по трём его сторонам, и запишите оператор, обеспечивающий ввод необходимых данных.

Формула нахождения площади треугольника по трём его сторонам:

p – полупериметр треугольника (a+b+c)/2
a, b, c – стороны треугольника
S – площадь

Описание переменных:
var a, b, c: real;
Оператор ввода:
readln (a, b, c);

Программа на языке Паскаль:

program z_4;
var a, b, c, p, S: real;
BEGIN
 writeln('Площадь треугольника по трём его сторонам');
 writeln('Введите стороны треугольника:'); 
 write('a>>'); 
 read (a);
 write('b>>'); 
 read (b);
 write('c>>'); 
 read (c);
 //Проверяем, существует ли такой треугольник
 if ((a+b)>c) and ((a+c)>b) and ((b+c)>a) then begin
 //Вычислим полупериметр
 p := (a+b+c)/2;
 //Теперь вычислим площадь
 S:=sqrt(p*(p-a)*(p-b)*(p-c));
 writeln ('S = ', S:3:2, ' см2');
 end
 else
 writeln ('Треугольник со сторонами ', a,', ', b,', ', c,' не существует');
END.

Задание 5. Что является результатом выполнения оператора?

а) write (a) – вывод значения переменной «a»;
б) write (») – вывод на экран буквы «a»;
в) write (‘a=’, a) – вывод на экран текста «a=», а затем значение переменной «a».


Задание 6. Каким образом можно вывести на экран вещественное число?

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


Задание 7. Запишите операторы вводы двух чисел и вывода их в обратном порядке.

read (a, b);
write (b, ‘ ‘, a);


Задание 8. Дан фрагмент программы:
read (a); read (b); c:=a+b; write (a, b); write (c)
Упростите его, сократив число операторов ввода и вывода.

read (a, b); c:=a+b; write (a, b, c)


Задание 9. Дан фрагмент программы:
a:=10; b:=a+1; a:=b-a; write (a, b)
Какие числа будут выведены на экран компьютера?

Ответ: 111


Задание 10. Напишите программу, которая вычисляет площадь и периметр прямоугольника по длинам двух его сторон.

program z_10;
var a, b, s, p: real;
BEGIN
write ('a>>');
read (a);
write ('b>>');
read (b);
s:=a*b;
writeln ('Площадь равна: ', s:4:2);
p:=2*(a+b);
writeln ('Периметр равен: ', p:4:2);
END.

Решение заданий из учебника Информатика 8 класс Босова, параграф 3.2 Организация ввода и вывода данных. Вывод данных, Первая программа на языке Паскаль, Ввод данных с клавиатуры.

  • Предмет: Информатика
  • Автор: nsjdhdbx
  • Вопрос задан 5 лет назад

<

>

Ответа на этот вопрос пока нет. Попробуйте найти его через форму поиска.

Похожие вопросы

География

7 месяцев назад

Где сосредоточены основные месторождения нефти и природного газа? в Красном море в Персидском заливе на Скандинавском полуострове в предгорных прогибах Анд​

Математика

7 месяцев назад

Однажды в лагере за круглым столом оказалось пятеро ребят из Перми, Соликамска, Кунгура, Чернушки и Осы: Юра, Толя, Леша, Коля и Витя. Пермяк сидел между осинцем и Витей, соликамец – между Юрой и

Русский язык

4 года назад

Помогите, пожалуйста!!! ​

Математика

4 года назад

Найдите производную следующей функции:
y=1/2sin 3x

История

6 лет назад

Срочно! Даю 40 баллов!!!
1) Как преобразования внутри страны сказались на результатах внешней политике Ивана 4?
2) Надо ли было расширять территорию страны? На грозило ли это распадом страны?

Обществознание

6 лет назад

Структура массовой коммуникации в обществе

Химия

7 лет назад

!!!!!!!!!Помогите срочно!!!!!!!!Рассчитайте массу бромида калия,которую нужно взять для приготовления насыщенного раствора массой 200 г при 20 градусов ,если коэффициент растворимости соли при

Математика

7 лет назад

жва поезда отошли одновременно навстречу друг другу от двух станций,расстояние между которыми 350км.Первый поезд едет со скоростью 85 км/ч, второй-95 км/ч.Какое расстояниебудет между этими поездами

Большинство программ, даже самых простых, выполняют обработку какой-либо информации – получают разнообразные данные, производят необходимые операции, после чего выводят результат. За ввод и вывод данных в Python отвечают встроенные функции input() и print(). С помощью функции вывода print() можно написать классическую программу Hello, World! в одну строку:

        >>> print('Hello, World!')
Hello, World!

    

Для ввода нужной информации используют input(). В этом примере переменная name с помощью оператора присваивания = получит введенное пользователем значение:

        name = input()
    

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

        name = input('Как тебя зовут? ')
    

Или:

        name = input('Введите свое имя ')
    

Напишем программу, которая запрашивает имя пользователя и выводит приветствие:

        name = input('Как тебя зовут? ')
print('Привет,', name)

    

Результат:

        Как тебя зовут? Вася
Привет, Вася

    

В этой программе используются две встроенные функции input() и print(), а также переменная name. Переменная – это именованная область памяти, в которой во время выполнения программы хранятся данные определенного типа (о типах данных расскажем ниже). В стандартах оформления кода PEP 8 даны рекомендации по названиям переменных:

  • Названия не должны начинаться с цифры, но могут заканчиваться цифрой. Например, назвать переменную 7up – неправильно, а так – seven11 – можно.
  • Названия могут состоять из комбинации строчных, заглавных букв, цифр и символов подчеркивания: lower_case, mixedCase, CapitalizedCase, UPPER_CASE, lower123.
  • Не следует давать переменным названия, совпадающие со служебными словами, названиями встроенных функций и методов, к примеру – print, list, dict, set, pass, break, raise.
  • Следует избегать использования отдельных букв, которые могут быть ошибочно приняты друг за друга – l (L в нижнем регистре), I (i в верхнем регистре) или за нуль – O.
  • В названиях не должно быть пробелов, дефисов и специальных символов, например, ' или $.
  • Главный принцип именования переменных – осмысленность. По названию переменной должно быть понятно, какого рода данные в ней хранятся – например, car_model, petName, CARD_NUMBER более информативны, чем a, а1, а2.

Переменные выполняют две важные функции:

  • делают код понятнее;
  • дают возможность многократно использовать введенные данные.

Если программа небольшая, а введенное значение используется однократно, можно обойтись без использования переменной:

        print('Привет,', input('Как тебя зовут?'))
    

Ввод и вывод нескольких переменных, f-строки

Если в программе используются несколько переменных, ввод данных можно оформить на отдельных строках:

        first_name = input()
last_name = input()
age = input()

    

Или в одну строку:

        first_name, last_name, age = input(), input(), input()
    

Либо так – если значения переменных равны:

        x1 = x2 = x3 = input()
    

Чтобы вывести значения переменных на экран, названия перечисляют в print() через запятую:

        print(first_name, last_name, age)
    

Или по отдельности:

        print(first_name)
print(last_name)
print(age)
    

При перечислении через запятую Python выводит все переменные в одну строку, разделяя значения пробелами:

        Вася Пупкин 12
    

Вместо пробела можно подставить любой другой разделитель. Например:

        print(first_name, last_name, age, sep="***")
    

В результате значения будут разделены звездочками:

        Вася***Пупкин***12
    

Если нужно вывести значения не в строку, а в столбик, можно воспользоваться специальным параметром end="n" – он обеспечивает переход на новую строку:

        print(first_name, last_name, age, end="n")
    

Чтобы сделать вывод более информативным, используют f-строки:

        print(f'Имя: {first_name}, Фамилия: {last_name}, Возраст: {age}')
    

Все содержимое такой строки находится в конструкции f'...', а названия переменных внутри строки заключаются в фигурные скобки {...}.

Операции во время вывода

Функция print(), помимо вывода результатов работы программы, допускает проведение разнообразных операций с данными:

        >>> print(5 + 5)
10
>>> print(10 // 3)
3
>>> print(6 ** 2)
36
>>> print('I' + ' love' + ' Python')
I love Python

    

Встроенные типы данных в Python

Питон работает с двумя категориями данных – встроенными типами (они поддерживаются по умолчанию) и специализированными (для операций с ними нужно подключение определенного модуля). К специализированным типам данных относятся, например, datetime (дата и время) и deque (двухсторонняя очередь).

Все встроенные типы данных в Python можно разделить на следующие группы:

  • Числовые – целые, вещественные, комплексные числа. Примечание: для максимально точных расчетов с десятичными числами в Python используют модуль decimal (тип данных Decimal), а для операций с рациональными числами (дробями) – модуль fractions (тип данных Fraction).
  • Булевы – логические значения True (истина) и False (ложь).
  • Строковые – последовательности символов в кодировке Unicode.
  • NoneType – нейтральное пустое значение, аналогичное null в других языках программирования.
  • Последовательности – списки, кортежи, диапазоны.
  • Словари – структура данных типа «ключ: значение».
  • Множества – контейнеры, содержащие уникальные значения. Подразделяются на изменяемые set и неизменяемые frozenset множества.
  • Байтовые типыbytes (байты), bytearray (изменяемая байтовая строка), memoryview (предоставление доступа к внутренним данным объекта).

В таблице приведены примеры и определения встроенных типов данных:

Тип данных Значение Определение в Python Вариант использования
Целые числа -3, -2, -1, 0, 1, 2, 3 int a = int(input())
Вещественные числа -1.5, -1.1, 0.6, 1.7 float a = float(input())
Комплексные числа −5i, 3+2i complex a = complex(input())
Булевы значения True, False True, False flag = True
NoneType None None a = None
Строка ‘abracadabra’ str a = str(5)
Список [1, 2, 3], [‘a’, ‘b’, ‘c’] list a = list((‘a’, ‘b’, ‘c’))
Кортеж (‘red’, ‘blue’, ‘green’) tuple a = tuple((‘red’, ‘blue’, ‘green’))
Изменяемое множество {‘black’, ‘blue’, ‘white’}, {1, 3, 9, 7} set a = set((‘black’, ‘blue’, ‘white’))
Неизменяемое множество {‘red’, ‘blue’, ‘green’}, {2, 3, 9, 5} frozenset a = frozenset((2, 5, 3, 9))
Диапазон 0, 1, 2, 3, 4, 5 range a = range(6)
Словарь {‘color’: ‘red’, ‘model’: ‘VC6’, ‘dimensions’: ’30×50′} dict a = dict(color=’red’, model=’VC6′, dimensions=’30×50′)
Байты b’x00x00x00′ bytes a = bytes(3)
Байтовая строка (b’x00x00′) bytearray a = bytearray(2)
Просмотр памяти 0x1477a5813a00 memoryview a = memoryview(bytes(15))

Чтобы узнать тип данных, нужно воспользоваться встроенной функцией type():

        >>> a = 3.5
>>> type(a)
<class 'float'>

    

Как задать тип переменной

Важно заметить, что если тип переменной не указан явно при вводе, т.е. ввод выполняется как a = input(), то Python будет считать введенное значение строкой. В приведенном ниже примере Питон вместо сложения двух чисел выполняет конкатенацию строк:

        >>> a, b = input(), input()
5
6
>>> print(a + b)
56

    

Это произошло потому, что a и b были введены как строки, а не целые числа:

        >>> type(a)
<class 'str'>
>>> type(b)
<class 'str'>

    

Чтобы ввести целое число, следует использовать конструкцию int(input()), вещественное –float(input()).

Математические операции в Python

Все операции в математике имеют определенный приоритет: сначала выполняется возведение в степень, затем деление по модулю и так далее. Этот приоритет соблюдается и в Питоне:

Приоритет Оператор Python Операция Пример Результат
1 ** Возведение в степень 5 ** 5 3125
2 % Деление по модулю (получение остатка) 16 % 7 2
3 // Целочисленное деление (дробная часть отбрасывается) 13 // 3 4
4 / Деление 39 / 2 19.5
5 * Умножение 123 * 321 39483
6 Вычитание 999 – 135 864
7 + Сложение 478 + 32 510

Python допускает применение сложения и умножения в операциях со строками. Сложение строк, как уже упоминалось выше, называется конкатенацией:

        >>> print('Python -' + ' лучший' + ' язык' + ' программирования')
Python - лучший язык программирования

    

Умножение строки на целое число называется репликацией:

        >>> print('Репликанты' * 5)
РепликантыРепликантыРепликантыРепликантыРепликанты

    

Однако попытки умножить строки друг на друга или на вещественное число обречены на провал:

        >>> print('Репликанты' * 5.5)
Traceback (most recent call last):
  File "<pyshell>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'float'

    

Преобразование типов данных

Python позволяет на лету изменять типы данных. Это может оказаться очень полезным при решении тренировочных и практических задач.

Округление вещественного числа:

        >>> a = float(input())
5.123
>>> print(int(a))
5

    

Преобразование целого числа в вещественное:

        >>> a = 5
>>> print(float(a))
5.0

    

Преобразование строки в число и вывод числа без ведущих нулей:

        >>> a = '00032567'
>>> print(int(a))
32567

    

Сложение строки и числа:

        >>> a = 'Apollo '
>>> b = 13
>>> print(a + str(b))
Apollo 13

    

Преобразование списка в строку:

        >>> a = ['п', 'р', 'и', 'в', 'е', 'т']
>>> print('*'.join(a))
п*р*и*в*е*т

    

Преобразование строки в множество:

        >>> a = 'привет'
>>> print(set(a))
{'в', 'е', 'и', 'т', 'п', 'р'}

    

Преобразование строки в список:

        >>> a = 'я изучаю Python'
>>> print(list(a))
['я', ' ', 'и', 'з', 'у', 'ч', 'а', 'ю', ' ', 'P', 'y', 't', 'h', 'o', 'n']

    

Преобразование кортежа в список:

        >>> a = ('red', 'blue', 'green')
>>> print(list(a))
['red', 'blue', 'green']

    

Разумеется, преобразование типов данных происходит в определенных пределах – строку, содержащую буквенные и специальные символы, нельзя сделать числом, а превращение списка, строки, множества или кортежа в словарь потребует дополнительных манипуляций, которые мы изучим позже.

Практика – задачи с решениями

Задание 1. Напишите программу, которая запрашивает имя и возраст пользователя, и выводит приветствие и возраст пользователя в следующем году. Пример работы программы:

        Как тебя зовут? Катя
Привет, Катя!
Сколько тебе лет? 14
Здорово! В следующем году тебе будет 15!

    

Решение:

        name = input('Как тебя зовут? ')
print(f'Привет, {name}!')
age = int(input('Сколько тебе лет? '))
print(f'Здорово! В следующем году тебе будет {age + 1}!')

    

Задание 2. Напишите программу, которая запрашивает имя, фамилию и возраст пользователя, а затем выводит эти данные в столбик с помощью f-строки. Результат работы программы:

        Имя: Евгения
Фамилия: Фролова
Возраст: 19

    

Решение:

        first_name = input()
last_name = input()
age = input()
print(f'Имя: {first_name}nФамилия: {last_name}nВозраст: {age}')

    

Задание 3. Напишите программу, которая выводит на экран прямоугольник 5 х 15, сформированный из звездочек. Пример вывода:

        ***************
*             *
*             *
*             *
***************

    

Решение:

        print('*' * 15)
print('*' + ' ' * 13 + '*')
print('*' + ' ' * 13 + '*')
print('*' + ' ' * 13 + '*')
print('*' * 15)

    

Задание 4. Напишите программу, которая получает на вход целое число n из диапазона от 1 до 9 включительно, и выводит результат вычисления выражения nnn – nn – n. Например, если введенное число 3, программа должна вывести 297 (333 – 33 – 3).

Решение:

        num1 = input()
num2 = int(num1 * 2)
num3 = int(num1 * 3)
print(num3 - num2 - int(num1))

    

Задание 5. Напишите программу, которая получает на вход целые положительные числа a и b, а затем выводит результаты математических операций в следующем формате:

        Число а в степени b = 25
Произведение a * b = 10
Сумма a + b = 7
Разница a - b = 3

    

Решение:

        a, b = int(input()), int(input())
print('Число а в степени b =', a ** b)
print('Произведение a * b =', a * b)
print('Сумма a + b =', a + b)
print('Разница a - b =', a - b)

    

Задание 6. Напишите программу, которая получает от пользователя вещественные числа a и b – длину и ширину прямоугольника, – и выводит периметр и площадь прямоугольника в следующем формате:

        Площадь S = 88.0
Периметр P = 38.0

    

Площадь вычисляется по формуле S = a * b, периметр P = 2 * (a + b).

Решение:

        a, b = float(input()), float(input())
print('Площадь S =', a * b)
print('Периметр P =', 2 * (a + b))

    

Задание 7. Напишите программу, которая получает на вход число от 420 до 540 (оптимальная продолжительность сна в минутах) и помогает пользователю определить, на какое время (в формате «часы:минуты») нужно установить звонок будильника. Отсчет времени начинается с полуночи.

Пример ввода:

        470
    

Вывод:

        Поставь будильник на 7:50
    

Решение:

        time = int(input())
print(f'Поставь будильник на {time // 60}:{time % 60}')

    

Задание 8. Напишите программу, которая получает на вход целое число n – количество дней, и конвертирует n в годы, месяцы и дни.

Пример ввода:

        398
    

Вывод:

        Годы: 1 Месяцы: 1 Дни: 3
    

Решение:

        n = int(input("Введите количество дней: "))
years = n // 365
months = (n - years * 365) // 30
days = (n - years * 365 - months * 30)
print(f'Годы: {years} Месяцы: {months} Дни: {days}')

    

Задание 9. Напишите программу, которая получает от пользователя целое число n – количество секунд, и конвертирует n в часы, минуты и секунды.

Пример ввода:

        3426
    

Вывод:

        Часы: 0 Минуты: 57 Секунды: 6
    

Решение:

        n = int(input())
seconds = n % (24 * 3600)
hours = seconds // 3600
seconds = seconds % 3600
minutes = seconds // 60
seconds = seconds % 60
print(f'Часы: {hours} Минуты: {minutes} Секунды: {seconds}')

    

Задание 10. Напишите программу, которая получает на вход вещественные числа x1, y1, х2, y2 – координаты точек a (x1, y1) и b (х2, y2) на плоскости – и вычисляет расстояние между a и b.

Пример ввода:

        3.6
6.7
5.4
15.2

    

Вывод:

        10.278618584226189
    

Решение:

        x1, x2, y1, y2 = float(input()), float(input()), float(input()), float(input())
dist = ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5
print(dist)

    

Примечание: модуль math, работу с которым мы рассмотрим подробнее позже, имеет функцию dist для вычисления расстояния между точками на плоскости и в пространстве:

        import math
x1, x2, y1, y2 = float(input()), float(input()), float(input()), float(input())
a, b = [x1, y1], [x2, y2]
d = math.dist(a, b)
print(d)

    

Подведем итоги

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

***

📖 Содержание самоучителя

  1. Особенности, сферы применения, установка, онлайн IDE
  2. Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
  3. Типы данных: преобразование и базовые операции
  4. Методы работы со строками
  5. Методы работы со списками и списковыми включениями
  6. Методы работы со словарями и генераторами словарей
  7. Методы работы с кортежами
  8. Методы работы со множествами
  9. Особенности цикла for
  10. Условный цикл while
  11. Функции с позиционными и именованными аргументами
  12. Анонимные функции
  13. Рекурсивные функции
  14. Функции высшего порядка, замыкания и декораторы
  15. Методы работы с файлами и файловой системой
  16. Регулярные выражения
  17. Основы скрапинга и парсинга

***

Материалы по теме

  • 🐍🧩 5 задач с решениями на Python для начинающих разработчиков
  • 🐍 Аннотации типов в Python: все, что нужно знать за 5 минут
  • 🧊 Фундаментальные структуры данных: массивы и связанные списки с реализацией на Python

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

  • Ввод/вывод
  • Основные операции над числами
  • Справочная информация — типы данных, операции

1 Потоковый ввод/вывод

В файле iostream.h находятся глобальные объекты std::cin и std::cout, позволяющие вводить данные с клавиатуры и выводить их на экран. Мы подключаем этот файл командой:
#include <iostream>

Эти объекты называются потоками ввода/вывода. В дальнейших уроках мы узнаем и о других разновидностях таких потоков. Потоковый ввод/вывод осуществляется операциями >> и << соответственно. Использовать их можно следующим образом:

#include <iostream>

int main() {
  // создаем переменные и задаем им наши значения:
  int day=18, month=10, year=2012;

  // выводим текст (как в hello world)
  std::cout << "Today is ";
  
  /* помимо текста (точек) выводим значения переменных
    (в итоге на экране будет отображено 18.10.2012 */
  std::cout << day << "." << month << "." << year;
  
  // выводим символ конца строки
  std::cout << "n";
  
  std::cin.get();
}

В этой программе создается 3 переменных целого типа данных (int), в конце урока приведена более подробная информация об этом и других стандартных типах. Тут, как и в hello world использолся вызов функции std::cin.get() для задержки закрытия окна. На самом деле эта функция (get) ожидает ввода символа пользователем.

Также, в этом примере вы должны заметить комментарии к коду. Комментарием считается часть строки, расположенная правее двух слешей , а тажке текст (возможно многострочный), расположенный между символами /* и */. Комментарии удаляются во время работы препроцессора (если забыли что это такое — освежите память) и, следовательно, не влияют на результаты компиляции. Используются комментарии только в качестве «подсказок» программисту.

Объект std::cin является потоком ввода, к нему можно применять оператор >> для получения значений переменных с клавиатуры:

#include <iostream>

int main() {
  int day, month, year;
  
  std::cout << "enter day: ";
  std::cin >> day;
  
  std::cout << "enter month: ";
  std::cin >> month;
  
  std::cout << "enter year: ";
  std::cin >> year;

  std::cout << "you entered: " << day << "." << month << "." << year << "n";
  
  std::cin.get();
}

Теперь значения переменных задаются не программистом, а пользователем (в процессе использования программы).

С помощью объекта cin и операции >> можно присвоить значение любой переменной. Например, если переменная x описана как целочисленная, то команда cin>>x; означает, что в переменную x будет записано некое целое число, введенное с клавиатуры. Если необходимо ввести несколько переменных, то можно написать:
cin >> x >> y >> z;.

2 Основные операции над числами

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

#include <iostream>
using namespace std;

int main() {
  int a, b;
  cout << "Enter two numbers A and B: n";
  cin >> a >> b;

  cout << "A + B = " << (a+b) << "n";
  cout << "A - B = " << (a-b) << "n";
  cout << "A * B = " << (a*b) << "n";
  cout << "A / B = " << (a/b) << "n";
  cout << "A % B = " << (a%b) << "n";
  cout << "A | B = " << (a|b) << "n";
  cout << "A ^ B = " << (a^b) << "n";
  cout << "A & B = " << (a&b) << "n";
  cout << "A << B = " << (a<<b) << "n";
  cout << "A >> B = " << (a>>b) << "n";
  
  cin.get();
}

Директива using namespace std; сообщает компилятору, что в этом месте вы используете имена из пространства имен std, за счет нее вы, в частности, можете писать cout или cin вместо std::cout и std::cin. Тему пространств имен мы подробно изучим в следующих уроках.

Поиграйтесь с исходными числами, обратите внимание, что в результате деления вы получаете целое число (округляется вниз — как при выполнении операции div в Паскале). Очень часто вам будет пригождаться операция получения остатка от деления (a%b) — разберитесь с тем, что она возвращает.

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

Помимо целых чисел, компьютер может обрабатывать дробные — замените тип int в нашей программе на float или double, при попытке собрать программу вы получите ошибки, т.к. не все используемые тут операторы могут применяться к дробным числам. Изучите сообщения об ошибках — вам нужно научиться их читать. Запустите следующую программу:

#include <iostream>

using namespace std;

int main() {
  float a, b;
  cout << "Enter two numbers A and B: n";
  cin >> a >> b;

  cout << "A + B = " << (a+b) << "n";
  cout << "A - B = " << (a-b) << "n";
  cout << "A * B = " << (a*b) << "n";
  cout << "A / B = " << (a/b) << "n";
  
  cin.get();
}

Обратите внимание, что теперь даже если на вход будут поданы целые числа — результат операции деления будет дробным. Различия между типами данных double и float в данный момент для нас несущественны — достаточно помнить, что float обычно занимает 4 байта, а double — 8, за счет этого при вычислениях над переменными double мы можем получить более высокую точность и диапазон значений (см. справочный материал в конце урока).

Теперь рассмотрим изученное на примере более сложной задачи (наконец, заставим наш компьютер посчитать что-нибудь полезное):

Известны плотность p, высота h и радиус основания R цилиндрического слитка.
Найти объем V, массу m и площадь S основания слитка.

Составим текст программы, учитывая что:
$$S = pi cdot R cdot R, \
V = S cdot h,\
m = p cdot V.$$

#include <iostream>
using namespace std;

int main () {
  const double pi = 3.14159;
  double R, h, p, S, V, m; 
  
  cout<<"R=";
  cin>>R;

  cout<<"h=";
  cin>>h;

  cout<<"p=";
  cin>>p;
  
  S = pi*R*R; 
  V = S*h; 
  m = p*V; 
  
  cout << "S=" << S; 
  cout << "n V=" << V; 
  cout <<"n m=" << m << "n";
  
  cin.get(); cin.get();
}

Результаты работы программы:

Исследуя эту программу, обратите внимание на:

  1. описание констант с помощью ключевого слова const. Константе значение присваивается лишь один раз, если вы попробуете сделать это еще раз — программа не скомпилируется. Очень хорошая практика — явно указывать константность везде, где это возможно. Это с одной стороны защитит вас от ошибок в дальнейшем (при попытке изменить константу вы сразу получите ошибку), а с другой — позволит генерировать более оптимальный код компилятору.
  2. в конце программы мы написали cin.get() дважды. Дело в том, что:
    • функция get извлекает из потока cin один символ. Символы попадут в поток после нажатия пользователем кнопки Enter;
    • оператор >> считывает из потока слово и, в нашем случае, преобразует его в число. Исследуя программы, вы должны были заметить, что если ввести в одной строке несколько чисел — то «сработают» сразу несколько последовательных операторов ввода. Мы пользовались этим, например, при исследовании математических операторов;
    • считав первое слово с потока — оператор >> не «трогает» остальные символы. В результате, в потоке остается символ-разделитель — в нашем случае — символ перевода строки (соответствующий клавише Enter). Этот символ и будет считан первым вызовом функции get();
    • таким образом, если оставить только один вызов get() программа отобразит на экран результаты вычислений и сразу завершится. Второй вызов get() ожидает еще одного нажатия клавиши Enter пользователем;
    • вам нужно помнить об этом всякий раз, когда вы используете get после оператора >>.
  3. в этой программе не так легко разобраться, как хотелось бы и очень легко запутаться. Проблема заключается в «плохих» именах переменных. По мере усложнения ваших программ эта проблема станет более очевидной. Заведите правило — давать переменным имена, которые отражают суть. Более подробно про это можно прочитать в статье «Теория чистого кода. Стиль кодирования«. Попробуйте переписать эту программу, используя более понятные имена.

3 Справочный материал

3.1 Переменные и типы данных

Переменная это область памяти заполненная данными, которые называются значением переменной. У каждой переменной должно быть своё уникальное имя на латинице с учетом регистра. Переменные делятся на целочисленные, дробные, символьные, логические (т.е «да» или «нет»).

Для решения задачи в любой программе выполняется обработка каких-либо данных. К основным типам данных языка C++ относят:

  • char — символьный;
  • int — целый;
  • float — дробное число с плавающей точкой;
  • double — дробное число двойной точности;
  • bool — логический.
  • void — неполный тип и спецификатор типа. Множество значений этого типа пусто (поэтому его нет в таблице ниже). Он используется для определения функций, которые не возвращают значения, а также как базовый тип для указателей. Вы не можете создать переменную этого типа, позже станет понятно как им пользоваться.

Для формирования других типов данных используют основные и так называемые спецификаторы:

  • short — короткий;
  • long — длинный;
  • signed — знаковый;
  • unsigned — беззнаковый.
  • const — константа.

В таблице приведена справочная информация о различных комбинациях типов данных с учетом спецификаторов для операционной системы Windows:

Имя типа Размер (в байтах) Диапазон значений
int (signed int) 4 От -2 147 483 648 до 2 147 483 647
unsigned int 4 От 0 до 4 294 967 295
bool 1 false или true
char (unsigned char) 1 -128 до 127 знаков по умолчанию
signed char 1 От -128 до 127
unsigned char 1 От 0 до 255
short (signed short) 2 От -32 768 до 32 767
unsigned short 2 От 0 до 65 535
long (signed long) 4 От -2 147 483 648 до 2 147 483 647
unsigned long 4 От 0 до 4 294 967 295
long long (signed long long) 8 От -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
unsigned long long 8 От 0 до 18 446 744 073 709 551 615
float 4 3,4E +/- 38 (7 знаков)
double (long double) 8 1,7E +/- 308 (15 знаков)
wchar_t 2 От 0 до 65 535

Тип char предназначен для хранения символов, обрабатывать строки (состоящие из символов) мы научимся в следующих уроках, сейчас нужно знать, что внутри компьютера символы хранятся в виде целых чисел в небольшом диапазоне. Преобразование символов в числа и назад производится на основе кодовых таблиц, которые можно менять (в зависимости от языка — русский, английский, китайский, …). Строка записывается в двойных кавычках («hello world»), а одиночный символ — в одинарных (‘a’).

Тип wchar_t также используется для хранение символов, однако занимает 2 байта (в Unix — 4 байта) и хранит данные в формате Юникода.

Переменная типа bool может принимать только два значения true (истина) или fasle (ложь), тем не менее, в памяти занимает не 1 бит, а 1 байт. Любое значение, не равное нулю, интерпретируется как true.

3.2 Битовые операции

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

  • Позиционные системы счисления
  • Преобразование двоичных чисел в десятичные
  • Преобразование десятичных чисел в двоичные

Ниже показано как выполняется операция логического ИЛИ для такого фрагмента кода:

int a = 32;
int b = 4;
int c = a | b;

Подобным образом работают операции — И (a & b), исключающее ИЛИ (a ^ b). Операции << и >>, примененные для чисел, осуществляют битовый сдвиг двоичного представления числа влево и вправо на заданное число разрядов.

$$
Ниже: 20_{10};-;число;20;в;десятичной;системе;счисления, \
10001_{2};-;число;20;в;двоичной;системе;счисления. \
20_{10};|;17_{10} = 10001_2;|;10100_2 = 10101_2 = 21_{10}. \
20_{10};&;17_{10} = 10001_2;&;10100_2 = 10000_2 = 16_{10}. \
20_{10};hat{};17_{10} = 10001_2;hat{};10100_2 = 00101_2 = 5_{10}. \
47_{10} << 2 = 101111_2 << 2 = 10111100_2 = 188_{10}. \
47_{10} >> 2 = 101111_2 >> 2 = 1011_2 = 11_{10}.
$$

3.3 Приведение типов

В C++ различают два вида преобразования типов данных: явное и неявное.

Неявное преобразование происходит автоматически. Это выполняется во время сравнения, присваивания или вычисления выражения различных типов. Например, следующая программа выведет на консоль значение типа float.

include <iostream>
using namespace std;

int main() {
  int i = 5; 
  float f = 10.12;

  cout << i/f;

  cin.get();
}

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

#include <iostream>
 
int main() {
  float a = 123.456;
  int b = a;
  
  std::cout << b;
  std::cin.get();
}

В этом примере при присваивании выполнится неявное приведение переменной типа float к типу int. В результате работы программы на экран будет выведено число 123.

Явное преобразование в отличие от неявного осуществляется программистом. Записать это можно следующим образом:
b = (int) a;
или
b = int(a);

Тут мы явно указываем, что переменной b нужно присвоить значение a, приведенное к типу int.

Приведенные ниже конструкции могут встретиться вам при просмотре чужого исходного кода, вам нужно иметь представление о них, при необходимости — более подробно прочитайте в статье «Явное приведение типов в C++«.

В С++ определены следующие операторы:

  • static_cast<> () — осуществляет преобразование связанных типов данных. Этот оператор приводит типы по обычным правилам, что может потребоваться в случае, когда компилятор не выполняет автоматическое преобразование. Синтаксис будет выглядеть так:

    Тип static_cast <Тип> (объект);

    С помощью static_cast нельзя убрать константность у переменной, но это по силам следующему оператору.

  • const_cast<> () — применяется только тогда, когда нужно снять константность у объекта. Синтаксис будет выглядеть следующим образом:

    Тип const_cast <Тип> (объект);

  • reinterpret_cast<> ()— применяется для преобразования указателей разных типов, целых к указателю и наоборот. Если вы увидели новое слово «указатель» — не пугайтесь! это тоже тип данных, но работать с ним Мы будем не скоро. Синтаксис тут такой же как, у ранее рассмотренных операторах:

    Тип reinterpret_cast <Тип> (объект);

  • dynamic_cast<> () — используется для динамического преобразования типов, реализует приведение указателей или ссылок. Синтаксис:
    Тип dynamic_cast <Тип> (объект);

3.4 Составное присваивание, инкремент/декремент

В ваших программах часто нужно выполнить что-то типа
a = a+b;
вместо такой конструкции можно использовать специальный вид оператора:
a += b;

Также существуют операторы -=, *=, /=, %=, &=, |=, ^=, <<=, >>=.

Еще чаще в программах нужно увеличивать или уменьшать значение переменной ровно на единицу:

a = a+1;
b = b-1;

Для таких случаев в С++ тоже определены специальные операторы: ++ и --. Каждый из которых имеет две формы — префиксную и постфиксную, понять которые можно изучив пример:

#include <iostream>
using namespace std;
int main() {
  int a, b;

  a = 3;
  b = a++; // постфиксная форма
  cout << a << " : " << b << endl;

  a = 3;
  b = ++a; // префиксная форма
  cout << a << " : " << b << endl;
}

В этом примере оба вида оператора применяются к переменной a и оба они приводят к увеличению значения переменной на единицу. Однако, постфиксная форма возвращает старое значение пеерменной (до инкремента), а префиксная — новое значение. Поэтому на экран будет выведено:

3 : 4
4 : 4

Аналогично работает постфиксный и префиксный декремент (оператор --).

Перейти к контенту

Учитель информатики

Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, полезный материал и многое другое.

Информатика 8 класс Босова ФГОС

§ 3.2. Организация ввода и вывода данных ГДЗ по Информатике 8 Класс


Запишите оператор, обеспечивающий во время работы про­граммы ввод значения переменной summa.

Ответ

read (summa);

или

readln (summa);


  • Информатика
  • Математика
  • Алгебра
  • Геометрия

Описание задачи

Данная программа принимает от пользователя два значения и записывает каждое из них в отдельную переменную. Затем она меняет местами значения этих переменных без ввода временной переменной.

Решение задачи

  1. Пользователь вводит два значения, которые записываются в две разные переменные.
  2. Значения двух переменных складываются и результат сложения записывается в первую переменную.
  3. Далее из первой переменной вычитается вторая переменная и результат записывается во вторую переменную.
  4. Затем из первой переменной вычитаем вторую (с уже обновленным значением) и записываем полученный результат в первую переменную.
  5. Выводим полученные значения.
  6. Конец.

Исходный код программы

Ниже приведен исходный код программы по замене значений двух переменных без использования третьей переменной. Далее также будет приведен результат работы этого кода.

a = int(input("Введите значение первой переменной: "))
b = int(input("Введите значение второй переменной: "))
a = a + b
b = a - b
a = a - b
print("a это:", a, " b это:", b)

Объяснение работы программы

  1. Пользователь вводит значение двух переменных и они записываются в переменные а и b.
  2. В переменную а записывается сумма а и b.
  3. В переменную b записывается разность переменной а (в которой сейчас находится сумма первоначальных значений a и b) и переменной b. Таким образом первоначально введенное значение переменой a перешло в переменную b.
  4. Теперь вычитаем из переменной a (где сейчас по-прежнему находится сумма первоначально введенных величин) текущее значение переменной b (которое первоначально было записано в переменную a). Таким образом в переменной a остается только значение, которое в начале программы было записано в переменную b.
  5. И далее выводим полученные значения на экран.

Результаты работы программы

Case 1
Введите значение первой переменной: 3
Введите значение второй переменной: 5
a это: 5  b это: 3
 
Case 2
Введите значение первой переменной: 56
Введите значение второй переменной: 25
a это: 25  b это: 56

Примечание переводчика

Все что было описано выше (в пунктах 2, 3, 4), в языке Python можно сделать в одну строчку. И это одно из основных достоинств этого языка программирования.

a=int(input("Введите значение первой переменной: "))
b=int(input("Введите значение второй переменной: "))
a, b = b, a # собственно здесь и происходит обмен значениями
print("a это:",a," b это:",b)

Понравилась статья? Поделить с друзьями:
  • Заполните макет архивной описи определив правильность расположения необходимых реквизитов документа
  • Заполните схему обобщающую способы осуществления корпоративного волонтерства в российских компаниях
  • Зафиксированная на материальном носителе информация с реквизитами позволяющими ее зафиксировать это
  • Заявление на предоставление отпуска всегда пишется на имя руководителя компании выберите один ответ
  • Заявление уточнения реквизитов поручения на перечисление налога сбора страхового взноса пени штрафа