Помощ - задача по информатика

Молим всички посетители, когато им се прииска просто да си поговорят глупости, да се помайтапят с дребни простотийки и т.н., да го направят в този форум. Тук е позволен по-груб език, стига да не е насочен към други членове на форума. Можете да пускате всичко, което като съдържание или стил би било неприемливо за останалите форуми. Но ако по наше усмотрение темата има смисъл или идея само за автора си, тя ще бъде изтривана!

Рейтинг за публикуване на тема / Рейтинг за отговор / Тежест: 400 / 400 / 2

Помощ - задача по информатика

Мнениеот BurNiNg_IcE » Пон Юни 14, 2010 11:59 am

Имам следната задача по информатика и моля за помощ, от нея ми зависи срочната оценка, имам на разположение още 40 мин, който помогне има бира от мен!
Задачата е следната:
Да се напише програма, която въвежда от клавиатурата до 10 думи, написани на един ред и разделени с ПОНЕ един интервал. Да се изведе броят на буквите на най-късата дума от въведените.

Примерен вход: Pirin e krasiva planina Примерен изход: 1


Мерси предварително! :wavey: :beer:
Занимавам се с внасянето на колела/части за колела от PinkBike/Aнглия/, за повече информация - ЛС!
Mоля, да ми пишат само наистина заинтересовани хора!
Линк към по-големите внесени части до момента.
Аватар
BurNiNg_IcE
 
Мнения: 3826
Рейтинг: 2000
Регистриран на: Чет Мар 12, 2009 4:18 pm
Местоположение: София

Re: Помощ - задача по информатика

Мнениеот hitar_potter » Пон Юни 14, 2010 12:34 pm

Тва на асемблер ли го искаш?
Изображение
Аватар
hitar_potter
 
Мнения: 3461
Рейтинг: 2000
Регистриран на: Пет Фев 01, 2008 9:25 pm
Местоположение: София

Re: Помощ - задача по информатика

Мнениеот Razar » Пон Юни 14, 2010 12:35 pm

По скоро на Pascal ще да е. :look:
Аватар
Razar
 
Мнения: 54
Рейтинг: 1198
Регистриран на: Пон Май 17, 2010 9:49 am

Re: Помощ - задача по информатика

Мнениеот BurNiNg_IcE » Пон Юни 14, 2010 12:36 pm

Oправих се, след малко човъркане и пробване на различни начини успях! :beer: :beer:

Ето я:
Код: Избери целия код
#include<iostream.h>
int main ()
{
char str[201];
cin.getline(str,201);
int i=0,br=0,min=200;
while (str[i]!='\0')
{
if(str[i]==' ')
{
if(min>br)min=br;
br=0;
while(str[i+1]==' ')i++;
}
else br++;
i++;
}
if(min>br)min=br;
cout<<min<<endl;
return 0;
}


Meрси на всички, все пак! :popcorn: :popcorn:
Занимавам се с внасянето на колела/части за колела от PinkBike/Aнглия/, за повече информация - ЛС!
Mоля, да ми пишат само наистина заинтересовани хора!
Линк към по-големите внесени части до момента.
Аватар
BurNiNg_IcE
 
Мнения: 3826
Рейтинг: 2000
Регистриран на: Чет Мар 12, 2009 4:18 pm
Местоположение: София

Re: Помощ - задача по информатика

Мнениеот Night_Falcon » Пон Юни 14, 2010 12:37 pm

Всъщност е на codeblocks, езика е C++
П.П. Благо, ние тия работи ги правим по СКАЙП, не във форума. Иначе идеята е добра, очаквайте евентуално включване и от мен другата седмица :rofl: :rofl: :rofl: :rofl: :rofl: :rofl: :rofl:
Аватар
Night_Falcon
 
Мнения: 1227
Рейтинг: 1376
Регистриран на: Нед Апр 12, 2009 12:21 pm

Re: Помощ - задача по информатика

Мнениеот BurNiNg_IcE » Пон Юни 14, 2010 12:38 pm

Целия се изпотих докато я напиша. Ся имам 6! :clap: :^:
Занимавам се с внасянето на колела/части за колела от PinkBike/Aнглия/, за повече информация - ЛС!
Mоля, да ми пишат само наистина заинтересовани хора!
Линк към по-големите внесени части до момента.
Аватар
BurNiNg_IcE
 
Мнения: 3826
Рейтинг: 2000
Регистриран на: Чет Мар 12, 2009 4:18 pm
Местоположение: София

Re: Помощ - задача по информатика

Мнениеот Night_Falcon » Пон Юни 14, 2010 12:39 pm

Бааааси, колко сложно си я написал. Може на мн по-малко редове :D
Аватар
Night_Falcon
 
Мнения: 1227
Рейтинг: 1376
Регистриран на: Нед Апр 12, 2009 12:21 pm

Re: Помощ - задача по информатика

Мнениеот daf4ov » Пон Юни 14, 2010 1:51 pm

И аз имам час по информатика в момента...
Нищо не знам и аз правих някви задачи...итераций...някви цикли...
Имам сумати и двойки,трябва да уча...зор... :(
Nothing compares to the simple pleasure of a bike ride :)
Аватар
daf4ov
 
Мнения: 1603
Рейтинг: 2000
Регистриран на: Пет Окт 19, 2007 5:55 pm
Местоположение: United States of Love...

Re: Помощ - задача по информатика

Мнениеот TeDo_BaPHa » Пон Юни 14, 2010 4:17 pm

На някой ако му се намира някаква база данни да не се срамува :D
ХОРА, ИЗПОЛЗВАЙТЕ ТЪРСАЧКАТА, ТЯ Е НАПРАВЕНА ЗА ДА ВИ УЛЕСНИ!!!
Cipokrila Zizibaga написа:p.s. Ако сте неосъзнат пубер на не повече от 14 и половина , или ми предлагате бартери за всякакъв вид бяла или черна техника, други предмети или човешки органи, моля не ме търсете.
Аватар
TeDo_BaPHa
 
Мнения: 2509
Рейтинг: 2000
Регистриран на: Съб Окт 13, 2007 9:31 pm
Местоположение: Варна

Re: Помощ - задача по информатика

Мнениеот Night_Falcon » Пон Юни 21, 2010 5:07 pm

Ето че дойде и моя час. Задачата е на C++, урока е функции, което предполага, че трябва да се реши с функции
"Ф-ция която проверява дали в редицата има числа, кратни на 5. Изведете номерата на всички редове на А[m][n] в които има елементи, кратни на 5
Аватар
Night_Falcon
 
Мнения: 1227
Рейтинг: 1376
Регистриран на: Нед Апр 12, 2009 12:21 pm

Re: Помощ - задача по информатика

Мнениеот pe60t0 » Вто Юни 22, 2010 10:50 am

@Night_falcon

Не съм сигурен за точния синтакс на C++, но ето в pseudo-code:

Код: Избери целия код
void f (int[][] a){
for (int i = 0; i < size(a); i++){
  for (int j = 0; j < size(a[i]); j++){
   if(a[i][j] 'mod' 5 == 0){
    print(i+1);
   }
  }
}
}
Make the sport fun not the fun a sport...
Аватар
pe60t0
 
Мнения: 1503
Рейтинг: 1390
Регистриран на: Сря Май 25, 2005 8:26 pm
Местоположение: Bulgaria

Re: Помощ - задача по информатика

Мнениеот hitar_potter » Вто Юни 22, 2010 11:37 am

pe60t0 написа:@Night_falcon

Не съм сигурен за точния синтакс на C++, но ето в pseudo-code:

Код: Избери целия код
void f (int[][] a){
for (int i = 0; i < size(a); i++){
  for (int j = 0; j < size(a[i]); j++){
   if(a[i][j] 'mod' 5 == 0){
    print(i+1);
   }
  }
}
}



До колкото си спомням от C++..

Код: Избери целия код
void f (int a[100][100]){
for (int i = 0; i < a.length; i++){
  for (int j = 0; j < a[i].length; j++){
   if(a[i][j] % 5 = 0){
    print(i+1);
    break;
   }
   if (a[i][j]==null){
    break;
   }
  }
}
}


Може и да съм го омазал :)
Изображение
Аватар
hitar_potter
 
Мнения: 3461
Рейтинг: 2000
Регистриран на: Пет Фев 01, 2008 9:25 pm
Местоположение: София

Re: Помощ - задача по информатика

Мнениеот bikerider » Вто Юни 22, 2010 1:12 pm

Поомазал си го :)

Код: Избери целия код
void test (int a[][], int m, int n)
{
  for (int i = 0; i < m; i++)
    for (int j = 0; j < n; j++)
    {
       if(a[i][j] % 5)
         continue;
       printf("%d,",i);
       break;
    }
}
Do or do not. There is no try...
Аватар
bikerider
 
Мнения: 17273
Рейтинг: 2000
Регистриран на: Вто Окт 07, 2003 10:25 am
Местоположение: Eutropia

Re: Помощ - задача по информатика

Мнениеот BurNiNg_IcE » Чет Сеп 30, 2010 11:44 am

Моля за малко помощ за 1 задача, че нещо съм забил... :(
Код: Избери целия код
Намерете най-големия елемент на даден масив A(N) и неговия номер.

Който ми го напише получава бира/и, ще се разберем за бройката. :beer:
Имам още 45мин... :wavey:
Занимавам се с внасянето на колела/части за колела от PinkBike/Aнглия/, за повече информация - ЛС!
Mоля, да ми пишат само наистина заинтересовани хора!
Линк към по-големите внесени части до момента.
Аватар
BurNiNg_IcE
 
Мнения: 3826
Рейтинг: 2000
Регистриран на: Чет Мар 12, 2009 4:18 pm
Местоположение: София

Re: Помощ - задача по информатика

Мнениеот PtD » Чет Сеп 30, 2010 1:20 pm

BurNiNg_IcE написа:Моля за малко помощ за 1 задача, че нещо съм забил... :(
Код: Избери целия код
Намерете най-големия елемент на даден масив A(N) и неговия номер.

Който ми го напише получава бира/и, ще се разберем за бройката. :beer:
Имам още 45мин... :wavey:


При така зададена задача... :
Код: Избери целия код
def data = [ 2, 8, 3, 4, 12, 6 ]
def max = data.inject(null) { val, it -> (it > val) ? it : val}
def index = data.indexOf(max)
println "MAX: data[$index] = $max"


:deal:
Дреболия, обикновено нещо!
Аватар
PtD
 
Мнения: 10901
Рейтинг: 2000
Регистриран на: Пон Ное 17, 2003 3:36 pm

Re: Помощ - задача по информатика

Мнениеот did » Чет Сеп 30, 2010 1:32 pm

@PtD: Ако той това го предаде на "госпожата", може и двойка да получи. Едва ли "тя" ще го разбере. Пък и да го разбере, едва ли ще повярва, че го е сътворил лично той :rofl:
Q. b. f. f. f. s.
Аватар
did
 
Мнения: 16523
Рейтинг: 2000
Регистриран на: Вто Окт 14, 2003 3:00 pm
Местоположение: Пловдив

Re: Помощ - задача по информатика

Мнениеот Night_Falcon » Чет Сеп 30, 2010 6:26 pm

Ей, ето я любимата ми тема. Скоро очаквайте включване и от мен :D
Аватар
Night_Falcon
 
Мнения: 1227
Рейтинг: 1376
Регистриран на: Нед Апр 12, 2009 12:21 pm

Re: Помощ - задача по информатика

Мнениеот bikerider » Чет Сеп 30, 2010 7:56 pm

PtD написа:
Код: Избери целия код
def data = [ 2, 8, 3, 4, 12, 6 ]
def max = data.inject(null) { val, it -> (it > val) ? it : val}
def index = data.indexOf(max)
println "MAX: data[$index] = $max"


:deal:


:D :agree:
Do or do not. There is no try...
Аватар
bikerider
 
Мнения: 17273
Рейтинг: 2000
Регистриран на: Вто Окт 07, 2003 10:25 am
Местоположение: Eutropia

Re: Помощ - задача по информатика

Мнениеот daf4ov » Чет Сеп 30, 2010 8:10 pm

Аз вече не уча информатика...но за жалост миналата година ме ме оставиха на поправка по тази скапна информатика...голям срам беше,точно по информатика...
Nothing compares to the simple pleasure of a bike ride :)
Аватар
daf4ov
 
Мнения: 1603
Рейтинг: 2000
Регистриран на: Пет Окт 19, 2007 5:55 pm
Местоположение: United States of Love...

Re: Помощ - задача по информатика

Мнениеот BurNiNg_IcE » Чет Сеп 30, 2010 8:59 pm

PtD написа:
Код: Избери целия код
def data = [ 2, 8, 3, 4, 12, 6 ]
def max = data.inject(null) { val, it -> (it > val) ? it : val}
def index = data.indexOf(max)
println "MAX: data[$index] = $max"


:deal:

:bigeyes: :bigeyes: :bigeyes:

Аз го реших, та даже имам 6...амаа след малко ще напиша мойто решение, че ся нещо мързелувам. :D
Занимавам се с внасянето на колела/части за колела от PinkBike/Aнглия/, за повече информация - ЛС!
Mоля, да ми пишат само наистина заинтересовани хора!
Линк към по-големите внесени части до момента.
Аватар
BurNiNg_IcE
 
Мнения: 3826
Рейтинг: 2000
Регистриран на: Чет Мар 12, 2009 4:18 pm
Местоположение: София

Re: Помощ - задача по информатика

Мнениеот PtD » Пет Окт 01, 2010 12:26 am

BurNiNg_IcE написа:Аз го реших, та даже имам 6...амаа след малко ще напиша мойто решение, че ся нещо мързелувам. :D


Ще ти цъкна плюсче, ако пуснеш някое елегантно решение на Piet :eyebrow:
Дреболия, обикновено нещо!
Аватар
PtD
 
Мнения: 10901
Рейтинг: 2000
Регистриран на: Пон Ное 17, 2003 3:36 pm

Re: Помощ - задача по информатика

Мнениеот hitar_potter » Пет Окт 01, 2010 12:42 am

А аз - ако го напишеш на brainf***
Изображение
Аватар
hitar_potter
 
Мнения: 3461
Рейтинг: 2000
Регистриран на: Пет Фев 01, 2008 9:25 pm
Местоположение: София

Re: Помощ - задача по информатика

Мнениеот crib » Вто Окт 05, 2010 10:56 am

hitar_potter написа:А аз - ако го напишеш на brainf***

За брейнф* незнам, но ето решението на whitespace:









-- Край на решението
crib
 
Мнения: 345
Рейтинг: 2000
Регистриран на: Чет Авг 21, 2008 11:20 am
Местоположение: софия

Re: Помощ - задача по информатика

Мнениеот PtD » Вто Окт 05, 2010 10:50 pm

:clap: Плюсче от мен :)

Имай предвид, че BB3 изяжда tab-овете, в случай, че си използвал такива.
Дреболия, обикновено нещо!
Аватар
PtD
 
Мнения: 10901
Рейтинг: 2000
Регистриран на: Пон Ное 17, 2003 3:36 pm

Re: Помощ - задача по информатика

Мнениеот MacLeod » Съб Окт 16, 2010 11:21 pm

bikerider написа:Поомазал си го


Код: Избери целия код
void test (int a[][], int m, int n)
{
for (int i = 0; i < m; i++)
    for (int j = 0; j < n; j++)
    {
       if(a[i][j] % 5)
         continue;
       printf("%d,",i);
       break;
    }
}


В C++ не е добре да се подават масиви като параметри. Бавно е и трябва да се подаде и размерността ( поне при повече от едномерен ). За мен по - добре е:


Код: Избери целия код
void test (int* a, int m, int n)
{
  for (int i = 0; i < m; i++)
    for (int j = 0; j < n; j++)
    {
       if(a[i*n+j] % 5)
         continue;
       printf("%d,",i);
       break;
    }
}

и после:
int a[10][15];
.. инициализация на а със стойности.
test(&a[0][0]. 10, 15 );
Аватар
MacLeod
 
Мнения: 882
Рейтинг: 1785
Регистриран на: Съб Авг 02, 2008 3:22 pm

Re: Помощ - задача по информатика

Мнениеот did » Съб Окт 16, 2010 11:28 pm

Тия работи за по-бързо, по-бавно, кое е добре да се подава като параметър и т.н. си ги чел в някоя книжка от преди 2005 година, нали?

Хайде на бас, че с такива "трикове" на дребно не можеш да излъжеш никой съвременен компилатор. Само дето правиш програмата нечетима (което в повечето случаи е по-важно от бързодействието).

Пък и няма да коментирам, колко ти е ефективен кода при големи масиви :D :rofl:
Q. b. f. f. f. s.
Аватар
did
 
Мнения: 16523
Рейтинг: 2000
Регистриран на: Вто Окт 14, 2003 3:00 pm
Местоположение: Пловдив

Re: Помощ - задача по информатика

Мнениеот MacLeod » Съб Окт 16, 2010 11:40 pm

Ми не, на C++ това е практика. Разгледай професионални кодове на C++ и ако намериш някъде където да се подава масив чрез [][] или [] или [][][], имам да те черпя...
Не говоря за java или .net, там е друго. Иначе съм съгласен, че оптимизирането не винаги е добро нещо. Трябва да се решава кога трябва и кога не.
Плюс това как можеш да напишеш функция, която приема аргумент масив и му променя стойностите на C++ ? Kода горе е ефективен точно при големи масиви. Aко подадеш масива чрез [][], то той се копира целия при предаването. Това според теб ефективно ли е ? Функцията, която постнах има лек проблем, че за всяко j, смята i*n, но не мисля че е болка за умиране. :beer:
Последна промяна MacLeod на Нед Окт 17, 2010 12:07 am, променена общо 2 пъти
Аватар
MacLeod
 
Мнения: 882
Рейтинг: 1785
Регистриран на: Съб Авг 02, 2008 3:22 pm

Re: Помощ - задача по информатика

Мнениеот did » Съб Окт 16, 2010 11:57 pm

Не е само това проблем. Вищ откъде къде те хвърля тоя break.

и... това, дето си го написал, не е на C++, а на C :D

Даже не е и на качествено C, а е на ниво учебник за начинаещи.
Q. b. f. f. f. s.
Аватар
did
 
Мнения: 16523
Рейтинг: 2000
Регистриран на: Вто Окт 14, 2003 3:00 pm
Местоположение: Пловдив

Re: Помощ - задача по информатика

Мнениеот MacLeod » Нед Окт 17, 2010 12:08 am

Не съм си играл да променям функцията. Тя е цитат от по - горен пост. Просто смених [][] със *. Тоест за останалото съдържание на кода, не ме топи мен :agree: А иначе освен на C e и на C++ :D
Но ако настоявате за преработка:

Код: Избери целия код
void test (int* pArrayP, unsigned int heightP, unsigned int widthP )
{
   for (unsigned int iHeight = 0; iHeight < heightP; iHeight++)
   {
      bool bRowFound = false;
      for ( unsigned int iWidth = 0; (( iWidth < widthP ) && ( bRowFound == false )); iWidth++)
      {
         if( 0 == ( pArrayP[iHeight*widthP+iWidth] % 5 ) )
         {
            printf("%d ",iHeight + 1);
            bRowFound = true;
         }
      }
   }
}



Сега може да кажеш, че не съм изнесъл 5-цата в #define примерно :magnify:
Аватар
MacLeod
 
Мнения: 882
Рейтинг: 1785
Регистриран на: Съб Авг 02, 2008 3:22 pm

Re: Помощ - задача по информатика

Мнениеот PtD » Нед Окт 17, 2010 4:24 pm

Ти на bikerider кусури не търси, написал е сигурно около 1000 пъти повече код от теб.

А пък по отношение на предаването на масиви като параметри в С++ си в голяяяяма грешка, че е бавно. На практика да предадеш:

int a[]
е все същото като да предадеш
int* a

понеже нотацията за масив е всъщност syntax sugar за указател. В този смисъл:

T a[];
char *b = (char*)a;
a[i] == *((T)(b + i * sizeof(T));



Как съм ръждясал вече на тоя архаичен език :)
Дреболия, обикновено нещо!
Аватар
PtD
 
Мнения: 10901
Рейтинг: 2000
Регистриран на: Пон Ное 17, 2003 3:36 pm

Следваща

Назад към Бла - Бла

Кой е на линия

Потребители, разглеждащи този форум: freshdevil и 17 госта