Loading...
Fujitzo avatar Fujitzo 9 Точки

[Exam] 26 April 2015 Evening - Problem 4 - Encrypt the Messages

Здравейте,

Доста ми се опъна тази задача, най-вече заради многото преобразувания и работа с масиви, списъци и какво ли не. Бих искал да накарам кода, който писах с много пот на челото да проработи. Видях авторските решения, разбирам ги, но искам да разбера точно защо моя код се държи така странно. 

https://github.com/Fujitzo/SoftUni/blob/ExamProblems26Apr2015/EncryptTheMessage/EncryptTheMessage.cs

1. Като за начало не мога да го накарам да излезе от цикъла за четене на "съобщения" дори като копирам решението от авторското решение.

2. След което програмата не взима под внимание първото вкарано съобщение

3. После, криптира всяко 2ро съобщение, вместо всички.. явно така и е кеф :D

4. Хваща "end" от 2рия път , което е върха на своенравието! хаха

Сигурно съм допуснал някакви нелепи грешки, но съм прекалено изморен да го измисля вече..

Благодаря предварително

 

Тагове:
0
Programming Basics
Simooo93 avatar Simooo93 81 Точки

Здравей,

Първо в закоментирания код си написал вместо || - && и затова не ти излиза от цикъла, защото стринга няма как едновременно да ти е end - END. При незакодирания код никъде не слагаш условие на първия си while(true) цикъл. Дебъгни и виж как точно седят нещата. Направи си някаква логика така че да излиза от цикъла. Примерно може да имаш два while цикъла. Първият ти е докато не ти се подаде команда старт, ако се подаде команда старт да се излезе от първия цикъл. След тов отдолу си хващаш с втори цикъл всичко редове, които не са край. Трябва да си измислиш логиката и да си подредиш кода. 

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

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

В момента не мога да ти прегледам стабилно кода, но предполагам, че ти криптира всяко второ съобщение, защото губиш много от данните, които ти се подават. Направи си една променлива подобна на input, но за вътрешния цикъл, която да ти държи данните и тях да проверяваш и криптираш. Така имаш два пъти вкарване във вътрешния цикъл и едното от тях се губи. 

Имаш много недообмислени работи, които можеш да оправиш като просто си дебъгнеш кода и проследиш кое къде отива, кое се губи и т.н 

Успех!

0
stefan2449 avatar stefan2449 6 Точки

Ето моето решение на една много сходна задача. Почти всичко е еднакво само че се казва Decrypt Message . За първия вход използвам  do-while, а за втория while.

0
29/08/2015 11:10:58
slavpetroff avatar slavpetroff Trainer 155 Точки

Това е моето решение на задачата : http://pastebin.com/BhHkrDW1

Може да бъде полезно на някой.

0
30/08/2015 13:13:43
AntonPortenov avatar AntonPortenov 102 Точки

Здравейте,

прилагам и моето решение. Опитах да разбия решението на методи и се получи :)

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

http://pastebin.com/eGw28hy2

0
Stephen_MS avatar Stephen_MS 4 Точки

Ето и моето решение:

http://pastebin.com/rKFeJjBv

стана по-сложно, отколкото очаквах и не знам дали може да се ползва StringBuilder, List и т.н. като не сме ги учили още ...

 

Това ми е 16-та задача от "6. Conditional-Statements-Homework"

0
silvi81 avatar silvi81 77 Точки

Наистина е доста оплетена тази задача. Доста се мъчих с нея. Ето и моето решение със StringBuilder:

Encrypt the Messages

0
27/11/2015 10:18:26
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.