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

Масивы - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
alex-soft
2 / 2 / 0
Регистрация: 09.02.2011
Сообщений: 78
30.04.2011, 18:01     Масивы #1
Помогите сделать задачу по С++.
Создать массив. Вывести массив в общепринятом виде. Превратить массив, согласно условиям. Вывести преобразованный массив.
1) Массив заполнить случайными числами.
2) Определить количество перестановок, которое понадобилось для благоустройства.
3) При выведении массивов к превращению и после превращения выведения организовать в таком виде:

A[0,0]=........ A[0,1]=......... A[0,n]=......... ..........
A[1,0]=........ A[1,1]=......... A[1,n]=......... ..........
...................................................................................................
A[m,0]=........ A[m,1]=......... A[m,n]=......... ..........
Необходимо также выбирать способ заполнения массива:
1. массив-константа
2. массив случайных чисел
3. введение данных из клавиатуры.
Вот само задание, где 0,81 - это х.
Миниатюры
Масивы  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2011, 18:01     Масивы
Посмотрите здесь:

C++ C++ масивы
C++ Масивы С/С++
C++ Масивы
C++ 2-D масивы.
Масивы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex-soft
2 / 2 / 0
Регистрация: 09.02.2011
Сообщений: 78
01.05.2011, 23:14  [ТС]     Масивы #2
Извените, не туда посмотрел.
Вот задание:
Размер массива 5х5. Для каждого рядка найти количество и суму значений положительных элементов.
Вот что получилось найти на разных форумах:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
 
int main()
{
    printf("Введіть спосіб заповнення масиву")
        printf("1 - масив-константа")
        printf("2 - масив випадкових чисел")
        printf("3 - введення даних з клавіатури")
    int array[5][5];
array[5] = 15;
cout << array[5] << endl;
}
Помогите, пожалуйста, сделать лабораторную.
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
01.05.2011, 23:22     Масивы #3
А сам подумать не пробовал?
Программа - это план.
Надо написать план на русском языке, а потом перевести на С++...
1. массив a[5][5] - исходный
2. Цикл
i=0;
пока i < 5
{ сумма = 0;
j = 0;
пока j < 5
{ если а[i][j] > 0 то сумма = сумма + a[i][j];
++j;
}
вывод суммаж
++i;
}
alex-soft
2 / 2 / 0
Регистрация: 09.02.2011
Сообщений: 78
01.05.2011, 23:47  [ТС]     Масивы #4
Думать, честно говоря пробовал, но как то не получается .
Возможно из-за того, что я новичок в программировании (или уровнем ниже).
Объясните, пожалуйста, свои мысли, или, если можно, напишите код.
Я понял что сначала необходимо ввести
C++
1
int array[5][5];
, а потом всё остальное?
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
01.05.2011, 23:52     Масивы #5
F потом книжку надо почитать...
C++
1
2
3
4
5
6
7
8
9
10
11
int j, summa; int i=0; 
while(i < 5)
{ summa = 0;
   j = 0;
   while(j < 5)
  { if (а[i][j] > 0) summa = summa + a[i][j];
     ++j;
  }
  cout << summa << endl; 
  ++i;
}
Это простейший вариант - без красот и оформления в программу...
Дальше - сам.
alex-soft
2 / 2 / 0
Регистрация: 09.02.2011
Сообщений: 78
02.05.2011, 00:00  [ТС]     Масивы #6
Спасибо за код!
Но я до конца не могу разобраться, что делает программа: создает массив случайных чисел?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
02.05.2011, 00:03     Масивы #7
alex-soft, хех. нет. считает сумму элементов в матрице которые больше нуля, точнее даже не так. считает сумму элементов в строке матрицы выводит на экран и так для всех строк)
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
02.05.2011, 00:04     Масивы #8
Нет. Приведенный фрагмент - это только подсчет суммы положительных элементов для каждой строки.
Массив перед этим надо как-то заполнить. Либо ввести числа с клавиатуры (их всего 25, поэтому можно и так). Либо заполнить случайными числами, но нужно среди них иметь отрицательные.
Например так:
C++
1
2
3
for(int i = 0; i<5; ++i)
  for(int j = 0; j<5; ++j)
     a[i][j] = rand()%20-10;
B еще надо датчик случайных чисел инициализировать - читай функцию srand().
alex-soft
2 / 2 / 0
Регистрация: 09.02.2011
Сообщений: 78
02.05.2011, 00:21  [ТС]     Масивы #9
А каким образом мне реализовать выбор способа ввода массива?
Я использовал printf а также необходимо scanf, но как - не знаю.
Я думаю, что это должно быть на первом месте в программе, а уж потом - создавать матрицу.
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
02.05.2011, 00:26     Масивы #10
Объявление массива должно быть в начале.
А ввод делается такими же циклами:
C++
1
2
3
4
for(int i = 0; i<5; ++i)
  for(int j = 0; j<5; ++j)
  { cout << " Give me number: "; cin >> a[i][j];
  }
alex-soft
2 / 2 / 0
Регистрация: 09.02.2011
Сообщений: 78
02.05.2011, 00:36  [ТС]     Масивы #11
Что-то я совсем запутался...
1. Объявляем массив.
2. Предоставляем выбор пользователю по созданию массива.
3. Создается массив одним из вариантов.
4. Поиск количества и суму значений положительных элементов.
5. Вывод информации на экран.
Правильно ли я понимаю Вашу позицию?
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
02.05.2011, 00:41     Масивы #12
Цитата Сообщение от alex-soft Посмотреть сообщение
Что-то я совсем запутался...
1. Объявляем массив.
2. Предоставляем выбор пользователю по созданию массива.
3. Создается массив одним из вариантов.
4. Поиск количества и суму значений положительных элементов.
5. Вывод информации на экран.
Правильно ли я понимаю Вашу позицию?
Пункт 4: не поиск, а вычисление.
Пункт 3: не создаем, а заполняем.
Пункт 2 - надо еще запрограммировать.
Пропусти его, и заполняй с клавиатуры.

Остальное - верно. План - ПРАВИЛЬНЫЙ
alex-soft
2 / 2 / 0
Регистрация: 09.02.2011
Сообщений: 78
02.05.2011, 00:47  [ТС]     Масивы #13
Я не могу пропустить 2 пункт - это ведь час задания.
А каким образом объявить массив?
Так?
C++
1
2
for(int i = 0; i<5; ++i)
  for(int j = 0; j<5; ++j)
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
02.05.2011, 00:48     Масивы #14
alex-soft, Блин. Почитайте книжку. Любую по С/С++. Вопросы отпадут. Это цикл а не объявление массива.
alex-soft
2 / 2 / 0
Регистрация: 09.02.2011
Сообщений: 78
02.05.2011, 00:51  [ТС]     Масивы #15
Так:
C++
1
int array[5][5];
?
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
02.05.2011, 00:53     Масивы #16
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int a[5][5];
int sposob = 0;
// -- ввод способа заполнения --
// -- 1 - ввод с клавиатуры, 2 - случайные числа --
do{
cout << "Выберите способ заполнения массива (1 или 2):"; cin >> sposob; 
} while((sposob != 1)||(sposob != 2));
for(int i = 0; i<5; ++i)
  for(int j = 0; j<5; ++j)
  { if(sposob == 1) 
    { // -- здесь вводишь с клавиатуры --
    }
    if((sposob == 2) 
    { // -- здесь заполняешь случайными числами --
    }
  }
Как-то так
ForEveR
02.05.2011, 00:58
  #17

Не по теме:

ValeryLaptev, Вы же преподаватель насколько я понимаю?
Ну елки-палки. Ладно я промолчу про название массива и явное указание размера, вместо того, чтобы определить константу. НО... На кой фиг транслитом то писать?!

ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
02.05.2011, 01:02     Масивы #18
Цитата Сообщение от ForEveR Посмотреть сообщение

Не по теме:

ValeryLaptev, Вы же преподаватель насколько я понимаю?
Ну елки-палки. Ладно я промолчу про название массива и явное указание размера, вместо того, чтобы определить константу. НО... На кой фиг транслитом то писать?!

Ну пусть чел хоть немного своей головой подумает - не все же ему до конца писать...
ForEveR
02.05.2011, 01:04
  #19

Не по теме:

ValeryLaptev, Да я о транслите. Я то только за чтобы он думал. Но вот названия переменных типа sposob просто убивают.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2011, 10:29     Масивы
Еще ссылки по теме:

Масивы C++
С++ Масивы C++
C++ масивы

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

Или воспользуйтесь поиском по форуму:
alex-soft
2 / 2 / 0
Регистрация: 09.02.2011
Сообщений: 78
02.05.2011, 10:29  [ТС]     Масивы #20
Что-то такое получилось, исправьте, пожалуйста, где надо:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
int main()
int a[5][5];
int sposob = 0;
do{
    cout << "Введіть спосіб заповнення масиву" >>;
                cout << "1 - масив-константа" >>;
                cout <<"2 - масив випадкових чисел" >>;
                cout <<"3 - введення даних з клавіатури"; cin >> sposob;
    } while((sposob != 1)||(sposob != 2)||(sposob != 3));
for(int i = 0; i<5; ++i)
  for(int j = 0; j<5; ++j)
  { if(sposob == 1) 
    { 3, 15, 2, 6, 5,
    11, 6, 32, -21, 9,
    -1, -12, 3, -18, 12,
    36, -12, -10, 8, 5,
    -12, 23, 7, 24, -25
    }
    if(sposob == 2) 
    { for(int i = 0; i<5; ++i)
  for(int j = 0; j<5; ++j)
     a[i][j] = rand()%20-10;
    }
     if((sposob == 3)
    { // -- здесь заполняешь случайными числами --
    }
  
     int j, summa; int i=0; 
while(i < 5)
{ summa = 0;
   j = 0;
   while(j < 5)
  { if (а[i][j] > 0) summa = summa + a[i][j];
     ++j;
  }
  cout << summa << endl; 
  ++i;
} 
}
Yandex
Объявления
02.05.2011, 10:29     Масивы
Ответ Создать тему
Опции темы

Текущее время: 11:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru