Вопрос № 164970: Доброго времени суток Уважаемые эксперты языка программирования С++. Помогите пожалуйста с решением задач, в долгу не останусь, очень нужно решить эти задачи до 15 апреля 2009 г. до 10. 00 по Москве. По истечении этого времени просьбу проигнорировать...
Вопрос № 165036: Не могли бы вы помочь сделать лабораторную работу? Задание: Разработать класс Vector – геометрический вектор произвольной размерности (размерность задается
в конструкторе вектора). Реализовать метод доступа к элементам вектора. Реализовать опер...Вопрос № 165042: Здравствуйте! Есть такой вопрос, мне нужно заполнить массив B значениями элементов массива A, исключив из него повторяющиеся элементы. Освободившиеся ячейки заполнить максимальным элементом массива A. Можете мне написать код программы с объяснением. ...Вопрос № 165044: Уваж
аемые эксперты, помогите найти решение: написать программу с помощью итерационного метода для последовательности <b>a(1)=1; a(n)=n-a(a(n-1)) n>1</b> с помощью рекурсии все получается int posled(int n) { int a; if...Вопрос № 165059: И снова здравствуйте! <b>Уважаемые эксперты!</b> Помогите решить задачи такого плана: 1. Дан массив из десяти целых чисел (заполненный разными значениями по Вашему усмотрению). Если в нем больше положительных
чем отрицательных значений, то о...
Вопрос № 164.970
Доброго времени суток Уважаемые эксперты языка программирования С++. Помогите пожалуйста с решением задач, в долгу не останусь, очень нужно решить эти задачи до 15 апреля 2009 г. до 10. 00 по Москве. По истечении этого времени просьбу проигнорировать. Сами задачи: в одномерном массиве, состоящем из n целых элементов, вычислить: 1) номер максимального элемента массива; 2) произведение элементов массива, расположенных между первым и вторым нулевыми элементами. Вторая задача: преобразовать массив таким образом,
чтобы в первой его половине располагались элементы, стоящие в нечетных позициях, а во второй половине - элементы, стоящие в четных позициях. Исходный код пожалуйста с коментариями. Код ко второй задачи в приложении. Заранее блогадарен всем, кто ответит.
Отвечает: Терсков Сергей
Здравствуйте, Иванов Анатолий Николаевич! Решение ваших задач смотрите в коде. Ход решения можно понять из комментариев. Компилятор MS VS 2005.
//Индекс максимального элемента в массиве int max_index = 0; //Проход по массиву for(i=1; i<size; i++) //Если элемент
больше текущего максимального if(A[i] > A[max_index]) //Обновляем индекс маскимального элемента max_index = i;
//Индексы первого и второго ну
левого элемента int n1 = -1; int n2 = -1;
//Нахождение первого нулевого элемента for(i=0; i<size; i++) {
if(A[i] == 0) { n1 = i; break; } }
//Нахождение следующего за первым нулевого элемента for(i=n1+1; i<size; i++) {
if(A[i] == 0) { n2 = i; break; } }
//Если нулевой элемент один или их нет вообще if(n1 == -1 || n2 == -1) { cout << "Массив не содержит двух нулевых элементов" <<
endl; } //Если между элементами нет значений (соседние элементы) else if(n2 == n1+1) { cout << "Между нулевыми элементами нет элементов" << endl; } else {
//Переменная для произведения int prod = 1;
//Умножение элементов между нулевыми for(i=n1+1; i<n2; i++) prod *= A[i];
//Вывод произведения cout << "Произведение элементов между нулевыми элементами: &quo
t; << prod << endl; }
//Задача №3 cout << endl << "Задача №3." << endl;
//Массив для формирования перестановки int B[size];
//Запись в массив B нечетных элементов for(i=1, j=0; i<size; i+=2, j++) B[j] = A[i];
//Запись в массив B четных элементов for(i=0; i<size; i+=2, j++) B[j] = A[i];
Ответ отправил: Терсков Сергей (статус: Специалист)
Ответ отправлен: 15.04.2009, 03:26
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 247531 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Отлично! Пять плюсов+++++! Разобрался, все работает, у меня просто глючил компилятор.
Вопрос № 165.036
Не могли бы вы помочь сделать лабораторную работу? Задание: Разработать класс Vector – геометрический вектор произвольной размерности (размерность задается в конструкторе вектора). Реализовать метод доступа к элементам вектора. Реализовать операции сложения, вычитания и скалярного произведения векторов, а также нахождение модуля вектора. в среде visual studio 2005 (c++).
Программа для тестирования базовых функций класса A=(1,2,3) B=(3,0,-3) A+B=(4,2,0) A-B=(-2,2,6) A*B=-6 |A|=3.74166
Ответ отправил: Micren (статус: Практикант)
Ответ отправлен: 17.04.2009, 17:05
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 247736 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 165.042
Здравствуйте! Есть такой вопрос, мне нужно заполнить массив B значениями элементов массива A, исключив из него повторяющиеся элементы. Освободившиеся ячейки заполнить максимальным элементом массива A. Можете мне написать код программы с объяснением. Заранее благодарен.
Приложение:
Отправлен: 15.04.2009, 15:10
Вопрос задал: Madvik (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Ilkras
Здравствуйте, Madvik! предположим у вас есть массив int arr1[10] длиной десять элементов. заполним массив int arr2[10]. будем по-одному переписывать элементы из первого массива во второй и перед записью проверять, что такого элемента еще нет, если же такой элемент найдется, то будем пропускать его. после того как мы закончим проход по первому массиву дополним второй массив. int i,i2,j, max; for(i=0, i2=0, max = 0; i<10; i++) {
if(arr1[i] > max) max = arr1[i]; //ищем максимальную величину for(j=0;j<i2; j++) { if(arr2[j] == arr1[i]) break; //выйти из вложенного цикла и вернуться во внешний } if(i2 == j) //если мы прошли вложенный цикл до конца, то они равны arr2[i2++] = arr1[i]; //записать элемент во второй массив и инкрементироват
ь его индекс; обратите внимание, что индекс i2 растет не на каждой итеракции цикла, а только на записях во второй массив } //теперь у нас второй массив заполнен неповторяющимися элементами первого. дополним его максимальными значениями for(i=i2; i<10; i++) arr2[i] = max;
Ответ отправил: Ilkras (статус: Студент)
Ответ отправлен: 15.04.2009, 16:14
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 247583 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 165.044
Уважаемые эксперты, помогите найти решение: написать программу с помощью итерационного метода для последовательности a(1)=1; a(n)=n-a(a(n-1)) n>1
с помощью рекурсии все получается int posled(int n) { int a; if (n>1) a=n-posled(posled(n-1)); else a=1; return a; }
и еще один вопрос а как показывать глубину рекурсии или кол-во итераций? Большое спасибо
Может где синтаксис подкачал... как назло нет под рукой ни одного компилятора. Но смысл я думаю ясен...
Ответ отправил: Piter (статус: 2-й класс)
Ответ отправлен: 16.04.2009, 16:03
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 247644 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 165.059
И снова здравствуйте! Уважаемые эксперты! Помогите решить задачи такого плана: 1. Дан массив из десяти целых чисел (заполненный разными значениями по Вашему усмотрению). Если в нем больше положительных чем отрицательных значений, то отсортировать его по возрастанию значений элементов, иначе - отсортировать по убыванию. Например, если массив содержит [0,-11,4,3,14,8,6,-7,-4,9], то он должен преобразоваться в [-11,-7,-4,0,3,4,6,8,9,14].
2.Дан массив из десяти целых чисел (заполненный разными
значениями по Вашему усмотрению). Сформировать второй массив (динамический), в который отобрать из первого все числа, делящиеся на 3. Например, если первый массив содержит [8,2,1,3,12,7,6,5,4,9], то создаваемый массив должен содержать [3,12,6,9].
Отвечает: Ilkras
Здравствуйте, Озерова Елена Сергеевна! по первому вопросу так: сначала ищем сколько положительных и сколько отрицательных величин в массиве. потом вызываем библиотечную функцию быстрой сортировки. Надеюсь все понятно, если нет, то пишите в минифоруме.
Приложение:
Ответ отправил: Ilkras (статус: Студент)
Ответ отправлен: 15.04.2009, 19:50
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 247594 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Отлично! Абсолютно то,что хотелось видеть! Скомпилировав проект,получилось всё нормально. Я очень рада ответом Огромное вам СПАСИБО!!!
Отвечает: Гречкин Андрей Анатольевич
Здравствуйте, Озерова Елена Сергеевна!
Решение 2.
Перенесена программа в приложение. Использование ВВС-кодов.
--------
∙ Отредактировал: Зенченко Константин Николаевич, Профессор
∙ Дата редактирования: 16.04.2009, 12:31 (время московское)
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.