Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/2345: Рейтинг темы: голосов - 2345, средняя оценка - 4.54
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562

Задачи для тренировки и лучшего понимания

15.07.2010, 05:53. Показов 494013. Ответов 1272
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят. Кто-нибудь может дать задачу для тренировки? Приблизительно по всему курсу С++. Буду благодарен за сложную задачу, но которую способен сделать новичок-любитель. Затраты сил-времени не важно. Главное, чтобы это было интересно и не слишком рутинно. + Если найдется человек который даст задачу просьба помогать с кодом, который я буду себя скидывать. Не переписывать за меня, но указывать на ошибки и желательно объяснять. Заранее спасибо.

Список задач, решение которых присутствует в данной теме:
44
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.07.2010, 05:53
Ответы с готовыми решениями:

Элементарные программы, для лучшего понимания языка...
Здравствуйте. Вот сегодня решил что пора изучать с++. Есть пару задач. Начал решать и уже на первой запоролся( суть в том чтобы определить...

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

Литература для лучшего понимания сути программирования
Привет! Подскажите литературу, которая поможет разобраться в сути самого процесса программирования, поможет изучить теорию алгоритмов,...

1272
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
16.07.2010, 21:25  [ТС]
Студворк — интернет-сервис помощи студентам
HIMen, Красиво!

Добавлено через 1 минуту
nikkka, Работает абсолютно неверно.
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
16.07.2010, 21:25
а вот кстате про "мои" скобки.
проверьте плиз : S
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <cstring>
#include <conio.h>
using namespace std;
int main()
{
    cout<<"Enter the string: \n";
    string s;
    cin>>s;
    int i=0;
    int count=0;
    while(s[i]!='\0')
    {
        if (s[i]=='(')
            count++;
        if (s[i]==')')
            count--;
        if (count<0)
            break;
        i++;
    }
    if(count==0)
        cout<<"right";
    else
        cout<<"wrong";
    getch();
    return 0;
}
2
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
16.07.2010, 21:27  [ТС]
nikkka, А вот эта по идее верная.
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
16.07.2010, 21:29
Lavroff, над той покапаюсь... =(
0
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
16.07.2010, 21:38
nikkka, по-моему, кто-то жульничает
В условии было упоминание о работе с файлами...
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
16.07.2010, 21:43
MikeSoft, а...
я пока даже с клавиатуры не могу заставить работать, какие фаилы

Добавлено через 2 минуты
уурряя!!...
ит уоркс!...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <cstring>
#include <conio.h>
using namespace std;
int main()
{
    cout<<"Enter the string: \n";
    char s[50];
    cin.getline(s,50);
    int i=0;
    int count=0;
    bool last=false;
    while(s[i]!='\0')
    {
        if (s[i]==':' || s[i]==';')
        {
            if (last==false)
                last=true;
        };
        if (s[i]==')' || s[i]=='(' || s[i]==']' || s[i]=='[')
        {
            if (last==true)
            {
                last=false;
                count++; 
            }
        };
        i++;
    };
    cout<<count;
    getch();
    return 0;
}
завтра переведу в фаилы
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
16.07.2010, 22:05  [ТС]
Длинно, но верно. Файлы прикручу попозже
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <iostream>
#include <cstring>
int main()
{
    char Str[100000];
    char Delim[]=(" ,.?!*");
    int count_min=1;
    int ind=0;
    int count_smiles=0;
    std::cout<<"Enter string\n";
    std::cin.getline(Str, sizeof(Str));
    char*Ptr;
    Ptr=strtok(Str, Delim);
    if(Ptr)
    {
        if (strncmp(Ptr, ":", 1)==0||strncmp(Ptr, ";", 1)==0)
        {
            for(int i=1;i<strlen(Ptr);i++)
            {
                if(Ptr[i]=='-')
                    count_min++;
            }
            for(int i=count_min;i<strlen(Ptr);i++)
            {
                if(Ptr[i]=='('||Ptr[i]==')'||Ptr[i]=='['||Ptr[i]==']')
                {
                    for(int j=count_min;j<strlen(Ptr);j++)
                    {
                    if(Ptr[i]==Ptr[j])
                    {
                        ind=1;
                        continue;
                    }
                    else
                    {
                        ind=0;
                        break;
                    }
                    }
                }
            }
            if(ind==1)
                count_smiles++;
        }
    }
    count_min=1;
    while(Ptr)
    {
        Ptr=strtok(0, Delim);
        if(Ptr)
        {
            if (strncmp(Ptr, ":", 1)==0||strncmp(Ptr, ";", 1)==0)
            {
            for(int i=1;i<strlen(Ptr);i++)
            {
                if(Ptr[i]=='-')
                    count_min++;
            }
            for(int i=count_min;i<strlen(Ptr);i++)
            {
                if(Ptr[i]=='('||Ptr[i]==')'||Ptr[i]=='['||Ptr[i]==']')
                {
                    for(int j=count_min;j<strlen(Ptr);j++)
                    {
                    if(Ptr[i]==Ptr[j])
                    {
                        ind=1;
                        continue;
                    }
                    else
                    {
                        ind=0;
                        break;
                    }
                    }
                }
            }
            if(ind==1)
                count_smiles++;
        }
    }
        count_min=1;
    }
    std::cout<<"Num of smiles: "<< count_smiles <<'\n';
    return 0;
}
1
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
16.07.2010, 22:07
nikkka, неправильно. Не выполнено одно из условий.
Lavroff, тоже неверно.

Совет: перед отправкой проверьте все варианты из примеров.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
16.07.2010, 22:22  [ТС]
MikeSoft, Проверьте еще раз... Вкинул в файл все примеры которые есть в вашем сообщении. Выводит, что в строке 4 смайла как и должно быть.

Сейчас проверил по каждому из примеров для входного файла. Выводит как написано у вас.

Добавлено через 4 минуты
Содержимое файла:

C++
1
:-))))))))))))))) :(((((((((((((((((( ::::::))))))) :)(()()()::::) :)))()))- ;-)))))))))))))] :)( :-)))) :((- ;;;;;))) hello :-)( :-)))
Выводит что в этой строке 4 смайла. Верно вроде как
0
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
16.07.2010, 22:28
Lavroff, ваша программа в строке:
Code
1
hello :-)
Видит 0 смайлов.
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
16.07.2010, 22:28
MikeSoft, а, всё, понял
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
16.07.2010, 22:48  [ТС]
MikeSoft, 1... Проверял только что же...

Добавлено через 1 минуту
Файл.
[CPP#include <iostream>
#include <cstring>
#include <fstream>
int main()
{
char Str[100000];
char Delim[]=(" ,.?!*");
int count_min=1;
int ind=0;
int count_smiles=0;
std::ifstream file;
file.open("Read.txt");
file.getline(Str, 100000);
file.close();
std::ofstream file1;
file1.open("Result.txt");
char*Ptr;
Ptr=strtok(Str, Delim);
if(Ptr)
{
if (strncmp(Ptr, ":", 1)==0||strncmp(Ptr, ";", 1)==0)
{
for(int i=1;i<strlen(Ptr);i++)
{
if(Ptr[i]=='-')
count_min++;
}
for(int i=count_min;i<strlen(Ptr);i++)
{
if(Ptr[i]=='('||Ptr[i]==')'||Ptr[i]=='['||Ptr[i]==']')
{
for(int j=count_min;j<strlen(Ptr);j++)
{
if(Ptr[i]==Ptr[j])
{
ind=1;
continue;
}
else
{
ind=0;
break;
}
}
}
}
if(ind==1)
count_smiles++;
}
}
ind=0;
count_min=1;
while(Ptr)
{
Ptr=strtok(0, Delim);
if(Ptr)
{
if (strncmp(Ptr, ":", 1)==0||strncmp(Ptr, ";", 1)==0)
{
for(int i=1;i<strlen(Ptr);i++)
{
if(Ptr[i]=='-')
count_min++;
}
for(int i=count_min;i<strlen(Ptr);i++)
{
if(Ptr[i]=='('||Ptr[i]==')'||Ptr[i]=='['||Ptr[i]==']')
{
for(int j=count_min;j<strlen(Ptr);j++)
{
if(Ptr[i]==Ptr[j])
{
ind=1;
continue;
}
else
{
ind=0;
break;
}
}
}
}
if(ind==1)
count_smiles++;
}
}
count_min=1;
ind=0;
}
std::cout<<"Num of smiles: "<< count_smiles <<'\n';
file1<<count_smiles<<'\n';
file1.close();
return 0;
}
[/CPP]


В файле:
C++
1
hello :) hi ;(
Результат: 2

Добавлено через 17 минут
Проверьте плз работает или нет. Если нет - в каких именно случаях. Буду исправлять.
0
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
16.07.2010, 22:48
Lavroff, в строке:
Code
1
:-)
программа находит 1 смайл.
А в строке
Code
1
hello :-)
- ни одного. Проверяю и вариант с файлами, и без них...
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
16.07.2010, 22:55  [ТС]
MikeSoft, Да как такое может быть? оО. Что за нафиг? Старый вариант еще без файлов. Скрины в приложении
Миниатюры
Задачи для тренировки и лучшего понимания   Задачи для тренировки и лучшего понимания  
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
16.07.2010, 23:54  [ТС]
Просьба проверить еще раз. Потому что я - тупо не понимаю как может быть такое.

Файл. Уменьшение предупреждений
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
#include <cstring>
#include <fstream>
int main()
{
char Str[100000];
char Delim[]=(" ,.?!*");
int count_min=1;
int ind=0;
int count_smiles=0;
std::ifstream file;
file.open("Read.txt");
file.getline(Str, 100000);
file.close();
std::ofstream file1;
file1.open("Result.txt");
char*Ptr;
Ptr=strtok(Str, Delim);
if(Ptr)
{
    if (strncmp(Ptr, ":", 1)==0||strncmp(Ptr, ";", 1)==0)
    {
        for(size_t i=1;i<strlen(Ptr);i++)
        {
                if(Ptr[i]=='-')
                    count_min++;
        }
        for(size_t i=count_min;i<strlen(Ptr);i++)
        {
            if(Ptr[i]=='('||Ptr[i]==')'||Ptr[i]=='['||Ptr[i]==']')
            {
                for(size_t j=count_min;j<strlen(Ptr);j++)
                {
                    if(Ptr[i]==Ptr[j])
                    {
                        ind=1;
                        continue;
                    }
                    else
                    {
                        ind=0;
                        break;
                    }
                }
            }
        }
        if(ind==1)
            count_smiles++;
    }
}
ind=0;
count_min=1;
while(Ptr)
{
    Ptr=strtok(0, Delim);
    if(Ptr)
    {
        if (strncmp(Ptr, ":", 1)==0||strncmp(Ptr, ";", 1)==0)
        {
            for(size_t i=1;i<strlen(Ptr);i++)
            {
                if(Ptr[i]=='-')
                    count_min++;
            }
            for(size_t i=count_min;i<strlen(Ptr);i++)
            {
                if(Ptr[i]=='('||Ptr[i]==')'||Ptr[i]=='['||Ptr[i]==']')
                {
                    for(size_t j=count_min;j<strlen(Ptr);j++)
                    {
                        if(Ptr[i]==Ptr[j])
                        {
                            ind=1;
                            continue;
                        }
                        else
                        {
                            ind=0;
                            break;
                        }
                    }
                }
            }
            if(ind==1)
                count_smiles++;
        }
    }
count_min=1;
ind=0;
}
std::cout<<"Num of smiles: "<< count_smiles <<'\n';
file1<<count_smiles<<'\n';
file1.close();
return 0;
}


