Loading...
Dexter avatar Dexter 119 Точки

[Q&A] C# outside "C# Basics"

Здравейте,

Днес се сетих да погледна домашното си, от темата "Примитивни типове данни и променливи", тъй като крайният срок за изпращането му е съвсем скоро и исках да съм сигурен, че броят бъгове и пропуски е сведен до минимум. Ровейки се из задачите и гледайки какво съм писал, се замислих колко много още имам да уча, но в същото време, гледайки отговорите на по-опитните от мен ( тук искам да изкажа, благодарности към тях, защото благодарение на това което споделяте, научаваме нови неща и извън самите куросве ), от това и следващите домашни и забелязах как нещата започнаха да ми стават по-ясни и задачи, които преди си нямах и идея как да реша, вече не ми изглеждат толкова страшни. И тъй като се въодушевих реших да спретна една програмка, просто ей така, за да видя какво мога да направя. Хрумнаха ми три неща - калкулатор, игричка "Познай числото от 1 до 100" и нещо което да вади информация, след като си въведеш ЕГН-то. В крайна сметка се спрях на последният вариант и ето какво се получи след няколко часа опити и грешки. Програмката е много проста, но аз много и се радвам, защото е първият ми така да се каже "самостоятелен проект" на C# -  без да гледам, как някой друг го е направил и да се опитват да го направя по мой начин. Всъщност идеята на темата, не беше да се похваля със "страховитите" ми C# умения, а да има тема, в която всеки да може да сподели, да попита, да коментира свои и чужди програмки, кодове, проекти и тн., които не са в "C# Basics" курса, но по един или друг начин ни помагат, за него и бъдещите куросве в Softuni. Ще се радвам, ако дадете предложения, къде мога да подобря програмката и по какви други начини може да бъде направена. :)

Dex

Тагове:
3
Programming Basics
Yulia avatar Yulia 1346 Точки

Страхотно е, че покрай всичките домашни и задачи, отделяш време за задоволяване на личното си любопитство! Наистина, смятам че именно това е начинът да се учи ефективно. Ноо програмката извади грешна информация за мен. Според ЕГН-то ми съм определена като мъж. Града го позна кой е, но... не съм родена в него, хах. Но може би съм някакво изключение. А като гледам кода, ми идват наум разни идеи за неща, които лично аз никога не съм писала, но знам, че ги има. Например, мисля че ползването на Dictionary би свършило страхотна работа за да избегнеш всичките условни конструкции. Но преди това трябва да се запознаеш с масиви, листове и т.н. Ако го разгледаш, ще видиш че речникът позволява да "свързваш" различна информация по двойки. Т.е имаш, например стринг (името на някой град) и ключ, по който го достъпваш. Не се чувствам достатъчно компетентна за да го обясня, но в  глава 18 на  книгата "Въведение в програмирането" е обяснено перфектно!

 

Когато решавах задачката за изчисляването на възрастта след 10 години, ми беше хрумнало и на мен да си поиграя и да извадя още информация като зодия и някакви нумерологични характеристики, хаха, нооо... се отказах :D За сметка на това пък направих картичка за рожденият ден на татко (която яко нарушава принципа DRY , но... иначе щях да изпусна рожденият ден ако се занимавах още да оправям кода xD ) Той живее в чужбина иии представа си няма с какво се занимавам, затова реших да го изненадам с една програмирана картичка. Е... бях забравила за факта, че той не може да се оправя с компютър за да я отвори, ноо както и да е... :D За да се тества, май трябва да се свали от тук --> download ZIP иии евентуално може да се наложи да се правят някакви настройки по конзолата.

 

Та, какво съм направила? Амии, най-вече си играх с конзолата - звук, цветове, четене на текстов файл ии принтиране на определени редове от него. Направих една малка и реално глупава "хитрост" в принтирането - а именно това, че първо програмата принтира едно стихотворение - с паузи, ред по ред... уж в такт с мелодийката на хепи бърдей, а после светкавично трие всичко и принтира всичко отново, но този път принтира "вторият вариант" на стихотворението, където на същите редове е позиционирана "картинка". Така се получава илюзията, все едно картинката е дорисувана след това, хаха. Определено трябва да има по-оптимизиран начин да се направи, но тогава за мен най-важното беше да работи.

 

Забавно ми беше да направя задачка 3 от най-първото домашно, където трябваше да си "поиграем" с MSDN и конзолата... та се възползвах на max :D Най-вече експериментирах с Console.SetCursorPosition и цветовете - успях да нарисувам цяла "картина" със зелено поле, синьо небе и къщурка, хихи. Ето там много добре си намери приложение "\r". Компилирайте си я, забавно е.

 

Иначе това са моите скромни проектчета до тук. Тези неща ще намерят приложение като разработваме конзолни игрички. Определено съм пълна с безумни идеи и съм мнооого любопитна за това какво ще излезе накрая, но за съжаление, времето ми е малко кът.

 

PS. По-принцип, има вече тема за лични проекти, но там май е много общо за всякакви проекти в IT сферата, големи и професионални.  Докато тук наистина би било супер да си споделяме разни свои мини "експерименти" със C# и кой какво е научил покрай тях. Затова нека и да бъде темата в категорията на курса.

2
Dexter avatar Dexter 119 Точки

Благодатя ти за изчерпателния отговор. Аз все още съм назад с домашните, точно заради проблема със свободното време и тази седмица се наложи да си взема отпуск, за да успея да наваксам с тях, а и да се потготвям за изпита, защото той наближава, а аз съм далеч от готов. Ааа сега за "програмката" > ако деветата цифта от ЕГН-то ти е четно число, не би трябвало да ти показва така :D За града да - там май е по-добре да напиша "Актът ви за раждане е издаден в..." Не бях чувал за Dictionary-то, но изглежда интересно да се направи с него. Като понапредна още, обезателно ще го пробвам. 

Това с картичакта се е получило много добре, даже е супер! Също така ми даде много хубава идея за картичка :) Само трябва да поразуча някои от нещата, които си ползвала, защото не съм запознат с всичко в кода. Още веднъж благодаря!  

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

1
RoYaL avatar RoYaL Trainer 6849 Точки

Аз не искам да звуча обезкуражаващ, но с какво тази програма изпънява нещо по-различно (outside) от C# basics?

 

В нея има точно нещата, които се учат в C# бейсикс, в най-raw варианта им: Делене на числа до получаване на някакво определено; получаване на остатък; писане в конзола и дълги if/elseif/else конструкции. Звучи ми просто като още един вариант на някоя от задачите от домашните. Такива варианти могат да се измислят хиляди, не мисля че е свързана с някакво по-разчупено мислене или пък с нещо по-различно от C# basics.

 

Както е казала Юлия, в този случай е трябвало да се ползва Dictionary (Или подобен начин за мапинг)

 

За всеки град ще имаш минимална и максимална стойност. Градът ще е ключ, който ще съдържа в себе си други дикшънърита със стингови ключове например from и to и интеджър стойности.

 

Нещо от този род

Bourgas =>

             from => 44,

             to    => 93

 

Като код би трябвало да се реализира с метода Add, като първо се добавя града и стойноста на дикшънъри и после към него вътрешните стойности:

 

cityMap.Add("Bourgas", new Dictionary<strnig, int>());

cityMap["Bourgas"].Add("from", 44);

cityMap["Bourgas"].Add("to", 93);

 

P.S.: Keep trying, както казах в началото не искам да съм обезкуражаващ, а може би така прозвуча коментара ми :) Не е била това идеята

2
Dexter avatar Dexter 119 Точки

Ааа въобще не звучиш така, даже напротив. :) В програмката няма нищо по-различно от нещата, които се преподават в курса "C# Basics", разликата е, че тази освен за extended интерпретации на някои от задачите в домашните, можем да я ползваме и за всякакви други неща, които ни е хрумнално да напишем - малки задачки, прости игрички и тн. Може би аз не кръстих темата правилно идеята ми беше, да е за неща, които не са от задачите за домашно (за тях си има отделни теми). Това е :) Благодаря за инфото, вчера точно се чудех, как да му се невиди се прави between в C#.

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