|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.01.2012, 23:00 | #1 |
Пользователь
Регистрация: 03.10.2008
Сообщений: 77
|
Проблема с сортировкой массива
Есть задача Заданы три вектора A={a1, a2, a3,}, B={b1, b2, b3}, C={c1, c2, c3}.
Вычислить и вывести на печать длины этих векторов, предварительно расставив их в порядке возрастания. Вычисление длины вектора оформить в виде подпрограммы-функции. Исходные данные: A={-2.1; 3.4; 2.48; -1}; B={-0.8; 1.25; 3.1; -1.5; 0.25}; C={0.55; -1; 1.1; 2.05}. Вот код программы, в сортировке есть ошибка не пойму что не так. Код:
|
01.01.2012, 23:24 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Код:
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 01.01.2012 в 23:26. |
01.01.2012, 23:47 | #3 |
Пользователь
Регистрация: 03.10.2008
Сообщений: 77
|
Переправил, но всёравно где то ошибка
вот что получается: Код:
|
02.01.2012, 00:36 | #4 |
Пользователь
Регистрация: 03.10.2008
Сообщений: 77
|
Значения вычисленных длин векторов где то теряются. Если вывести их сразу после заполнения то нормально считать начинает, однако мне нужно вывести в порядке возрастания.
|
02.01.2012, 09:14 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
для начала исправьте ошибку в функции вычисления длины вектора
Код:
тогда уж так попробуйте: Код:
хотя бы я лучше 1) завёл отдельные переменные для хранения количества элементов в каждом векторе 2) изменил функцию вычисления длины - добавил в неё ещё один параметер - количество элементов в векторе и передавал туда переменную (которую завёл в п.1) ) 3) при вводе k проверял его на корректность (в вашем случае K должно быть больше/равно 1 и меньше/равно 5 ) |
02.01.2012, 13:34 | #6 |
Пользователь
Регистрация: 03.10.2008
Сообщений: 77
|
Спасибо, вроде работает, только вот я сомневаюсь что длины векторов правильно считает(проверял считал на калькуляторе небольшое расхождение), я думаю это из за глобальной переменной k.
Попробовал сделать как Вы советовали, завёл для каждого вектора отдельную переменную. Вот переделанный код, если я правильно вас понял: Код:
Введите количество координат вектора А: 4 Введите координаты вектора A: -2.1 3.4 2.48 -1 Введите количество координат вектора B: 5 Введите координаты вектора B: -0.8 1.25 3.1 -1.5 0.25 Введите количество координат вектора C: 4 Введите координаты вектора C: 0.55 -1 1.1 2.05 Длины векторов: 2.5913 3.7583 4.8084 если считать на калькуляторе получается: 2.5956, 3.8324, 4.786 Возможно что такая разница получилась из за разной погрешности в подсчёте паскаля и калькулятора? Последний раз редактировалось GaJIbI4; 02.01.2012 в 13:42. |
03.01.2012, 01:53 | #7 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
для вектора A: -2.1 3.4 2.48 -1 считаем: (-2.1)^2 + 3.4^2 + 2.48^2 + (-1)^2 = 4.41 + 11.56 + 6.1504 + 1 = 23.1204 берём корень, получаем 4.80836770640515803 как видим, полученный в паскаль результат 4.8084 весьма близок (ближе, чем тот, что выдал Вам ваш калькулятор...) |
|
04.01.2012, 02:05 | #8 |
Пользователь
Регистрация: 03.10.2008
Сообщений: 77
|
ясно, спасибо=)
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
задача с сортировкой массива, java | dungle | Помощь студентам | 0 | 17.12.2011 16:40 |
Проблема с сортировкой | matbe14 | Помощь студентам | 0 | 29.09.2011 11:16 |
Проблема с сортировкой | Anubys | Помощь студентам | 0 | 19.04.2011 17:10 |
Просьба помочь с сортировкой массива по убыванию | Ветас | Помощь студентам | 6 | 11.11.2009 16:30 |
сортировка массива Методом Хоара (быстрой сортировкой) | wild-weight | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 26.09.2009 16:46 |