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

Здравей,

не мисля, че е правилен алгоритъма на заместване, който ползваш. В смисъл - по този начин караш програмата да замести навсякъде в думата, където се среща дадена буква. Пробвай например с "cangaroo" или "xerox" и ще разбереш за какво говоря.

1
vilin avatar vilin 5 Точки

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

0
ognyan.penkov avatar ognyan.penkov 49 Точки

тамън се чудих защо правиш толкова много проверки и замествания, като на думите завършващи на o, ch, s, sh, x и z просто трябва да им добавиш es накрая (така както си го направил в последният else)? Защото ненужно премахваш последната/последните букви и после пак ги добавяш.

0
25/05/2017 22:35:51
vilin avatar vilin 5 Точки

Кажи как да ги направя. Пробвах няколко начина, не се получи.

0
Georgieva_Nadezhda avatar Georgieva_Nadezhda 28 Точки
using System;

class WordInPlural
{
    static void Main()
    {
        string word = Console.ReadLine();
        char one = word[word.Length - 1];
        char two = word[word.Length - 2];
        if (one == 'y')
        {
            word = word.Remove(word.Length - 1);
            Console.WriteLine(word + "ies");
        }
        else if (one == 'o' || one == 's' || one == 'x' || one == 'z' || (one == 'h' && two == 'c' || two == 's'))
        {
            Console.WriteLine(word + "es");
        }
        else 
        {
            Console.WriteLine(word + "s");
        }
    }
}


Ето един вариант :)

2
julia.petkova avatar julia.petkova 10 Точки

Още един вариант
 

      static void Main(string[] args)
        {
            string word = Console.ReadLine();
            string newWord;


            bool wordY = word.EndsWith("y");  // проверка дали завършва на "Y"
            bool wordZ = word.EndsWith("o") || word.EndsWith("s") || word.EndsWith("x") || word.EndsWith("z") || word.EndsWith("ch") || word.EndsWith("sh");
            bool wordZZ = word.EndsWith("ch") || word.EndsWith("sh");


            if (wordY == true)
            {
                newWord = word.Remove(word.Length - 1, 1);  // премахва последните n-символa от стринга       
                Console.WriteLine($"{newWord}ies");
            }
            else if (wordZ == true)
            {
                Console.WriteLine($"{word}es");
            }
            else
            {
                Console.WriteLine($"{word}s");

            }

0
PoliDobreva avatar PoliDobreva 1 Точки

В момента решавам задачата>Може ли да обясните какво точно е единицата след запетаята в скобите на remove ? newWord = word.Remove(word.Length - 1, 1);      

0
TeodorStefanovPld avatar TeodorStefanovPld 1275 Точки

word.Remove(word.Length - 1, 1);    тoва казва на стринга отиди на последното място и махни един символ. Тоест ако имаш : simphony като пример дължината на string-a e 8. Но тъй като започваш от 0 да броиш последния символ е на 7мо място и е y. И казваш на string-a отиди на позиция 7 и махни точно 1 символ.в случая може и без него,тъй като махаш последния символ но ако махаш нещо от средата или началото с число на мястото на 1цата в случая може да уточниш дължината на поредицата кояот искаш да махнеш

Махаш го и вместо него добавяш ies. както е по условието на задачата.

0
Rumyanarusimova avatar Rumyanarusimova 20 Точки

https://pastebin.com/LdMBFTQF

Още един вариант.

0
Bullsized avatar Bullsized 153 Точки

https://pastebin.com/hRxbp91R

стринговете всъщност са колекция от чар-ове. (масив по-нататък ще взимаме от този курс, няма да навлизам в обяснение) това, което гледам и други колеги са направили е да си раздробят думата и просто да проверят коя е последната буква, като по този начин става много лесно и с 3 иф-а можеш да си решиш задачата. също - string.Join - доста полезен оператор, който върши бая работа в такива задачки, също така командата за залепяне "+" директно в скобите на Write или WriteLine прави чудеса :) 

другото - има доста начини за решаване на една задача, не се притеснявай ако някой друг я е направил по друг начин. обикновено метода, който ти хрумне още докато четеш условието в 90% от случайте излиза успешен, ако не - изтривай всичко и започвай наново е моя съвет :)

1
26/05/2017 03:30:19
DAtanasova avatar DAtanasova 4 Точки

Здравей, предлагам ти моето решение. Не съм много сигурна до колко е оптимално, но в judge ми дава 100/100. Дано ти помогне:
https://pastebin.com/znwAbiVH

1
minito99 avatar minito99 23 Точки

 Ето едно кратко решение което минава 100/100 :)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices.ComTypes;
using System.Text;
using System.Threading.Tasks;

namespace Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            string word = Console.ReadLine();
            
        
            bool a = word.EndsWith("o") || word.EndsWith("ch") || word.EndsWith("s") || word.EndsWith("sh")
                      || word.EndsWith("x") || word.EndsWith("z");


            if (word.EndsWith("y"))
            {
                word = word.Remove(word.Length - 1);
                Console.WriteLine(word + "ies");
            }
            else if (a)
            {
                Console.WriteLine(word + "es");
            }
            else
            {
                Console.WriteLine(word + "s");
            }
        }
    }
}

 

0
Rumyanarusimova avatar Rumyanarusimova 20 Точки

Още по-кратко.https://pastebin.com/HiFCZuyt

0
emil89 avatar emil89 0 Точки

Колеги, джъджа дава 100/100, но в случая, ако трябва да сме по-точни по този начин не се разглеждат всички възможни случаи. Ето какво имам в предвид:

//Nouns ending in s, z, x, sh, and ch form the plural by adding – es
//Nouns ending in – y preceded by a consonant is formed into a plural by changing – y to – ies.
//Nouns ending in y preceded by a vowel form their plurals by adding – s. (e.g.boy, boys; day, days)
//Most nouns ending in o preceded by a consonant is formed into a plural by adding es
//Some nouns ending in f or fe are made plural by changing f or fe to – ves. (e.g.beef, beeves; wife, wives)

И така например ако напишем "Butterfly" получаваме "Butterflies". Ако обаче пробвате да напишете думата "Array" множественото число го изкарва "Arraies", а правилното е "Arrays". Същото ще бъде и ако пробвате да напишете "Wolf" или "Wife". С този код на Руми се получава "Wolfs" или "Wifes", вместо правилните "Wolves" или "Wives". :)

Ето го и моето решение, само дето и аз не мога да го измисля как да разгледам и двата случая, а именно:
- Ако завършва на Y и предпоследната буква е съгласна
- Ако завършва на Y и предпоследната буква е гласна

https://pastebin.com/QxSD20Zs

0
02/06/2017 18:53:39
Radostta avatar Radostta 6 Точки

Ето и решението, които аз успях да направя най-лесно.

0