C++ — Клёвый код https://coolcode.ru Скриптописание и кодинг Mon, 27 Mar 2017 04:07:47 +0000 ru-RU hourly 1 https://wordpress.org/?v=5.8.12 https://coolcode.ru/wp-content/uploads/2015/10/YO1-150x150.png C++ — Клёвый код https://coolcode.ru 32 32 Решаем задачи Абрамян на C++. Case2 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-case2-2/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-case2-2/#respond Mon, 27 Mar 2017 04:05:50 +0000 http://coolcode.ru/?p=13100

Case2. Дано целое число $$K$$. Вывести строку-описание оценки, соответствующей числу $$K$$ (1 — «плохо», 2 — «неудовлетворительно», 3 — «удовлетворительно», 4 — «хорошо», 5 — «отлично»). Если $$K$$ не лежит в диапазоне 1–5, то вывести строку «ошибка».

Решение от Archer:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    int k;

    cout << "k = "; cin >> k;

    switch (k)
    {
        case 1: cout << "плохо"; break;
        case 2: cout << "неудовлетворительно"; break;
        case 3: cout << "удовлетворительно"; break;
        case 4: cout << "хорошо"; break;
        case 5: cout << "отлично"; break;
        default: cout << "ошибка";
    }

    cout << endl << endl;

    system("pause");
}

Другие задачи из раздела Case можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-case2-2/feed/ 0
Решаем задачи Абрамян на C++. If30 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-if30-2/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-if30-2/#respond Mon, 27 Mar 2017 03:58:15 +0000 http://coolcode.ru/?p=13097

If30. Дано целое число, лежащее в диапазоне 1-999. Вывести его строку описание вида «четное двузначное число», «нечетное трехзначное число» и т. д.

Решение от Archer:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	setlocale(LC_ALL, "Russian");
	int a;

	cout << "'a' в диапозоне: 1-999" << endl;
	cout << "a = "; cin >> a;

	if (a % 2 == 0);
	else cout << "не";
	cout << "четное ";
	if (a / 100 > 0 && a / 100 < 10) cout << "трехзначное ";
	else if (a / 10 > 0 && a / 10 < 10) cout << "двухзначное ";
	else if (a / 10 == 0) cout << "однозначное ";
	cout << "число!!!";

	cout << endl << endl;

	system("pause");
	return 0;
}

 

Другие задачи из раздела If можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-if30-2/feed/ 0
Sololearn C++. Условные выражения и циклы. Ответы на тесты. https://coolcode.ru/sololearn-c-uslovnyie-vyirazheniya-i-tsiklyi-otvetyi-na-testyi/ https://coolcode.ru/sololearn-c-uslovnyie-vyirazheniya-i-tsiklyi-otvetyi-na-testyi/#respond Mon, 13 Mar 2017 05:42:42 +0000 http://coolcode.ru/?p=12925

Ответы на тесты:

Оператор if

1) Укажите верный синтаксис для оператора if C++?

  • if (test) { }
  • if test
  • IF test

2) Заполните пусте места, чтобы сравнить переменные и вывести на экран «hi there»:

int x = 5;

int y =3;

if (x>y) {

cout <<«hi there»;

}

3) Какой оператор используется для сравнения?

  • =
  • <<
  • ==
  • *=

4) Заполните пустые места, чтобы сравнивать переменные и вывести «not equal» на экран.

int x = 10;

int y = 8;

if ( x != y) {

cout << «not equal»;

}

5) Заполните пустые места, чтобы вывести на экран значение наибольшей переменной:

int a = 98;

int b = 76;

if (a>b){

cout <<«greatest is»<< a <<endl;

}

if (b>a){

cout << «greatest is»<< b <<endl;

}

Оператор else

1) Заполните пустые места, чтобы проверить, больше ли переменная age 18-ти:

int age = 25;

if (age>18){

cout << «Adult»;

}

2) Заполните пустые места следующего кода:

int x = 22;

if ( x>32){

cout <<«x is greater than 33″<<endl;

}

else {

cout << «x is not greater than 33″<<endl;

}

3) Сколько выражений может быть помещено между скобками оператора if?

  • 2
  • Столько, сколько вам необходимо
  • 1

4) Заполните пустые места вложенного оператора if, чтобы вывести на экран «it works!».

int x = 37;

if (x > 22){

if ( x > 31){

cout <<«it works!»<<endl;

}

}

5) Сколько вложенных операторов if может находиться в операторе if?

  • Столько, сколько угодно
  • Только два
  • Ни одного

6) Заполните пустые места, чтобы сравнить переменные и вывести на экран «printing in the else».

int x = 10;

int y = 20;

if ( x > y) {

cout << «some other text»<<endl;

}

else {

cout <<«printing in the else»<<endl;

}

Цикл While

1) Выберите правильный синтаксис цикла while?

  • while (bacon <= 5) { cout << «text»;}
  • while bacon <= 5  cout << «text»;
  • WHILE bacon <= 5 { cout << «text»;}

2) Заполните пустые места, чтобы вывести на экран значение x 5 раз.

int x =1;

while (x<=5){

cout <<«value is «<<x<<endl;

x=x+1;

}

3) Заполните пустые места, чтобы инкрементировать значение переменной bacon на 2 и вывести на экран только четные значения.

int bacon = 0;

while (bacon <=20){

cout << «bacon is»<<bacon<<endl;

bacon = bacon + 2;

}

Использование цикла while

1) Заполните пустые места, чтобы вывести значения переменной x от 1 до 5. Инкрементируйте значение x используя оператор ++.

int x = 1;

while (x<=5){

cout <<x<<endl;

x++;

}

2) Заполните пустые места, чтобы позволить пользователю ввести значение используя cin и сохранить его в переменной «number» 5 раз.

int x = 1;

int number;

while ( x<=5){

cin>>number;

x++;

}

3) Заполните пустые места, чтобы вывести 5 чисел и вывести на экран их сумму. Сохраните их сумму в переменной total.

int x = 1;

int number;

int total = 0;

while (x<=5){

cin>>number;

total=total+number;

x++;

}

cout<<«Sum:»<< total<<endl;

Цикл for

1) Укажите правильный синтаксис для цикла «for»?

  • for int x = 1; y < 10, ++y {}
  • FOR x = 1, x < 10, x++ {}
  • for (int x = 1,, x < 10, x++) {}
  • for (int x = 1; x< 10, x++) {}

3) Заполните пустые места, чтобы вывести на экран значение x 10 раз:

for (int x = 1; x<=10; x++) {

cout <<x <<endl;

}

4) Заполните пустые места для ввода на экран четных чисел находящихся от 0 до 20 используя цикл for:

for(int x = 0; x<= 20; x+=2){

cout<<x<<endl;

}

Цикл do … while

1) Выберите правильный синтаксис цикла do … while?

  • DO while test;
  • doo while(test);
  • do { } while(test);

2) Заполните пустые места, чтобы вывести на экран значение переменной x 10 раз.

int x = 0;

do {

cout <<x<<endl;

x++;

}

while (x < 10);

3) Чем отличается цикл do … while от цикла while?

  • Цикл do … while выполняется как минимум один раз
  • Цикл while выполняется до проверки условия
  • Цикл do … while проверяет условие до выполнения

4) Заполните пустые места, чтобы вывести на экран «this is loop» 15 раз.

int x = 1;

do {

cout<<«this is loop»<<endl;

x++;

}

while (x<=15)

Оператор switch

1) Заполните пустые места, чтобы вывести на экран «you can drive a car» если переменная «age» равна 16, и «buy a lottery ticket» если переменная «age» равна 18.

int age;

cin>>age;

if (age==16){

cout<<«you can drive a car»<<endl;

}

if (age==18){

cout<<«buy a lottery ticket»<<endl;

}

2) Какое из выражений содержит правильный синтаксис оператора switch?

  • switch (test) {  }
  • switch test;
  • SWITCH test {}

3) Заполните пустые места, чтобы проверить переменную age на равенство 16, 18, 21 и затем вывести соответствующий текст на экран.

switch (age) {

case 16:

cout<<«you can drive a car»<<endl;

break;

case 18:

cout<<«but a lottery ticket»<<endl;

break;

case 21;

cout<<«but some beer»<<endl;

break;

}

4) Заполните пустые места, чтобы проверить значение переменной x; если x равен 2, вывести на экран  ‘its 2"; иначе (случай default),  вывести на экран "the default case";

int x;

cin>>x;

switch (x){

case 2:

cout<<"its 2″<<endl;

break;

default:

cout<<«the default case»<<endl;

}

5) Что произойдёт, если мы забудем добавить «break» после «case»?

  • Будут выполнены остальные операторы case
  • Ничего
  • Ошибка времени выполнения

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

1) Заполните пустые места, чтобы проверить оба условия в ледующем операторе if.

int age = 23;

int money j= 4;

if (age>21 && money > 500){

cout <<«welcome»<<endl;

}

2) Результат выражения «a && b» будет верным, если:

  • Или a или b верны
  • и a и b неверны
  • И a и b верны

3) Сколько операторов && может быть использовано в одном операторе if?

  • Столько, сколько вам нужно
  • Два
  • Только одно

4) Заполните пустые места, чтобы вывести на экран «welcome».

int age = 26;

int money = 4;

if (age > 21 || money >500){

cout <<«welcome»<<endl;

}

5) Результат выражения a||b верный, если (выберите два ответа):

  • Или a или b верно
  • И a и b верно
  • Ни a ни b не верно

Упражнения 2 Модуля

1) Напишите код, чтобы вывести значение и сохранить его в переменной x, затем проверьте, если оно больше 20, вывести на экран «x is big», если x меньше 10, вывести на экран «x is  small».

int x;

cin>>x;

if (x>20){

cout<<«x is big»<<endl;

}

if (x<10){

cout<<«x is small»<<endl;

}

2) Напишите код, чтобы вывести на экран «in a loop» 5 раз используя цикл while.

int x = 1;

while (x<=5){

cout<<«in a loop»<<endl;

x++;

}

3) Напишите код, чтобы вывести на экран «in a loop» 7 раз используя цикл for.

for (int x=0; x<7; x++){

cout<<«in a loop»<<endl;

}

4) Что из следующего верно для оператора switch?

  • Оператор switch может быть альтернативой для множества операторов if
  • Оператор switch должен всегда содержать оператор default
  • Оператор switch это то же самое, что и цикл for

5) Укажите верные высказывания обо операторах  && и ||.

  • a || b верно, если или a или b верно
  • a && b верно, если или a или b верно
  • a && b ложно, если и a и b верно
  • (a||b)&&c верно, если c верно и или a или b верно

6) Заполните пустые места, чтобы вывести на экран «You rock!», если переменная a больше 12, и переменная b меньше или равна 76.

int a = 144;

int b = 33;

if (a>12 && b<=76){

cout<<«You rock!»<<endl;

}

 

]]>
https://coolcode.ru/sololearn-c-uslovnyie-vyirazheniya-i-tsiklyi-otvetyi-na-testyi/feed/ 0
Sololearn C++. Основные понятия. Ответы на тесты. https://coolcode.ru/sololearn-c-osnovnyie-ponyatiya-otvetyi-na-testyi/ https://coolcode.ru/sololearn-c-osnovnyie-ponyatiya-otvetyi-na-testyi/#respond Tue, 07 Mar 2017 04:36:03 +0000 http://coolcode.ru/?p=12812

Ответы на тесты:

Что такое C++?

1)  С++ это:

Язык программирования общего назначения.

Hello, World!

1) Заполните пустые места чтобы включить заголовочный файл <iostream>

#include <iostream>

2) Заполните пустые места чтобы использовать идентификаторы из пространства имён std:

using namespace std;

3) Что является отправной точкой компьютерной программы?

  • Первая строчка кода
  • Включение <iostream>
  • Функция main

4) Каждая инструкция должна заканчиваться:

  • точкой с запятой(;)
  • запятой (,)
  • точкой (.)
  • двоеточием (:)

5)  Заполните пустые места, чтобы вывести «Hello, world!» на экран:

cout << «Hello, world!»;

6) Переставьте местами стрки, что бы получить правильно работающую программу:

#include <iostream>

using namespace std;

int main(){

  cout << "Awesome!"; return0;

}

Получаем инструменты

1) Какие два инструмента вам необходимы, чтобы писать и запускать программы на языке C++?

  • Ecxel
  • Компилятор
  • Веб браузер
  • IDE

 

2) Что из приведённого является компилятором языка C++?

  • GAC
  • Console
  • GNU GCC
  • CodeBlock

Печатаем текст

1) Заполните пустые места, чтобы вывести на экран «I love C++»

coun <<«I loce C++»;

2) Что используется для перевода вывода на следующую строку?

  • #include
  • endl
  • return
  • startl

3) Какой символ используется для перехода на новую строку (альтернатива endl)?

  • \a
  • \b
  • \n

4) Заполните пустые места, что бы напечатать слова «hello» и «world» разделённые пустой строкой:

cout <<«hello \n\n»;

cout << «world»;

5) Заполните пустые места чтобы вывести «I love C++» по одному слову в каждой строке:

cout << «I \n love \n C++»;

Комментарии

1) Выберети однострочный комментарий C++.

  • ##однострочный комментарий
  • **однострочный комментарий
  • //однострочный комментарий

2) Создайте блок комментариев (многострочный комментарий) на C++:

/* this is a block/multiline

comment in C++ */

3) Выберите верное утверждение.

  • Комментарии игнорируются компилятором
  • Комментарии используются для того, чтобы запутать программиста
  • Однострочный комментарий начинается с * (звездочка)

Переменные

1) Какой тип данных используется для целочисленных значений?

int

2) Допустим у вас есть переменная названная var. Добавьте код, чтобы вывести её значение:

cout<<var;

3) Заполните пустые места, чтобы объявить переменную sum равную a + b:

int sum = a + b;

4) Какие два выражения верны для переменных в C++?

  • Переменные должны иметь тип данных
  • Переменные должны быть объявлены до их использования
  • Переменные не имеют имён
  • Перменные являются директивами препроцессора

Работаем с переменными

1) Заполните пустые места, чтобы объявить переменную целочисленного типа и затем присвоить ей значение 7.

int a;

a =7;

2) Для чего нужен cin?

  • Получать информацию (данные) от пользователя
  • Включает заголовочный файл
  • Выводит значение переменной

3) Напишите код, который позволяет ввести число и сохраняет его в переменной a:

cin >> a;

4) Заполните пустые места, чтобы объявить переменную целочисленного типа var, ввести число, и сохранить его в переменной var.

int var;

cout << «Please enter a value \n»;

cin >> var;

5) Заполните пустые места чтобы объявить переменную sun, присвоить ей значение 21 +7, и вывести на экран её результат.

int sum;

sum = 21 + 7;

cout << «sum is equql to»<< sum << endl;

Ещё о переменных

Сколько раз должен быть указан тип данных для переменной?

  •  Всякий раз при использовании переменной
  • При вводе значения переменной используя cin
  • При выводе значений переменной
  • Только один раз — при объявлении переменной

Введите код, чтобы объявить переменную b и присвоить ей значение переменной a, и затем ввести их сумму на экран:

int a =15;

int b = a;

cout << a + b << endl;

Базовая арифметика

1) Введите код, чтобы объявить переменную x, присвоить ей значение 4 + 6, и вывести её на экран.

int x;

x = 4 +6;

cout << x << endl;

2) Введите пропущенные части кода, чтобы вывести на экран число 12.

int x = 24;

int y;

y = x — 12;

cout << y << endl;

3) Какой символ исполльзуется для умножения в C++?

  • %
  • +
  • *
  • X

4) Заполните пустые места, чтобы объявить переменную x и присвоить ей значение 81 делённое на 3:

int x = 81 / 3;

cout << x;

5) Какой операнд используется для определения остатка?

  • *
  • +
  • %

6) Впишите пропущенные скобки, чтобы получить значение переменной x равное 14.

int x = ( 4 + 3 ) *2;

cout <<x;

7) Какие два выражения верны для арифметических операций?

  • Сначала выражение в скобках, затем умножение и деление
  • Умножение выполняется до сложения
  • Вычитание выполняется первым
  • Сложение выполняется до умножения

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

1) Какая альтернатива выражению x = x +10?

  • x+=10
  • x-=9
  • x=y+10

2) Введите пропущенные части кода, чтобы разделить их на 5 используя оператор /=.

int x = 10;

x /= 5;

3) x++ эквивалентно следующему выражению:

  • x = x — 4
  • x = x+1
  • x /= 17;

4) Заполните пустые места чтобы увеличить значение переменной x на еденицу используя опереатор инкремента ++ и выведедите его значение на экран.

int x =20;

x++;

cout<< x << endl;

5) Какая разница между ++x и x++?

  • ++x использует значение x и затем производит его увеличение
  • x++ увеличивает значение x до его использования
  • ++x увеличивает значение x до его использования
  • x++ использует значение x и затем производит его увеличение

6) Пожалуйста введите код которые уменьшает значение x используя оператор деримента -.

int x = 20;

x;

Упражнения 1-го модуля

1) Пожалуйста, введите пропущенные части кода, чтобы вывести на экран «I Love C++».

#include <iostream>

using namespace std;

int main()

{

cout << «I love C++» << endl;

return 0;

}

2) Пожалуйста введите код, который объявляет две переменные целочисленного типа и выводит их сумму на экран.

int x = 4;

int y =7;

int sum = x + y;

cout << «sum equals to » << sum << endl;

3) В каждой программе на языке C++:

  • Переменные должны называться либо x либо y
  • Должна быть функция main
  • Должно быть как минимум две объявленные переменные
  • Каждая переменная должна иметь тип данных

4) Пожалуйста введите код, чтобы вывести на экран значение x разделённое на y.

int x = 81;

int y = 3;

cout << x / y << endl;

5) Что выведет следующая программа на экран?

int a=3;
int b=2;
b = a++;
cout << ++b;

Ответ: 4

Перепрыгнуть:

1) Что выведет следующая программа на экран?

int a=3;

int b=2;

b=a++;

cout<<b;

Ответ: 4

2) Пожалуйста введите код, чтобы вывести на экран значение x разделённое на y.

int x = 81;

int y = 3;

cout << x / y << endl;

3) Пожалуйста, введите пропущенные части кода, чтобы вывести на экра «I love C++».

#include <iostream>

using namespace std;

int main()

{

cout <<«I love C++»<<endl;

  return 0;

}

4) Пожалуйста введите код, который объявляет две переменные целочисленного типа и выводит их сумму на экран.

int x = 4;

int y = 7;

int sum = x + y;

cout << «sum equals to» << sum << endl;

5) В каждой программе на языке C++:

  • Каждая переменная должна иметь тип данных
  • Должно быть как минимум две объявленные переменные
  • Переменные должны называться либо x либо y
  • Должна быть функция main

 

]]>
https://coolcode.ru/sololearn-c-osnovnyie-ponyatiya-otvetyi-na-testyi/feed/ 0
Решаем задачи Абрамян на C++. Boolean23 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-boolean23-2/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-boolean23-2/#respond Mon, 27 Feb 2017 16:11:41 +0000 http://coolcode.ru/?p=12743

Boolean23. Дано четырехзначное число. Проверить истинность высказывания: «Данное число читается одинаково слева направо и справа налево».

Решение:

#include <iostream>
#include <math.h>

using namespace std;

int main(void)
{
    int A;
    cout << "A:";
    cin >> A;

    A = abs (A);

    cout << (A%10==A/1000 & A%100/10 == A%1000/100) << endl;

    return 0;
}

Другие задачи из раздела Boolean можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-boolean23-2/feed/ 0
Решаем задачи Абрамян на C++. Case6 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-case6-2/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-case6-2/#respond Mon, 30 Jan 2017 04:18:05 +0000 http://coolcode.ru/?p=12535

Case6. Единицы длины пронумерованы следующим образом: 1 — дециметр, 2 — километр, 3 — метр, 4 — миллиметр, 5 — сантиметр. Дан номер единицы длины (целое число в диапазоне 1–5) и длина отрезка в этих единицах (вещественное число). Найти длину отрезка в метрах.

Решение:

#include <iostream>

using namespace std;

int main()
{
    int n;
    float l;
    cout << "N: ";
    cin >> n;
    cout << "L: ";
    cin >> l;

    switch (n) {
        case 1:
            cout << l/10 << endl;
            break;
        case 2:
            cout << l*1000 << endl;
            break;
        case 3:
            cout << l << endl;
            break;
        case 4:
            cout << l/1000 << endl;
            break;
        case 5:
            cout << l/100 << endl;
            break;
    }
    return 0;
}

Другие задачи из раздела Case можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-case6-2/feed/ 0
Решаем задачи Абрамян на C++. String51 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-string51/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-string51/#respond Sat, 17 Dec 2016 09:36:08 +0000 http://coolcode.ru/?p=11679

String51. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним пробелом и расположенные в алфавитном порядке.

Решение:

# include <iostream>
# include <windows.h>
# include <cmath>
# include <iomanip>
# include <fstream>

using namespace std;
const int M = 20;
const int N = 50;
int main()
{
   SetConsoleCP(1251);
   SetConsoleOutputCP(1251);
   
   int i,j;
   char words[M][N];   
   char str[M*N] = "";
   ifstream in ("String51.txt");
   in.getline(str,sizeof(str)); 
   cout << "Исходный набор слов:" << "\n";  
   cout << str << endl; 
        
   char* ptr; 
   ptr = strtok(str, " ,.");    
   int n = 0;         
   while(ptr!=NULL) 
   {          
	   strcpy(words[n], ptr);
	   ptr = strtok(NULL, " ,.");  
	   ++n;
          
   }   
    
   char cur[N] = ""; //Буфер
   
    for(i=0;i<n-1;++i) {
        for(j=i+1;j<n;++j)
            if(strcmp(words[i],words[j])>0)
            {   strcpy(cur,words[i]);
                strcpy(words[i],words[j]);
                strcpy(words[j],cur);
            }
    }
    
    cout << "\n";
    cout << "Набор слов в алфавитном порядке:" << "\n";
    char s[M*N] = "";
    strcat(s,words[0]);
    for(i=1;i<n;++i){
       strcat(s," ");
       strcat(s,words[i]);
    }
    cout << s << endl;

    system ("pause");
}

String51.txt

ФЕДЯ   ИГОРЬ  ПЛЮС    СКОРОСТЬ        ТЮРЬМА

Другие задачи из раздела String можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-string51/feed/ 0
Решаем задачи Абрамян на C++. String41 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-string41/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-string41/#respond Sat, 17 Dec 2016 09:33:30 +0000 http://coolcode.ru/?p=11677

