Професионална програма
Loading...
+ Нов въпрос
DimitrovDelyan avatar DimitrovDelyan 0 Точки

1.Data Type Finder , more exercise, c#

Здравейте колеги! Може ли помощ с тази задача,  нямам си на идея как да я реша, дори някакви насоки да ми дадете пак ще е от полза. Видях че има някаква вградена функция .GetType(), която ми връща само System.string.

Тагове:
0
Programming Fundamentals
Skaarjy avatar Skaarjy 14 Точки
Best Answer

Както колегата  предложи, само TryParse ти е нужно и се решава, макар  до момента да не са го споменавали конкретно на лекциите.  Понеже всичко реално е стринг, пробваш останалите възможности и ако не е нито едно от тях, значи си остава стринг.

Тъй де, ето моето решение.

https://pastebin.com/qB06JWDh

1
31/01/2019 16:31:45
mimisimi avatar mimisimi 17 Точки

Здравейте,аз също имам проблем с тази задача(на Java) . Както препоръча Михаил Великов в упражненията  smiley се поразрових и успях да я реша донякъде,но не работи за char . Виждам , че има други начини да се реши , но бих искала да я завърша по този.

Ако може да я погледнете - ето

0
Gemino avatar Gemino 18 Точки

Мерси много, колега! :) тези дето са онлайн като мен или питат Гугъл или във форума. 

0
VasilKotsev avatar VasilKotsev 808 Точки

.GetType() ще ти върне типа(мета данните) на променливата върху която си го извикал, това е Reflection и е доста по-advanced похват. Тук предполагам изискват да упражните и условните конструкции заедно със някакви TryParse-ове.

0
DenisCholakov avatar DenisCholakov 1 Точки

за GetType() не трябва ли да имаме обект от този тип. Внашия случай няма ли да връща само string ? 

0
01/06/2020 00:35:47
vipsister2014 avatar vipsister2014 5 Точки

Ето моето решение, защото още не съм гледал лекцията и не съм видял какъв начин е предложен, но това е моето решение с try catch.

https://pastebin.com/GizHRM8Y

0
31/01/2019 19:42:05
Elena123456 avatar Elena123456 65 Точки

Здравейте, туко-що попаднах в stackoverflow на един по-съкратен вариант на метода TryParse :  if (dataTypes.TryParse(input, out _))". Програмата работи коректно, без да е необходимо след "out" да изписвам отново типа на данните и Judge дава 100/100. Надявам се информацията да е от полза на някого в настоящия Fundamental module, а и за бъдещите такива.

https://judge.softuni.bg/Contests/Practice/Index/1271#0

using System;

namespace dataTypeFinder
{
    class MainClass
    {
        public static void Main(string[] args)
        {

            var input = Console.ReadLine();

            while (input != "END")
            {
                if (int.TryParse(input, out _))
                {
                    Console.WriteLine($"{input} is integer type");
                }

                else if(double.TryParse(input, out _))
                {
                    Console.WriteLine($"{input} is floating point type");
                }

                else if(char.TryParse(input, out _))
                {
                    Console.WriteLine($"{input} is character type");
                }

                else if(bool.TryParse(input, out _))
                {
                    Console.WriteLine($"{input} is boolean type");
                }

                else
                {
                    Console.WriteLine($"{input} is string type");
                }

                input = Console.ReadLine();
            }
        }
    }
}
 

0
MANEKENA avatar MANEKENA 21 Точки

С материала който е взет и до сега ,можеш да я решиш : решението ми е на java ,но ше го разбереш.

 


public class DataType2 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String input=scan.nextLine();
        while (!input.equals("END")){
            boolean isInt=false; boolean isDouble=false;int count=0; int dot=0;
            for(int i=0;i<input.length(); i++){
                char n=input.charAt(i);
                if(n>47&&n<58) {
                    count++;
                }else if(n==46){
                    dot++;
                }else if(i==0&&n==45){
                    count++;
                }
                if(count==input.length()){
                    isInt=true;
                }else if((count+1==input.length())&& dot==1){
                        isDouble=true;
                    }
            }
            if (isInt) {
                System.out.printf("%s is integer type%n", input);
            } else if (isDouble) {
                System.out.printf("%s is floating point type%n", input);
            } else if (input.length() == 1) {
                System.out.printf("%s is character type%n", input);
            } else if ("true".equals(input.toLowerCase()) || "false".equals(input.toLowerCase())) {
                System.out.printf("%s is boolean type%n", input);
            } else {
                System.out.printf("%s is string type%n", input);
            }
            input=scan.nextLine();
        }
    }
}
0