Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2009, 19:16   #1
Перец
 
Регистрация: 23.03.2009
Сообщений: 6
Восклицание Одномерный и двумерный массивы с функцией.

Помогите исправить ошибки в кодах программ :
Пример 1. Заданы 2 вектора A(0.1, 2.2, -0.7, 1.4) и B(0.22, -1.54, -0.07, 0.5, 2.04) . Найти общую сумму положительных элементов обоих векторов.

Код программы :

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int a[4], b[5], S1, S2, S3, i, j;
for (i=0; i<4; i++)
{ a[i]=StrToInt(Memo1->Lines->Strings[i]);
if (a[i]>0) S1=S1+a[i];
}
for (j=0; j<5; j++)
{ b[j]=StrToInt(Memo2->Lines->Strings[j]);
if (b[j]>0) S2=S2+b[j];
}
S3=S2+S1;

float Sr(int a[4], b[5]);
{ for (i=0; i<4; i++)
if (a[i]>0) S1=S1+a[i];
}
{ for (j=0; j<5; j++)
if (b[j]>0) S2=S2+b[j];
}
S3=S1+S2;
return S3;

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{ int a[4], b[5], i, j;
for (i=0; i<4; i++) a[i]=StrToInt(Memo1->Lines->Strings[i]);
for (j=0; j<5; j++) b[j]=StrToInt(Memo2->Lines->Strings[j]);
float S3
Edit1->Text=FloatToStr(S3);
}

Ошибки которые выкидывает :
[C++ Error] Unit1.cpp(31): E2188 Expression syntax
[C++ Error] Unit1.cpp(31): E2293 ) expected
[C++ Error] Unit1.cpp(39): E2467 '_fastcall TForm1::Button1Click(TObject *)' cannot return a value
[C++ Error] Unit1.cpp(44): E2089 Identifier 'Button2Click' cannot have a type qualifier
[C++ Error] Unit1.cpp(66): E2139 Declaration missing ;
[C++ Error] Unit1.cpp(66): E2134 Compound statement missing }
[C++ Warning] Unit1.cpp(66): W8004 'Sr' is assigned a value that is never used


Пример 2. Дана матрица 5х8 . Получить среднееарифметическое всех элементов парных столбцов.

Код программы :

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int A[5][8]; int i, j, sum=0;
for (i=0; i<5; i++)
for (j=0; j<8; j++)
A[i][j]=StrToInt(StringGrid1->Cells[i][j]);
for (j=0; j<8; j++)
{ if (j%2==0)
{ for (i=0; i<5; i++)
sum=sum+A[i][j];
}
}
}

float Sr(int A[5][8], sum=0)
{ int i, j;
A[i][j]=StrToInt(StringGrid1->Cells[i][j]);
for (j=0; j<8; j++)
{ for (i=0; i<5; i++)
{ if (j%2==0)
sum=sum+A[i][j];
}
}
}
return sum;
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
float Sr(sum);
Edit1->Text=FloatToStr(sum);
}

Ошибки которые выкидывает :
[C++ Error] Unit1.cpp(32): E2303 Type name expected
[C++ Error] Unit1.cpp(46): E2084 Parameter names are used only with a function body
[C++ Error] Unit1.cpp(47): E2139 Declaration missing ;
Перец вне форума Ответить с цитированием
Старый 01.04.2009, 15:25   #2
Svetlag
Пользователь
 
Аватар для Svetlag
 
Регистрация: 24.02.2009
Сообщений: 85
По умолчанию

1.
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int a[4], b[5], S1, S2, S3, i, j;
for (i=0; i<4; i++)
{ a[i]=StrToInt(Memo1->Lines->Strings[i]);
if (a[i]>0) S1=S1+a[i];
}
for (j=0; j<5; j++)
{ b[j]=StrToInt(Memo2->Lines->Strings[j]);
if (b[j]>0) S2=S2+b[j];
}
S3=S2+S1;
}

int Sr(int a[4], int b[5])//функция
{
int S1=0, S2=0, S3;
for (int i=0; i<4; i++)
if (a[i]>0) S1=S1+a[i];

for (int j=0; j<5; j++)
if (b[j]>0) S2=S2+b[j];

S3=S1+S2;
return S3;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{ int a[4], b[5], i, j;
for (i=0; i<4; i++) a[i]=StrToInt(Memo1->Lines->Strings[i]);
for (j=0; j<5; j++) b[j]=StrToInt(Memo2->Lines->Strings[j]);
int S3 = Sr(a,b);//думаю хотели что-то присвоить
Edit1->Text=IntToStr(S3);
}
2.
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int A[5][8]; int i, j, sum=0;
for (i=0; i<5; i++)
for (j=0; j<8; j++)
A[i][j]=StrToInt(StringGrid1->Cells[i][j]);
for (j=0; j<8; j++)
{
 if (j%2==0)
  for (i=0; i<5; i++)
   sum=sum+A[i][j];
}
}

int Sr(int A[5][8])
{ int i, j;
  int sum=0;
  for (j=0; j<8; j++)
   for (i=0; i<5; i++)
    if (j%2==0)
     sum=sum+A[i][j];
  return sum;
}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int A[5][8]; int i, j;
for (i=0; i<5; i++)
for (j=0; j<8; j++)
 A[i][j]=StrToInt(StringGrid1->Cells[i][j]);

int sum = Sr(A);
Edit1->Text=IntToStr(sum);
}
Svetlag вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный и двумерный массив Almost456 Паскаль, Turbo Pascal, PascalABC.NET 6 25.12.2012 18:30
задачи на одномерный и двумерный массивы Toxass Паскаль, Turbo Pascal, PascalABC.NET 12 13.11.2008 18:41
Дан двумерный массив случайных чисел. Построить одномерный из исходного, выбрав из него все числа кратные ProWinD Паскаль, Turbo Pascal, PascalABC.NET 2 16.06.2008 20:12