Да се въведат 4 числа и да се отпечата броят и н сумата на положителните.
Всички задачи за:
Оградете кода с:
[c] за С++ програми [/c]
[pascal] за паскал [/pascal]Достъп до сайта:
С повишена трудност:
Задачите със звездичка са с повишена трудност - решавайте ги, ако сте решили другите.-
Последни задачи:
Последни решения:
- Marin за Къде се намира точка
- Marin за Вмъкване и изтриване на елемент *
- Marin за Позицията на X
- Alexander1 за Броят на максималните елементи
- Alexander1 за Броят на максималните елементи
- Marin за Пари за закуска
- Alexander1 за Ученици с дадена оценка
- Alexander1 за По-големи от средното
Топ участници за момента:
kaloyan164 решения/коментараGadget131 решения/коментараdreanor112 решения/коментараmarant74 решения/коментараsup3rEva68 решения/коментараБоряна65 решения/коментараNadq53 решения/коментараmaleboldjia48 решения/коментараkrisizdravi9543 решения/коментараMartinPlamenov38 решения/коментараЗадачи за дата:
октомври 2024 П В С Ч П С Н « февр. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Предишни задачи:
- февруари 2017 (38)
- януари 2017 (16)
- декември 2016 (17)
- ноември 2016 (14)
- октомври 2016 (26)
- юни 2016 (3)
- май 2016 (15)
- април 2016 (12)
- март 2016 (14)
- февруари 2016 (9)
- май 2015 (2)
- април 2015 (8)
- март 2015 (8)
- февруари 2015 (13)
- януари 2015 (11)
- декември 2014 (9)
- ноември 2014 (24)
- октомври 2014 (16)
- юни 2014 (2)
- май 2014 (8)
- април 2014 (10)
- март 2014 (14)
- февруари 2014 (22)
- януари 2014 (25)
- декември 2013 (27)
- ноември 2013 (37)
- октомври 2013 (38)
- септември 2013 (2)
- юни 2013 (6)
- май 2013 (10)
- април 2013 (19)
- март 2013 (35)
- февруари 2013 (32)
- януари 2013 (29)
- декември 2012 (28)
- ноември 2012 (37)
- октомври 2012 (26)
- септември 2012 (3)
- май 2012 (16)
- април 2012 (16)
- март 2012 (27)
- февруари 2012 (10)
- януари 2012 (13)
- ноември 2011 (16)
- октомври 2011 (8)
- април 2011 (4)
- март 2011 (19)
- февруари 2011 (19)
- януари 2011 (18)
- декември 2010 (25)
- ноември 2010 (10)
- октомври 2010 (33)
- септември 2010 (1)
По теми:
- break
- бройни системи
- булев тип
- вариантен избор
- вложена условна команда
- вложени цикли
- дати
- динамична променлива
- дървета
- запис
- изброим тип
- класове
- манипулатори на извеждането
- масив
- масив от записи
- многомерни масиви
- множества
- модули
- низ
- низове
- низови функции
- опашки
- отпечатване
- преобразуване на типовете
- реален тип
- рекурсия
- символен тип
- сортиране на масиви
- специфични операции за цели числа
- списъци
- стекове
- структури
- текстов файл
- типизирани файлове
- условна команда
- файл
- функции
- хедър файлове
- целочислен тип
- цикъл do-while
- цикъл for
- цикъл repeat
- цикъл while
- цифри на число
- шах
Всички задачи:
- 2016-2017 (111)
- Архив задачи (791)
- 2010-2011 (131)
- Информатика (131)
- 2011-2012 (109)
- ЗИП Информатика (4)
- 10в (4)
- Информатика (105)
- ЗИП Информатика (4)
- 2012-2013 (227)
- 2013-2014 (182)
- 2014-2015 (91)
- 2015-2016 (53)
- 2010-2011 (131)
Мета
Препоръчваме хостинг:
Ееее ударих го от земята това преобразуване на тия типове :D
Браво, напредваш. Почти го удари в земята :-) Няма нужда от явно преобразуване обаче – дори да не укажеш такова, щом има аритметични операции компилатора ще извърши неявно преобразуване.
Тоест вместо:
Може да напишеш:
И още вместо:
Може да ползваш:
Или още по-краткото и без условна команда
Вярно! Но може и въобще без условна команда – разгледайте другите решения от задачите за преобразуване между типовете…
int main(int argc, char *argv[])
{
long a,b,c,d;
cout<>a;
cout<>b;
cout<>c;
cout<>d;
cout<<endl;
cout<<"Broyat na vuvedenite polojitelni chisla e: "<0)+
bool(b>0)+
bool(c>0)+
bool(d>0)<0)
a=a;
else a=0;
if (b>0)
b=b;
else b=0;
if (c>0)
c=c;
else c=0;
if (d>0)
d=d;
else d=0;
cout<<"Sumata na polojitelnite chisla e: "<<a+b+c+d<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Весо, това решение изглежда съвсем като горното на maleboldjia, така че не се брои. И освен това ограждай решението с [ c ] и [ /c ], иначе не се извежда коректно кода…
Калояне, задачата е вярна. Добре си се сетил и да ползваш глобални променливи, и да ги инициализираш.
Но глобални променливи трябва да се използват за предаване на стойности от и към функции само в краен случай, защото може да направят една голяма програма с трудно откриваеми странични ефекти. Подсети ме да ти обясня и да ти дам примери. По принцип, разглеждай функцията като нещо с вход и изход – подаваш и нещо на входа, получаваш нещо на изхода, но функцията не помни нищо някъде другаде. Ако го помни, тогава едно извикване на функцията междувременно вече променя действието й и резултата, който ще върне. Тази функция става зависима от това колко пъти е извикана и от къде. Това са страничните ефекти, за които споменах. Ако функцията има само вход и изход и не помни нищо от предишните извиквания, тогава и от 1000 места да я извикаш, все ще си връща същия резултат.
Конкретно за тази задача може да направиш функцията така:
Или дори така:
От двете решения в първото функцията е написана да е по-универсална (защото можем да подадем на функцията всякакво число – и въведено от клавиатурата, и получено по друг начин), а втората е по-оптимална за конкретното условие, защото всички повтаращи се команди са изнесени в нея. Но и в двата случая не ползвам глобални променливи, така че функцията е независима от броят и реда на извикванията.