Без файла. Уменьшение предупреждений
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream>
#include <cstring>
int main()
{
        char Str[100000];
        char Delim[]=(" ,.?!*");
        int count_min=1;
        int ind=0;
        int count_smiles=0;
        std::cout<<"Enter string\n";
        std::cin.getline(Str, sizeof(Str));
        char*Ptr;
        Ptr=strtok(Str, Delim);
        if(Ptr)
        {
                if (strncmp(Ptr, ":", 1)==0||strncmp(Ptr, ";", 1)==0)
                {
                        for(size_t i=1;i<strlen(Ptr);i++)
                        {
                                if(Ptr[i]=='-')
                                        count_min++;
                        }
                        for(size_t i=count_min;i<strlen(Ptr);i++)
                        {
                                if(Ptr[i]=='('||Ptr[i]==')'||Ptr[i]=='['||Ptr[i]==']')
                                {
                                        for(size_t j=count_min;j<strlen(Ptr);j++)
                                        {
                                        if(Ptr[i]==Ptr[j])
                                        {
                                                ind=1;
                                                continue;
                                        }
                                        else
                                        {
                                                ind=0;
                                                break;
                                        }
                                        }
                                }
                        }
                        if(ind==1)
                                count_smiles++;
                }
        }
        count_min=1;
        ind=0;
        while(Ptr)
        {
                Ptr=strtok(0, Delim);
                if(Ptr)
                {
                        if (strncmp(Ptr, ":", 1)==0||strncmp(Ptr, ";", 1)==0)
                        {
                        for(size_t i=1;i<strlen(Ptr);i++)
                        {
                                if(Ptr[i]=='-')
                                        count_min++;
                        }
                        for(size_t i=count_min;i<strlen(Ptr);i++)
                        {
                                if(Ptr[i]=='('||Ptr[i]==')'||Ptr[i]=='['||Ptr[i]==']')
                                {
                                        for(size_t j=count_min;j<strlen(Ptr);j++)
                                        {
                                        if(Ptr[i]==Ptr[j])
                                        {
                                                ind=1;
                                                continue;
                                        }
                                        else
                                        {
                                                ind=0;
                                                break;
                                        }
                                        }
                                }
                        }
                        if(ind==1)
                                count_smiles++;
                }
        }
                count_min=1;
                ind=0;
        }
        std::cout<<"Num of smiles: "<< count_smiles <<'\n';
        return 0;
}


Добавлено через 10 минут
Дайте еще какую-нить задачку дабы было чем сейчас заняться) Плиз
1
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
17.07.2010, 00:15
Помоему довольно интересная задача, на тему траавиальных крестиков-ноликов.
В данной программе, компьютер должен сам обучаться в течении игр с пользователем.

У меня есть мысли, но до конца пока не додумал, со временем может напишу.
Хочу услышать вас.
0
17.07.2010, 00:16
Лучший ответ Сообщение было отмечено как решение

Решение

Не по теме:

Lavroff, чтобы сделать скриншот консоли, сделайте её активной и нажмите Alt+PrintScreen - в буфер попадёт только окно консоли. А то у Вас там чёрта лысого разглядишь, а не вывод :)

3
17.07.2010, 00:17  [ТС]

Не по теме:

easybudda, э. да можно и обрезать в пейнте) Только лень чуток было. Извиняюсь)

0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
17.07.2010, 00:18
Цитата Сообщение от Lavroff Посмотреть сообщение
Дайте еще какую-нить задачку дабы было чем сейчас заняться) Плиз
Матрицу написать уже пробовали?
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
17.07.2010, 00:18  [ТС]
neske, Мм... Интересно. Только ноль мыслей как сие реализовать. Да и крестики-нолики в консоли... даже не знаю

Добавлено через 19 секунд
easybudda, Фильм или игру?
Какую матрицу?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.07.2010, 00:18
Помогаю со студенческими работами здесь

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

Проверить на правильность и закомментировать весь код для лучшего понимания
Всем здравствуйте. Условие задачи - Заданная матрица целых чисел размером (N, N). Найти среднее арифметическое элементов в окрашенной...

Нужны задачи для тренировки
Киньте задачки на классы......а то в самоучителе, по которому я учу Сишку....приведены задачки, касающиеся только математики.....сами...

Нужны задачи для тренировки
Здравствуйте киньте пожалуйста задания по с++ для человека начинающего изучать Turbo с++

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Закрытая тема Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru