Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Задачи с массивами

19K
27 октября 2006 года
Xopkins
9 / / 26.10.2006
Пожалуйста помогите решить вот такие задачи:
1) Переписать в массив А положительные элементы массива В, расположив их в порядке убывания.
2)Для целочисленной матрицы с положительными элементами найти среднегеометрическое каждой четной строки и каждого нечетного столбца. Результат вывести на печать вместе с исходной матрицей справа от соответсвующих строк и снизу соответствующих столбцов.
Я впринципе первую решил но че то не сраслось, а вторую ВООБЩЕ незнаю как решать - мне нужен код програмный и все... ПОЖАЛУЙСТА помогите :confused: :confused: :confused:
16K
28 октября 2006 года
Black_Shem
14 / / 08.08.2006
а на чём писать собрался?
18K
28 октября 2006 года
JohnZP
10 / / 27.10.2006
Из выше сказанного знаю только процедуру по сортировке:

Procedure Sort(Var arr:array of integer; n:integer);
Var
j,k,m:integer;
Begin
for i:=1 to n do
begin
m:=arr[i-1];
k:=i;
for j:=i to n do
begin
if m<arr[j-1] then
begin
m:=arr[j-1];
k:=j;
end;
end;
arr[k-1]:=arr[i-1];
arr[i-1]:=m;
end;
end;
19K
30 октября 2006 года
Xopkins
9 / / 26.10.2006
[QUOTE=JohnZP]Из выше сказанного знаю только процедуру по сортировке:

Procedure Sort(Var arr:array of integer; n:integer);
Var
j,k,m:integer;
Begin
for i:=1 to n do
begin
m:=arr[i-1];
k:=i;
for j:=i to n do
begin
if m<arr[j-1] then
begin
m:=arr[j-1];
k:=j;
end;
end;
arr[k-1]:=arr[i-1];
arr[i-1]:=m;
end;
end;[/QUOTE]
Это для Visual Basic ? Помойму там немного другие операторы .... ну подскажите плиз как задачи сделать ?
19K
30 октября 2006 года
Чубз
13 / / 24.10.2006
А что такое среднее геометрическое?
А так сделать могу на С++ подойдет?
3.0K
30 октября 2006 года
Мerlin
267 / / 25.07.2006
[QUOTE=Чубз]А что такое среднее геометрическое?
А так все сделать могу[/QUOTE]Корень n-вой степени из произведения этих n чисел.
19K
30 октября 2006 года
Xopkins
9 / / 26.10.2006
Пойдет, попробую потом сам в VB6 перевести! Ради бога помогите с этими задачами !!!
242
30 октября 2006 года
Оlga
2.2K / / 04.02.2006
[COLOR=blue]Q1[/COLOR]
Код:
Dim Matrix(1 ... 10) As Integer  [COLOR=green]'может быть я неправильно объявила массив[/COLOR]
 
Private Sub SortMatrix()
 
Dim I, J, Temp As Integer
 
For I = 1 To 9 [COLOR=green]'size array - 1 = 9[/COLOR]
  For J = 9 To (I+1) Step (-1)
    If Matrix(J) > Matrix(J-1) Then
      Temp = Matrix(J)
      Matrix(J) = Matrix(J-1)
      Matrix(J-1) = Temp
   End If
  Next J
Next I
242
30 октября 2006 года
Оlga
2.2K / / 04.02.2006
[COLOR=red]Пиши в следущий раз язык, а то буду тему закрывать[/COLOR]
19K
30 октября 2006 года
Чубз
13 / / 24.10.2006
Вот первая
Код:
/******************************************************************************/

#include <iostream>
#include <cstdlib>
#include <conio.h>

/******************************************************************************/

const int SIZE = 10;

/******************************************************************************/

using namespace std;

/******************************************************************************/

int* Sort(int *ar, int size)
{
    int tmp;
    for(int i = 0; i < size; i++)
    {
        for(int j = 0; j < size; j++)
        {
            if(ar > ar[j])
            {
                tmp = ar;
                ar = ar[j];
                ar[j] = tmp;
            }
        }
    }
    return ar;
}

int* CreateArray(int* ar1, int* size)
{
  int * ar2 = 0;
    int iCount = 0;
    *size = 0;
 
    for(int i = 0; i < SIZE; i++)
    {
        if(ar1 > 0)
        {
            (*size)++;
            ar2 = (int*)realloc(ar2, (*size) * sizeof(int));
            ar2[(iCount++)] = ar1;
        }
    }
   
    return ar2;
}

/******************************************************************************/

int main()
{
    int ar1[SIZE];
    int size, *ar2;
   
    for(int i = 0; i < SIZE; i++)
    {
        cout << "ar1[" << i << "] -> "; cin >> ar1;
    }
   
    ar2 = CreateArray(ar1, &size);
    ar2 = Sort(ar2, size);
    for(int i = 0; i < size; i++)
      cout << "\nar2[" << i << "] = "<< ar2 << endl;
   
    char cQuit;
  while (cQuit != char(27))
  {
    cout << "\nPress <ESC> to exit...";
    cQuit = (char)getche();
  }
    return 0;
}


четр не успел...
19K
31 октября 2006 года
Xopkins
9 / / 26.10.2006
Незнаю почему но в VB6 код ПОЛНОСТЬЮ отличается .... ничего понять немогу
242
31 октября 2006 года
Оlga
2.2K / / 04.02.2006
но допустим первую задачу я тебе на VB написала (смотри мое сообщение на первой странице), а синтаксис VB и Си действительно отличается, и ничего удивительного здесь нет.
19K
01 ноября 2006 года
Xopkins
9 / / 26.10.2006
[QUOTE=OlgaKr]но допустим первую задачу я тебе на VB написала (смотри мое сообщение на первой странице), а синтаксис VB и Си действительно отличается, и ничего удивительного здесь нет.[/QUOTE]
Я вам по гроб жизни буду благодарен, пожалуйста можно вторую задачу ??? :o :confused:
19K
06 ноября 2006 года
Xopkins
9 / / 26.10.2006
ПОЖАЛУЙСТА
242
06 ноября 2006 года
Оlga
2.2K / / 04.02.2006
мне на ВБ писать неудобно, я как экзамены и лабы отсдала - ничего на этом языке не пишу. сорри.
постарайся сам что то написать, что могу подскажу.
63
07 ноября 2006 года
Zorkus
2.6K / / 04.11.2006
Вопрос к автору - на ВБ писать - это требование злого препода, или ты его сам лучше знаешь? просто мне кажется, по С++ или с# тебе бы больше народу помогло.
19K
07 ноября 2006 года
Xopkins
9 / / 26.10.2006
Не вопрос, с преподом договорился - можно и не на VB ! Помогите дорешать задачи
3.0K
09 ноября 2006 года
Мerlin
267 / / 25.07.2006
Нужно только перевести с Pascal в Basic.
Цитата:
1) Переписать в массив А положительные элементы массива В, расположив их в порядке убывания.

Код:
program Pr2q;

var
  A: array [1..16] of Integer;
  B: array [1..16] of Integer;
  i, j, cntB, ndx: Integer;
begin
  // Заполняем массив A случайными элементами
  // с диапозона [-100..100]
  Randomize;
  for i := 1 to 16 do
    A := Random(200) - 100;

  cntB := 0; // Количество элементов массива B
  for i := 1 to 16 do begin
    if A > 0 then begin
      if cntB = 0 then begin  // B пока еще пуст
        B[1] := A;
        cntB := 1; end
      else begin
        ndx := 0;  // Индекс первого элемента B меньшего от A
        for j := 1 to cntB do
          if B[j] < A then begin
            ndx := j;
            Break;
          end;
        Inc(cntB);
        if ndx = 0 then // Текущий A минимальный в B
          B[cntB] := A
        else begin
          // Сдвигаем элементы вправо
          for j := cntB downto ndx + 1 do
            B[j] := B[j-1];
          B[ndx] := A;
        end;
      end;
    end;
  end;
  // Вывод массива A
  WriteLn('Массив A:');
  for i := 1 to 16 do
    Write(A:4);
  WriteLn('');
  // Массив B
  if cntB = 0 then begin
    WriteLn('Массив А не содержит положительных элементов,');
    WriteLn('поэтому массив В пуст'); end
  else begin
    WriteLn('Массив B:');
    for i := 1 to cntB do
      Write(B:4);
  end;
  ReadLn;
end.
Цитата:
2)Для целочисленной матрицы с положительными элементами найти среднегеометрическое каждой четной строки и каждого нечетного столбца. Результат вывести на печать вместе с исходной матрицей справа от соответсвующих строк и снизу соответствующих столбцов.

Код:
program Pr1q;

uses
  Math;

var
  A: array[1..10, 1..10] of Integer;
  avgGeomCols: array[1..5] of double;
  avgGeomRows: array[1..5] of double;
  i, j, ndx: Integer;
  avgC, avgR: double;

begin
  // Заполнение матрицы A
  Randomize;
  for i := 1 to 10 do
    for j := 1 to 10 do
      A[i, j] := Random(20) + 1;

  // Расчет
  for ndx := 1 to 5 do begin
    avgC := 1.0;   // СреднеГеом по столбцам
    avgR := 1.0;   // СреднеГеом по строкам
    for j := 1 to 10 do begin
      avgR := avgR * A[2*ndx, j];
      avgC := avgC * A[j, 2*ndx-1];
    end;
    avgGeomRows[ndx] := Power(avgR, 0.1);
    avgGeomCols[ndx] := Power(avgC, 0.1);
  end;

  // Вывод результата
  for i := 1 to 10 do begin
    for j := 1 to 10 do
      Write(A[i, j]:6);
    if i mod 2 = 0 then
      Write('  ', avgGeomRows[i div 2]:6:3);
    WriteLn('');
  end;
  for i := 1 to 5 do
    Write(avgGeomCols:6:3, '      ');
  ReadLn;
end.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог