Короткие примеры C++ кода-1 Кувшинов Д



Download 326,03 Kb.
bet3/23
Sana21.03.2020
Hajmi326,03 Kb.
#42712
1   2   3   4   5   6   7   8   9   ...   23
Bog'liq
Короткие примеры C

for (double x = 0, y = 0; cin >> x >> y;)

{

cout << "(x, y) within the figure == " << in_figure(x, y) << endl;

}

return EXIT_SUCCESS;

}

0300-ternary_operator.cpp

// ternary_operator.cpp

#include

#include

using namespace std;
// Проверить попадание в круг.

bool in_circle(float x, float y,

float cx, float cy, float r)

// координаты центра круга и его радиус

{

// Константы -- после инициализации значения не изменяются.

const float dx = x - cx,

dy = y - cy;
return dx * dx + dy * dy <= r * r;

}
// Проверить попадание в прямоугольник.

bool in_rectangle(float x, float y,

float left, float right, float bottom, float top)

// координаты левой, правой, нижней и верхней граней

{

return left <= x && x <= right // && -- "и"

&& bottom <= y && y <= top;

}
// Проверить попадание в заданную фигуру.

bool in_figure(float x, float y)

{

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

// объединения трёх фигур: двух прямоугольников и сегмента круга

return (in_rectangle(x, y, 2.0, 4.0, -5.0, 5.0)

|| in_rectangle(x, y, -4.0, -2.0, -5.0, 5.0) // || -- "или"

|| in_circle(x, y, -2.0, 0.0, 5.0)) && x >= -4.0;

}

int main()

{

cout << "Enter a sequence of coordinates x, y: ";

// Определение переменных; условие продолжения; последнее действие на каждом повторении.

for (double x = 0, y = 0; cin >> x >> y;)

{

cout << "(" << x << ", " << y << ") " <<

(in_figure(x, y)? "is": "is not") // "тернарный оператор": условие в выражении

<< " inside the figure" << endl;

}

return EXIT_SUCCESS;

}

0310-for.cpp

// for.cpp

#include

#include

using namespace std;
int main()

{

// Определение переменных; условие продолжения; последнее действие на каждом повторении.

for (int i = 1; i <= 10; ++i) // ++i --> i = i + 1

{

cout << "i == " << i << "\ti squared == " << i * i << endl;

}

return EXIT_SUCCESS;

}

0320-for_for.cpp

// for_for.cpp

// Двойной цикл for.

#include

#include

using namespace std;
// Таблица умножения.

int main()

{

// Определение переменных; условие продолжения; последнее действие на каждом повторении.

for (int i = 1; i <= 10; ++i) // ++i --> i = i + 1

{

for (int j = 1; j <= 10; ++j)

{

cout << i << "*" << j << "\t== " << i * j << endl;

}

}

return EXIT_SUCCESS;

}

0330-products_table.cpp

// products_table.cpp

#include

#include

using namespace std;
// Таблица умножения.

int main()

{

// Строчка.

for (int i = 1; i <= 10; ++i)

{

// Столбец.

for (int j = 1; j <= 10; ++j)

{

cout << i * j << " ";

}
cout << endl;

}

return EXIT_SUCCESS;

}

0340-iomanip_setw.cpp

// iomanip_setw.cpp

#include

#include

#include // "Манипуляторы потока".

using namespace std;
// Таблица умножения.

int main()

{

// Строчка.

for (int i = 1; i <= 10; ++i)

{

// Столбец.

for (int j = 1; j <= 10; ++j)

{

// Манипулятор setw вставляет пробелы (до четырёх), если выведено менее 4 символов.

cout << setw(4) << i * j;

}
cout << endl;

}

return EXIT_SUCCESS;

}

0350-cat.cpp

// cat.cpp

#include

#include

using namespace std;
// Читаем из потока ввода символы и пишем их в поток вывода.

int main()

{

for (char ch; cin.get(ch);)

cout.put(ch);

return EXIT_SUCCESS;

}

0351-cat_2.cpp

// cat_2.cpp

// Вариант на основе вывода в поток буфера другого потока.

#include

#include

using namespace std;
// Читаем из потока ввода символы и пишем их в поток вывода.

int main()

{

cout << cin.rdbuf();

return EXIT_SUCCESS;

}

0355-char_subst.cpp

// char_subst.cpp

#include

#include

using namespace std;
// Читаем из потока ввода символы и пишем их в поток вывода,

// подменяя некоторые на другие (e -> i, o -> u, a -> o).

int main()

{

for (char ch; cin.get(ch);)

{

char output = ch;

if (ch == 'e')

output = 'i';

else if (ch == 'o')

output = 'u';

else if (ch == 'a')

output = 'o';

cout.put(output);

}

return EXIT_SUCCESS;

}

0360-count_lines.cpp

// count_lines.cpp

#include

#include

#include

using namespace std;
// Читаем из потока ввода строки, выводим их в поток вывода,

// а в конце выводим их количество в отдельной строке.

int main()

{

int amount = 0;

for (string line; getline(cin, line); ++amount)

cout << line << endl;

cout << amount << endl;

return EXIT_SUCCESS;

}

0370-size_t.cpp

// size_t.cpp

#include

#include

#include

using namespace std;
// Читаем из потока ввода строки, выводим их в поток вывода,

// а в конце выводим их количество в отдельной строке.

int main()

{

size_t amount = 0; // Тип "количество", не может быть отрицательным.

for (string line; getline(cin, line); ++amount)

cout << line << endl;

cout << amount << endl;

return EXIT_SUCCESS;

}

0380-line_unique_0.cpp

// line_unique_0.cpp

#include

#include

#include

using namespace std;
// Читаем из потока ввода строки, выводим их в поток вывода,

// пропуская подряд идущие повторяющиеся строки.

int main()

{

// Нет ли здесь ошибок?

for (string last, next; getline(cin, next);)

{

if (last != next)

{

cout << next << endl;

last = next;

}

}
return EXIT_SUCCESS;

}

0390-line_unique.cpp

// line_unique.cpp

#include

#include

#include

using namespace std;
// Читаем из потока ввода строки, выводим их в поток вывода,

// пропуская подряд идущие повторяющиеся строки.

int main()

{

// Первая строка -- особый случай.

string last;

if (!getline(cin, last))

return EXIT_FAILURE; // Не смогли прочитать и одной строки.
cout << last << endl; // Вывести первую строку.
// Продолжить работу с остатком файла.

for (string next; getline(cin, next);)

{

if (last != next)

{

cout << next << endl;

last = next;

}

}
return EXIT_SUCCESS;

}

0395-spinning_pipe.cpp

// spinning_pipe.cpp

#include
int main()

{

while (true) std::cout

.put('|').flush().put('\b')

.put('/').flush().put('\b')

.put('-').flush().put('\b')

.put('\\').flush().put('\b');

}

0396-spinning_pipe_waiting.cpp

// spinning_pipe_waiting.cpp

#include

#include

#include // sleep

#include // суффикс ms (C++14)
// Выполнить "следующий фрагмент работы".

// Для примера мы просто ждём 200мс.

bool do_next_job()

{

using namespace std::chrono_literals;

std::this_thread::sleep_for(200ms);

// C++11-вариант:

// std::this_thread::sleep_for(std::chrono::milliseconds(200));

return true;

}
int main()

{

static char sprite[] = "|/-\\";

for (unsigned s = 0;; s = (s + 1) % 4)

{

std::cout.put(sprite[s]).flush();

if (!do_next_job())

break;

std::cout.put('\b');

}
return EXIT_SUCCESS;

}

0398-reverse_lines.cpp

// reverse_lines.cpp

#include

#include

#include

using namespace std;
struct Line

{

Line *prev;

string line;

};
int main()

{

Line *last = nullptr;
// Чтение строк.

for (string line; getline(cin, line);)

{

Line *new_line = new Line;

new_line->prev = last;

new_line->line = line;

last = new_line;

}
// Вывод строк в обратном порядке.

while (last)

{

cout << last->line << '\n';

Line *old_line = last;

last = last->prev;

delete old_line;

}



return EXIT_SUCCESS;

}

0399-void_list.cpp

// void_list.cpp

#include

using namespace std;
///////////////////////////////////////////////////////////////////////////////

// Следующие 4 функции ничего не знают о содержимом списка.
/// Возвращает ссылку на указатель на следующее звено звена link.

void*& next(void *link)

{

return *(void**)link;

}
/// Вставляет link перед head и возвращает link (теперь это -- новая голова списка).

void* insert_head(void *head, void *link)

{

next(link) = head;

return link;

}
/// Вычисляет длину списка.

size_t size(void *head)

{

size_t sz = 0;

for (; head; head = next(head))

++sz;

return sz;

}
/// Указатель на функцию, выполняющую удаление звена.

using Link_delete = void(*)(void*);
/// Удаляет список, используя пользовательскую функцию удаления.

void delete_list(void *head, Link_delete link_delete)

{


Download 326,03 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   23




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish