Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.88/2010: Рейтинг темы: голосов - 2010, средняя оценка - 4.88
В астрале
Эксперт С++
8022 / 4779 / 654
Регистрация: 24.06.2010
Сообщений: 10,547
1

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

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

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

Список задач, решение которых присутствует в данной теме:
43
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.07.2010, 05:53
Ответы с готовыми решениями:

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

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

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

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

1272
В астрале
Эксперт С++
8022 / 4779 / 654
Регистрация: 24.06.2010
Сообщений: 10,547
03.08.2010, 11:13  [ТС] 461
neske, Кстати. Там так и должно быть std::copy? Ибо у меня не компилится... Правда может быть потому что я контейнер так загнать пытаюсь.
0
1545 / 911 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
03.08.2010, 11:14 462
Так и должно быть, только:

C++
1
2
#include <algorithm>
#include <iterator>
добавить нужно)
0
В астрале
Эксперт С++
8022 / 4779 / 654
Регистрация: 24.06.2010
Сообщений: 10,547
03.08.2010, 11:17  [ТС] 463
neske, Это я знаю... Я не о том...
Вот за это:

std::copy (Arr[i], Arr[i]+Size, std::ostream_iterator <int> (std::copy, " "));

Меня шлет компиль далеко и надолго. Если
std::copy (Arr[i], Arr[i]+Size, std::ostream_iterator <int> (std::cout, " ")); то все ок.
0
1545 / 911 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
03.08.2010, 11:18 464
Для наглядности, компилируется без проблем:

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
#include <iostream>
#include <ctime>
#include <algorithm>
#include <iterator>
 
int rnd ()
{
    return rand()%50;
}
 
int main (void)
{
    const size_t ROW=4;
    const size_t COLUMN=4;
    int MAS[ROW][COLUMN];
    // fill and output
    
    srand (time (NULL));
    std::cout << "Start matrix:\n";
    for (size_t i=0; i<ROW; i++) {
        std::generate_n (MAS[i], COLUMN, rnd);
        std::copy (MAS[i], MAS[i]+COLUMN, std::ostream_iterator <int> (std::cout, " "));
        std::cout << std::endl; }
    std::cout << std::endl;
 
    return 0;
}
0
В астрале
Эксперт С++
8022 / 4779 / 654
Регистрация: 24.06.2010
Сообщений: 10,547
03.08.2010, 11:19  [ТС] 465
neske, cout.. Таки cout. Посмотри свой код выше. Сравни что там написано.
2
1545 / 911 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
03.08.2010, 11:19 466
Мои извинения, очепятка)
0
В астрале
Эксперт С++
8022 / 4779 / 654
Регистрация: 24.06.2010
Сообщений: 10,547
03.08.2010, 11:22  [ТС] 467
C++
1
std::copy (Arr[i], Arr[i]+Size, std::ostream_iterator <int> (std::cout<<std::setw(3), " "));
Ну. Каждые Size чисел он отделяет. По идее красиво) Но не знаю то ли что нужно)
1
1545 / 911 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
03.08.2010, 11:32 468
Немного не то, ну да ладно, спасибо)
0
В астрале
Эксперт С++
8022 / 4779 / 654
Регистрация: 24.06.2010
Сообщений: 10,547
03.08.2010, 11:33  [ТС] 469
neske, Так красивше будет наерн
C++
1
std::copy (Arr[i], Arr[i]+Size, std::ostream_iterator <int> (std::cout<<std::endl, " "));
2
Эксперт С++
5015 / 2594 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
03.08.2010, 16:51 470
Цитата Сообщение от neske Посмотреть сообщение
Немного не то, ну да ладно
может быть вот так будет правильнее?
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
#include <algorithm>
#include <iostream>
#include <iterator>
#include <iomanip>
#include <cstdlib>
 
int main()
{
    const int nrow = 5;
    const int ncol = 5;
 
    int matrix[nrow][ncol];
    
    for(int i = 0; i < nrow; ++i)
        std::generate(matrix[i], matrix[i] + ncol, []{ return rand() % 99; });
 
    for(int i = 0; i < nrow; ++i)
    {
        int j = 0;
        std::for_each(matrix[i], matrix[i] + ncol, [&j](int n){ std::cout << std::setw(10) << n; ++j; });
        std::cout << std::endl;
    }
 
    system("PAUSE");
}
Код
        41        53        97        67        62
        82        93        54        34        11
        62        29        16        96        61
        95        25        62        75        90
        18        51        41        54        94
