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

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

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

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

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

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

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

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

1272
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
16.07.2010, 19:59
Студворк — интернет-сервис помощи студентам
neske, близко, но нет.

Добавлено через 2 минуты
CyBOSSeR, почему же ни разу? Значение инкрементируется, происходит сравнение и в некотором случае результат может являться удовлетворительным, что вызовет вход в цикл.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
16.07.2010, 19:59  [ТС]
8. Ибо префексный инкремент. Сначала x=1. При первом проходе цикла =2. И далее. При 10 выходит из цикла не проходя его
2
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
16.07.2010, 20:00
Цитата Сообщение от Lavroff Посмотреть сообщение
8. Ибо начинаем с двух.
Именно так.
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
16.07.2010, 20:00
MikeSoft,
x=11?
0
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
16.07.2010, 20:01
nikkka, нет.
x = 10
цикл выполнится 8 раз.
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
16.07.2010, 20:02
блин.
определённо надо будет пересмотреть тему в книжке : S

Не по теме:

Цитата Сообщение от Lavroff Посмотреть сообщение
MikeSoft, Продолжение будет?)
надеюсь : )

0
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
16.07.2010, 20:12
nikkka, на вскидку простеньких задач - не помню! Помню одну олимпиадную задачу на поиск смайликов в строке. Но описывать долго ... Если есть желание - могу всё же написать.

Не по теме:

Делал недавно уборку, разгребал документы - попадался под руку сборник задач, которые были на Всеукраинском Чемпионате Компьютерных Технологий ... завтра посмотрю и, если нужно, отсканирую.

0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
16.07.2010, 20:19  [ТС]
HIMen,
"Вот
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
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
 
    std::vector<int>Arr;
    int n=0;
    std::cout<<"Enter size of Array\n";
    std::cin>>n;
    int*Array;
    Array=new int [n];
    int*count;
    for(int i=0;i<n;i++)
    {
        std::cout<<"Enter [ "<< i+1 <<" ] elem of array\n";
        std::cin>>Array[i];
        Arr.push_back(Array[i]);
    }
    count=new int [n];
    for(int i=0;i<n;i++)
    {
        count[i]=0;
    }
    for(size_t i=0;i<Arr.size();i++)
    {
        for(size_t j=0;j<Arr.size();j++)
        {
            if (Arr[i]==Arr[j])
                count[i]++;
        }
    }
    for(size_t i=0;i<Arr.size();i++)
    {
        if(count[i]==1)
            std::cout<<Arr[i]<<'\n';
    }
    return 0;
}
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
16.07.2010, 20:20
Цитата Сообщение от MikeSoft Посмотреть сообщение
nikkka, на вскидку простеньких задач - не помню! Помню одну олимпиадную задачу на поиск смайликов в строке. Но описывать долго ... Если есть желание - могу всё же написать.
Не по теме:
Делал недавно уборку, разгребал документы - попадался под руку сборник задач, которые были на Всеукраинском Чемпионате Компьютерных Технологий ... завтра посмотрю и, если нужно, отсканирую.
было бы очень любезно!...
: )
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
16.07.2010, 20:34  [ТС]
То же задание с числами через STL.

Оно
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
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
 
    std::vector<int>Arr;
    int n=0, j=0;
    std::cout<<"Enter size of Array\n";
    std::cin>>n;
    for(int i=0;i<n;i++)
    {
        std::cout<<"Enter [ "<< i+1 <<" ] elem of array\n";
        std::cin>>j;
        Arr.push_back(j);
    }
    for(size_t i=0;i<Arr.size();i++)
    {
        n=std::count(Arr.begin(), Arr.end(), Arr[i]);
        if(n==1)
        {
            std::cout<<Arr[i]<<'\n';
        }
    }
    return 0;
}
1
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
16.07.2010, 20:47
Лучший ответ Сообщение было отмечено как решение

Решение

Имя входного файла: d.in
Имя выходного файла: d.out

Напишите программу, которая посчитает количество смайликов в заданном тексте. Смайликом будем считать последовательность символов, удовлетворяющую условиям:
  • Первым символом является либо ; (точка с запятой), либо : (двоеточие) ровно один раз
  • Далее может идти символ - (минус) сколько угодно раз (в том числе минус может идти ноль раз)
  • В конце обязательно идёт некоторое количество (не меньше одной) одинаковых скобок из следующего набора: (, ), [, ].
  • Внутри смайлика не может встречаться никаких других символов.

Например, нижеприведенные последовательности являются смайликами:
Code
1
2
3
4
:)
;-----------[[[[[[[[
:---]
:)
В то время, как следующие последовательности смайликами не являются (хотя некоторые из них содержат смайлики):
Code
1
2
3
4
5
:-)]
;--
-)
::-(
:-()
Нужно подсчитать количество смайликов, содержащихся в данном тексте.

Формат входного файла:
Вводится одна строка текста, которая может содержать маленькие латинские буквы, пробелы, символы, которые могут встречаться в смайликах. Длина строки не превышает 100 000 символов.

Формат выходного файла:
Выведите одно число - количество смайликов, которые встречаются в тексте.

Примеры:
Code
1
2
3
4
5
6
          d.in          |        d.out
    -------------------------------------
       :) ;-----[[[[[   |          2
       :-) ];-----;     |          1
       -) (---:---      |          0
       hello :-)        |          1
5
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
16.07.2010, 20:54
MikeSoft, сегодня времени нет, а завтра постораюсь выложить сУды решение.

Добавлено через 3 минуты
MikeSoft, помню подобную задачу.
дана последовательноть скобок:
C++
1
(((())()()(((()())))((()())))   // на пример такая
надо проверить является ли она "правильной".
я не помню точную формулировку, но "правильная" имеется в виду математически-правильная.
трудно объяснить.
но по моему понятно...
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
16.07.2010, 20:54  [ТС]
MikeSoft, На си или на С++?
0
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
16.07.2010, 20:54
Lavroff, все еще проще, чем ты думаешь. Можно сделать без stl, без функторов, в одну строчку
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
16.07.2010, 20:55  [ТС]
HIMen, В одну? Никак. Ввод данных таки нужен.) Ща подумаю как это сделать настолько коротко
0
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
16.07.2010, 20:56
Lavroff, всё-равно, но как можно проще и быстрее.
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
16.07.2010, 20:57
Lavroff, если напишеш, выкладывай "скрытый" текст, плиз.
а то глянул, и всё
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
16.07.2010, 21:07  [ТС]
HIMen, Самая короткая которая приходит в голову:

Но тут далеко не одна строчка...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
int main()
{
    int n=0;
    int A[]={1,2,3,2,1};
    for(int i=0;i<5;i++)
    {
        n=0;
        for(int j=0;j<5;j++)
        {
            if (A[i]==A[j])
                n++;
        }
        if(n==1)
            std::cout<<A[i]<<'\n';
    }
    return 0;
}


Не могли бы вы показать как в одну строку?
1
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
16.07.2010, 21:17
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
2
3
4
int A[]={1,2,3,2,1};
int result = 0;
for (int i = 0; i < 5; i++) result = result ^ A[i];
cout << result;
Исключающие или для всех элементов массива
5
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
16.07.2010, 21:20
Lavroff, я не понял, это какое задание?...
MikeSoft, вот ваше))) решил всё таки написать)))

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
#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;
    bool last=false;
    while(s[i]!='\0')
    {
        if (s[i]==':' || s[i]==';' || last==false)
        {
            last=true;
        };
        if (s[i]==')' || s[i]=='(' || s[i]==']' || s[i]=='[' || last==true)
        {
            last=false;
            count++;
        };
        i++;
    };
    cout<<count;
    getch();
    return 0;
}
Добавлено через 2 минуты
HIMen, а.. понятно.
а я думал про смаилики. не понял код
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.07.2010, 21:20
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
60
Закрытая тема Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru