Loading...
ioanna.konova avatar ioanna.konova 47 Точки

[Homework] Programming Basics October 2015 - Introduction to Programming - Problems 8, 9, 15, 16

Здравейте отново, колеги! smiley

Много се извинявам, ако спамя, но имам няколко въпроса относно домашното за тази седмица.

И така...

1. При проблем 8 /square root of 12345/ имам 5 цифри повече отколкото в решението. Дали е проблем?
2. При проблем 9 и 16 в решението забелязах, че редиците от числа са изпринтени на един ред /отделени със запетаи/, а при мен се изпринтват на отделни редове. Едва ли това е грешно, но бих искала да разбера как става и на един ред със запетаи.
3. При проблем 16 мисля, че правилно съм го решила, но незнайно защо конзолата започва от -703, а не от 2. Някакви идеи?

И последно, но НАЙ-ВАЖНО, някой може ли да ми обясни /като за малоумни/ по какъв начин се решава проблем 15 /ages after 10 years/? Във форума намерих някакви решения, но според мен няма смисъл да ги копирам в моето решение, след като нищо не схващам.

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

0
Programming Basics 28/10/2015 15:37:29
Notes avatar Notes 34 Точки

Привет ! 

1. Според мен не е проблем да имаш повече цифри от колкото в решението 

2. Не можах да ти разбера въпроса 

3. Дай кода за да помогнем да и евентуално да видим къде си сгрешила 

За най-важното . Аз съм използвал тук променливи величини въведени чрез Console.Write и след това Console.Read  Вероятно има още много начини , но това е моя . Мисля , че на страница 130 -140 в книгата на Наков е описано как точно се прави това нещо . 

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

namespace AgeAfter10Years
{
    class AgeAfter10Years
    {
        static void Main(string[] args)
        {
            Console.Write("Please write your birthday");
            DateTime data = Convert.ToDateTime(Console.ReadLine());
            DateTime dnes = DateTime.Today;
            int godini = dnes.Year - data.Year;
            Console.WriteLine("Now you are {0} years old", godini);
            int sled = 10;
            Console.WriteLine("After 10 years you will be {0} years old", (godini + sled));
           
        }
    }
}

Ако все пак имаш още затруднения по задача и не я разбираш драсни едно съобщение или направо ме намери във фейса :)

3
iskren_velichkov avatar iskren_velichkov 3 Точки

Здравейте,
Това решение на Notes, е едно от най-добрите които намерих за AgeAfter10Years.
 

1
30/10/2015 14:49:24
Notes avatar Notes 34 Точки

Колега радвам се , че сме помогнали :) Нали затова е този форум

0
simeon.georgiev avatar simeon.georgiev 62 Точки

1. Може и да е проблем, за целта може да се ползва decimalVar.ToString("0.##"); . Като цяло отговора трябва да изглежда точно като примерните, до запетаите.

2. Става като във for-a слагаш Console.Write(arr[i] + ", "); с една проверка дали не е последната стойност, за да няма запетая накрая.

3. Без код няма как да се разбере.

4. Не помня условието, трябва да се слага линк, много са домашните за курса. като цяло DateTime now = DateTime.Now дава сегашната дата. int year = now.Year пък дава годината. Би трябвало да не е проблем нататък.

 

1
26/10/2015 18:31:25
Snejikirilova avatar Snejikirilova 0 Точки

Здравейте,

Моля за малко помощ. Номер 9 - нещо не ми идва на ум как би могло да стане?

 

Благодаря!

0
Snejikirilova avatar Snejikirilova 0 Точки

Здравейте,

Моля за малко помощ. Номер 9 - нещо не ми идва на ум как би могло да стане?

Може би с нещо такова?

for (int i = 10 - 1; i >= 0; i -= 2)

Благодаря!

0
26/10/2015 20:04:43
Notes avatar Notes 34 Точки

Здравей ! Моето решение на проблема е следното 

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

namespace PrintASequence
{
    class PrintASequence
    {
        static void Main()
        {
            for (int i = 2; i < 12; i++)
            {
                if (i % 2 == 0)
                {
                    Console.Write("{0},", i);
                }
                else
                {
                    Console.Write("{0},", -i);
                }
            }
            Console.WriteLine();
        }
    }
}

 

Може да има още много решения , по-кратки или по-дълги. Опитай се да изградиш логика върху това решение

2
ioanna.konova avatar ioanna.konova 47 Точки

Ейййййй, много благодаря за отговирите!!! Определено много ми помогнахте!

Ето как реших 8-ми, 9-ти, 15-ти и 16-ти проблеми:

 

8-ми проблем:

Нарушена точка 12 от Правилата.

0
26/10/2015 22:15:09
M.Chorbadjiev avatar M.Chorbadjiev 54 Точки

Добре си се справила колежке.На 16та задача вместо да умножаваш по -1 можеш да добавиш просто един стринг "-" и да премахнеш longSequence променливата.

 else
     {
        Console.Write("-" + i);
     }

И не поствай директно толкова код в един пост , защото модераторите ще го изтрият.Ако копираш повече от 15тина реда код го слагай тук http://pastebin.com

1
ioanna.konova avatar ioanna.konova 47 Точки

Благодаря ти за линкчето, колега! Нова съм и не знаех, че не е добре да се постват кодчетата директно тук.

0
sanker avatar sanker 12 Точки

Ето моето решение na Age after 10 years с ParseExact.

 

http://pastebin.com/KaJp8LB5

0
27/10/2015 04:04:16
alex.mitev avatar alex.mitev 20 Точки

ioana.konova За задача 15 - Години след 10 години, базирано на рождения ти ден.

 

1. трябва да се запознаеш с типове данни и по специално DateTime

2. трябва да се запознаеш с това как се четат данни от конзолата - Console.ReadLine()

3. трябва да се запознаеш с условните конструкции - if.

Когато го направиш, можеш да направиш следното:

- четеш DateTime birthday от конзолата;

- може да създадеш променлива за днешната дата  - DateTime.Now

- създаваш променлива age , която е равна на birthday.Year - DateTime.Now.Year.

- с if проверяваш дали DateTime.Now.Month > birthday.Month - ако е така, след десет години ще си на age + 10.

- ako месеците са равни, имаш 2 варианта - денят DateTime.Now.Day  > birthday.Day - тогава си age + 10. Else (DateTime.Now.Day < birthday.Day) не си навършила годините от age, затова си age + 9. 

Има и други начини, но това е на пръв поглед.

Дано е било полезно.

2
27/10/2015 12:12:55
ruivmit avatar ruivmit 8 Точки

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

Но за да решиш задачите със звездички, трябва да си изчела "Основи на програмирането" до 6-та глава, включително. И то два пъти. А също и да си решила задачите след всяка глава. Това поне е моето мнение.

Бих ти препоръчала следния линк, в който наш колега обяснява задачите от домашното. Малко е лошо качеството, но все пак е нещо. Ето и линка:

https://www.youtube.com/watch?v=i1hxSs7I-rg

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

Иначе пишеш в Гугъл: introduction to c# programming homework и направо ще ти се завие свят колко пъти, и по колко различни начини е решено настоящото домашно.

Който не е пожелал, той не си го е написал, пък дори и преписал.

Аз лично съм го докарала до 10-та задача, но и аз като теб първо искам да схвана алгоритъма на решаване, а не просто copy - paste.

Успех.

 

3
kaloyankostadinov avatar kaloyankostadinov 2 Точки

Здравейте,Колеги

Аз пък имам малък проблем при Run-ването на програмата.
Може да прозвучи малко смешно, но в един Solution си пдореждам всички задачи с кодове като New Project и като дам Run на примерно 4-тата задача и ми Run-ва първата. Защо става така и как да го оправя ? 

0
ruivmit avatar ruivmit 8 Точки

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

0
M.Chorbadjiev avatar M.Chorbadjiev 54 Точки

В Solution Explorer , цъкаш с дясно копче върху Solution-а , от падащото меню избираш Properties, отмяташ Current Selection и даваш ОК.

2
TonislavAtanasov avatar TonislavAtanasov 86 Точки

За да решиш Age After 10 Years прочети за следните неща:

1. Класа DateTime от .NET; Как се създава променлива от тип DateTime и какви операции можеш да правиш с нея (изваждане, например? дали?);
2. Какво означава "parse" и за какво служи (за да можеш да прочетеш входа от конзолата);
3. Как да прочетеш вход от конзолата (опционално). Или алтернативно на 2 и 3 може директно да си създадеш дата (да я "хардкоднеш" както се казва) и да я обработиш (виж 1).

Ами, май е това. Приятно четене! Ако имаш въпроси, драскай :)

Ето и моето решение от едно време. Пробвай да напишеш нещо сама. Ако не успееш или нещо не става както трябва, пробвай да дебъгнеш моя код и да видиш защо работи. Демек, разцъкай как се работи с дебъгера във Visual Studio. В скоро време ще е най-добрият ти приятел. Без майтап.

Поздрави и успех :)

3
27/10/2015 15:16:16
EyubDjelil avatar EyubDjelil 9 Точки

Както забелязахме има доста решения на една и съща задача. В програмирането рядко има граници. Реших и аз да напиша  малко по интересен вариант на задачата, само че използвам If конструкция която още не е взета.  Ето го и кода:

bool skip = true;
            for (int i = 2; i < 12; i ++)
            {
                if (skip) {
                    Console.Write(i + ",");
                    skip = false;
                }
                else {
                    Console.Write(-1 * i + ",");
                    skip = true;
                }
                
            }
            Console.WriteLine();

1
CrazyBo avatar CrazyBo 1 Точки

И аз започвам с въпросите - първо с най-елементарния. Когато цъкна F5, черния екран с резултата се появява за няма и секунда и не мога да видя дали всичко е ок. Как да го накарам да се задържи, за да разгледам?

0
fearr1 avatar fearr1 10 Точки

Ctrl + F5 

1
CrazyBo avatar CrazyBo 1 Точки

Благодаря! Мисля, че програмата ми се подиграва. На задачата с 1 , 101 и 1001  и на задачата да ми се принтират имената ги правя по абсолютно един и същ начин . В случая с цифрите с получава, в случая с имената ми отпечатва само първото име - само първия ред, Не мога да разбера защо. Моля за помощ.

{
            Console.WriteLine("Bogdana",
                              "Popova");

   }

Не ми показва errors..... :(
П.С още един въпрос - домашното, което е с кодове -как се предава ? Копирам кодовете в word doc ли или някакъв др начин?

0
fearr1 avatar fearr1 10 Точки

15-ти проблем: Решен с доста труд от моя страна :D

using System;

namespace AgeAfter10Years
{
    class MyAge
    {
        static void Main()
        {
            Console.WriteLine("Enter your birth date (YYYY,MM,DD): ");
            DateTime MyBirth = DateTime.Parse(Console.ReadLine());
            var DateNow = DateTime.Now;
            var MyAgeMonth = DateNow.Month   - MyBirth.Month;
            var MyAgeYear = DateNow.Year - MyBirth.Year;
            var MyAgeDay = DateNow.Day - MyBirth.Day;
            if (MyAgeMonth >= 0 && MyAgeDay>=0 )
            {
                Console.WriteLine("Your age is: " + MyAgeYear);
                Console.WriteLine("Your age after 10 years will be: " + (MyAgeYear + 10));
            }
            else
            {
                Console.WriteLine("Your age is: " + (MyAgeYear - 1));
                Console.WriteLine("Your age after 10 years will be: " + (MyAgeYear - 1 + 10));
            }            
        }
    }
}

2
28/10/2015 03:42:37
flashestswag avatar flashestswag 66 Точки

Здравей, много ми харесва решението ти :) но още малко не му достига, за да бъде вярно.
Давам ти пример:
Днес е: 28.10.2015
Рожденна дата 29.01.2000

И получаваме:
            var MyAgeMonth = 10 - 1 = 9
            var MyAgeYear = 2015 - 2000 = 15
            var MyAgeDay = 28 - 29 = -1

Понеже myAgeDay е отрицателно ще влезе в Else-а на If конструкцията.

                Console.WriteLine("Your age is: " + (MyAgeYear - 1));
                Console.WriteLine("Your age after 10 years will be: " + (MyAgeYear - 1 + 10));

И ще разпечата, че е на 14 години, а всъщност е на 15 навършени години :)

Ето така променено ще работи правилно:

if (MyAgeMonth > 0 || (MyAgeMonth == 0 && MyAgeDay >= 0))
{
    Console.WriteLine("Your age is: " + MyAgeYear);
    Console.WriteLine("Your age after 10 years will be: " + (MyAgeYear + 10));
}
else
{
    Console.WriteLine("Your age is: " + (MyAgeYear - 1));
    Console.WriteLine("Your age after 10 years will be: " + (MyAgeYear - 1 + 10));
}

 

 

2
28/10/2015 15:00:10
fearr1 avatar fearr1 10 Точки

Прави си, не се бях замислил и мерси за отговора :)

0
CrazyBo avatar CrazyBo 1 Точки

Моля ви, кажете ми как да предам домашното от visual studio? Да копирам кодовете в текстов документ или?

0
tsvetelin.tsvetanov.9 avatar tsvetelin.tsvetanov.9 13 Точки

Предаването на домашни става по следния начин: намираш си папката на Solution-a (във visual studio цъкваш с десен бутон върху Solution -> Open folder in file explorer), архивираш я в rar или zip формат и качваш архивираната папка на страницата на курса.

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