Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 06.12.2009
Сообщений: 5

Работа со 2-хмерными массивами в StringGrid

06.12.2009, 09:04. Показов 1538. Ответов 7

Студворк — интернет-сервис помощи студентам
Помогите пожалста начинающему. только начали в институте изучать борланд, объясняют крайне недоступно( итак задание:
1)Дана матрица размера N x M. В каждой строке найти количество элементов, больших среднего арифметического всех элементов этой строкию.
2)Дана квадратная матрица порядка M. Заменить нулями элементы матрицы, лежащие ниже главной диагонали.
3)Дана матрица размера M x N. Удалить последний столбец, содержащий только положительные элементы.

помогите хотя бы по одному из заданий пожалста.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.12.2009, 09:04
Ответы с готовыми решениями:

Работа с массивами в StringGrid
Доброго времени суток форумчане, помогите пожалуста реализовать следующию задачу в код. Имеется Стринггрид размерностью , и -...

Работа с массивами в stringgrid
Здравствуйте!помогите пожалуйста, вот у меня задание:Дан одномерный массив. Размерность – случайное число из отрезка . Элементы массива –...

Работа с массивами в delphi. Компонент StringGrid
Здравствуйте! Имеется задача : Дан вещественный массив из 5 строк и 3 столбцов. Упорядочить массив по возрастанию целой части элементов...

7
0 / 0 / 0
Регистрация: 06.12.2009
Сообщений: 5
13.12.2009, 12:21  [ТС]
Ну хоть кто нибудь откликнитесь!
0
Тутошний я
 Аватар для Grey
2147 / 1202 / 225
Регистрация: 03.11.2009
Сообщений: 4,424
Записей в блоге: 2
13.12.2009, 22:34
Со StringGrid я пока не разобрался.
Ко 2 задаче.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int x,y,a=1;                      //при а=0 стирает диагональ
int A[5][5]={{4,4,4,4,4},
             {4,4,4,4,4},
             {4,4,4,4,4},
             {4,4,4,4,4},
             {4,4,4,4,4}};
 for (x=0;x<=4;x++)
 {
 for (y=a;y<=4;y++)
 {
 A[x][y]=0;
 }
 a=a+1;
 }
Form1->Edit1->Text=IntToStr(A[0][0]);//просмотр ячеек от A[0][0] до A[4][4]
}
Найди книгу А.Я.Архангельский Програмирование в C++ Builder 6
1
0 / 0 / 0
Регистрация: 06.12.2009
Сообщений: 5
08.01.2010, 14:49  [ТС]
Первая задача. я вроде как решил ее, сумма и среднее арифметическое определены и находятся верно, но вот с выводом количества элементов проблема. вот код

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
{
double a[50][50];
double a1[50][50];
int N,M,i,j,z,t;
double Src, sum;
        N=StrToInt(Edit1->Text);
        M=StrToInt(Edit2->Text);
        Memo1->Clear();
    for (i=0; i<N; i++)
    {
        for (j=0; j<M; j++)
        {
                        a[i][j]=StrToFloat(StringGrid1->Cells[i][j]);
        }
    }
    //Найдем среднее арифметическое
        t=0;
        for (i=0, sum=0; i<N; i++)
        {
                for (j=0, sum=0; j<M; j++)
                {
                sum=sum+a[j][i];
                               }
                //Memo1->Lines->Add(FloatToStr(sum));
               Src=sum/N;
                a1[i][0]=Src;  Memo1->Lines->Add(FloatToStr(a1[i][0]));
 
        }
        //Находим количество элементов, больших, чем среднее арифметическое
        z=0;
        for (i=0, z=0;i<N;i++)
        {
                for (j=0, z=0;j<M;j++)
                {
                        if (a[i][j]>a1[i][0])
                        {
                        z++;
                        }
                }
                Memo1->Lines->Add(FloatToStr(z));
 
        }
напичшите в чем ошибка и как исправить.
0
Тутошний я
 Аватар для Grey
2147 / 1202 / 225
Регистрация: 03.11.2009
Сообщений: 4,424
Записей в блоге: 2
09.01.2010, 20:19
У тебя искало по столбцам.
Раз ищем по строкам,удобней если поменять i и j в цикле.
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
#include <SysUtils.hpp>//преображование строк и чисел
//------------------------------------------------------
{
double a[50][50];
double a1[1][50];
int N,M,i,j,z;
double Src, sum;
  N=1+StrToInt(Edit1->Text);
  M=1+StrToInt(Edit2->Text);
  Memo1->Clear();
  for (j=1; j<M; j++)
  {
     for (i=1; i<N; i++)
     {
        a[i][j]=StrToFloat(StringGrid1->Cells[i][j]);
     }
  }
  //Среднее арифметическое
   for (j=1, sum=0; j<M; j++)
   {
     for (i=1, sum=0; i<N; i++)
       {
          sum=sum+a[i][j];
       }
       Memo1->Lines->Add("sum="+FloatToStr(sum));
       Src=sum/(N-1);
       a1[0][j]=Src;
       Memo1->Lines->Add("Scr="+FloatToStr(a1[0][j]));
       for (i=1, z=0;i<N;i++)//Кол-во элементов больше средне арифметического
         {
         if (a[i][j]>a1[0][j])
            {
              z++;
            }
         }
       Memo1->Lines->Add("z="+IntToStr(z));
   }
}
1
0 / 0 / 0
Регистрация: 06.12.2009
Сообщений: 5
10.01.2010, 03:55  [ТС]
Все понятно, все работает, только не понятно зачем начинать отсчет с
C++
1
2
  N=1+StrToInt(Edit1->Text);
  M=1+StrToInt(Edit2->Text);
потому что в таком раскладе выдается ошибка, а если убрать этот "+1" и в строках типо
C++
1
for (j=1; j<M; j++)
заменить на
C++
1
for (j=0; j<M; j++)
все отлично работает)
0
Тутошний я
 Аватар для Grey
2147 / 1202 / 225
Регистрация: 03.11.2009
Сообщений: 4,424
Записей в блоге: 2
10.01.2010, 19:15

Не по теме:

+1 это лень :)


Так я определил,что ищет по столбцам и заполнил таблицу.
C++
1
2
3
4
5
6
7
void __fastcall TForm1::FormCreate(TObject *Sender)
{
for (i=1;i<5;i++)
  {
    for (j=1;j<10;j++) StringGrid1->Cells[i][j]=5;
  }
}
При i=0 и j=0 заполняет шапку таблицы.
0
Тутошний я
 Аватар для Grey
2147 / 1202 / 225
Регистрация: 03.11.2009
Сообщений: 4,424
Записей в блоге: 2
11.01.2010, 20:14
3 задача
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
{
double a[50][50];
int N,M,i,j,z,t;
        N=StrToInt(Edit1->Text);
        M=StrToInt(Edit2->Text);
        for (i=0; i<N; i++)
        {
          for (j=0; j<M; j++)
            {
              a[i][j]=StrToFloat(StringGrid1->Cells[i][j]);
            }
        }
for (i=N;i>0;i--)//выбор столбца
  {
    z=0;
    for (j=0;j<M;j++)//выбор строки
      {
        if (a[i][j]>0) z=z+1;
        if (z==M)
          {
           t=i;
           StringGrid1->ColCount=StringGrid1->ColCount-1;
           for (i=t;i<N;i++)//перезапись массива и таблицы
            {
              for (j=0;j<M;j++)
               {
                 a[i][j]=a[i+1][j];
                 StringGrid1->Cells[i][j]=FloatToStr(a[i][j]);
               }
            }
            goto A;//выход из цикла
          }
       }
   }
A:
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.01.2010, 20:14
Помогаю со студенческими работами здесь

Операции с массивами через stringgrid
Нужно при помощи 3-х элементов stringgrid провести операцию на 2-мя массивами и выдать результат в 3-ий. Не совсем понимаю, как это должно...

StringGrid работа с TStrings и исключение "превышение размера StringGrid"
предположим есть TStringGrid и у него 10 строк и 2 колонки и есть TStringList и в нем 15 строк теперь выполняем ...

Работа с массивами
Поясните, почему при использовании массива в методе println() выводятся символы, а не числа? public class Fibonacci { public static...

Работа с массивами
Здравствуйте! Помогите, пожалуйста, кто чем может) 1. Вычислить значения 33 элементов одномерного целочисленного массива F в интервале...

Работа с массивами
есть прога kol=10; %количество датчиков gr1=-50; %граница по левому краю ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru