IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Массивы в Borland C++Builder 6, -
SERG29
сообщение 2.4.2008, 11:38
Сообщение #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.4.2008, 13:49
Сообщение #2


Студент
**

Группа: Продвинутые
Сообщений: 104
Регистрация: 26.2.2007
Из: МО, Долгопрудный
Город: иркутск
Учебное заведение: МФТИ



Ну а какая именно проблема возникла? Опишите поподробней.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SERG29
сообщение 2.4.2008, 15:57
Сообщение #3


Новичок
*

Группа: Продвинутые
Сообщений: 8
Регистрация: 2.4.2008
Город: УКраина
Учебное заведение: -
Вы: студент



Цитата(alxdr @ 2.4.2008, 13:49) *

Ну а какая именно проблема возникла? Опишите поподробней.

Не знаю что писать дальше. Незнаю, что означает Хn по Хm, где Хn > Xn-1 и Xm > A. Вот и хотел, чтоб тут помогли.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
creer
сообщение 2.4.2008, 18:18
Сообщение #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
сообщение 3.4.2008, 5:04
Сообщение #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
сообщение 3.4.2008, 11:17
Сообщение #6


Студент
**

Группа: Продвинутые
Сообщений: 121
Регистрация: 28.10.2007
Город: Екатеринбург
Учебное заведение: УГТУ-УПИ
Вы: студент



Тогда вместо ' ', нужно написать " ". (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SERG29
сообщение 3.4.2008, 12:04
Сообщение #7


Новичок
*

Группа: Продвинутые
Сообщений: 8
Регистрация: 2.4.2008
Город: УКраина
Учебное заведение: -
Вы: студент



Спасибо, программа заработала, только при выводе ответа появились ещё какие-то числа:

Programma po perenosy chisel.
-15-10-505104202423420765212449843230

И пишу свои вопросы второй задачи. Условие: Задана матрица А(7,7) целых чисел. Найти столбец с наибольшей суммой элементов. Поменять местами наибольший элемент каждой строки с соответствующим элементом данного столбца. Организовать поиск столбца и наибольшего элемента в строке с помощью подпрограмм.
Я тут не пойму, как задать матрицу, притом с семью столбцами и 7 строчками? Если можете, тоже приведите пример этой задачи.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
creer
сообщение 3.4.2008, 12:35
Сообщение #8


Студент
**

Группа: Продвинутые
Сообщений: 121
Регистрация: 28.10.2007
Город: Екатеринбург
Учебное заведение: УГТУ-УПИ
Вы: студент



Остальные числа появились из-за того, что когда создается массив, он не заполняется какими-либо значениями, а под него просто выделяется память. Остальные значения - это те, которые были в оперативной памяти ранее. Можно либо заполнять массив нулями в начале программы, либо просто не выводить весь массив целиком, а вывести только начало массива.

Матрица - это двухмерный массив, задается примерно так же:
int ar [7][7];
Вот мы задали двухмерную матрицу ar размерности 7x7.
ar[0][0]=5;
Присвоили элементу (0;0) значение 5.
Если Вам придется дальше решать задачи по программированию, то все это лучше понять, это основы.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SERG29
сообщение 3.4.2008, 16:01
Сообщение #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
сообщение 3.4.2008, 17:09
Сообщение #10


Студент
**

Группа: Продвинутые
Сообщений: 121
Регистрация: 28.10.2007
Город: Екатеринбург
Учебное заведение: УГТУ-УПИ
Вы: студент



Да, матрицу необходимо либо задать в программе (или жестко указать значения как в первой задаче, или воспользоваться генератором случайных чисел), либо вводить с клавиатуры.
Чтобы найти максимальный элемент в строке, нужно сравнить все элементы строки между собой.
Подпрограммы это тоже, что и int main(){}, только main() главная. Например int maxel(const int n){находим макс. элемент; return max;}
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SERG29
сообщение 8.4.2008, 13:58
Сообщение #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
сообщение 9.4.2008, 7:53
Сообщение #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
сообщение 9.4.2008, 11:39
Сообщение #13


Новичок
*

Группа: Продвинутые
Сообщений: 8
Регистрация: 2.4.2008
Город: УКраина
Учебное заведение: -
Вы: студент



Сделал исправления - и выдаёт ошибку:

Unit1.cpp(18); E2378 Return statement missing;

Ну когда уже эти ошибки закончатся.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
creer
сообщение 9.4.2008, 12:44
Сообщение #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
сообщение 9.4.2008, 15:29
Сообщение #15


Новичок
*

Группа: Пользователи
Сообщений: 3
Регистрация: 9.4.2008
Город: Рідна Україна
Учебное заведение: -
Вы: студент



с новым годом. думали трудно заново зарегистрироваться.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Дмитрий
сообщение 9.4.2008, 19:27
Сообщение #16


Новичок
*

Группа: Преподаватели
Сообщений: 5
Регистрация: 6.2.2007



Цитата(SERG.29 @ 9.4.2008, 19:29) *

с новым годом. думали трудно заново зарегистрироваться.

В чем проблемы?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SERG.29
сообщение 10.4.2008, 5:07
Сообщение #17


Новичок
*

Группа: Пользователи
Сообщений: 3
Регистрация: 9.4.2008
Город: Рідна Україна
Учебное заведение: -
Вы: студент



Мне на старый ник поставили бан, короче запретили добавлять сообщения на форум
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
creer
сообщение 10.4.2008, 17:28
Сообщение #18


Студент
**

Группа: Продвинутые
Сообщений: 121
Регистрация: 28.10.2007
Город: Екатеринбург
Учебное заведение: УГТУ-УПИ
Вы: студент



Бан не ставят просто так.

Все дальнейшие сообщения не по теме топика лучше перенести в личные сообщения.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 20.4.2024, 2:10

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru