СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Презентация на тему "Типы данных в языке программирования C++"

Категория: Информатика

Нажмите, чтобы узнать подробности

Презентация содержит исчерпывающий объем информации об основных типах данных в языках программирования семейства C. В конце презентации представлены типовые задачи для домашней работы.

Просмотр содержимого документа
«Презентация на тему "Типы данных в языке программирования C++"»

Объявление и инициализация переменных Прежде чем использовать переменные, их нужно объявить, указав имя переменной и тип данных. Объявлять переменные можно в любом месте программы. Тип уже объявленной переменной изменить нельзя. Например: int x;  // целочисленная переменная x Знак = это оператор присваивания в C++. Переменную крайне желательно сразу инициализировать – т.е. присвоить ей первоначальное значение. Например, так: int x; x = 25; Но лучше так: int x = 25; Нежелательно объявлять переменные одной строкой, т.к. это может привести к путанице. Особенно, если объявляются указатели. См. men.jpg

Объявление и инициализация переменных

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

Например:

int x; // целочисленная переменная x

Знак = это оператор присваивания в C++.

Переменную крайне желательно сразу инициализировать – т.е. присвоить ей первоначальное значение.

Например, так:

int x;

x = 25;

Но лучше так:

int x = 25;

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

См. men.jpg

Константы вместо

Константы вместо "магических чисел"

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

Ограничения, налагаемые на целые числа 1. Округление до целых значений Требуется вычислить среднее трех чисел: a , b и c . Среднее значение вычисляется по формуле:   (a + b + c)/3 Например, если a=1 ; b=2 и c=2 , то среднее будет равно или 1,666... Полученный результат приводится к целому значению, просто отбрасывая его дробную часть. При этом 1,666 утратит свой “дьявольский” остаток и превратится в 1 . Даже если попытаться решить эту задачу иным способом: a/3 + b/3 + c/3 = 0 + 0 + 0 = 0

Ограничения, налагаемые на целые числа

1. Округление до целых значений

Требуется вычислить среднее трех чисел: a , b и c . Среднее значение вычисляется по формуле:

 

(a + b + c)/3

Например, если a=1 ; b=2 и c=2 , то среднее будет равно или 1,666... Полученный результат приводится к целому значению, просто отбрасывая его дробную часть. При этом 1,666 утратит свой “дьявольский” остаток и превратится в 1 .

Даже если попытаться решить эту задачу иным способом:

a/3 + b/3 + c/3 = 0 + 0 + 0 = 0

2. Ограничения диапазона Максимальным значением обычной целочисленной переменной является число 2 147 483 647, минимальным – - 2 147 483 647, т.е. общий диапазон (от до ) – около 4 млрд. чисел (зависит от компилятора). Число 2 млрд. может оказаться недостаточным.   C++ позволяет объявлять целые числа как беззнаковые. Целое число типа unsigned int может принимать значения от 0 до +4 294 967 295. Можно объявить переменную просто как unsigned , опустив объявление int , которое подразумевается неявно.

2. Ограничения диапазона

Максимальным значением обычной целочисленной переменной является число 2 147 483 647, минимальным – - 2 147 483 647, т.е. общий диапазон (от до ) – около 4 млрд. чисел (зависит от компилятора). Число 2 млрд. может оказаться недостаточным.

 

C++ позволяет объявлять целые числа как беззнаковые. Целое число типа unsigned int может принимать значения от 0 до +4 294 967 295. Можно объявить переменную просто как unsigned , опустив объявление int , которое подразумевается неявно.

Целочисленное переполнение Если целочисленной переменной задать максимальное значение, а потом прибавить к нему единицу, то значение сбрасывается на минимум. Если к максимальному прибавить 2, то значение будет равно минимум+1 и т.д. Пример с типом unsigned :

Целочисленное переполнение

Если целочисленной переменной задать максимальное значение, а потом прибавить к нему единицу, то значение сбрасывается на минимум. Если к максимальному прибавить 2, то значение будет равно минимум+1 и т.д.

Пример с типом unsigned :

Пример с типом int :

Пример с типом int :

Вещественные (действительные) числа Число с плавающей запятой (или число с плавающей точкой) — форма представления вещественных чисел, в которой число хранится в форме мантиссы и показателя степени .  Название

Вещественные (действительные) числа

Число с плавающей запятой (или число с плавающей точкой) — форма представления вещественных чисел, в которой число хранится в форме мантиссы и показателя степени . 

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

Основные типы вещественных чисел: double и float . У типа double бóльшая точность (кол-во знаков после запятой). Для вещественного типа не предусмотрен unsigned.

Число с плавающей запятой состоит из: Знака мантиссы (указывающего на отрицательность или положительность числа); Мантиссы (выражающей значение числа без учёта порядка); Знака порядка ; Порядка (выражающего степень основания числа, на которое умножается мантисса). В вычислительных машинах показатель степени принято отделять от мантиссы буквой «E» (exponent). Например, число 1,528535047 ·10 − 25  в большинстве языков программирования высокого уровня записывается как 1.528535047 E - 25 . Десятичные числа могут не иметь дробной части, оставаясь при этом вещественными (например, действительное число 5.0).

Число с плавающей запятой состоит из:

  • Знака мантиссы (указывающего на отрицательность или положительность числа);
  • Мантиссы (выражающей значение числа без учёта порядка);
  • Знака порядка ;
  • Порядка (выражающего степень основания числа, на которое умножается мантисса).

В вычислительных машинах показатель степени принято отделять от мантиссы буквой «E» (exponent). Например, число 1,528535047 ·10 − 25  в большинстве языков программирования высокого уровня записывается как 1.528535047 E - 25 .

Десятичные числа могут не иметь дробной части, оставаясь при этом вещественными (например, действительное число 5.0).

Примеры:   1 000 000 = = 0,000001 (одна миллионная) = =  0.00345 =  = =  

Примеры:

 

1 000 000 = =

0,000001 (одна миллионная) = = 

0.00345 =

= =

 

Решение проблемы с отбрасыванием дробного числа: Требуется вычислить среднее ( d ) трех вещественных чисел: a , b и c . double d; d = 1.0/3.0 + 2.0/3.0 + 2.0/3.0; Это эквивалентно выражению d = 0.333... + 0.666... + 0.666...; Которое дает значение d = 1.666... 1,(6) – “один и шесть в периоде” Количество цифр «6» ограничено пределом переменной типа double.

Решение проблемы с отбрасыванием дробного числа:

Требуется вычислить среднее ( d ) трех вещественных чисел: a , b и c .

double d;

d = 1.0/3.0 + 2.0/3.0 + 2.0/3.0;

Это эквивалентно выражению

d = 0.333... + 0.666... + 0.666...;

Которое дает значение

d = 1.666...

1,(6) – “один и шесть в периоде”

Количество цифр «6» ограничено пределом переменной типа double.

Ограничения, налагаемые на числа с плавающей точкой Вещественные переменные не могут использоваться для перечисления. C++ требует использовать при перечислении только целые значения. Процессор компьютера выполняет операции с целыми числами гораздо быстрее, чем с действительными. Для сложения 1000 целых чисел процессору может потребоваться столько же времени, сколько для выполнения лишь 200 вычислений с плавающей точкой. Вещественные числа тоже страдают от ошибок округления. Если усреднить числа 1.0, 2.0, 2.0, то получится не математически точное 1,(6), а приблизительное значение 1.666667.

Ограничения, налагаемые на числа с плавающей точкой

  • Вещественные переменные не могут использоваться для перечисления. C++ требует использовать при перечислении только целые значения.
  • Процессор компьютера выполняет операции с целыми числами гораздо быстрее, чем с действительными. Для сложения 1000 целых чисел процессору может потребоваться столько же времени, сколько для выполнения лишь 200 вычислений с плавающей точкой.
  • Вещественные числа тоже страдают от ошибок округления. Если усреднить числа 1.0, 2.0, 2.0, то получится не математически точное 1,(6), а приблизительное значение 1.666667.
Переполнение вещественного типа осуществить невозможно:

Переполнение вещественного типа осуществить невозможно:

Бинарными называются операторы, которые имеют два аргумента. В выражении –x оператор – унарный. В выражении x – y оператор – бинарный. Приоритет 1 Оператор + (унарный) 1 Значение – (унарный) 2 Реально ничего не изменяет Возвращает противоположное по знаку, равное по модулю значение ++ (унарный) 2 Оператор инкремента, увеличивает значение аргумента на 1 – – (унарный) 3 3 Оператор декремента, уменьшает значение аргумента на 1 * (бинарный) / (бинарный) Умножение 3 Деление 4 % (бинарный) + (бинарный) Остаток от деления 4 Сложение – (бинарный) 5 Вычитание =, *=, %=, +=, –= (специальные) Операторы присвоения

Бинарными называются операторы, которые имеют два аргумента.

В выражении –x оператор – унарный.

В выражении x – y оператор – бинарный.

Приоритет

1

Оператор

+ (унарный)

1

Значение

– (унарный)

2

Реально ничего не изменяет

Возвращает противоположное по знаку, равное по модулю значение

++ (унарный)

2

Оператор инкремента, увеличивает значение аргумента на 1

– – (унарный)

3

3

Оператор декремента, уменьшает значение аргумента на 1

* (бинарный)

/ (бинарный)

Умножение

3

Деление

4

% (бинарный)

+ (бинарный)

Остаток от деления

4

Сложение

– (бинарный)

5

Вычитание

=, *=, %=, +=, –= (специальные)

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

Команды инкремента и декремента выполняются быстрее, чем команды сложения и вычитания. При выполнении инкремента инкрементируемой переменной присваивается новое значение. При выполнении вычитания без оператора присваивания значение переменной остается прежним. Например: int i = 5; int j = 5; cout Будет выведено 6 6 Но после этого cout Будет выведено 6 5.

Команды инкремента и декремента выполняются быстрее, чем команды сложения и вычитания.

При выполнении инкремента инкрементируемой переменной присваивается новое значение. При выполнении вычитания без оператора присваивания значение переменной остается прежним. Например:

int i = 5;

int j = 5;

cout

Будет выведено

6

6

Но после этого

cout

Будет выведено

6

5.

% (бинарный) Остаток от деления Этот оператор означает получение остатка от деления . Например, 5 входит в 14 два раза, и остаток при этом составляет 4 . Т.е., остаток от деления 14 на 5 равно 4 . 14 % 5 равно 14 – (14 / 5) * 5 14 – 2 * 5 14 – 10 4

% (бинарный)

Остаток от деления

Этот оператор означает получение остатка от деления . Например, 5 входит в 14 два раза, и остаток при этом составляет 4 . Т.е., остаток от деления 14 на 5 равно 4 .

14 % 5 равно

14 – (14 / 5) * 5

14 – 2 * 5

14 – 10

4

Для переменных вещественного типа оператор получения остатка от деления не предназначен, поскольку он целиком основан на использовании округления до целых (14 / 5 = 2).

Для переменных вещественного типа оператор получения остатка от деления не предназначен, поскольку он целиком основан на использовании округления до целых (14 / 5 = 2).

145 % 10 = 5 int x = 2; int x = 2; int y = 5; int y = 7; int c = y % x; int c = y % x; c = c = 1 1 double x = 5; double y = 7; double c = y % x; c = error

145 % 10 =

5

int x = 2;

int x = 2;

int y = 5;

int y = 7;

int c = y % x;

int c = y % x;

c =

c =

1

1

double x = 5;

double y = 7;

double c = y % x;

c =

error

Операторы инкремента и декремента могут находиться либо перед аргументом ( префиксная форма ), либо после него ( постфиксная форма ). Префиксная форма Постфиксная форма int x, y; int a, b; x = 5; a = 5; y = ++x; b = a++; x = 6 a = 6 y = 6 b = 5 Переменной y присваивается уже увеличенное префиксным оператором инкремента значение x , а переменной b передается еще не увеличенное постфиксным оператором значение a .

Операторы инкремента и декремента могут находиться либо перед аргументом ( префиксная форма ), либо после него ( постфиксная форма ).

Префиксная форма

Постфиксная форма

int x, y;

int a, b;

x = 5;

a = 5;

y = ++x;

b = a++;

x = 6

a = 6

y = 6

b = 5

Переменной y присваивается уже увеличенное префиксным оператором инкремента значение x , а переменной b передается еще не увеличенное постфиксным оператором значение a .

Символьный тип и строка символов char – символьный тип. Значением переменных может быть символ алфавита, цифра, знак препинания или знак арифметической операции. Пример: char c = ‘a’; string – строка символов, составляющая предложение. Пример: string s = “this is a string”;

Символьный тип и строка символов

char – символьный тип. Значением переменных может быть символ алфавита, цифра, знак препинания или знак арифметической операции.

Пример:

char c = ‘a’;

string – строка символов, составляющая предложение.

Пример:

string s = “this is a string”;

Логические выражения Название типа bool происходит от имени Буля, автора символьной логики. Булева переменная может иметь только одно из двух значений – true или false . Например, выражение “ x == y ” может иметь значение true или false . “ true” – это строка  true – это булева переменная  TRUE – это может быть хоть чем (чем объявит программист)

Логические выражения

Название типа bool происходит от имени Буля, автора символьной логики. Булева переменная может иметь только одно из двух значений – true или false .

Например, выражение “ x == y ” может иметь значение true или false .

“ true”

– это строка

true

– это булева переменная

TRUE

– это может быть хоть чем (чем объявит программист)

b a Больше, меньше; истинно, когда значение a больше (меньше) значения b a = b a Больше или равно, меньше или равно; истинно, если истиной является или == (" width="640"

Логические операторы сравнения

Оператор

Значение

a == b

Равенство; истинно, когда значение a совпадает со значением b

a ! = b

Неравенство; противоположное равенству

a b

a

Больше, меньше; истинно, когда значение a больше (меньше) значения b

a = b

a

Больше или равно, меньше или равно; истинно, если истиной является или == (

, = , x == 10; x = 10; Оператор равенства Оператор присваивания Распространенная ошибка, которую компилятор не посчитает за ошибку и не укажет на нее. " width="640"

Операторы == , != , , = ,

x == 10;

x = 10;

Оператор равенства

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

Распространенная ошибка, которую компилятор не посчитает за ошибку и не укажет на нее.

Составные логические операторы Оператор Значение a && b Возвращает true, если И a & b аргументы и слева, и справа являются истиной (сокращенное вычисление) И a || b a | b ИЛИ аргументы и слева, и справа являются истиной или левый, или правый, или оба аргумента являются истиной (сокращенное вычисление) ИЛИ a ^ b или левый, или правый, или оба аргумента являются истиной ЛИБО ! a либо a , либо b , но не обе одновременно равны true НЕ (сокращенное вычисление невозможно) a принимает ложное значение

Составные логические операторы

Оператор

Значение

a && b

Возвращает true, если

И

a & b

аргументы и слева, и справа являются истиной (сокращенное вычисление)

И

a || b

a | b

ИЛИ

аргументы и слева, и справа являются истиной

или левый, или правый, или оба аргумента являются истиной (сокращенное вычисление)

ИЛИ

a ^ b

или левый, или правый, или оба аргумента являются истиной

ЛИБО

! a

либо a , либо b , но не обе одновременно равны true

НЕ

(сокращенное вычисление невозможно)

a принимает ложное значение

Сокращенные вычисления в C++ условие1 && условие2 Если условие1 ложно, то результат будет ложным независимо от истинности выражения условие2 . условие1 || условие2 Если условие1 истинно, то результат будет истинными независимо от истинности выражения условие2 . Для экономии времени C++ вычисляет первым условие1 , и, в случае, если оно ложно (для оператора && ) или истинно (для оператора || ), выражение условие2 не вычисляется и не анализируется.

Сокращенные вычисления в C++

условие1 && условие2

Если условие1 ложно, то результат будет ложным независимо от истинности выражения условие2 .

условие1 || условие2

Если условие1 истинно, то результат будет истинными независимо от истинности выражения условие2 .

Для экономии времени C++ вычисляет первым условие1 , и, в случае, если оно ложно (для оператора && ) или истинно (для оператора || ), выражение условие2 не вычисляется и не анализируется.

Операторы && ( И ) и || ( ИЛИ ) обычно сочетаются с другими логическими операторами. (x // истинно, если y больше x и меньше z (x // истинно, если y больше x или меньше z

Операторы && ( И ) и || ( ИЛИ ) обычно сочетаются с другими логическими операторами.

(x

// истинно, если y больше x и меньше z

(x

// истинно, если y больше x или меньше z

y) && !(x В выражении (x y) && (a y) . В случае если оно ложно (для оператора &&) или истинно (для оператора ||) , выражение (a " width="640"

Операторы сравнения достаточно взаимозаменяемы. Например:

x

x == y

эквивалентно

эквивалентно

(x

!(x y) && !(x

В выражении (x y) && (a y) . В случае если оно ложно (для оператора &&) или истинно (для оператора ||) , выражение (a

Хранение логических значений Результат логической операции может быть присвоен переменной типа bool: int n1 = 1; int n2 = 2; bool b; b = (n1 == n2); “ Сравни содержимое переменных n1 и n2 и сохрани результат сравнения в переменной b”. По правилу приоритетов операций выражение b = (n1 == n2); эквивалентно выражению b = n1 == n2;

Хранение логических значений

Результат логической операции может быть присвоен переменной типа bool:

int n1 = 1;

int n2 = 2;

bool b;

b = (n1 == n2);

“ Сравни содержимое переменных n1 и n2 и сохрани результат сравнения в переменной b”.

По правилу приоритетов операций выражение

b = (n1 == n2); эквивалентно выражению b = n1 == n2;

Инструкция cout.setf(cout.boolalpha); обеспечивает вывод логического значения в виде строки “true” или “false”, а не в виде 1 или 0, как принято по умолчанию.

Инструкция cout.setf(cout.boolalpha); обеспечивает вывод логического значения в виде строки “true” или “false”, а не в виде 1 или 0, как принято по умолчанию.

Объект std::cin забирает вводимую пользователем информацию из стандартного потока ввода, которым обычно является клавиатура. " width="640"

Объект cin

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

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

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

Логические операции с вещественными переменными float a = 10.0;   float b = a / 3; a == (b * 3.0); // Равны ли эти значения? Математически b = но float b = 3.333333 значит a == (b * 3.0) – false

Логические операции с вещественными переменными

float a = 10.0;

 

float b = a / 3;

a == (b * 3.0); // Равны ли эти значения?

Математически b =

но float b = 3.333333

значит a == (b * 3.0) – false

float a = 10.0; float b = 100 % 30; a == b; // Истинно ли это выражение? Математически b = 10 но 100.0 : 30.0 = 3,333333 (или 3.33347 ) float b = 100.0 % 30.0 = ? Более безопасное сравнение: float a = 10; float b = a / 3; float c = b * 3.0; (a – c) Истинно в случае, если разница между a и c меньше 0,00001.

float a = 10.0;

float b = 100 % 30;

a == b; // Истинно ли это выражение?

Математически b = 10

но 100.0 : 30.0 = 3,333333 (или 3.33347 )

float b = 100.0 % 30.0 = ?

Более безопасное сравнение:

float a = 10;

float b = a / 3;

float c = b * 3.0;

(a – c)

Истинно в случае, если разница между a и c меньше 0,00001.

Задача 2. Написать программу, которая выводит на экран таблицу истинности логических операций.

Задача 2. Написать программу, которая выводит на экран таблицу истинности логических операций.

Выражения смешанного типа C++ позволяет использовать в одном выражении переменные разных типов. Например, можно складывать целые и вещественные переменные: int x = 5; double y = x + 1.0; // в этом выражении перед выполнением операции сложения // значение x преобразуется к типу double Тип генерируемого в результате значения будет соответствовать более мощному типу операнда.

Выражения смешанного типа

C++ позволяет использовать в одном выражении переменные разных типов. Например, можно складывать целые и вещественные переменные:

int x = 5;

double y = x + 1.0;

// в этом выражении перед выполнением операции сложения

// значение x преобразуется к типу double

Тип генерируемого в результате значения будет соответствовать более мощному типу операнда.

По тому же принципу выражение одного типа может быть присвоено переменной другого типа, например: double y = 1.0; int x; x = y; // в этом выражении целая часть y сохраняется в x Если переменная в левой стороне равенства относится к типу менее мощному, чем переменная справа, то при таком присвоении можно потерять точность значений. Преобразование типа большего размера в меньший называется понижающим приведением (demotion), а обратное преобразование – повышающим приведением (promotion).

По тому же принципу выражение одного типа может быть присвоено переменной другого типа, например:

double y = 1.0;

int x;

x = y;

// в этом выражении целая часть y сохраняется в x

Если переменная в левой стороне равенства относится к типу менее мощному, чем переменная справа, то при таком присвоении можно потерять точность значений.

Преобразование типа большего размера в меньший называется понижающим приведением (demotion), а обратное преобразование – повышающим приведением (promotion).

Язык С++ позволяет определять имена новых типов данных с помощью ключевого слова typedef . На самом деле здесь не создается новый тип данных, а определяется новое имя существующему типу. Он позволяет облегчить создание машинно-независимых программ. Единственное, что потребуется при переходе на другую платформу, - это изменить оператор typedef . Он также может помочь документировать код, позволяя назначать содержательные имена стандартным типам данных. Стандартный вид оператора typedef следующий: typedef тип имя; где тип — это любой существующий тип данных, а имя - это новое имя для данного типа. Новое имя определяется в дополнение к существующему имени типа, а не замещает его. Пример: sum – это другое имя для int в этой программе.

Язык С++ позволяет определять имена новых типов данных с помощью ключевого слова typedef . На самом деле здесь не создается новый тип данных, а определяется новое имя существующему типу. Он позволяет облегчить создание машинно-независимых программ. Единственное, что потребуется при переходе на другую платформу, - это изменить оператор typedef . Он также может помочь документировать код, позволяя назначать содержательные имена стандартным типам данных. Стандартный вид оператора typedef следующий:

typedef тип имя;

где тип — это любой существующий тип данных, а имя - это новое имя для данного типа. Новое имя определяется в дополнение к существующему имени типа, а не замещает его. Пример:

sum – это другое имя для int в этой программе.

Домашнее задание 0. Подготовиться к контрольной работе. 1. Прочитать код. Протестировать работу программы:

Домашнее задание

0. Подготовиться к контрольной работе.

1. Прочитать код. Протестировать работу программы:

2. Создать программу для автоматизации процесса перевода старой русской меры веса в современную. Программа должна позволить пользователю ввести два числа (пуды и фунты) и сообщить, каково значение в килограммах (1 пуд = 40 фунтам = 16,38 кг). 3. Создать программу для перевода количества лет, введенного пользователем, в секунды. 4. Даны две целые переменные a и b. Составить программу, в результате работы которой значения переменных поменяются местами.

2. Создать программу для автоматизации процесса перевода старой русской меры веса в современную. Программа должна позволить пользователю ввести два числа (пуды и фунты) и сообщить, каково значение в килограммах (1 пуд = 40 фунтам = 16,38 кг).

3. Создать программу для перевода количества лет, введенного пользователем, в секунды.

4. Даны две целые переменные a и b. Составить программу, в результате работы которой значения переменных поменяются местами.

5. Написать программу, которая решает следующую задачу по физике. Тело падает с высоты h . Какова его скорость в момент соприкосновения с землей и когда это произойдет. 6. Написать программу для решения следующей задачи. В равнобедренном треугольнике известно основание c и высота h . Найти площадь треугольника S и периметр Р . 7. Дано натуральное число. Вывести его последнюю цифру. 8. Дано натуральное число. Найти число десятков в его десятичной записи. 9. Дано трехзначное число. Найти сумму его цифр. 10*. Даны две целочисленные переменные. Составить программу, которая меняет местами значения этих переменных. Использовать только 2 переменные.

5. Написать программу, которая решает следующую задачу по физике. Тело падает с высоты h . Какова его скорость в момент соприкосновения с землей и когда это произойдет.

6. Написать программу для решения следующей задачи. В равнобедренном треугольнике известно основание c и высота h . Найти площадь треугольника S и периметр Р .

7. Дано натуральное число. Вывести его последнюю цифру.

8. Дано натуральное число. Найти число десятков в его

десятичной записи.

9. Дано трехзначное число. Найти сумму его цифр.

10*. Даны две целочисленные переменные. Составить программу, которая меняет местами значения этих переменных. Использовать только 2 переменные.