Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Выделение цифр в целом числе

Читайте также:
  1. А. Атипові м'язові волокна целомічного типу
  2. Абсолютная и относительная погрешности вычислений
  3. Апоптоз является общебиологическим механизмом, ответственным за поддержание постоянства численности клеток, формообразование, выбраковку дефектных клеток в органах и тканях.
  4. БАЗОВАЯ ДОХОДНОСТЬ И ФИЗИЧЕСКИЕ ПОКАЗАТЕЛИ ДЛЯ ИСЧИСЛЕНИЯ ЕНВД
  5. В связи с процессом развития прав человека и прогрессом общества в целом выделяют несколько поколений прав человека.
  6. В ТОМ ЧИСЛЕ - ПОСЛОВИЦ И ПОГОВОРОК
  7. В целом, фискальная политика представляет собой совокупность инструментов финансирования, бюджетирования, налогообложения.

Операции целочисленного деления и нахождения остатка целочисленного деления применяются при необходимости выделения цифр целого числа.

Например, дано четырехзначное натуральное n (abcd). Верно ли, что это число содержит более двух одинаковых цифр?

#include <stdio.h>

#include <conio.h>

int main(){

int n, a, b, c, d;

printf ("input n(abcd):\n");

scanf ("%i", &n);

d = n % 10;

c = n / 10 % 10;

b = n / 100 % 10;

a = n / 1000;

if ( int(a == b)+int(a == c)+ int(a==d)+ int(b==c)+ int(b==d)+ int(c==d) > 1 )
printf ("> 2\n");

else printf ("<=2\n");

_getch();

return 0;

}

 

Выделение цифр в вещественном числе

Операции целочисленного деления и нахождения остатка целочисленного деления применяются при необходимости выделения цифр дробной части вещественного числа.

Например, определить, есть ли среди первых двух цифр дробной части заданного положительного вещественного числа x=ab. cd, цифра 7.

#include <stdio.h>

#include <conio.h>

int main()

{double x;

int ix, c, d;

printf (" input x(ab.cd):\n");

scanf ("%lf", &x);

ix= static_cast<int>(x*100); //приведение типа double к int

d = ix % 10;

c = ix /10 % 10;

if ((c==7) || (d==7))

printf ("yes\n");

else printf ("no\n");

_getch();

return 0;

}

 

Арифметические операции над переменными символьного типа

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

#include <iostream>

#include <conio.h>

using namespace std;

int main() {

char n_reg, v_reg, c;

c='b' + '%' - '!'; //f

cout << c << endl; //102(код 'f') = 98(код 'b')+37(код '%')-33(код'!')

 

cout << "Input char \'A\' - \'Z\' " <<endl;

cin >> v_reg;

n_reg = v_reg+32; //32 – значение, на которое отдичаются коды
//прописных и строчных латинских букв

cout << v_reg << " " << n_reg << '\n';

_getch();

return 0;

}

 

Операции инкремента и декремента

тип операции операция содержание примеры
префиксная ++x увеличение значения операнда на 1 до использования его значения a=1; q = 2* ++a; àa=2; q=4
--x уменьшение значения операнда на 1 до использования его значения a=1; q = 2* --a; à a=0; q=0
постфиксная x++ увеличение значения операнда на 1 после использования его значения a=1; q= 2*a++; à q=2; a=2;
x-- уменьшение значения операнда на 1 после использования его значения a=1; q= 2*a--; à q=2; a=0

 

Примеры использования:

1. k = a + (i++) – d * (--j); равносильно выполнению операций в следующей последовательности:

--j; k=a + i – d * j; i++;

 

2. int i=2, j=0;

i++;

cout << i << endl; // 3

--i;

cout << i << endl; // 2

 

3.

int main()

{ float x=2;

x=++x*4; cout << x << endl; // 12

x=2;

x=x++*4; cout << x << endl; // 9

x=2;

x=--x*4; cout << x << endl; // 4

x=2;

x=x--*4; cout << x << endl; // 7

return 0;

}

4.

int main()

{

int var = 10;

cout << var << endl; // var = 10

var *= 2; // var = 20

cout << var-- << endl; // 20

cout << var << endl; // var = 19

return 0;

}

Правило:

  1. при самостоятельном использовании префиксная и постфиксная операции выполняются одинаково (++k, k++);
  2. в выражениях префиксная и постфиксная операции различаются:

· в случае префиксной операции сначала изменяется значение переменной, перед которой стоит операция, а затем оно используется;

· в случае постфиксной операции сначала используется старое значение переменной, после которой стоит операция, затем оно изменяется;

  1. не применяют операции к переменной, которая входит в выражение более одного раза или присутствует более чем в одном аргументе функции (k=a/2 + 5 * (1 + a++);
    printf (“……..”, a, a*a++);).
  2. операции применяют только к переменным, операнд не может быть константой;
  3. операндом может быть только леводопустимое выражение: ++(j+k) – неверная запись.


Дата добавления: 2015-07-08; просмотров: 183 | Нарушение авторских прав


Читайте в этой же книге: Результат вычисления выражения характеризуется значением и типом. Операции выполняются в соответствии с их приоритетами. | Классификация операций | Приоритеты (ранги) операций | Примеры использования | Логические выражения и примеры их записи | Пример 6. | Правила преобразования типов | Примеры преобразования типов | Адрес переменной | Программирование вычисления алгебраических выражений |
<== предыдущая страница | следующая страница ==>
Арифметические операции| Операции присваивания

mybiblioteka.su - 2015-2024 год. (0.007 сек.)