С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 15.07.2022
Сообщений: 6

Как проверять программы и исправлять ошибки в коде?

17.07.2022, 20:28. Показов 1148. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Экспозиция.
Недавно начал изучение своего первого языка программирования c++. Прохожу курс с автоматической проверкой.
Часто сталкиваюсь с одной и той же проблемой. Дело в том, что часто код не проходит ни одного теста, хотя когда я его проверяю его сам с помощью заранее заданных нескрытых проверок, а также моих тестов, в которых код испытываю на пограничных значениях он работает верно. Часто бьюсь над исправлением по десяткам минут и даже по часу-два, но редко что получается исправить и приходится искать ответ в интернете, где я нахожу тоже самое, только написанное чуть иначе и вот оно уже работает замечательно и проходит все тесты.

Сам вопрос.
Подскажите пожалуйста, есть ли универсальные способы создания тесты для программ, как искать ошибки, не мешающие запуску программы и можно ли как-то построчно проверять программу не добавляя лишних cout, если вам будет удобно, то можете объяснить способы и мои ошибки на примере задачи приведённой ниже. Кстати, я знаю что ответ на конкретно эту задачу есть на форуме, но я хочу научиться исправлять свои ошибки, а не искать ответы в интернете.

Задача:
Золото
Мудрец ходит по комнате размером n×m клеток. В каждой клетке комнаты лежит заданное количество золота. Проходя по клетке, мудрец забирает всё золото с неё. Зная план комнаты и маршрут мудреца, посчитайте, сколько золота он собрал. В задаче не гарантируется, что мудрец не проходил по одной и той же клетке более одного раза.

Входные данные

Во входных данных описан план комнаты: сначала количество строк n, затем — количество столбцов m (1⩽n⩽20, 1⩽m⩽20). Затем записано n строк по m чисел в каждой — количество килограммов золота, которое лежит в данной клетке (число от 0 до 50). Далее записано число x — сколько клеток обошёл мудрец. Далее записаны координаты этих клеток (координаты клетки — это два числа: первое определяет номер строки, второе — номер столбца), верхняя левая клетка на плане имеет координаты (1,1), правая нижняя — (n,m).

Выходные данные

Выведите количество килограммов золота, которое собрал мудрец.

Примеры
Ввод
3 3
1 2 3
4 5 6
7 8 9
5
1 1
1 2
1 1
1 2
1 1
Вывод
3

Вот код который написал я и который не проходит ни одной проверки на сайте.
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>
#include <vector>
using namespace std;
int main() {
   int n, m;
   cin >> n >> m;
   vector<vector<int>> t(n,vector<int> (m));
   for(int i = 0;i<n;++i){
      for(int j = 0; j<m; ++j){
        cin >> t[i][j];
     }
   }
   int x, money;
   cin >> x;
   for(int q = 0; q < x; ++q) {
      int i,j;
      cin >> i >> j;
      i -= 1;
      j -= 1;
      money = t[i][j] + money;
      t[i][j] = t[i][j] - t[i][j];
   }
   cout << money;
   return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.07.2022, 20:28
Ответы с готовыми решениями:

Как исправлять ошибки логической целостности ?
При проверке логической целостности базы вывелись сообщения такого вида: &quot;...

Есть код, непрекращающиеся ошибки, как исправлять понятия не имею
%первая ошибка при запуске не определена функция или переменная ' R' %ребята, кто соображает, запустите у себя посмотрите что не так....

Чем исправлять ошибки в ХР SP2?
Чем исправлять ошибки в ХР SP2?

6
Злостный нарушитель
 Аватар для Verevkin
10249 / 5676 / 1262
Регистрация: 12.03.2015
Сообщений: 26,309
17.07.2022, 20:50
Цитата Сообщение от Maionez Посмотреть сообщение
Подскажите пожалуйста, есть ли универсальные способы создания тесты для программ
Их не существует.
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
17.07.2022, 21:18
Цитата Сообщение от Verevkin Посмотреть сообщение
есть ли универсальные способы создания тесты для программ
Цитата Сообщение от Verevkin Посмотреть сообщение
Их не существует.
Их активно разрабатывают. )
Есть целые теории тестирования ПО. Довольно обширная и развивающаяся тема. Легко гуглится.
Правда, должен заметить, в обывательском плане это вам вряд ли поможет -- тестирование ПО довольно трудоёмко и времязатратно.
Вы потратите кууучу времени на написание кейсов, проведение тестирования и так далее.
0
 Аватар для Аноним92
75 / 49 / 30
Регистрация: 14.10.2019
Сообщений: 147
18.07.2022, 07:07
Цитата Сообщение от Maionez Посмотреть сообщение
Вот код который написал я и который не проходит ни одной проверки на сайте.
В этом коде используется неинициализированная переменная.
Цитата Сообщение от Maionez Посмотреть сообщение
int x, money;
Цитата Сообщение от Maionez Посмотреть сообщение
money = t[i][j] + money;

Может, поэтому ни одну проверку не проходит.
1
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
18.07.2022, 07:14
Цитата Сообщение от Maionez Посмотреть сообщение
t[i][j] = t[i][j] - t[i][j];
Странный способ обнуления
C++
1
t[i][j]=0;
Цитата Сообщение от Maionez Посмотреть сообщение
vector<vector<int>> t(n,vector<int> (m));
А Вы уверены, что разрешено использовать STL контейнеры?
C++
1
2
3
4
5
6
7
int** t=new int*[n];
for(int i=0;i<n;i++)
  t[i]=new int[m];
....
for(int i=0;i<n;i++)
   delete[] t[i];
delete[] t;
1
0 / 0 / 0
Регистрация: 15.07.2022
Сообщений: 6
18.07.2022, 14:41  [ТС]
Да, можно
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
18.07.2022, 15:26
Цитата Сообщение от Maionez Посмотреть сообщение
Недавно начал изучение своего первого языка программирования c++.
Выкручивайте на максимум предупреждения вашего компилятора.
Как минимум о неинициализированных переменных он вам точно сообщит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.07.2022, 15:26
Помогаю со студенческими работами здесь

Как в Паскале проверять текст на ошибки?
После набора текста выходит масса ошибок и чтоб их увидеть, приходится сидеть часами... Иногда терпения не хватает. Подскажите пожалуйста...

Почему битрикс даже не старается исправлять ошибки в системе
Вот интересно, почему битрикс даже не старается исправлять ошибки в системе. Notice и Strict Standards по своей сути те же ошибки. И вот...

Написать программу которая будет исправлять ошибки по русскому языку (орфография)
Написать программу которая будет исправлять ошибки на C# к примеру я написал слова с ошибкой а оно мне исправила и так далее во всем...

Ошибки в коде программы
Такая проблема,срочно нужно в скором времени сдавать программу,вроде доделал основное что нужно было,но вылезает куча ошибок,очень прошу...

Ошибки в коде программы
Пожалуйста, помогите! У меня на носу защита дипломной, а программа не пашет. Очень нужно исправить ошибки в коде, чтобы программа...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru