![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
SERG29 |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Продвинутые Сообщений: 8 Регистрация: 2.4.2008 Город: УКраина Учебное заведение: - Вы: студент ![]() |
Условие задачи: Из массива Х целых чисел перенести в массив Y элементы с Хn по Хm, где Хn > Xn-1 и Xm > A.
Я учусь заочно, поэтому всё изучаю самостоятельно, и постоянно возникают проблемы. Я начал составлять программу в Borland C++Builder 6 и ничего не получается, и путаница с библиотеками. #include <condefs.h> #include <iostream.h> #unclude <conio.h> int main () { int k; int Massive_X [11] = { -25, -20, -15, -10, -5, 0, 5, 10, 15, 20, 25}; cout << "Programma po perenosy chisel."; А дальше не получается. Заранее благодарю. |
![]() ![]() |
alxdr |
![]()
Сообщение
#2
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 104 Регистрация: 26.2.2007 Из: МО, Долгопрудный Город: иркутск Учебное заведение: МФТИ ![]() |
Ну а какая именно проблема возникла? Опишите поподробней.
|
SERG29 |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Продвинутые Сообщений: 8 Регистрация: 2.4.2008 Город: УКраина Учебное заведение: - Вы: студент ![]() |
|
creer |
![]()
Сообщение
#4
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 121 Регистрация: 28.10.2007 Город: Екатеринбург Учебное заведение: УГТУ-УПИ Вы: студент ![]() |
Из библиотек необходима только iostream или iostream.h. Объект cout определен в пространстве имен std, поэтому необходимо писать std::cout. Однако если подключить iostream.h, то cout будет определен глобально и писать std:: не потребуется.
Ниже пример. Из массива Massive_X переносятся элементы с позиции n, до тех пор пока не будет достигнут конец массива, либо значение элемента массива станет больше либо равно A. Это более-менее похоже на задание. Код #include <iostream> int main() { int n = 2; //переносим с данной позиции int A = 11; //значения должны быть меньше A int Massive_X [11] = { -25, -20, -15, -10, -5, 0, 5, 10, 15, 20, 25}; int Massive_Y [11]; //Возможно стоит заполнить нулями std::cout << "Programma po perenosy chisel." << std::endl; //std::endl - перенос строки for (int i=0; i < 11-n && Massive_X [i+n] < A; i++) //пока i < 11 - n и значение элемента массива меньше A { Massive_Y [i] = Massive_X [i+n]; } for (int i=0; i<11; i++) //Выводим массив { std::cout << Massive_Y [i] << ' '; } std::cout << std::endl; return 0; } |
SERG29 |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Продвинутые Сообщений: 8 Регистрация: 2.4.2008 Город: УКраина Учебное заведение: - Вы: студент ![]() |
ввёл код и при компиляции выдало ошибку в подчёркнутой строке:
for (int i=0; i<11; i++) { std::cout << Massive_Y [i] << ' '; } std::cout << std::endl; return 0; } и внизу написано: E2129 Character constant too long (or emply) |
creer |
![]()
Сообщение
#6
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 121 Регистрация: 28.10.2007 Город: Екатеринбург Учебное заведение: УГТУ-УПИ Вы: студент ![]() |
Тогда вместо ' ', нужно написать " ". (IMG:style_emoticons/default/smile.gif)
|
SERG29 |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Продвинутые Сообщений: 8 Регистрация: 2.4.2008 Город: УКраина Учебное заведение: - Вы: студент ![]() |
Спасибо, программа заработала, только при выводе ответа появились ещё какие-то числа:
Programma po perenosy chisel. -15-10-505104202423420765212449843230 И пишу свои вопросы второй задачи. Условие: Задана матрица А(7,7) целых чисел. Найти столбец с наибольшей суммой элементов. Поменять местами наибольший элемент каждой строки с соответствующим элементом данного столбца. Организовать поиск столбца и наибольшего элемента в строке с помощью подпрограмм. Я тут не пойму, как задать матрицу, притом с семью столбцами и 7 строчками? Если можете, тоже приведите пример этой задачи. |
creer |
![]()
Сообщение
#8
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 121 Регистрация: 28.10.2007 Город: Екатеринбург Учебное заведение: УГТУ-УПИ Вы: студент ![]() |
Остальные числа появились из-за того, что когда создается массив, он не заполняется какими-либо значениями, а под него просто выделяется память. Остальные значения - это те, которые были в оперативной памяти ранее. Можно либо заполнять массив нулями в начале программы, либо просто не выводить весь массив целиком, а вывести только начало массива.
Матрица - это двухмерный массив, задается примерно так же: int ar [7][7]; Вот мы задали двухмерную матрицу ar размерности 7x7. ar[0][0]=5; Присвоили элементу (0;0) значение 5. Если Вам придется дальше решать задачи по программированию, то все это лучше понять, это основы. |
SERG29 |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Продвинутые Сообщений: 8 Регистрация: 2.4.2008 Город: УКраина Учебное заведение: - Вы: студент ![]() |
Изучать программирование мне придется только этот семестр. к/р состоит из 2-х вопросов теории, и 3-ч задач. Первые две задачи (которые я привел выше) - обязательно. Третья - на высокую оценку. Мне хотябы 2 эти задачи сделать. Теорию найти легко.
Насчет 1-ой задачи: заново написал программу - и теперь уже непонятно что выдает! Насчет 2-ой задачи: начал писать код //--------------------------------------------------------------------------- #include <iostream> //--------------------------------------------------------------------------- int main(int argc, char* argv[]) { int ar [7][7] std::cout << "Matrica." << std::endl; for (int return 0; } //--------------------------------------------------------------------------- и сразу возникли трудности. я не пойму как найти наибольший элемент каждой строки, если её нет. Значит надо писать всю матрицу? Поменять местами, я думаю, не доставит большой сложности. А вот как организовать поиск столбца и наибольшего элемента в строке с помошью подпрограмм непойму. И что это за подпрограммы? Если нетрудно, ответьте. |
creer |
![]()
Сообщение
#10
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 121 Регистрация: 28.10.2007 Город: Екатеринбург Учебное заведение: УГТУ-УПИ Вы: студент ![]() |
Да, матрицу необходимо либо задать в программе (или жестко указать значения как в первой задаче, или воспользоваться генератором случайных чисел), либо вводить с клавиатуры.
Чтобы найти максимальный элемент в строке, нужно сравнить все элементы строки между собой. Подпрограммы это тоже, что и int main(){}, только main() главная. Например int maxel(const int n){находим макс. элемент; return max;} |
SERG29 |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Продвинутые Сообщений: 8 Регистрация: 2.4.2008 Город: УКраина Учебное заведение: - Вы: студент ![]() |
Благодаря нечеловеческих усилий и помощи друзей удалось написать что-то. Но как всегда компилятор выдаёт ошибки. Посмотрите и скажите где ошибки:
//--------------------------------------------------------------------------- #include <condefs.h> #include <iostream.h> #include <conio.h> //--------------------------------------------------------------------------- int calcsum (int ar[7][7], int i); int calcmax (int ar[7][7], int i); int calcsum (int ar[7][7], int i) { int sum = 0; int j; for (j=0;j<7;j++) sum += ar[j][i]; } int calcmax (int ar [7][7], int i) { int max = 0; int j, jmax; for (j=0; j<7; j++) { if (max<ar[i][j]) { max = ar[i][j]; jmax = j; } } return (jmax); } int main (int argc,char* argv []) { int j; int i; int max = 0; int imax; int ar [7][7]= { {1,2,3,4,5,6,7}, {2,6,3,6,4,6,2}, {3,5,5,4,6,1,6}, {7,4,5,4,5,4,5}, {1,1,3,4,1,3,3}, {2,3,4,3,4,3,5}, {1,2,3,2,3,2,3} }; for (i=0;i<7;i++) { j = calcsum(ar,i); if (max<j) { max=j; imax=i; } } printf ("Maximum sum = %d for column = %d\n",max,imax+1); for (i=0;i<7;i++) { j = calcmax(ar,i); max = ar[i][j]; ar[i][j] = ar[i][imax]; ar[i][max]=max; } getch(); return 0; } |
creer |
![]()
Сообщение
#12
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 121 Регистрация: 28.10.2007 Город: Екатеринбург Учебное заведение: УГТУ-УПИ Вы: студент ![]() |
В секции include написать только
Код #include <stdio.h> #include <conio.h> В конце функции int calcsum (int ar[7][7], int i) необходимо написать return sum; иначе функция не будет возвращать значения суммы в программу. В функции int calcmax (int ar [7][7], int i) лучше вместо int max = 0; написать int max = ar[i][0]; Тогда функция будет возвращать правильные значения и для отрицательных чисел. |
SERG29 |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Продвинутые Сообщений: 8 Регистрация: 2.4.2008 Город: УКраина Учебное заведение: - Вы: студент ![]() |
Сделал исправления - и выдаёт ошибку:
Unit1.cpp(18); E2378 Return statement missing; Ну когда уже эти ошибки закончатся. |
creer |
![]()
Сообщение
#14
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 121 Регистрация: 28.10.2007 Город: Екатеринбург Учебное заведение: УГТУ-УПИ Вы: студент ![]() |
Функция calcsum написана таким образом?
Код int calcsum (int ar1[7][7], int i) { int sum = 0; int j; for (j=0;j<7;j++) sum += ar1[j][i]; return sum; } И напишите, пожалуйста, что находится в 18 строчке. |
SERG.29 |
![]()
Сообщение
#15
|
Новичок ![]() Группа: Пользователи Сообщений: 3 Регистрация: 9.4.2008 Город: Рідна Україна Учебное заведение: - Вы: студент ![]() |
с новым годом. думали трудно заново зарегистрироваться.
|
Дмитрий |
![]()
Сообщение
#16
|
Новичок ![]() Группа: Преподаватели Сообщений: 5 Регистрация: 6.2.2007 ![]() |
|
SERG.29 |
![]()
Сообщение
#17
|
Новичок ![]() Группа: Пользователи Сообщений: 3 Регистрация: 9.4.2008 Город: Рідна Україна Учебное заведение: - Вы: студент ![]() |
Мне на старый ник поставили бан, короче запретили добавлять сообщения на форум
|
creer |
![]()
Сообщение
#18
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 121 Регистрация: 28.10.2007 Город: Екатеринбург Учебное заведение: УГТУ-УПИ Вы: студент ![]() |
Бан не ставят просто так.
Все дальнейшие сообщения не по теме топика лучше перенести в личные сообщения. |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 23:07 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru