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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2013, 09:32   #1
AntonMike
 
Регистрация: 31.10.2013
Сообщений: 5
Восклицание Одномерный массив: последовательность элементов

Мужики, всем доброго времени суток!
У нас только началось программирование, учусь заочно. Дали задание:

Дан одномерный массив A из N элементов. Выяснить, составляют ли элементы заданного массива строго возрастающую последовательность или строго убывающую последовательность, либо эта последовательность не является строго монотонной.

Нашёл пример решения этой задачи на Delphi. Не могли бы Вы помочь с её переводом на C#?

Код:
var
n,n11,n12,n21,n22:integer;
mas:array of integer;
i: integer;
begin
   readln (n);
   for i:=1 to n do readln (mas[i]);
 
   n11:=0;
   n12:=0;
   n21:=0;
   n22:=0; 
   for i:=1 to n-1 do
      if mas[i]>mas[i+1] then inc(n11);
      if mas[i]<mas[i+1] then inc(n12);
      if mas[i]>=mas[i+1] then inc(n21);
      if mas[i]<=mas[i+1] then inc(n22);
   begin
 
   if n11=n then writeln('Strogo monotonaya - Vozrastaushaya')
     else if n12=n then writeln('Strogo monotonaya - Ubivayushaya')
        else if n21=n then writeln(' Monotonaya - NeUbivayushaya')
          else  if n22=n then writeln(' Monotonaya - NeVozrastaushaya')
            else Writeln('Ne Monotonnaya');
   
   readln;
   end;
end.
AntonMike вне форума Ответить с цитированием
Старый 31.10.2013, 09:42   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну давайте начнём с того, что представленное решение в Delphi не верное (не рабочее)!
во-первых, некорректная работа с динамическим массивом.
во-вторых, begin .. end стоят не на своих местах, (в цикле будет выполнятьс только первый if )
ну и в-третьих, никогда переменные n11.. n22 не будут равны n !
Serge_Bliznykov вне форума Ответить с цитированием
Старый 31.10.2013, 11:09   #3
AntonMike
 
Регистрация: 31.10.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ну давайте начнём с того, что представленное решение в Delphi не верное (не рабочее)!
во-первых, некорректная работа с динамическим массивом.
во-вторых, begin .. end стоят не на своих местах, (в цикле будет выполнятьс только первый if )
ну и в-третьих, никогда переменные n11.. n22 не будут равны n !
Спасибо за помощь, только я поэтому и написал, что не знаю.
AntonMike вне форума Ответить с цитированием
Старый 31.10.2013, 11:35   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Спасибо за помощь, только я поэтому и написал, что не знаю.
погодите благодарить то..
я не понял, чего Вы не знаете? Как решается ваша задача?
Или вообще ничего не знаете?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 31.10.2013, 12:20   #5
AntonMike
 
Регистрация: 31.10.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
погодите благодарить то..
я не понял, чего Вы не знаете? Как решается ваша задача?
Или вообще ничего не знаете?!
Сергей, не знаю как на СиШарп код написать. Условия сами.
Только начал работать в нём, вообще раньше с программированием не сталкивался.
Тренируюсь пока на простых массивах, но толку мало похоже...
AntonMike вне форума Ответить с цитированием
Старый 31.10.2013, 14:37   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ладно. код простой. в порядке исключения переложил я вашу дельфийскую программу на C#:
Код:
        static void Main(string[] args)
        {
            Console.Write("введите n: ");
            int n = Convert.ToInt32(Console.ReadLine());
            int[] mas = new int[n];
            for (int i = 0; i < n; i++)
            {
                Console.Write("введите mas[{0}] : ",i+1);
                mas[i] = Convert.ToInt32(Console.ReadLine());
            }

            int n11=0, n12=0, n21=0, n22=0;
            for (int i = 0; i < n-1; i++)
            {
               if (mas[i]>mas[i+1]) n11++;
               if (mas[i]<mas[i+1]) n12++;
               if (mas[i]>=mas[i+1]) n21++;
               if (mas[i]<=mas[i+1]) n22++;
            }

            Console.WriteLine(" n11 = {0}  n12 = {1}  n21 = {2}  n22= {3} \n\n", n11, n12, n21, n22);

            if (n11 == (n - 1))
            {
                Console.WriteLine("Strogo monotonaya - Ubivayushaya");
            }
            else
            {
                if (n12 == (n - 1))
                {
                    Console.WriteLine("Strogo monotonaya - Vozrastaushaya");
                }
                else
                {
                    if (n21 == (n - 1))
                    {
                        Console.WriteLine("NE Strogo monotonaya - Ubivayushaya");
                    }
                    else
                    {
                        if (n22 == (n - 1))
                        {
                            Console.WriteLine("NE Strogo monotonaya - Vozrastaushaya");
                        }
                        else
                        {
                            Console.WriteLine("NE monotonnay!");
                        }
                    }
                }
            }


            Console.WriteLine("\nPress any key to exit");
            Console.ReadKey();

        }
Serge_Bliznykov вне форума Ответить с цитированием
Старый 31.10.2013, 17:34   #7
AntonMike
 
Регистрация: 31.10.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ладно. код простой. в порядке исключения переложил я вашу дельфийскую программу на C#:
Код:
        static void Main(string[] args)
        {
            Console.Write("введите n: ");
            int n = Convert.ToInt32(Console.ReadLine());
            int[] mas = new int[n];
            for (int i = 0; i < n; i++)
            {
                Console.Write("введите mas[{0}] : ",i+1);
                mas[i] = Convert.ToInt32(Console.ReadLine());
            }

            int n11=0, n12=0, n21=0, n22=0;
            for (int i = 0; i < n-1; i++)
            {
               if (mas[i]>mas[i+1]) n11++;
               if (mas[i]<mas[i+1]) n12++;
               if (mas[i]>=mas[i+1]) n21++;
               if (mas[i]<=mas[i+1]) n22++;
            }

            Console.WriteLine(" n11 = {0}  n12 = {1}  n21 = {2}  n22= {3} \n\n", n11, n12, n21, n22);

            if (n11 == (n - 1))
            {
                Console.WriteLine("Strogo monotonaya - Ubivayushaya");
            }
            else
            {
                if (n12 == (n - 1))
                {
                    Console.WriteLine("Strogo monotonaya - Vozrastaushaya");
                }
                else
                {
                    if (n21 == (n - 1))
                    {
                        Console.WriteLine("NE Strogo monotonaya - Ubivayushaya");
                    }
                    else
                    {
                        if (n22 == (n - 1))
                        {
                            Console.WriteLine("NE Strogo monotonaya - Vozrastaushaya");
                        }
                        else
                        {
                            Console.WriteLine("NE monotonnay!");
                        }
                    }
                }
            }


            Console.WriteLine("\nPress any key to exit");
            Console.ReadKey();

        }
Спасибо большое, Сергей! Очень выручили меня. Нам дали 5 заданий. 4 я сделал, а на этом остановился.
Извините, что заставил потратить время, ещё раз спасибо! Буду разбираться теперь...
AntonMike вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив, убывающая последовательность (FreePascal) Malloperro Помощь студентам 8 02.11.2011 23:38
Не могу найти ошибку.. одномерный массив, убывающая последовательность Malloperro Помощь студентам 1 23.12.2010 21:15
Вставка элементов в одномерный массив DarkDeidara Помощь студентам 17 03.12.2010 12:13
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
одномерный массив n-элементов serj-07 Помощь студентам 1 24.03.2009 23:36