Софтуерно Инженерство
Loading...
vessydi avatar vessydi 9 Точки

Относно задачата за пресмятане на лице на правоъгълник

Здравейте, във Visual Studio, кода сработи, но като го изпратя в системата на СофтУни, излиза, че е грешно. Може ли малко помощ как да го направя и къде бъркам? Благодаря предварително.

Ето го моя код: 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Rectanglesssss
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Enter Length Of A Rectangle:");
            var a = decimal.Parse(Console.ReadLine());
            Console.WriteLine("Enter Width Of A Rectangle:");
            var b = decimal.Parse(Console.ReadLine());
            Console.WriteLine("Rectangle Area is");
            var area = (a * b);

            Console.WriteLine(area);
           
       


        }
    }
}

r3v3nan7 avatar r3v3nan7 364 Точки

Ами като прегледах кода , изглежда че judge системата отчита като грешка изписаният на конзолата текст

Enter Length Of A Rectangle:
Enter Width Of A Rectangle:
Rectangle Area is

Ако желаеш опитай вместо 

 Console.WriteLine("Enter Length Of A Rectangle:");
            var a = decimal.Parse(Console.ReadLine());
            Console.WriteLine("Enter Width Of A Rectangle:");
            var b = decimal.Parse(Console.ReadLine());
            Console.WriteLine("Rectangle Area is");
            var area = (a * b);

            Console.WriteLine(area);

 

 

направо ето така без излишен текст

 

        var a = decimal.Parse(Console.ReadLine());
        var b = decimal.Parse(Console.ReadLine());
        Console.WriteLine(a*b);

 

Надявам се да ти помогне. Между другото да знаеш , че когато си изпратиш кода за проверка в една от графите пише детайли. Като кликнеш там  обикновенно ти дава какви са проблемите. Това е полезно и може много да ти помогне да разбереш какъв е проблемът. Надявам се да съм ти помогнал. Успех :)

7
nakov avatar nakov SoftUni Team Trainer 5294 Точки

Правилно. Нямаш право да извеждаш допълнителен текст, макар и да изглежда по-готино за крайния потребител.

Това е ограничение на автоматизираното оценяване.

Наков

10
vessydi avatar vessydi 9 Точки

Благодаря много и на двамата :)) Получи се. Сега се мъча с квадратчетата от звездички :) 

3
r3v3nan7 avatar r3v3nan7 364 Точки

Успех :) Ако ти потрябва помощ само кажи :) 

4
Lubomir avatar Lubomir 1 Точки

Привет!

Това означава ли, че единственият вариант, който автоматизираното оценяване ще приеме за верен, е:

var a = decimal.Parse(Console.ReadLine());
var b = decimal.Parse(Console.ReadLine());
Console.WriteLine(a*b);

?

Тъй като не съвпада с условието да се използва кода:

var a = decimal.Parse(Console.ReadLine());
var b = decimal.Parse(Console.ReadLine());

този метод долу ще бъде ли приет за верен:

static double GetRectangleArea(double width, double height)

{

      double area = width * height;

      return area;

}

И последно, каква е разликата между горните и тeзи 2-та:

1:

class CalcAvgPerc
    {
        public float length, breadth, radius, side, hieght, breadthfortriangle;
        static void Main(string[] args)
        {
            CalcAvgPerc a = new CalcAvgPerc();
            a.Rectangle();
            Console.ReadKey();
        }
            public void Rectangle()  
        {  
            Console.WriteLine("Enter the Length for Rectangle");  
            length = float.Parse(Console.ReadLine());  
            Console.WriteLine("Enter the breadth for Rectangle");  
            breadth = float.Parse(Console.ReadLine());  
            System.Threading.Thread.Sleep(2000);  
            Console.WriteLine("Area of rectangle is :{0}", length * breadth);  
        }
    }

2:

class AreaRectangle

{

    static void Main()

    {

        //Rectangle Area: A (area) = L (length) x W (width)

        Console.Write("Please write the length of your rectangle: ");

        decimal lengthSide = decimal.Parse(Console.ReadLine());

        Console.Write("Please write the width of your rectangle: ");

        decimal widthSide = decimal.Parse(Console.ReadLine());

 

        decimal area = lengthSide * widthSide;

        Console.WriteLine("The area of your rectangle is: {0}", area);

    }

}

Сигурно спамя, съжелявам :), нов съм и доста слабо се ориентирам. Продължавам да чета и търся.

0
r3v3nan7 avatar r3v3nan7 364 Точки

Освен този код

var a = decimal.Parse(Console.ReadLine());
var b = decimal.Parse(Console.ReadLine());
Console.WriteLine(a*b);

 

Мисля, че може да приемие подобен.. примерно 

var a = decimal.Parse(Console.ReadLine());
var b = decimal.Parse(Console.ReadLine());

var calculate = a * b;
Console.WriteLine(calculate);

Разбира се не съм сигурен, защото не съм го пробвал , но така ми идва по интуиция.

За разликата между двата кода , които си дал - 1 и 2 на този етап аз лично не мога да ти помогна, защото е извън знанията ми на този етап. Особено за първият вариант. Прилича ми много по-сложно написано, отколкото всъщност трябва да е. Освен това ако не съ лъжа ми прилича все едно е използвано обектно  програмиране, от което нямам представа, но със сигурност друг опитен колега ще ти каже каква е разликата между 1 и 2.

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

 

0
r3v3nan7 avatar r3v3nan7 364 Точки

Вторият вариант според мен judje ще го отсъди за грешно решение заради следните редове

 Console.Write("Please write the length of your rectangle: ");

   Console.WriteLine("Enter the breadth for Rectangle"); 

 

 

0
Lubomir avatar Lubomir 1 Точки

Благодаря ;)

 

1
chorlamata avatar chorlamata 2 Точки

Здравейте!

Да използвам темата да попитам за моето решение


            var a = decimal.Parse(Console.ReadLine());
            var b = decimal.Parse(Console.ReadLine());
            var area = a * b;
            {
                Console.WriteLine(area);
            }

Стартирам с Ф5 и като въведа стойности за А и Б и не мога да пресметна лицето.

Къде се крие проблемът? Благодаря предварително!

0
r3v3nan7 avatar r3v3nan7 364 Точки

Според мен проблемът е в тези къдрави скоби. Опитай да без тях и кажи дали се е получило :) Успех

0
raging avatar raging 92 Точки

1.То прави пресмятането , но се затваря конзолата веднага , за това ctrl+F5

2.Console.WriteLine-a няма смисъл да е в {}

3.Недей да ползваш var, ами конкретен тип 

:)

0
r3v3nan7 avatar r3v3nan7 364 Точки

Raging, 

Предполагам, че използва var, защото в петък ни беше първата лекция и не сме взели все още типовете данни. И  примера беше започнал с var променлива.

Тоест имахме а и б и те бяха в променливи var. 

0
raging avatar raging 92 Точки

Съгласиме :)

0
chorlamata avatar chorlamata 2 Точки

Да, все още не съм наясно с типовете и действам по указанието от задачата. Ще пробвам да махна къдравите скоби и ще докладвам. 

Edit - Грешката ми сигурно е елементарна, но аз си въвеждах а=3, b=4 и като натисна ентер ми изписваше Unhandled Exception. Сега въвеждам само числата и всичко си е както трябва :) 

Благодаря ви!

0
19/01/2016 16:15:26
r3v3nan7 avatar r3v3nan7 364 Точки

И за да видиш резултата използвай това, което Raging написа , защото е прав. Не само F5 ами Ctrl+F5. Така ще видиш и резултата. 

0
chorlamata avatar chorlamata 2 Точки

Да, да Ctrl+F5 използвам, но явно не съм написала това :):):) 

10х

0
PoLinda avatar PoLinda 1 Точки

Добре, краткият текст му рабирам логиката, но как го проверяваме дали работи без judge системата? 

Опс, сега го намерих, въвеждаш "а", на нов ред "б" и Enter. Аз въвеждах на един ред и ми даваше грешка.

 

1
pspassova avatar pspassova 2 Точки

Добре, аз опитах по сумати различни начини и не ми се получи, при което вече написах дословно този твой код- пак не ми го приема (независимо в какъв вариант е, съкратен или не). И дори не ми дава Х, както обикновено прави при грешки в кода, а само "Грешка при компилация". Oh, God!

0
r3v3nan7 avatar r3v3nan7 364 Точки

Здравей :) На мен проблеми с компилацията ми дава, когато не въведа целият код, примерно ако въведа само

 var a = decimal.Parse(Console.ReadLine());
        var b = decimal.Parse(Console.ReadLine());
        Console.WriteLine(a*b);

ще изписка , че не може да се компилира, затова

using System;

class RectangleArea 

{

 var a = decimal.Parse(Console.ReadLine());
        var b = decimal.Parse(Console.ReadLine());
        Console.WriteLine(a*b);

така би трябвало да компилира

0
pspassova avatar pspassova 2 Точки

Не става и това е. Благодаря все пак, че се опита :D

0
r3v3nan7 avatar r3v3nan7 364 Точки

Ако искаш ми напиши тук като съобщение абсолютно точно какво пишеш

 и ще вляза в judge-системата и ще го тествам отново :) 

Ако се наложи и клипче мога да направя 

0
pspassova avatar pspassova 2 Точки

Пробвах по следните начини:

namespace RectangleArea
{
    class Program
    {
        static void Main(string[] args)
        {
            var a = decimal.Parse(Console.ReadLine());
            var b = decimal.Parse(Console.ReadLine());
            Console.WriteLine( a * b );
        }
    }
}

също и без допълнителните отгоре и отдолу неща, макар че ти каза, че без тях по-скоро няма да се получи, е- беше прав; също и  Console.WriteLine(a*b);  без интервалите, които има в първия пример; също и горните примери, които сте изписали.....

0
r3v3nan7 avatar r3v3nan7 364 Точки

    using System;

    class RectangleArea
    {
        static void Main()
        {
            var a = decimal.Parse(Console.ReadLine());
            var b = decimal.Parse(Console.ReadLine());
            Console.WriteLine( a * b );
        }
    }
 

 

И бъди сигурна , че го paste тук https://judge.softuni.bg/Contests/Practice/Index/150#4

1
pspassova avatar pspassova 2 Точки

Ей, най-накрая! Благодаря супер много, ама защо на конзолата ми се получава по моите начини, а тук не? Аз така никога няма да успявам да си правя домашните ако са в judge-a :D

1
r3v3nan7 avatar r3v3nan7 364 Точки

Според мен сега когато сме начинаещи е хубаво да ни е по-чист кода. Искам да кажа:

Пробвах по следните начини:

                                                                         ->тук липсва нещо много важно using System;

namespace RectangleArea                       -> namespace е излишен на този етап
{
    class Program
    {
        static void Main(string[] args)                                           -> Маin може да е празен , тоест static void Main.
        {
            var a = decimal.Parse(Console.ReadLine());
            var b = decimal.Parse(Console.ReadLine());
            Console.WriteLine( a * b );
        }
    }
}

 

Примерно аз когато почвам да решавам задача и си отварям  нов файл.. първо трия всичко в него и почвам така

using System;

class Име_На_Задачата

{

          static void Main()

          {

 

          }

}

 

виждаш ли колко е изчистено. А другите неща на този етап са ни напълно ненужни. А лично смятам , че преди малко понежи си изпуснала using System; ти е създало главоболията :)  Надявам се това да ти помогне :) 

 

 

 

 

0
pspassova avatar pspassova 2 Точки

Ох,да. То просто си стой най-отгоре в кода и аз абсолютно се абстрахирам от наличието му, ще почна и аз да си го пиша да не го забравям.

0
r3v3nan7 avatar r3v3nan7 364 Точки

Да и според мен е най-добре така :) А то е много важно, защото чрез using ти му казваш каква библиотека да използва. 

Без библиотеката System , jugdе-а или който и да е компилатор не може да използва Console.Readline(); или пък 

Console.Writeline(); , защото техните дефиниции се намират в System, и без using System, не може да се разпознаят.

Разбира се има още много и най-различни библиотеки с функции , които рано или късно може би ще ти се наложи да използваш

и затова мисля че сега е най-важно да свикнеш да ги вмъкваш.

1
DimitarKarev avatar DimitarKarev 86 Точки

Няма значение от самият код. може и 500 реда да изпишеш въпроса е изхода да ти бъде във формата в който се изисква и да бъде без излишни неща.

0
emilgoshev avatar emilgoshev 0 Точки

Здравейте,

Относно задачата за лице на правоъгълник, когато въведа кода, и натисна ctrl+F5, ми излиза празен черен екран и не мога да разбера дали е правилно или не. Ето кода:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication7
{
    class Program
    {
        static void Main(string[] args)
        {
            var a = decimal.Parse(Console.ReadLine());
            var b = decimal.Parse(Console.ReadLine());
            Console.WriteLine(a * b);
        }
    }
}
 

0
skstefanov avatar skstefanov 0 Точки

 Здравейте!

 Да, аз също срещнах трудности, което е нормално за абсолютен лаик като мен. И да, аз също - както и други са писали, че се чувствали не на място, вземайки на готово код. След няколко опита, част от които минах през "Съдията", въпреки червените индикации за грешка във Visual Studio, накрая ми светна "дзилену".

 Но имам и питане - Защо имам чувството, че тази задача ми стои недоправена? Може би, защото е... ;)  Идва от това, че "Напишете C# програма, която прочита от конзолата две числа a и b, пресмята и отпечатва лицето на правоъгълник със страни a и b. " няма никакво пресмятане, колкото и да се опитвам да пиша числата...

 Поздрави!

0
Riley1881 avatar Riley1881 0 Точки

Здравейте , прочетох всичките ви коментари и пробвах всяко едно нещо(явно някъде бъркам). Та всеки път ми излиза грещка "No overload for method 'ReadLine' takes 1 arguments" . Днес ми беше първата лекция(сиреч съм нов). Извинявам се и помагайте/насочвайте :)

 

0
TeodorDonchev avatar TeodorDonchev 0 Точки

using System;


namespace RectangleArea
{
    class Program
    {
        static void Main(string[] args)
        {
            decimal a = decimal.Parse(Console.ReadLine());
            decimal b = decimal.Parse(Console.ReadLine());

            decimal Area = a * b;
            Console.WriteLine(Area);
        }
    }
}

0
TeodorDonchev avatar TeodorDonchev 0 Точки

@emilgoshev , когато натиснеш Ctrl + F5 и ти излезне конзлата просто въведи две числа, като след всяко натискаш enter и ще получиш отговор и ще разбереш дали работи или не.

0
IvanPeshov avatar IvanPeshov 0 Точки

Доста полезен пост за справяне с първото домашно :)  Благодаря :)

0
mickewasowski avatar mickewasowski 0 Точки

Чувствам се като пълен идиот. Правя кода и ми тръгва, но как или по-точно къде трябва да въведа числата, за да получа отговора за лицето? Въвеждам ги в скобите на Console.ReadLine() и ми излиза грешка. Къде бъркам?

0
NikolaiSt avatar NikolaiSt 5 Точки

Ааа то с * аз не се сетих, че е звезда :). Мерси !

Аз го нашисах 

        var a = decimal.Parse(Console.ReadLine());
        var b = decimal.Parse(Console.ReadLine());
        Console.WriteLine(a);

        Console.WriteLine(b);

 

0
petrove avatar petrove 0 Точки

Здравейте, благодарение на форума реших последната задача . благодарско 

 

using System;
                    
public class Program
{
    public static void Main()
    {
        
        Console.WriteLine("Triangle area formula = a * b = c");
        Console.WriteLine();
        
        Console.WriteLine("To have result you must fill value of two sides of triangle");
        
        Console.WriteLine();
        Console.WriteLine();
        
        Console.WriteLine("Length of side a = ");
        
        double a = double.Parse(Console.ReadLine());
        
        Console.WriteLine("Length of side b = ");
        
        double b = double.Parse(Console.ReadLine());
        
        var area = (a * b);
        
        Console.Write("Triangle Аrеа is = ");
        Console.WriteLine(area);
        
        
                  
    }
}

0