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

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

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

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

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

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

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

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

1272
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
06.09.2010, 17:49
Студворк — интернет-сервис помощи студентам
В программе представляется как угодно, подается просто с клавиатуры например.
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
06.09.2010, 17:55
Цитата Сообщение от Хохол Посмотреть сообщение
В программе представляется как угодно, подается просто с клавиатуры например.
это не массив!
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
#include <stdio.h>
#include <stdlib.h>
 
typedef struct STACK
{
    struct STACK *next;
    int data;
   
} stack_t;
 
void push(stack_t **stack, int value)
{
    stack_t *node = NULL;
       
    if((node = (stack_t *)malloc(sizeof(stack_t))) == NULL) {
        perror("Can't allocated memory for stack node\n");
        return;
    }
    
    node->next = *stack == NULL ? NULL : *stack;
    node->data = value;
    *stack = node;
}
 
int pop(stack_t **stack)
{
    stack_t *top = *stack;
    int value = 0;
    
    if(*stack == NULL) {
        perror("Stack is empty\n");
        return 0;
    }
    
    value = top->data;
    *stack = top->next;
    
    free(top);
    
    return value;
}
 
int main()
{
    int i = 0;
    stack_t *stack = NULL;
    
    do {
        if(scanf("%d", &i) != 1)
            break;
        if(i != 0)    
            push(&stack, i);    
    }
    while(i != 0);
    
    while(stack != NULL)
        printf("%d -> ", pop(&stack));
    printf("\b\b\b  \n");
    
    return 0;
}
0
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
06.09.2010, 17:58
Цитата Сообщение от fasked Посмотреть сообщение
это не массив!
Да я верю
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
06.09.2010, 18:00
Можно записать последовательность в файл и, перемещая указатель в файле от конца к началу, получить последовательность, обратную данной
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
06.09.2010, 18: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
#include <iostream>
 
void inp_output(int n)
{
    int val;
    std::cout << "-> ";
    std::cin >> val;
    //std::cout << std::endl;
    if(n)
    {
        inp_output(--n);
    }
    std::cout << val
              << std::endl;
}
 
int main()
{
    std::cout << "N = ";
    int n;
    std::cin >> n;
    std::cout << std::endl;
    inp_output(--n);
    return 0;
}
3
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
14.09.2010, 16:19
Данная программа должна выводить массив на экран. Но она этого не делает. Почемууууу?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>
 
  #define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
  int array[] = {23,34,12,17,204,99,16};
 
  int main()
  {
      int d;
 
      for(d=-1;d <= (TOTAL_ELEMENTS-2);d++)
          printf("%d\n",array[d+1]);
 
      return 0;
  }
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
14.09.2010, 16:25
Я не понял, это непонятка или вопрос на засыпку, а потому ответ на всякий случай спрятал

Ответ
TOTAL_ELEMENTS у тебя определён через sizeof, который имеет беззнаковый тип. Далее при сравнении d и TOTAL_ELEMENTS оба аргумента должны быть приведены к "более широкому" типу. В данном случае более широким оказывается беззнаковый, а потому d в сравнении трактуется как беззнаковое (т.е. 0xffffffff)
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
14.09.2010, 16:26  [ТС]
#define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
О_о
0
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
14.09.2010, 16:27
Видимо так:
(sizeof(array) / sizeof(array[0])) - эта штука имеет тип unsigned int (или что-то типа того, главное, что беззнаковое).
d <= (TOTAL_ELEMENTS-2) - здесь d на первой итерации приводится к этому типу, получается что-то очень большое, и условие не выполняется.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
14.09.2010, 16:27
Цитата Сообщение от Lavroff Посмотреть сообщение
#define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
О_о
Тут всё правильно. Это стандартный способ
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
14.09.2010, 16:30
Evg,
вот ещё:
Что выведит программа? Вы уверенны? Почему?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
        double d=0.0;
        int i;
        for(i=0;i<10;i++)
            d+=0.1;
        if(d==1.0)
            cout<<"d is 1.0";
        else
            cout<<"d is NOT 1.0";
        getch();
        return 0;
}
0
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
14.09.2010, 16:35
.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
        double d=0.0;
        int i;
        for(i=0;i<10;i++)
            d+=0.1;
        cout.setf(ios::fixed);
        cout.precision(20);
        cout << d;
        getch();
}
0.99999999999999989000
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
14.09.2010, 16:35  [ТС]
...
cout<<"d is NOT 1.0";
Подозреваю что из-за погрешности. до 1.0 не дотянет.
0
Мат в 32 хода
 Аватар для nikkka
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
14.09.2010, 16:40
Что выведет код?
C
1
2
3
4
5
6
7
8
9
#include <stdio.h>
  int main()
  {
      int i = 6;
      if( ((++i < 7) && ( i++/6)) || (++i <= 9))
          ;
      printf("%d\n",i);
      return 0;
  }
Чур без комилятора!
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
14.09.2010, 16:45  [ТС]
nikkka,
ответ
8
0
 Аватар для Kastaneda
5232 / 3206 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
14.09.2010, 17:49
Цитата Сообщение от nikkka Посмотреть сообщение
Чур без комилятора!
Ну может быть
так
в строке
C
1
if( ((++i < 7) && ( i++/6)) || (++i <= 9))
условие (++i < 7) не выполняется, поэтому дальше проверяется то, что после "или", т.е. i инкреминируется 2 раза, т.е. ответ: 8.
могу ошибаться, компилировать лень)))
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
14.09.2010, 17:53
Kastaneda, условие с ИЛИ должно тоже провериться, поэтому инкремент будет два раза.
1
 Аватар для besstiaa
94 / 94 / 14
Регистрация: 04.06.2010
Сообщений: 223
15.09.2010, 23:24
Цитата Сообщение от nikkka Посмотреть сообщение
Evg,
вот ещё:
Что выведит программа? Вы уверенны? Почему?
А объясните. пожалуйста, откуда эта погрешность тут берется, что не получается 1 ?
0
48 / 48 / 10
Регистрация: 12.01.2010
Сообщений: 183
15.09.2010, 23:38
єта погрешность обусловлена хранением дробного числа в двоичном виде, чтобы погрешности не было нужно что бы за комой было число кратное 2 в степени минус ен
1
9 / 9 / 0
Регистрация: 15.07.2010
Сообщений: 255
18.09.2010, 22:45
Цитата Сообщение от Хохол Посмотреть сообщение
.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
        double d=0.0;
        int i;
        for(i=0;i<10;i++)
            d+=0.1;
        cout.setf(ios::fixed);
        cout.precision(20);
        cout << d;
        getch();
}
0.99999999999999989000
OS: Win7U, "пишет" 1.000(0)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.09.2010, 22:45

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
780
Закрытая тема Создать тему
Новые блоги и статьи
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru