Професионална програма
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
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.