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

C# для начинающих

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

Переписать код с паскаля (Определение соседних пар матрицы) - C#/.NET 4.x

22.09.2014, 11:50. Просмотров 347. Ответов 7
Метки нет (Все метки)

Помогите переписать прогу на С#, начала изучать, но некоторые моменты мне непонятны.

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
program z;
uses crt;
const n=5; m=5;
var i,j,k:byte;
a:array [1..n,1..m] of integer;
rigth:integer;
begin
     clrscr;
     writeln('Случайная матрица');
     for i:=1 to n do
         begin
              for j:=1 to m do
                  begin
                       a[i,j]:=random(5);
                       write(a[i,j],' ');
                  end;
              writeln;
         end;
     k:=0;
     for i:=1 to n-1 do
         for j:=1 to m do
             if a[i,j]=a[i+1,j]
                then
                begin
                    k:=k+1;
                    writeln(a[i,j],' ');
                    end;
                    
     for i:=1 to n do
         for j:=1 to m-1 do
             if a[i,j]=a[i,j+1]
                then
                begin
                    k:=k+1;
                    writeln(a[i,j],' ');
                    end;
                    
      for i:=1 to n do
         for j:=1 to m-1 do
         if i=j
         then
             if a[i,j]=a[i+1,j+1]
                then
                begin
                    k:=k+1;
                    writeln(a[i,j],' ');
                    end;
             rigth :=  m - 1;      
       for i:=2 to n - 1 do
       begin 
   
             if a[i, rigth]=a[i+1, rigth - 1]
                then
                begin
                    k:=k+1;
                    end;
                    
                    rigth := rigth - 1;
              
        end;
         
     if k>0
        then
            writeln('Кол-во соседних одинаковых элементов: ',k)
     else
         writeln('Соседних одинаковых элементов в матрице нет!');
     readln;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2014, 11:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос .NET 4.x Переписать код с паскаля (Определение соседних пар матрицы) (C#):

Пожалуйста переведите код матрицы с паскаля на C# - C#
пожалуйста переведите с паскаля на си шарп program abc; var a:arrayof integer; i,j,n,m,c,b:integer; begin write('введите...

Количество пар соседних цифр - C#
Помогите пожалуйста с заданием. Дано тринадцатизначное число. Определить количество пар соседних цифр, отличающихся друг от друга на...

Вывести произведения всех пар соседних чисел - C#
"дана последовательность целых чисел. Вывести произведения всех пар соседних чисел" C#

одномерный массив посчитать количество пар соседних элементов одного знака - C#
19. Для одномерного массива посчитать количество пар соседних элементов одного знака

Отсортировать элементы по периметру матрицы по возрастанию - переписать код на C# - C#
есть задача на паскаль, помогите переделать на C# её пожалуйста: Отсортировать элементы по периметру матрицы по возрастанию....

Найти количество пар соседних элементов, в которых предыдущий элемент меньше последующего - C#
помогите плиз!

7
fast1kkk
29 / 29 / 10
Регистрация: 15.02.2014
Сообщений: 157
22.09.2014, 12:03 #2
А что это за задача?
0
Katy4020
0 / 0 / 0
Регистрация: 22.09.2014
Сообщений: 2
22.09.2014, 12:06  [ТС] #3
Преподователь сказал переписать на С#.
Вот задача:
В матрице целых чисел заданной размерности определить количества таких пар соседних по вертикали, горизонтали, или диагонали элементов матрицы значения которых совпадают.
0
valdi_korot
50 / 50 / 17
Регистрация: 04.03.2014
Сообщений: 430
Завершенные тесты: 1
22.09.2014, 14:05 #4
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
            int n = Convert.ToInt16(Console.ReadLine());
            int[] countVert=new int[n];
            int[] countHor=new int[n];
            int countDio = 0;
            int[,] arr = new int[n, n];
            Random rand=new Random();
            for (int i = 0; i < n; i++)
            {
                countVert[i] = 0;
                countHor[i] = 0;
                for (int j = 0; j < n; j++)
                {
                    arr[i, j] = rand.Next(0, 10);
                    Console.Write(" " + arr[i, j].ToString());
                }
                Console.WriteLine();
            }
            for (int i = 0; i < n; i++)
                for (int j = 0; j < n - 1; j++)
                {
                    if (arr[i, j] == arr[i, j + 1])
                        countHor[i]++;
                    if (arr[j, i] == arr[j + 1, i])
                        countVert[i]++;     
                }
            for (int i = 0; i < n-1; i++)
                if (arr[i, i] == arr[i + 1, i + 1])
                    countDio++;
 
            countVert.ToList().ForEach(Console.Write);
            Console.WriteLine();
            Console.WriteLine(countDio.ToString());
            countHor.ToList().ForEach(Console.Write);
                    Console.ReadKey();
1
Learx
1039 / 846 / 86
Регистрация: 31.03.2010
Сообщений: 2,466
22.09.2014, 16:22 #5
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int n,m;
n = Convert.ToInt32(Console.ReadLine());
m = Convert.ToInt32(Console.ReadLine());
int[,] mas = new int[n,m];
Random r = new Random();
for(int i=0; i<n; i++)
   for(int j=0; j<m; j++)
        mas[i,j]=r.Next(0,10);
int k=0;
for(int i=0; i<n-1; i++)
   for(int j=0; j<m-1; j++)
       if(mas[i,j]==mas[i+1,j]||mas[i,j]==mas[i,j+1]||mas[i,j]==mas[i+1,j+1]||mas[i,j+1]==mas[i+1,j]) k++;
if(k>0) Console.WriteLine("Найдено {0} пар одинаковых элементов", k);
else Console.WriteLine("Одинаковых рядом стоящих элементов не найдено!");
1
sysrepos
36 / 36 / 15
Регистрация: 08.08.2013
Сообщений: 289
Записей в блоге: 1
23.09.2014, 18:15 #6
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using System;
 
class MyArray {
    static void Main() {
        int[,] arr; 
        int i,j;        
        int m=5, n=5;       
        arr=new int[m,n];
            
        int kolpar; 
        int kolpar_h=0;
        int kolpar_v=0;
        int kolpar_d1=0;
        int kolpar_d2=0;
        
        Random random=new Random();
        
        //заполнение массива
        for (i=0; i<m; i++) {
            for (j=0; j<n; j++) {
                arr[i,j]=random.Next(1,5);
                Console.Write(arr[i,j]+" ");                
            }
            Console.WriteLine("");
        }                   
        //подсчет дубликатов по горизонтали
        for (i=0; i<m; i++) {
            for (j=0; j<n-1; j++) {
                if (arr[i,j]==arr[i,j+1]) kolpar_h++;
            }
        }
        Console.WriteLine("по горизонтали "+kolpar_h);
                
        //подсчет дубликатов по вертикали
        for (i=0; i<m-1; i++) {
            for (j=0; j<n; j++) {
                if (arr[i,j]==arr[i+1,j]) kolpar_v++;
            }
        }       
        Console.WriteLine("по вертикали "+kolpar_v);
        
        //подсчет дубликатов по диагонали1
        for (i=0; i<m-1; i++) {
            for (j=0; j<n-1; j++) {
                if (arr[i,j]==arr[i+1,j+1]) kolpar_d1++;
            }
        }               
        Console.WriteLine("по диагонали1 "+kolpar_d1);
        
        //подсчет дубликатов по диагонали2
        for (i=0; i<m-1; i++) {
            for (j=1; j<n; j++) {
                if (arr[i,j]==arr[i+1,j-1]) kolpar_d2++;
            }
        }               
        Console.WriteLine("по диагонали2 "+kolpar_d2);
        
        Console.WriteLine("");
        
        kolpar=kolpar_h+kolpar_v+kolpar_d1+kolpar_d2;
        Console.WriteLine(kolpar);
        
        Console.WriteLine("");
        Console.ReadLine();
    }
}
1
Learx
1039 / 846 / 86
Регистрация: 31.03.2010
Сообщений: 2,466
23.09.2014, 19:08 #7
sysrepos, а зачем городить 4 прохода по массиву, если я уже привел код с одним проходом?
0
sysrepos
36 / 36 / 15
Регистрация: 08.08.2013
Сообщений: 289
Записей в блоге: 1
23.09.2014, 19:28 #8
не знаю, для наглядности может )
0
23.09.2014, 19:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2014, 19:28
Привет! Вот еще темы с ответами:

Дана строка. Подсчитать количество пар соседних слов, начинающихся на одну и ту же букву - C#
Дана строка. Подсчитать количество пар соседних слов, начинающихся на одну и ту же букву. Счет вести для каждой встреченной буквы.

Подсчитать количество пар соседних элементов массива, которые имеют противоположные знаки - C#
Объявить массив целых чисел и заполнить его случайными значениями. Размерность массива: 200. Диапазон значений: -50-50. Подсчитать...

Дан массив чисел. Найти, сколько в нем пар одинаковых соседних элементов - C#
Что не так( int a = new int; int m = 1, n = 4; for (int i = 0; i &lt; n - m; i++) { ...

Найти количество пар соседних элементов, разность между которыми равна заданному числу - C#
Помогите пожалуйста, срочно надо. Дана последовательность из n действительных чисел. решить используя одномерный массив. Найти...


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

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

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