Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 2744, средняя оценка - 4.89
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7954 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
15.07.2010, 05:53     Задачи для тренировки и лучшего понимания #1
Ребят. Кто-нибудь может дать задачу для тренировки? Приблизительно по всему курсу С++. Буду благодарен за сложную задачу, но которую способен сделать новичок-любитель. Затраты сил-времени не важно. Главное, чтобы это было интересно и не слишком рутинно. + Если найдется человек который даст задачу просьба помогать с кодом, который я буду себя скидывать. Не переписывать за меня, но указывать на ошибки и желательно объяснять. Заранее спасибо.

Список задач, решение которых присутствует в данной теме:
Лучшие ответы (59)
Сообщение: #857841 Сообщение: #857861 Сообщение: #858352 Сообщение: #859371 Сообщение: #860160 Сообщение: #860255 Сообщение: #860259 Сообщение: #860317 Сообщение: #860368 Сообщение: #860466 Сообщение: #860508 Сообщение: #860720 Сообщение: #861091 Сообщение: #862174 Сообщение: #862617 Сообщение: #867259 Сообщение: #870298 Сообщение: #872053 Сообщение: #876456 Сообщение: #880114 Сообщение: #882889 Сообщение: #884418 Сообщение: #886414 Сообщение: #886989 Сообщение: #887733 Сообщение: #888464 Сообщение: #888487 Сообщение: #888941 Сообщение: #888947 Сообщение: #889040 Сообщение: #889450 Сообщение: #889587 Сообщение: #891772 Сообщение: #891790 Сообщение: #891862 Сообщение: #897758 Сообщение: #897782 Сообщение: #906325 Сообщение: #907991 Сообщение: #943672 Сообщение: #943700 Сообщение: #967735 Сообщение: #1053777 Сообщение: #1054209 Сообщение: #1083853 Сообщение: #1083928 Сообщение: #1131058 Сообщение: #1131359 Сообщение: #1273743 Сообщение: #1275465 Сообщение: #1276743 Сообщение: #1279215 Сообщение: #1282583 Сообщение: #1309088 Сообщение: #1315633 Сообщение: #1366395 Сообщение: #1550164 Сообщение: #1603678 Сообщение: #1604364
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2010, 05:53     Задачи для тренировки и лучшего понимания
Посмотрите здесь:

C++ Какой компилятор выбрать для лучшего изучения С++ по книге Берна Страуструпа?п
C++ Элементарные программы, для лучшего понимания языка...
Нужны задачи для тренировки C++
C++ Киньте задачки для тренировки
C++ Нужны простые задачи для тренировки
Нужны задачи для тренировки C++
На соревнованиях по фигурному катанию оценки заносятся в компьютер. Составить программу для вывода на экран лучшего результата после каждого выступлен C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MikeSoft
Эксперт C++
 Аватар для MikeSoft
3787 / 1769 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
16.07.2010, 19:59     Задачи для тренировки и лучшего понимания #41
neske, близко, но нет.

Добавлено через 2 минуты
CyBOSSeR, почему же ни разу? Значение инкрементируется, происходит сравнение и в некотором случае результат может являться удовлетворительным, что вызовет вход в цикл.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7954 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
16.07.2010, 19:59  [ТС]     Задачи для тренировки и лучшего понимания #42
8. Ибо префексный инкремент. Сначала x=1. При первом проходе цикла =2. И далее. При 10 выходит из цикла не проходя его
MikeSoft
Эксперт C++
 Аватар для MikeSoft
3787 / 1769 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
16.07.2010, 20:00     Задачи для тренировки и лучшего понимания #43
Цитата Сообщение от Lavroff Посмотреть сообщение
8. Ибо начинаем с двух.
Именно так.
nikkka
Мат в 32 хода
 Аватар для nikkka
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
16.07.2010, 20:00     Задачи для тренировки и лучшего понимания #44
MikeSoft,
x=11?
MikeSoft
Эксперт C++
 Аватар для MikeSoft
3787 / 1769 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
16.07.2010, 20:01     Задачи для тренировки и лучшего понимания #45
nikkka, нет.
x = 10
цикл выполнится 8 раз.
nikkka
Мат в 32 хода
 Аватар для nikkka
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
16.07.2010, 20:02     Задачи для тренировки и лучшего понимания #46
блин.
определённо надо будет пересмотреть тему в книжке : S

Не по теме:

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

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

Не по теме:

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

ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7954 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
16.07.2010, 20:19  [ТС]     Задачи для тренировки и лучшего понимания #48
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;
}
nikkka
Мат в 32 хода
 Аватар для nikkka
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
16.07.2010, 20:20     Задачи для тренировки и лучшего понимания #49
Цитата Сообщение от MikeSoft Посмотреть сообщение
nikkka, на вскидку простеньких задач - не помню! Помню одну олимпиадную задачу на поиск смайликов в строке. Но описывать долго ... Если есть желание - могу всё же написать.
Не по теме:
Делал недавно уборку, разгребал документы - попадался под руку сборник задач, которые были на Всеукраинском Чемпионате Компьютерных Технологий ... завтра посмотрю и, если нужно, отсканирую.
было бы очень любезно!...
: )
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7954 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
16.07.2010, 20:34  [ТС]     Задачи для тренировки и лучшего понимания #50
То же задание с числами через 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;
}
MikeSoft
Эксперт C++
 Аватар для MikeSoft
3787 / 1769 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
16.07.2010, 20:47     Задачи для тренировки и лучшего понимания #51
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Имя входного файла: d.in
Имя выходного файла: d.out

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

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

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

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

Примеры:
Код
          d.in          |        d.out
    -------------------------------------
       :) ;-----[[[[[   |          2
       :-) ];-----;     |          1
       -) (---:---      |          0
       hello :-)        |          1
nikkka
Мат в 32 хода
 Аватар для nikkka
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
16.07.2010, 20:54     Задачи для тренировки и лучшего понимания #52
MikeSoft, сегодня времени нет, а завтра постораюсь выложить сУды решение.

Добавлено через 3 минуты
MikeSoft, помню подобную задачу.
дана последовательноть скобок:
C++
1
(((())()()(((()())))((()())))   // на пример такая
надо проверить является ли она "правильной".
я не помню точную формулировку, но "правильная" имеется в виду математически-правильная.
трудно объяснить.
но по моему понятно...
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7954 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
16.07.2010, 20:54  [ТС]     Задачи для тренировки и лучшего понимания #53
MikeSoft, На си или на С++?
HIMen
 Аватар для HIMen
4109 / 1358 / 39
Регистрация: 12.04.2009
Сообщений: 2,346
16.07.2010, 20:54     Задачи для тренировки и лучшего понимания #54
Lavroff, все еще проще, чем ты думаешь. Можно сделать без stl, без функторов, в одну строчку
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7954 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
16.07.2010, 20:55  [ТС]     Задачи для тренировки и лучшего понимания #55
HIMen, В одну? Никак. Ввод данных таки нужен.) Ща подумаю как это сделать настолько коротко
MikeSoft
Эксперт C++
 Аватар для MikeSoft
3787 / 1769 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
16.07.2010, 20:56     Задачи для тренировки и лучшего понимания #56
Lavroff, всё-равно, но как можно проще и быстрее.
nikkka
Мат в 32 хода
 Аватар для nikkka
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
16.07.2010, 20:57     Задачи для тренировки и лучшего понимания #57
Lavroff, если напишеш, выкладывай "скрытый" текст, плиз.
а то глянул, и всё
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7954 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
16.07.2010, 21:07  [ТС]     Задачи для тренировки и лучшего понимания #58
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;
}


Не могли бы вы показать как в одну строку?
HIMen
 Аватар для HIMen
4109 / 1358 / 39
Регистрация: 12.04.2009
Сообщений: 2,346
16.07.2010, 21:17     Задачи для тренировки и лучшего понимания #59
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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;
Исключающие или для всех элементов массива
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2010, 21:20     Задачи для тренировки и лучшего понимания
Еще ссылки по теме:

C++ Какая база требуется для понимания C++?
C++ Нужен пример рекурсивной функции для понимания ее назначения и практической пользы
C++ Builder Прошу примеров для понимания INDY
Книги для тренировки/развития котелка и просто убийства времени C++
Дайте задания для тренировки C++

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

Или воспользуйтесь поиском по форуму:
nikkka
Мат в 32 хода
 Аватар для nikkka
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
16.07.2010, 21:20     Задачи для тренировки и лучшего понимания #60
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, а.. понятно.
а я думал про смаилики. не понял код
Yandex
Объявления
16.07.2010, 21:20     Задачи для тренировки и лучшего понимания
Закрытая тема Создать тему
Опции темы

Текущее время: 06:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru