Професионална програма
Loading...
+ Нов въпрос
iGeorg1ev avatar iGeorg1ev 224 Точки
Best Answer

Здравей,

Ето го решението върху твоя код, което дава 100%: https://pastebin.com/QKcL53PR

   1. Направил съм 2 метода за Switch & Change ще видиш каква е идеята.

   2. Имаше грешка при Insert. В твоя случай се мъчиш да видиш дали картината съществува, а идеята е да ограничиш индекса, така че да е валиден. И там ще се ориентираш като видиш разликите.

Ако мога да помагам с още нещо само кажи :)

Иво

 

 

 

0
EmoBG avatar EmoBG 3 Точки

Мерси много!

0
Saikor avatar Saikor 14 Точки

Аз също имам някакъв проблем със Switch командата. В първия случай работи, а във втория не. Ако някой може да помогне ще бъда благодарен. Условието е същото като от предния пост. 

 

https://pastebin.com/uUWNzXy6

0
Rogachev avatar Rogachev 0 Точки

Помагайте гърми здраво!!! :(

 

using System;
using System.Linq;
using System.Collections.Generic;

namespace midExam
{
    class Program
    {
      static  List<int> Numbers = new List<int>();

        static void Main(string[] args)
        {
             Numbers = Console.ReadLine()
               .Split(" ")
               .Select(int.Parse)
               .ToList();

            string comand = Console.ReadLine();
            while (comand != "END")
            {
                string[] comandSplitet = comand.Split();
                
                    switch (comandSplitet[0])

                {
                    case "Insert":
                        {
                            int firstNum = int.Parse(comandSplitet[1]);
                            int secNum = int.Parse(comandSplitet[2]);

                            if (firstNum<0||firstNum>=Numbers.Count)
                            {
                                break;
                            }
                            else
                            {
                            InsertFunk(firstNum, secNum);
                            
                            }
                            break;
                        }
                    case "Switch":
                        {
                            int firstNum = int.Parse(comandSplitet[1]);
                            int secNum = int.Parse(comandSplitet[2]);

                            bool cont = false;

                            for (int i = 0; i < Numbers.Count; i++)
                            {
                                if(Numbers[i]==firstNum||Numbers[i]==secNum)
                                {
                                    cont = true;
                                }
                            }
                            if(cont)
                            {
                                SwitchFunk(firstNum, secNum);
                                break;
                            }
                            else
                            {
                                break;
                            }
                            
                        }
                    case "Hide":
                        {
                            int firstNum = int.Parse(comandSplitet[1]);
                            
                            bool cont = false;
                            for (int i = 0; i < Numbers.Count; i++)
                            {
                                if(Numbers[i]==firstNum)
                                {
                                    cont = true;
                                }
                            }
                            if(cont)
                            {
                                HideFunk(firstNum);
                            }
                            else
                            {
                                break;
                            }
                            break;
                        }
                    case "Reverse":
                        {
                            for (int i = 0; i < Numbers.Count / 2; i++)
                            {
                                int tmp = Numbers[i];
                                Numbers[i] = Numbers[Numbers.Count - i - 1];
                                Numbers[Numbers.Count - i - 1] = tmp;
                            }
                           
                            break;
                        }
                    case "Change":
                        {
                            int firstNum = int.Parse(comandSplitet[1]);
                            int secNum = int.Parse(comandSplitet[2]);

                            bool cont = false;

                            for (int i = 0; i < Numbers.Count; i++)
                            {
                                if (Numbers[i] == firstNum)
                                {
                                    cont = true;
                                }
                            }
                            if (cont)
                            {
                                ChangeFunk(firstNum, secNum);
                                break;
                            }
                            else
                            {
                                break;
                            }


                            
                        }

                    default:
                        break;
                        
                }
                comand = Console.ReadLine();

            }
            Console.WriteLine(string.Join(" ", Numbers));
        }


            static void InsertFunk(int index, int number)
            {
                Numbers.Insert(index + 1, number);
            
            }
            static void SwitchFunk(int one, int two)
            {
            int indexone = 0;
            int indextwo = 0;

            for (int i = 0; i < Numbers.Count; i++)
            {
                if (Numbers[i] == one)
                {
                     indexone = i;
                }
                if (Numbers[i] == two)
                {
                     indextwo = i;
                }
            }
            int temp = one;
            Numbers[indexone] = Numbers[indextwo];
            Numbers[indextwo] = temp;
            }

            static void HideFunk(int one)
            {
            Numbers.Remove(one);

            }
            
            static void ChangeFunk(int one, int two)
            {
            int indexone = 0;
            

            for (int i = 0; i < Numbers.Count; i++)
            {
                if (Numbers[i] == one)
                {
                    indexone = i;
                }
            }
            Numbers.RemoveAt(indexone);
            Numbers.Insert(indexone, two);

        }
        
    }
}
 

0