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

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

8. Масиви


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

#1 keleved

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

Публикувано 21 март 2016 - 19:01

По време на видеоурока колегата Dimiter Georgiev правилно посочи една грешка в презентацията - в слайда за "търсене в масив", в цикъла for след първия знак ; в скобите трябва да се чете i < n. Тази грешка е поправена в публикуваната презентация към урока.
 


  • 0

#2 kr.ilarionova

kr.ilarionova
  • Members
  • 4 Мнения:
  • Занятие:Друго

Публикувано 23 март 2016 - 09:37

В състезателната система виждам имена на нови задачи, но те не съществуват като файлове - липсва бутона "Download task statement"


  • 1

#3 keleved

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

Публикувано 23 март 2016 - 10:03

В състезателната система виждам имена на нови задачи, но те не съществуват като файлове - липсва бутона "Download task statement"

Вече са публикувани и условията.

 

Новите задачи са droot и mult. Приятно решаване!


  • 1

#4 kira

kira
  • Members
  • 11 Мнения:
  • Занятие:Друго

Публикувано 23 март 2016 - 15:49

Вече са публикувани и условията.

 

Новите задачи са droot и mult. Приятно решаване!

Хм, този път задачите са по-лесни и за едната задача логическите разсъждения позволяват задачата да се реши и без масив, но пък видео с лекция този път няма. Интересно колко човека са решили 2 зад. за по 100 т. без това видео?


  • 0

#5 georgieva76

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

Публикувано 24 март 2016 - 12:15

Във втората задача, като вход са дадени n и m т.е. размерността на масива, но не е посочено да е даден самият масив, което мисля, че е грешка в условието.


  • 0

#6 georgieva76

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

Публикувано 24 март 2016 - 12:19

Във втората задача, като вход са дадени n и m т.е. размерността на масива, но не е посочено да е даден самият масив, което мисля, че е грешка в условието.

Грешката е моя, сега прочетох втори път условието, и го разбрах. :rolleyes: 


  • 0

#7 georgieva76

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

Публикувано 24 март 2016 - 12:44

kira - 100% от първият път на втората задача :P  не е чак толкова невъзможна


  • 0

#8 kira

kira
  • Members
  • 11 Мнения:
  • Занятие:Друго

Публикувано 24 март 2016 - 13:35

kira - 100% от първият път на втората задача :P  не е чак толкова невъзможна

100% от първия път си е супер :-) а втората задача mult е доста типична. Разновидност на mult, с по-простичко условие съм виждал да я дават при подготовка за изпит, в края на първия семестър, за специалност Информатика в НБУ. 


  • 0

#9 doby_d

doby_d
  • Members
  • 4 Мнения:
  • Занятие:Друго

Публикувано 24 март 2016 - 15:56

При тестване на моя компютър задачата mult дава желания резултат. При тестване в системата получих 0 точки. Къде може да е проблема?


  • 0

#10 keleved

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

Публикувано 24 март 2016 - 17:07



При тестване на моя компютър задачата mult дава желания резултат. При тестване в системата получих 0 точки. Къде може да е проблема?

При вашата програма, може да прочетете какво съобщение дава системата, а то е "...violating memory limits".

Така се получава при излизане от границите на индекса на масив. Дефинирате масив a[m][n] и в следващия двоен

цикъл имате ... i<=m ... j<=n ... с които  влизате в a[i][j].

 

За да е без проблем, дефинирайте масива например с a[m+1][n+1].

 

При такава грешка - излизане от границите на индекса на масив - понякога програмата, например под WIndows може и да

работи, без да даде грешка, но при Линукс, където е проверяващата система, тази грешка обикновенно се хваща.

Линукс има по-добра система за следене нарушаването на границите на позволената памет.

 

Подобен проблем имаме с малките ученици (по-точно с техните родители), които настояват, че програмата им

работи правилно, понеже под WIndows, когато те я пускат, работи (понякога).


  • 0

#11 doby_d

doby_d
  • Members
  • 4 Мнения:
  • Занятие:Друго

Публикувано 24 март 2016 - 17:18

Благодаря много! Точно това е трябвало да се направи! :)


  • 0

#12 plachkova

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

Публикувано 25 март 2016 - 09:01

Благодаря много! Точно това е трябвало да се направи! :)

Колега, може и да не използвате двумерен масив в задачата си.


  • 0

#13 plachkova

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

Публикувано 25 март 2016 - 09:20

Хм, този път задачите са по-лесни и за едната задача логическите разсъждения позволяват задачата да се реши и без масив, но пък видео с лекция този път няма. Интересно колко човека са решили 2 зад. за по 100 т. без това видео?


  • 0

#14 plachkova

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

Публикувано 25 март 2016 - 09:22

Хм, този път задачите са по-лесни и за едната задача логическите разсъждения позволяват задачата да се реши и без масив, но пък видео с лекция този път няма. Интересно колко човека са решили 2 зад. за по 100 т. без това видео?

 

Хм, този път задачите са по-лесни и за едната задача логическите разсъждения позволяват задачата да се реши и без масив, но пък видео с лекция този път няма. Интересно колко човека са решили 2 зад. за по 100 т. без това видео?

Видео има по темата "Масиви". Може би имате предвид видео за двумерен масив и да, задачата може да се реши без двумерен масив - с едномерен. Но може да се реши и въобще без използване на масиви.


  • 0

#15 kira

kira
  • Members
  • 11 Мнения:
  • Занятие:Друго

Публикувано 25 март 2016 - 11:07

Видео има по темата "Масиви". Може би имате предвид видео за двумерен масив и да, задачата може да се реши без двумерен масив - с едномерен. Но може да се реши и въобще без използване на масиви.

Нямаше качено видео по тема "Масиви", когато написах цитирания от Вас пост, но пък имаше качени задачи с условия, като и двете задачи без проблем минаха за по 100 т. от първия път. За задачата mult ползвам едномерен масив, за сега не съм обмислял решение на задачата mult без масив. По-любопитно е че следвайки стриктно условието на задачата droot, може да се построи решение без деклариране  на масив, а дори и без оператор за цикъл.


  • 0

#16 Dima

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

Публикувано 03 април 2016 - 13:41

Може ли да погледнете първото ми решение на програмата mult. Не разбрах защо ми дава 70/100.


  • 0

#17 keleved

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

Публикувано 04 април 2016 - 07:32

Може ли да погледнете първото ми решение на програмата mult. Не разбрах защо ми дава 70/100.

Виждам, че със следващите събмити имате максималния брой точки.


  • 0

#18 zelenkroki

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

Публикувано 10 април 2016 - 02:55

По задача droot (цифров корен):

 

Къде е правилото за осмисляне на условието при двете изречения:

Цифров корен на дадено цяло положително число N e…

и

Напишете програма droot, която намира цифровия корен на зададено цяло число

 

Може да се приеме за заяждане, но подобни „дреболии“ късат нерви и губят точки за решение, различно от авторовото. Случайно „хванах“, че на първия тест входът е числото 0. Трябваше ли?

 

С известно закъсняло предложение във връзка с тази задача, но и не само за нея, моля за тестовите примери на петнайсетте задачи. Няма да е загуба, ако не се публикуват, достатъчно богат архив с тестове и авторски решения има на сайта http://www.math.bas.bg/infos/comp.html. Но пък тестовете точно на тези задачи биха представлявали известен интерес за преподавателите, които тепърва навлизат в занимания със състезателно програмиране.


  • 0

#19 keleved

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

Публикувано 11 април 2016 - 16:21

По задача droot (цифров корен):

 

Къде е правилото за осмисляне на условието при двете изречения:

Цифров корен на дадено цяло положително число N e…

и

Напишете програма droot, която намира цифровия корен на зададено цяло число

 

Може да се приеме за заяждане, но подобни „дреболии“ късат нерви и губят точки за решение, различно от авторовото. Случайно „хванах“, че на първия тест входът е числото 0. Трябваше ли?

 

С известно закъсняло предложение във връзка с тази задача, но и не само за нея, моля за тестовите примери на петнайсетте задачи. Няма да е загуба, ако не се публикуват, достатъчно богат архив с тестове и авторски решения има на сайта http://www.math.bas.bg/infos/comp.html. Но пък тестовете точно на тези задачи биха представлявали известен интерес за преподавателите, които тепърва навлизат в занимания със състезателно програмиране.

В условието би трябвало да пише: Цифров корен на дадено цяло неотрицателно число N e…

 

Наистина в първия тест е записано числото 0. Това може да се провери с малко хитрост по начин, който не е забранен. Използват го някои състезатели.

Написвата програма, в която има деление  с прочетеното число. Например:

 

#include<iostream>
using namespace std;

int main()
{

  int a; cin >> a;
  cout << 1/a << endl;

}

 

Като погледнете резултатите от тестването, ще видите че повечето резултати са грешни (което е естествено да очакваме).

Може случайно да има и един верен резултат, но ако има съобщение от вида

 

Execution killed....

 

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

 

Ще публикуваме и всички тестове на предлаганите задачи, но след една седмица.


  • 0

#20 zelenkroki

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

Публикувано 20 април 2016 - 14:51

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

 

Радвам се, че изяснихме условието на задачата.

 

Благодаря и за обещанието за тестовете.  :)


  • 0




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