Добавлено через 14 минут
j то я сюда зря воткнул оказывается
надо просто вот так:
C++
1
2
3
4
5
    for(int i = 0; i < nrow; ++i)
    {
        std::for_each(matrix[i], matrix[i] + ncol, [](int n){ std::cout << std::setw(10) << n; });
        std::cout << std::endl;
    }
3
1545 / 911 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
03.08.2010, 18:37 471
false, вот это да)
Всем спасибо.
0
Evg
Эксперт CАвтор FAQ
21115 / 8131 / 628
Регистрация: 30.03.2009
Сообщений: 22,447
Записей в блоге: 30
03.08.2010, 22:17 472
Задача. Написать на Си программу, при запуске которой печатался бы исходник этой программы. Работать с файлами нельзя: т.е. решение в виде того, чтобы открыть файл исходника и распечатать на экран, не катит
0
Эксперт С++
5811 / 3462 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
03.08.2010, 22:20 473
Evg, было уже.

Не по теме:

Правда решения вроде бы и не нашли...

0
Эксперт С++
5015 / 2594 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
03.08.2010, 22:23 474
Цитата Сообщение от Evg Посмотреть сообщение
Задача. Написать на Си программу, при запуске которой печатался бы исходник этой программы. Работать с файлами нельзя: т.е. решение в виде того, чтобы открыть файл исходника и распечатать на экран, не катит
читал в книге
C
1
2
#include <stdio.h>
int main(char*a){printf(a,34,a="main(a){printf(a,34,a=%c%s%c,34);}",34);}
1
Evg
Эксперт CАвтор FAQ
21115 / 8131 / 628
Регистрация: 30.03.2009
Сообщений: 22,447
Записей в блоге: 30
03.08.2010, 22:26 475
Nameless One, где было - далеко не все читали. Решение там точно есть (потому что я его помещал)

fasked, выбрось эту книгу
0
Эксперт С++
5811 / 3462 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
03.08.2010, 22:27 476
fasked, куайн должен печатать весь исходник, а у тебя только начиная с main: http://codepad.org/8RxGgbJ2
0
Evg
Эксперт CАвтор FAQ
21115 / 8131 / 628
Регистрация: 30.03.2009
Сообщений: 22,447
Записей в блоге: 30
03.08.2010, 22:34 477
Цитата Сообщение от Nameless One Посмотреть сообщение
Если честно, я не понимаю, почему программа хоть что-то печатает. Значение a должно равняться еднице (ибо на этом месте передаётся argc). Почему в кору не выпадает - непонятно

Добавлено через 3 минуты
Единственное объяснение - на intel'е передача параметров делается сзади, а потому a="..." исполнится раньше. С точки зрения стандарта это undefined, а потому книга стОит того, чтобы её выбросить (если там не оговорено, что сие только на intel'е будет работать)
0
Эксперт С++
5015 / 2594 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
03.08.2010, 22:35 478
Цитата Сообщение от Evg Посмотреть сообщение
выбрось эту книгу
вообще книга хорошая, а этот код был приложен в ссылочке к объяснению слову "хакер"
соответственно ни о каком применении подобного кода и речи не идет
Цитата Сообщение от Evg Посмотреть сообщение
Если честно, я не понимаю, почему программа хоть что-то печатает. Значение a должно равняться еднице (ибо на этом месте передаётся argc). Почему в кору не выпадает - непонятно
да я и сам-то не понимаю, но пример забавный.
0
Evg
Эксперт CАвтор FAQ
21115 / 8131 / 628
Регистрация: 30.03.2009
Сообщений: 22,447
Записей в блоге: 30
03.08.2010, 22:37 479
Пример - хороший тест на задание "приведите пример непереносимого кода". К хакерству отношения никакого не имеет, просто это закладка на знание внутренних особенностей компилятора. В итоге задача остаётся в силе
0
Эксперт С++
5811 / 3462 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
03.08.2010, 22:37 480
Вот это уже больше похоже на правду
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.08.2010, 22:37

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
480
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.