Към съдържанието

Viva Cognita at Facebook
Viva Cognita at Twitter
Viva Cognita at YouTube
Снимка

3. Данни и оператори

InfCompInf

  • Влезте в профила си за да пишете
14 отговора на тази тема

#1 Тодор Брънзов

Тодор Брънзов

    Administrator

  • Administrators
  • 297 Мнения:
  • Занятие:Друго

Публикувано 09 февруари 2016 - 20:34

Тема 3: Данни и оператори

 

http://vivacognita.o...?id=4&section=4


  • 1

#2 keleved

keleved
  • Bloggers
  • 47 Мнения:
  • Занятие:Друго

Публикувано 11 февруари 2016 - 10:12

В състезателната система вече са поставени две задачи - lucky и ruler, отнасящи се към разглежданата тема.


  • 3

#3 m_kisyova

m_kisyova
  • Shred
  • 8 Мнения:
  • Занятие:Друго

Публикувано 12 февруари 2016 - 15:18

Имам въпрос за задачата "Щастлив номер". Програмата ми работи и дава верни отговори само като задам входните данни с интервали между тях.

Как да определя, че числата на входа са едноцифрени?  


  • 0

#4 Lari

Lari
  • Shred
  • 1 Мнения:
  • Занятие:Друго

Публикувано 12 февруари 2016 - 15:36

И при мен е така. Трябва да ги въведа или с интервал или на нови редове. Не ми е ясно как става.


  • 0

#5 m_kisyova

m_kisyova
  • Shred
  • 8 Мнения:
  • Занятие:Друго

Публикувано 12 февруари 2016 - 16:03

И при мен е така. Трябва да ги въведа или с интервал или на нови редове. Не ми е ясно как става.

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


  • 0

#6 m_kisyova

m_kisyova
  • Shred
  • 8 Мнения:
  • Занятие:Друго

Публикувано 12 февруари 2016 - 17:59

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

Разбрах къде е грешката: Най-напред и цифрите в номера са дефинирани от тип char и след това се преобразуват в числа с:

int i=(int)c-(int) '0'


  • 0

#7 kali_k

kali_k
  • Shred
  • 7 Мнения:
  • Занятие:Друго

Публикувано 13 февруари 2016 - 02:05

Имам въпрос относно задачата ruler. Не мога да разбера условието точно, а именно в частта:

"... Талантливчо поставил върху линийката три летвички, които изработил в часовете по труд и техника. Всяка летвичка поставял на произволно деление и записвал края и дължината й."

И след това примерните данни:

Вход
3 9
8 12
6 15

 

Изход
4

 

Как е възможно краят на линийката да е върху третото деление, а дължината й да е 9? Или Талантливчо ги поставя и преди нулата?

И даденият изход 4 ме озадачава. Единствено ако са в обратен ред: дължина на летвичката и край, се получава този изход.

 

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


  • 0

#8 keleved

keleved
  • Bloggers
  • 47 Мнения:
  • Занятие:Друго

Публикувано 13 февруари 2016 - 10:43

При задача ruler, в описанието на входа й ясно е написано в какъв ред се тълкуват числата във входа: първо е дължината, след това - координата на края на летвичката.

 

Често се среща в условията на състезателните задачи в началото на текста им да има "насипно" описание на нещата. Идеята е това донякъде да моделира реална житейска ситуация. Но в раздела за описание на входа винаги описанието е точно.

 

Тази задача в същия й вид е давана на реално състезание за петокласници преди няколко години.


  • 0

#9 kali_k

kali_k
  • Shred
  • 7 Мнения:
  • Занятие:Друго

Публикувано 13 февруари 2016 - 16:00

Благодаря за незабавния отговор, наистина трябва да се четат условията внимателно.


  • 0

#10 stparvanova

stparvanova
  • Shred
  • 8 Мнения:
  • Занятие:Друго

Публикувано 13 февруари 2016 - 22:53

Разбрах къде е грешката: Най-напред и цифрите в номера са дефинирани от тип char и след това се преобразуват в числа с:

int i=(int)c-(int) '0'

 

Направих го по този начин - работи. Но при качване в състезателната система ми дава 0 точки. Не мога да разбера защо?


  • 0

#11 stparvanova

stparvanova
  • Shred
  • 8 Мнения:
  • Занятие:Друго

Публикувано 14 февруари 2016 - 09:07

Открих си "глупавата" грешка- написала съм yes и no с малки букви


  • 0

#12 vsayv

vsayv
  • Shred
  • 6 Мнения:
  • Занятие:Друго

Публикувано 16 февруари 2016 - 11:43

Проверката ми за високосна година не дава очаквания резултат, въпреки че точно преписах условието от презентацията.

G%400 == 0 не изключва години като 1900. Целия фрагмент е 

if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
        {
            if (date > 29) и т.н. 
Къде може да е грешката??? 

  • 0

#13 keleved

keleved
  • Bloggers
  • 47 Мнения:
  • Занятие:Друго

Публикувано 17 февруари 2016 - 08:16

Година 1900 не е високосна и даденият логически израз правилно пресмята.


  • 0

#14 DiNikol

DiNikol
  • Shred
  • 13 Мнения:
  • Занятие:Друго

Публикувано 18 февруари 2016 - 22:11

Имам въпрос за задачата "Щастлив номер". Програмата ми работи и дава верни отговори само като задам входните данни с интервали между тях.

Как да определя, че числата на входа са едноцифрени?  

Тъй като няма интервали между цифрите, те се приемат като число - в случая 4-цифрено цяло. Един вариант е да се използва помощна променлива, която да получи за стойност това число, а след това да се отделят цифрите му и да се дадат като стойности на други променливи. Ако тя е n, тогава:

e=n/1000;n=n%1000;
    f=n/100;n=n%100;
    g=n/10;h=n%10;

След това си работите с така заредените стойности.


  • 0

#15 m_kisyova

m_kisyova
  • Shred
  • 8 Мнения:
  • Занятие:Друго

Публикувано 19 февруари 2016 - 10:30

Тъй като няма интервали между цифрите, те се приемат като число - в случая 4-цифрено цяло. Един вариант е да се използва помощна променлива, която да получи за стойност това число, а след това да се отделят цифрите му и да се дадат като стойности на други променливи. Ако тя е n, тогава:

e=n/1000;n=n%1000;
    f=n/100;n=n%100;
    g=n/10;h=n%10;

След това си работите с така заредените стойности.

Благодаря за отговора, но аз още миналата седмица реших задачата.


  • 1




Viva Cognita е партньорски проект на Института по математика и информатика на БАН, Съюза на математиците в България и VIVACOM