Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kseny
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 8
#1

сортировка и поиск в массиве - C++

23.05.2010, 17:13. Просмотров 283. Ответов 0
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста перевести с паскаля на си.
Pascal
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
 program PROGVybor;
 
uses
  crt;
 
const
  Nmax=100;
 
type
  TIndex   = 0..Nmax-1;      {’ЁЇ - Ё*¤ҐЄб ¬*ббЁў*}
  TElement = integer;        {’ЁЇ н«Ґ¬Ґ*в* ¬*ббЁў* - Ў*§®ўл© вЁЇ ¬*ббЁў*}
  TVector  = array [TIndex] of TElement; {’ЁЇ - ўҐЄв®а, «Ё*Ґ©*л© ¬*ббЁў}
 
var
  a        : TVector;      { ‹Ё*Ґ©*л© ¬*ббЁў }
  N        : word;         { ”*ЄвЁзҐбЄЁ© а*§¬Ґа ¬*ббЁў* }
  k        :TELement;
  i        :TIndex;
      { Џа®жҐ¤га* ЈҐ*Ґа*жЁЁ б«гз*©*ле §**зҐ*Ё© ¬*ббЁў* a
       Ё§ ¤Ё*Ї*§®** 楫ле зЁбҐ« 0..N-1                               }
 
procedure MakeVector (var a : TVector; N : word);
var
  i : TIndex;
 
begin {MakeVector}
 
  randomize;
  for i:=0 to N-1 do
    a[i] := random(N);
 
end;  {MakeVector}
 
 
       {Џа®жҐ¤га* ўлў®¤* ** нЄа** «Ё*Ґ©*®Ј® ¬*ббЁў* *}
 
procedure PrintVector (var a : TVector; N : word);
var
  i : TIndex;
 
begin {PrintVector}
  for i:=0 to N-1 do
    write(a[i]:4);
    writeln;
 
end;  {PrintVector}
 
 
 
 
  {Џа®жҐ¤га* ®Ў¬Ґ*Ёў*Ґв ¬Ґбв*¬Ё §**зҐ*Ёп ЇҐаҐ¬Ґ**лx y Ё x вЁЇ* TElement}
procedure swap (var x,y:TElement);
var
  t:TElement;
begin
  t:=x;
  x:=y;
  y:=t;
end;    {swap}
 
   { Џа®жҐ¤га* Їа®Ё§ў®¤Ёв б®авЁа®ўЄг н«Ґ¬Ґ*в®ў «Ё*Ґ©*®Ј® ¬*ббЁў* *
    ¬Ґв®¤®¬ ўлЎ®а* c Є®*ж* ¬*ббЁў*.}
procedure SortingVector(var a:TVector; N : word);
var
  i,j,imax:TIndex;
begin{sorting vector}
      {б®авЁа®ўЄ* ¤«п н«Ґ¬Ґ*в®ў ¬*ббЁў* б Ї®б«Ґ¤*ҐЈ® ¤® ЇҐаў®Ј®}
  for i:=(N-1) downto 1 do
  begin
 
 
    { Џ®ЁбЄ б।Ё Ё*¤ҐЄб®ў н«Ґ¬Ґ*в®ў ¬*ббЁў* * б i ¤® N
    Ё*¤ҐЄб* н«Ґ¬Ґ*в* б **ЁЎ®«миЁ¬ §**зҐ*ЁҐ¬              }
    imax:=i;
    for j:=(i-1) downto 0 do
    if a[j]>a[imax] then
      imax:=j;
 
    {®Ў¬Ґ* a[i] Ё a[imax]}
      swap(a[imax],a[i]);
  end;
end;
 
  {дг*ЄжЁп Їа®Ё§ў®¤Ёв Ї®б«Ґ¤®ў*⥫м*л© Ї®ЁбЄ Ё*¤ҐЄб* ЁбЄ®¬®Ј® н«Ґ¬Ґ*в* б Є®*ж* ¬*ббЁў*}
Function POISK (var  a:TVector; N:word; k: TElement;var   i:TIndex ):integer;
begin
  i:=(N-1);
  while(i>=0) and (a[i]<>k) do
  begin
    Poisk:=i;
    dec (i);
  end;
end;
 
 
 
begin
  ClrScr;
  writeln('Џа®Ја*¬¬* Їа®Ё§ў®¤Ёв б®авЁа®ўЄг «Ё*Ґ©*®Ј® 楫®зЁб«Ґ**®Ј®':60);
  writeln;
 
  write('‚ўҐ¤ЁвҐ Є®«ЁзҐбвў® н«¬Ґ*в®ў N ¬*ббЁў*=');
  readln(N);
 
  MakeVector(a, N);
 
  writeln('?б室*л© ¬*ббЁў:');
  PrintVector(a, N);
  SortingVector(a, N);
 
  writeln('Ћвб®авЁа®ў***л© ¬*ббЁў:');
  PrintVector(a, N);
  write('‚ўҐ¤ЁвҐ ЁбЄ®¬л© н«Ґ¬Ґ*в k=');
  readln(k);
 
  if POISK (a,N,k,i)>0 then
    writeln('н«Ґ¬Ґ*в **©¤Ґ* б Ё*¤ҐЄб®¬',POISK (a,N,k,i))
  else
    writeln('н«Ґ¬Ґ*в *Ґ **©¤Ґ*');
    readln;
end.
вот мои наработки:

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
44
45
46
47
48
49
50
/*programma reshaet zadachu:sosedom elementa  Aij матрицы называется другой элемент Alk этой же  матрицы, если каждый из его индексов l и k
отличается от соответственно i и j  не более чем на 1. Дана веществ. матрица размером MxN. построить матрицу В такого же размераб чтобы каждый элемент
bij этой матрицы был равен наименьшему значению среди соседей элемента Aij.*/
#include <studio.h>
#include <moth.h>
#include <conio.h>
#define m 5
#define n 4
void main()
{
  float a[m][n];  // матрица а
  float b[m][n];  // матрица б
  
  int i,j;     //индексы массива
  printf("\n введите маcсив\n");
  printf("после ввода элементов строки нажмите <enter>\n">);
  
  for (i=0;i<m;i++)  // m строк
  {
      printf("->");
      for (j=0; j<n;j++)
        scanf("%f", &a[i][j]);
  }     
  printf("\n введенный массив\n");
  
  for (i=1; i<m; i++)
    for (j=1; j<n; j++)
    {
      int  p=i-1;
      int  t=i+1;
      int  p1=j-1;
      int  t1=j+1;
      float min = maxint;
        for (k=p; k<t; k++)
          for (l=p1; l<t1; l++)
          if ((k>=1)&&(k<=m))&&((l>=1)&&(l<=n))&&((i<>k)||(j<>l))
          {
            if ( a[k][l]<min)&&(a[k][l]<>a[i][j])&&(a[k][l]<>a[p,p1])&&(a[k][l]<>a[t][p1] )&&(a[k][l]<>a[p][t1] )&&(a[k][l] <> a[t][t1] )                                                
            {
                 min=a[k][l];
      
            }
            b[i][j]=min;
         }
     }
     for (i=1;i<m; i++)
       for (j=1;j<n; j++)
       scanf ("%f", b[i][j]);
       printf ("\n массив полученный из наименьших значений среди соседей элемента Aij\n");
  {
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2010, 17:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос сортировка и поиск в массиве (C++):

Сортировка и двоичный поиск в массиве. - C++
Помогите чайнику изменить следующий код: // F_08_L_2.cpp: определяет точку входа для консольного приложения. // #include...

Объяснить линейный поиск в массиве и сортировка массива - C++
Рябята кому не трудно кто может обяснить линейный поиск в масиве и сортировку масива Не очень понял как на парах обясняли обясните вы...

Поиск числа в двумерном массиве (бинарный поиск) - C++
Произвожу поиск элемента в массиве двумя способами: линейным(последовательным) поиском и бинарным(двоичным). Первый работает на ура. Второй...

Сортировка в массиве - C++
Добрый день,прошу помощи с заданием. Дан массив из n целых чисел. Упорядочить массив таким образом, чтобы вначале шли положительные...

Сортировка указателей в массиве - C++
Выполните сортировку данных по алфавиту (по фамилии) - причем сортировать потребуется только указатели в массиве. Выведите...

Сортировка данных в массиве - C++
Такой вопрос: написал прогу по структурам. Вроде код правильный, но при сортировке записи перемешиваются и получается бред. Быть может в...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2010, 17:13
Привет! Вот еще темы с ответами:

Сортировка в массиве структур - C++
Здравствуйте . Вот я создаю структуру: struct Data //описываемая структура { int m; int year; int day; }; в...

Сортировка диагоналей в массиве - C++
Прога крашиться, и не могу понять почему. Надо отсортировать гл. диагональ в массиве и параллельные ей по-отдельности. #include...

Сортировка слов в массиве - C++
Необходимо отсортировать слова в массиве типа char, ну или string, если так будет проще. Заранее благодарю!

Сортировка строк в массиве - C++
Помогите написать код! никак не получаться! Дана целочисленная матрица A. Получить целочисленную матрицу B путем упорядочивания строк...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru