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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
liana_23_
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 138
#1

найти ошибку - C++

14.10.2011, 11:58. Просмотров 774. Ответов 16
Метки нет (Все метки)

4)Баллов: 1
Ошибка этапа выполнения (семантическая ошибка)
Выберите по крайней мере один ответ:

пропуск ;

выход за границы массива

деление на 0
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2011, 11:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос найти ошибку (C++):

Найти ошибку в программе: в visual studio выдает ошибку - C++
#include <math.h> #include <conio.h> #include <iostream> using namespace std; int main() { double x, E, ypred, y, S; ...

Помогите найти ошибку: По двум сторонам и углу найти все остальное - C++
Доброго времени суток. В универе дали задание написать программу "По двум сторонам и углу между ними в треугольнике АВС найти два остальных...

Найти слова, повторяющиеся более одного раза, не могу найти ошибку - C++
#include <iostream> using namespace std; void obr1(char **s, char **mas, int n, int m) { int i; int k; char *tm; for(i...

Найти сумму первых n-четных натуральных чисел (найти ошибку) - C++
Нужно найти сумму первых n-четных натуральных чисел. Ошибка вылетает на 13 строке, должно быть я не правильно код составил, алгоритм не тот...

Найти сумму целых отрицательных чисел удовлетворяющих условию (найти и исправить ошибку в коде) - C++
#include<iostream> #include<math.h> using namespace std; int main() { int y = 0; for(int i = -21; i < -99; i+=3) ...

Массивы. Посчитать количество положительных, найти минимальное, удалить строку с минимальным (Не могу найти ошибку) - C++
// Заданы матрицы X(8;4),Y(5;5),Z(6;9). // Для каждой из матриц определить строку, в которой находится наименьшее // количество...

16
Dzhej-Dzhej
Заблокирован
14.10.2011, 12:13 #2
деление на 0
1
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
14.10.2011, 12:51 #3
выход за границы массива, тоже рантайм ошибка
0
Dzhej-Dzhej
Заблокирован
14.10.2011, 13:13 #4
C++
1
2
3
4
5
6
7
8
9
#include "iostream"
 
int main()
{
    int *t = new int[3];
    std::cout << t[4];
    system("pause");
    return 0;
}
а если так?
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
14.10.2011, 13:21 #5
Цитата Сообщение от Dzhej-Dzhej Посмотреть сообщение
а если так?
C++
1
2
3
4
5
6
7
8
9
#include "iostream"
 
int main()
{
    int *t = new int[3];
    t[3] = 0;
    system("pause >> NULL");
    return 0;
}
И ведь не угадаешь, что будет... UB такой UB
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
14.10.2011, 13:24 #6
Предполагаю, что выход за границы массива тоже будет семантической ошибкой
0
Dzhej-Dzhej
Заблокирован
14.10.2011, 13:38 #7
Здесь
0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
14.10.2011, 16:48 #8
Разве выход за границы массива не логическая ошибка? Ведь если изменить чужую память, то ничего не произойдет, однако логика программы пострадает.
Хотя, если выйти за границы массива и попытаться освободить этот массив операций delete, то будет ошибка времени выполнения.
0
Dzhej-Dzhej
Заблокирован
14.10.2011, 18:49 #9
Цитата Сообщение от Chelioss Посмотреть сообщение
Хотя, если выйти за границы массива и попытаться освободить этот массив операций delete, то будет ошибка времени выполнения.
почему?

я так понимаю "Ошибка этапа выполнения (семантическая ошибка)" ~ "Runtime error"
когда посреди работы экзешника выпадает сообщение что "программа выполнила недопустимую операцию..." и предлагают ее завершение.

когда логическая ошибка, то программа продолжает работать(разве что ОС заглючит) но не корректно.

Цитата Сообщение от Chelioss Посмотреть сообщение
Разве выход за границы массива не логическая ошибка?
логическая
если у строки убрать завершающий ноль, тоже интересно.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
14.10.2011, 18:51 #10
Цитата Сообщение от Dzhej-Dzhej Посмотреть сообщение
если у строки убрать завершающий ноль
Ещё можно указателю присвоить случайный адрес... Так, из интереса.
0
Dzhej-Dzhej
14.10.2011, 19:12
  #11

Не по теме:

Цитата Сообщение от Deviaphan Посмотреть сообщение
Ещё можно указателю присвоить случайный адрес... Так, из интереса.
и записать туда что-то.

Совсем не по теме:
я когда-то себе на сях++ покер делал, "техасский безлимит", и иногда раз в десять-двадцать раздач вылетала левая карта и залипала в левом верхнем углу(а у одного игрока(~8+я) пропадала), две недели с ума сходил, пока вычислил(выход за предел диапазона, однако).

0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
14.10.2011, 19:19 #12
Цитата Сообщение от Dzhej-Dzhej Посмотреть сообщение
почему?
Что почему? У меня всегда была ошибка времени выполнения, когда я пытался освободить массив, при этом перед этим я выходил за границу этого массива.

Добавлено через 53 секунды
Цитата Сообщение от Dzhej-Dzhej Посмотреть сообщение
почему?

я так понимаю "Ошибка этапа выполнения (семантическая ошибка)" ~ "Runtime error"
когда посреди работы экзешника выпадает сообщение что "программа выполнила недопустимую операцию..." и предлагают ее завершение.

когда логическая ошибка, то программа продолжает работать(разве что ОС заглючит) но не корректно.


логическая
если у строки убрать завершающий ноль, тоже интересно.
Я так и не понял. Вы со мной согласились или нет?
Если выйти за предел массива, то программа работает.
0
Dzhej-Dzhej
14.10.2011, 19:29
  #13

Не по теме:

Цитата Сообщение от Chelioss Посмотреть сообщение
Что почему? У меня всегда была ошибка времени выполнения, когда я пытался освободить массив, при этом перед этим я выходил за границу этого массива.
здесь я спорить не буду, так как уже давно не программирую на с++ и не таким уж продвинутым я был.

может кто захочет спорить о способах реализации и особенностях IDE но не я, я сказал что думал( возможно и ошибся), и в холивар втягиваться не буду.

0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
14.10.2011, 19:34 #14
Цитата Сообщение от Dzhej-Dzhej Посмотреть сообщение
У меня всегда была ошибка времени выполнения, когда я пытался освободить массив, при этом перед этим я выходил за границу этого массива.
Только в случае выхода за нулевой элемент (-1). Выход за последний элемент чаще приводит к более поздним и более сложнообнаружимым ошибком .
0
Dzhej-Dzhej
14.10.2011, 20:13     найти ошибку
  #15

Не по теме:

Цитата Сообщение от Deviaphan Посмотреть сообщение
Только в случае выхода за нулевой элемент (-1). Выход за последний элемент чаще приводит к более поздним и более сложнообнаружимым ошибком .
именно за последний
класс карта был; и массивы карт лежали рядом(перемешанная колода, что у игроков, что на столе)
и когда кликнуть на правую кромку самой правой карты получалось, например (78/*координаты клика*/*2)/78 - выдавало третий элемент в массиве из двух карт.
как-то так

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2011, 20:13
Привет! Вот еще темы с ответами:

Массивы. Найти среднее арифметическое элементов массива, расположенных до максимального элемента (найти ошибку в задании) - C++
Препод говорит что тут есть ошибка, но где не говорит, прошу если кото-нибуть заметит сообщите. Ввести одномерный статический массив...

В строках матрицы с отрицательным элементом на главной диагонали найти наибольший из всех элементов (найти ошибку в коде) - C++
Помогите найти ошибку! Дана действительная квадратная матрица порядка 10. В строках с отрицательным элементом на главной диагонали найти...

Задача из Златопольского: "Найти числа с известным количеством делителей". Не могу найти ошибку - C++
Здравствуйте. Задача следующая: Найти все целые числа из промежутка от a до b, у которых количество делителей равно k. К примеру я взял...

найти ошибку - C++
Помогите найти ошибку в коде,пожалуйста #include&lt;iostream.h&gt; char newline; class rast { char mesto; public: ...


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

Или воспользуйтесь поиском по форуму:
15
14.10.2011, 20:13
Ответ Создать тему
Опции темы

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