Jump to content

Програмирање - лекција бр. 1

Оцени ову тему


Препоручена порука

Ja sad razmišljam o tome kako da prekinem tu beskonačnu petlju,tipa da petlja ide sve dok ja u naziv proizvoda recimo ne unesem 0,x,ili šta god i da mi onda on izbaci listu,do nje još nisam dogurao :citac:Isprobavam nešto sa if petljom,i recimo ako stavim uslov if (nazivproizvoda = 0) ; on mi kaže ne možete konvertovati int  u string a ja ga definisao na početku kao string ako stavim "0" onda kaže ne možete konvertovati tip string  u bool.Čas je string čas je integer.:bu:

Најдубља молитва јесте  молитва без икаквих речи када у тишини ума једноставно живимо у присуству Божијем. Архимандрит Сава Јањић

Link to comment
Подели на овим сајтовима

  On 23. 3. 2017. at 20:26, Juanito рече

Ако будете превише отезали, добићете задатак да у цене урачунате и инфлацију која је у међувремену појела динар. 

Expand  

:))

Најдубља молитва јесте  молитва без икаквих речи када у тишини ума једноставно живимо у присуству Божијем. Архимандрит Сава Јањић

Link to comment
Подели на овим сајтовима

  On 23. 3. 2017. at 20:26, Кратос рече

Ja sad razmišljam o tome kako da prekinem tu beskonačnu petlju,tipa da petlja ide sve dok ja u naziv proizvoda recimo ne unesem 0,x,ili šta god i da mi onda on izbaci listu,do nje još nisam dogurao :citac:Isprobavam nešto sa if petljom,i recimo ako stvaim uslov if (nazivproizvoda = 0) ; on mi kaže ne možete konvertovati int  u string a ja ga definisao na početku kao string ako stavim "0" onda kaže ne možete konvertovati tip string  u bool.Čas je string čas je integer.:bu:

Expand  

ОК, то није био захтев оригинално у задатку. А рок се приближава... :)

Можеш ако корисник само притисне "ентер", тј. не унесе ништа за име производа да изађеш из петље.

ΜΟΛΩΝ ΛΑΒΕ

Link to comment
Подели на овим сајтовима

  On 23. 3. 2017. at 20:26, Кратос рече

Ja sad razmišljam o tome kako da prekinem tu beskonačnu petlju,tipa da petlja ide sve dok ja u naziv proizvoda recimo ne unesem 0,x,ili šta god i da mi onda on izbaci listu,do nje još nisam dogurao :citac:Isprobavam nešto sa if petljom,i recimo ako stvaim uslov if (nazivproizvoda = 0) ; on mi kaže ne možete konvertovati int  u string a ja ga definisao na početku kao string ako stavim "0" onda kaže ne možete konvertovati tip string  u bool.Čas je string čas je integer.:bu:

Expand  

Тај начин са прекидањем кад се унесе одређено име производа није дизајнерски најсрећније решење. Али да не улазимо у то за сада (боље је да истражујеш, па ћеш после скапирати зашто није најсрећније), једнакост се тестира са ==, a не са =. = се користи за доделу вредности. Дакле, треба да стоји if  (nazivproizvoda == ”0”). 0 не може јер у C#-у мораш да поштујеш типове. Рекао си да је nazivproizvoda string, тако да не може никада бити 0 јер је 0 int. У неким другим језицима, као што је JavaScript, то би могло да прође јер нема типова, али овде не може, мораш да поштујеш ”прописе”.

А компајлер је бистар ко литар бозе. Уместо да ти одмах каже да се == мора користити за поређење, он те вода у круг.

Link to comment
Подели на овим сајтовима

  On 23. 3. 2017. at 20:29, Grizzly Adams рече

ОК, то није био захтев оригинално у задатку. А рок се приближава... :)

Можеш ако корисник само притисне "ентер", тј. не унесе ништа за име производа да изађеш из петље.

Expand  

Neće,onda me prebaci na  količinu e a kad udarim na količinu enter,koju sam definisao kao integer,onda mi otvori kod i pokazuje grešku da je pogrešan format izabran.

Најдубља молитва јесте  молитва без икаквих речи када у тишини ума једноставно живимо у присуству Божијем. Архимандрит Сава Јањић

Link to comment
Подели на овим сајтовима

  On 23. 3. 2017. at 20:46, Кратос рече

Neće,onda me prebaci na  količinu e a kad udarim na količinu enter,koju sam definisao kao integer,onda mi otvori kod i pokazuje grešku da je pogrešan format izabran.

Expand  

Пробај овако:


                Console.Write("Unesi proizvod: ");
                proizvod = Console.ReadLine();

                if (proizvod == "")
                    break; // Ovo te izbacuje iz petlje.

Значи, прескочиш унос количине итд. Ова команда "брејк" те одмах избацује из петље.

ΜΟΛΩΝ ΛΑΒΕ

Link to comment
Подели на овим сајтовима

@Grizzly Adams

У C#, додела је израз који има вредност:

  Цитат

csharp> int a = 0
csharp> var b = a = 1
csharp> b
1

Expand  

Зато if (a = 1) даје грешку да не може да конвертује int у bool која је нејасна јер нико то и не покушава, једноставно је грешка у оператору. У Swift-у је друга линија изнад нелегална:

Welcome to Apple Swift version 3.0.2 (swiftlang-800.0.63 clang-800.0.42.1). Type :help for assistance.
  1> var a = 0
a: Int = 0
  2> var b = a = 1
// error: could not fetch result -- error: Couldn't apply expression side effects : Couldn't dematerialize b: corresponding symbol wasn't found

Грешка је врх (значи стварно врх :smeh1:), али је поента да додела није израз и да је претходно бесмислено. То им омогућава да дају исправну дијагнозу кад покушаш да користиш = за поређење:

  4> if a = 0 { print("bla bla") }
error: repl.swift:4:6: error: use of '=' in a boolean context, did you mean '=='?
if a = 0 { print("bla bla") }
   ~ ^ ~
     ==

 

Link to comment
Подели на овим сајтовима

  On 23. 3. 2017. at 20:56, Juanito рече

Зато if (a = 1) даје грешку да не може да конвертује int у bool која је нејасна јер нико то и не покушава, једноставно је грешка у оператору.

Expand  

Ал зато у С++ не даје грешку, па ти нађи после багчину... :)

  • Волим 1

ΜΟΛΩΝ ΛΑΒΕ

Link to comment
Подели на овим сајтовима

Mislim da će najbolje biti da ja uslikam kod pa da vidite.

  On 23. 3. 2017. at 20:51, Grizzly Adams рече

Пробај овако:


                Console.Write("Unesi proizvod: ");
                proizvod = Console.ReadLine();

                if (proizvod == "")
                    break; // Ovo te izbacuje iz petlje.

 

Expand  

Ovo radi  u smislu da me izbaci iz konzolne aplikacije i vrati na kod,ali nema nikakvih grešaka.I to je nešto za početak.:ani_biggrin:

Најдубља молитва јесте  молитва без икаквих речи када у тишини ума једноставно живимо у присуству Божијем. Архимандрит Сава Јањић

Link to comment
Подели на овим сајтовима

tumblr_nbe35zqXKX1t1ye6to1_500.gif

Само да вам махнем...покушаћу сутра да завршим касицу...

Путници, нема пута, путеви се стварају ходањем!

А.М.

 

Link to comment
Подели на овим сајтовима

  On 23. 3. 2017. at 1:29, Снежана рече

код вариабли, шта је то int.Pаrse() метод?

Expand  

Код оваквог претварања у целобројну вредност мораш имати механизам хватања изузетка иначе ће ти врло вероватно понекад пући програм. Зато је прикладније користити int.TryParse са out варијаблом као резултатом парсирања која враћа логичко тачно или погрешно и не избацује изузетак. Ето могао би вам Гризли мало прозборити о хватању изузетака и важности тог аспекта програмирања у C#. Нешто попут овога:

try { blok naredbi; } catch(Exception ex) { throw ex;} finally{ bloka naredbi;}

"Свуда пођи, себи дођи." - Владимир М. Миливојевић  deka.gif

Link to comment
Подели на овим сајтовима

Za sve vas koji ste poceli, radite ili ste zavrsili zadatak mogu samo reci: SVAKA CAST!!!

Ja ne mogu bas da pratim tim tempom ali se tesim da je pocetak najtezi i da ce posle ici malo brze kako budem usvajala terminologiju...

Elem, evo jedno malo neobicno pitanjce. Ovaj kod iz knjige radi (proverila!) ali meni nikako nije jasno kako?

 int number = 0;

            while(number < 5)
            {
                Console.WriteLine(number);
                number = number + 1;
            }

            Console.ReadLine();

 

Kako on moze da sabira tj. tretira broj kao broj iako mu ja nijednog trenutka nisam rekla da to procita kao broj? Zar se svaki pocetni unos (cak i broj) ne tretira kao tekst dok ja ne kazem "ej, to nije tekst, procitaj to kao broj i tek posle toga moze poceti da ga sabira"?

Zasto nemamo komandu number= int.Parse(Console.ReadLine())? Zasto ovde nije potrebna?

Je li to zato sto sam na pocetku uzela inl varijablu tj. uputila kompajler na tip baze sa celim brojevima i to je kao dovoljno da svi unosi u kodu kasnije tretiraju kao brojevi?

 

Link to comment
Подели на овим сајтовима

  On 24. 3. 2017. at 2:25, florenntina рече

Je li to zato sto sam na pocetku uzela inl varijablu tj. uputila kompajler na tip baze sa celim brojevima i to je kao dovoljno da svi unosi u kodu kasnije tretiraju kao brojevi?

Expand  

Да, када варијаблу декларишеш као "int" (од "integer" = "цео број") то је аутоматски број. На почетку, твоја варијабла је декларисана као број и одмах јој је додељена вредност "0". То је све обављено у овом реду:

 int number = 0;

Значи, тај број није "учитан" од корисника, већ је програмски декларисан и додељена му је вредност.

ΜΟΛΩΝ ΛΑΒΕ

Link to comment
Подели на овим сајтовима

×
×
  • Креирај ново...