String41. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Найти количество слов в строке.

Решение:

# include <iostream>
# include <windows.h>
# include <cmath>
# include <iomanip>
# include <fstream>

using namespace std;
const int nmax = 100;
int main()
{
   SetConsoleCP(1251);
   SetConsoleOutputCP(1251);   
   
   char str[nmax] = "";
   ifstream in ("String41.txt");
   in.getline(str,sizeof(str));   
   cout << "Исходная строка:" << "\n";
   cout << str << endl; 
   int answer=0;
   char* ptr; 
   ptr = strtok(str, " ,."); 
   while(ptr!=NULL) {        
	   ptr = strtok(NULL, " ,.");  
	   ++answer;
   }  
   
   cout << "Количество слов в строке = " << answer << "\n";

   system ("pause");
}

String41.txt

эюєЄсєъ ьр°шэ√ ъырф  схыър   єцрё

Другие задачи из раздела String можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-string41/feed/ 0
Решаем задачи Абрамян на C++. String27 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-string27/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-string27/#respond Sat, 17 Dec 2016 09:29:56 +0000 http://coolcode.ru/?p=11674

String27. Даны целые положительные числа $$N_1$$ и $$N_2$$ и строки $$S_1$$ и $$S_2$$. Получить из этих строк новую строку, содержащую первые $$N_1$$ символов строки $$S_1$$ и последние $$N_2$$ символов строки $$S_2$$ (в указанном порядке).

Решение:

# include <iostream>
# include <windows.h>
# include <cmath>
# include <fstream>
# include <iomanip>

using namespace std;

const int nmax = 100;
int main()
{
   SetConsoleCP(1251);
   SetConsoleOutputCP(1251);
   char s1[nmax];
   char s2[nmax];
   char s[2*nmax];
   
   ifstream in ("String27.txt");
   in.getline(s1,sizeof(s1));
   cout << s1 << "\n";
   in.getline(s2,sizeof(s2));
   cout << s2 << "\n";
   
   int n1, n2;
   int size_s2 = strlen(s2);
   cout << "Введите целые положительные числа: n1<=" << strlen(s1);
   cout << " и n2<=" << size_s2 << ": ";
   cin >> n1 >> n2;
   strncpy (s, s1, n1);
   s[n1] = '\0';
   
   char* p = s2;
   p += size_s2-n2;
   strcat (s, p);
   
   cout << s << endl;
   system ("pause");
   return 0;
}

String27.txt

яЁютюф
ърсхы№

Другие задачи из раздела String можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-string27/feed/ 0
Решаем задачи Абрамян на C++. String18 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-string18/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-string18/#respond Sat, 17 Dec 2016 09:27:37 +0000 http://coolcode.ru/?p=11672

String18. Дана строка. Преобразовать в ней все строчные буквы (как латинские, так и русские) в прописные, а прописные — в строчные.

Решение:

# include <iostream>
# include <windows.h>
# include <cmath>
# include <iomanip>
# include <fstream>
# define MAXSIZE  100

using namespace std;

int main()
{
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);
	
	char str[MAXSIZE] = "";
	
    ifstream in ("String18.txt");
    in.getline(str,sizeof(str));
    cout << "Дана строка:" << endl;
    cout << str << "\n";
			
	for (int i=0; i<strlen(str); ++i){

      if (islower(str[i])) str[i] = toupper(str[i]);
      else if (isupper(str[i])) str[i] = tolower(str[i]);
      
      if ('А' <= str[i] && str[i] <='Я') str[i] = str[i]+32;
      else if ('а' <= str[i] && str[i] <='я') str[i] = str[i]-32; 
	}
	cout << "Преобразованная строка:" << endl;
	cout << str << endl;
    system ("pause");
	return 0;
}

String18.txt

дОбрО поЖалОВАТь wElcOme

Другие задачи из раздела String можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-string18/feed/ 0