Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Помогите решить задачу с массивами!


Автор: splin74 17.12.2004, 13:11
Текст задачи:
А одномерном массиве, состоящем из N вещественных элементов, вычислить:
- сумму всех элементов массива с нечетными номерами;
-сумму всех элемнтов массива, расположенных между первым и последним отрицательными элементами.
Сжать массив, удалив из него все элементы. Модуль которых не превыашает 1. Освободивешиеся в конце массива элементы заполнить нулями.

Просто не очень понимаю сами массивы smile
Заранее спасибо!

Автор: Royan 17.12.2004, 13:42
А что конкретно не понятно?

Судя по всему это либо школьная, либо задачка с первого курса (хотя поздновато уже задавать такие smile ).

Массив объявляется, например так:

Код

#define ARRLEN 100

int arr[ARRLEN];


Каждый нечетный элемент в массиве можно выделить так (тут же посчитаем и сумму всех нечетных):
Код

for (int i = 0; i < ARRLEN; i++){
  int iSum = 0;
  if(i % 2 != 0){
     iSum += arr[i];
  }
   //Здесь можно вывести сумму
}



Касательно второго задания, делаешь цикл точно такой же как и в примере выше, только в нем просто ищешь индексы первого и последнего элемента с отрицательными значениями. Сохраняешь их в переменных, а потом вторым циклом находишь сумму.
В третьем задании надо использовать массив из чисел с плавающей точкой (насколько я могу понять), т.е. вместо int arr[ARRLEN]; написать float arr[ARRLEN];
и точно также в цикле проверять

Код

if(fabs(arr[i]) < 1)
 arr[i] = 0;

Таким образом, последний шаг это передвинуть все элементы равные 0 в конец массива. Ну, с этим уж я, думаю, ты и сам справишься.

Автор: buxalter 25.2.2005, 18:12
smile помогите пожалуиста с задачей по паскалю!!!
надо сформировать и вывести двухмерный целочисленный массив :
1)
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
2)
2 4 8 16 32 64
4 4 0 0 0 0
8 0 8 0 0 0
16 0 0 16 0 0
32 0 0 0 32 0
64 0 0 0 0 64
заранее благодарен !!!

Автор: Бегемот 26.2.2005, 01:39
Цитата
помогите пожалуиста с задачей

Раз уж спросил здесь, получай ответ на C
Задача №1
Код

int array_1[5][5];
 for(int i=0; i<5; i++)
   for(int j=0; j<5; j++)
    array_1[i][j] = (j+1)+i;

Задача №2
Код

int array_2[6][6];
int k=1;
for(int i=0; i<6; i++)
   for(int j=0; j<6; j++)
   {
    if(i == 0)       array_2[i][j] = k<<=1;
    else if(j == 0)  array_2[i][0] = array_2[0][i];
    else if(j == i)  array_2[i][i] = array_2[0][i];
    else             array_2[i][j] = 0;
   }

Алгоритм понятен. smile Переводи в паскаль. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)