Задачи на C++

Взаимопомощ, полезна информация и всичко, извън темата на останалите секции
Потребителски аватар
piter_96
Мнения: 856
Регистриран на: Пон 03 май 2010 15:07
Автомобил: VW Golf III VW Golf III Variant
Двигател: AFT 1997 AAM 1994
Местоположение: Сопот

Задачи на C++

Мнениеот piter_96 » Сря 30 май 2012 16:20


Здравейте, уча специалност програмист и съм на 16 години. Госпожата по информатика ни даде за домашна три задачи, каквито не сме решавали. Едната я реших, но с другите не мога да се справя без помощ. Искам да направя добро впечатление, все пак идва края на годината :)
Ето и задачите:
1. Да се напише програма, която намира лицето на триъгълник по дадени:
а) дължини на страната и височината към нея;
б)три страни

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




Потребителски аватар
apa6o
Мнения: 1101
Регистриран на: Пон 27 ное 2006 9:56
Автомобил: Skoda Octavia 1Z
Двигател: BKD
Местоположение: Перник

Re: Задачи на C++

Мнениеот apa6o » Сря 30 май 2012 16:38


ОМГ eusa Уча специалност програмист :lol: Батенцеее, верно ли уа ! Поклон.

Ти нещо като за формули за намиране на лице на триъгълник чул ли си ? http://www.math10.com/bg/geometry/area.html
Ъп, ако си чул, значи си в джаза, нищо не те плаши, разгледай само функциите от библиотеката math.h -
pow(double, double), sqrt(double), като sqrt спокойно си аутокаства до int, докато в pow само единият от аргументите може да се аутокастне, другият, ако е int, трябва да стане с явен каст, това като забележка за работата на функциите.

Жокер номер 2: години*365=дни
дни*24=часове
часове*60=минути
минути*60=секунди

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

EDIT:Аз за сега само за тези свои правописни грешки се сещам. Останалото в главата ми са стекови автомати, java, C++, и контекстно свободни граматики :wink: Българският език се загуби отдавна :cry:

Последна промяна от apa6o на Сря 30 май 2012 21:36, променено общо 3 пъти.


pmidas
Мнения: 96
Регистриран на: Пет 25 фев 2011 21:22
Автомобил:
Двигател:
Местоположение: София

Re: Задачи на C++

Мнениеот pmidas » Сря 30 май 2012 16:41


звучи не сложно:

Ако го направиш на web ще и скриеш шапката. Кое не ти е ясно? Математиката или самото програмиране?

Ето един добър пример:
http://www.enorthernbc.com/How-Old-Are-You.asp

Приблизително е :). Все пак зависи в кой часови пояс си роден и от кой часови пояс задаваш въпроса.


Потребителски аватар
apa6o
Мнения: 1101
Регистриран на: Пон 27 ное 2006 9:56
Автомобил: Skoda Octavia 1Z
Двигател: BKD
Местоположение: Перник

Re: Задачи на C++

Мнениеот apa6o » Сря 30 май 2012 16:46


pmidas написа:звучи не сложно:

Ако го направиш на web ще и скриеш шапката. Кое не ти е ясно? Математиката или самото програмиране?

Ето един добър пример:
http://www.enorthernbc.com/How-Old-Are-You.asp

Приблизително е :). Все пак зависи в кой часови пояс си роден и от кой часови пояс задаваш въпроса.

Вземи му предложи да направи java аплет и да го пусне на собствен сайт на фрий хост, да си има жената как да си проверява за всеки случай :063:

Към автора на темата, сподели ми на ЛъСъ по кой учебник учите, от кой град си и тн, в момента аз съм и аз в дебрите на C++ ама на малко по-про левел, почвам да се гавря и с трупа на java-та и ако си навитак на програмиране ще ти ударя едно рамо да направиш доста :)


Потребителски аватар
JaDaWiN
Мнения: 921
Регистриран на: Пет 30 окт 2009 21:52
Автомобил: [VW Golf 3][VW Passat B5.5]
Двигател: [AHU 1996 ][AVF 2002]
Местоположение: София

Re: Задачи на C++

Мнениеот JaDaWiN » Сря 30 май 2012 18:05


Мога да добавя, че добро впечатление би направило да направиш някоя и друга проверка на подадените параметри - дали са > 0, дали има триъгълник с такива подадени параметри - http://www.wikihow.com/Determine-if-Three-Side-Lengths-Are-a-Triangle
Важи и за годините. А също така програмата не трябва да гърми ако въведеш вместо числа думи, да речем.

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

Успех с програмирането и нека Debugger-ът бъде с теб! mhihi


Потребителски аватар
apa6o
Мнения: 1101
Регистриран на: Пон 27 ное 2006 9:56
Автомобил: Skoda Octavia 1Z
Двигател: BKD
Местоположение: Перник

Re: Задачи на C++

Мнениеот apa6o » Сря 30 май 2012 19:11


JaDaWiN написа:Мога да добавя, че добро впечатление би направило да направиш някоя и друга проверка на подадените параметри - дали са > 0, дали има триъгълник с такива подадени параметри - http://www.wikihow.com/Determine-if-Three-Side-Lengths-Are-a-Triangle
Важи и за годините. А също така програмата не трябва да гърми ако въведеш вместо числа думи, да речем.

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

Успех с програмирането и нека Debugger-ът бъде с теб! mhihi

Проверката - ако страните са ти a, b, c, то a+b>c, a+c>b, b+c>a, преспокойно става с логическото или в условието на цикъл do{}while();
Същата работа и за положителните стойности.
За да се избегне възможността от прецакване на нещата, ако се въведе нещо, което не е число
се ползва if(!cin){//да направи нещо тук}, след всеки cin.


Потребителски аватар
Varbona
El Presidente
Мнения: 7663
Регистриран на: Пон 28 юни 2004 14:31
Автомобил:
Двигател:

Re: Задачи на C++

Мнениеот Varbona » Сря 30 май 2012 20:00


apa6o написа:... като sqrt спокойно си аутокаства до int, докато в pow само единия от аргументите може да се аутокастне, другия ако е int трябва да стане с явен каст, това като забележка за работата на функциите.


:shock :shock :shock а правилото за писане на български къде остана scare :lol: spam


Потребителски аватар
apa6o
Мнения: 1101
Регистриран на: Пон 27 ное 2006 9:56
Автомобил: Skoda Octavia 1Z
Двигател: BKD
Местоположение: Перник

Re: Задачи на C++

Мнениеот apa6o » Сря 30 май 2012 21:47


#include<iostream>
#include<math.h>
using namespace std;
void func()
{
double a,ha;
do
{
cout<<"Vavedete strana:";
cin>>a;
if(!cin)
{
cout<<"ERROR";
exit(1);
}
cout<<"Vavedete viso4ina:";
cin>>ha;
if(!cin)
{
cout<<"ERROR";
exit(1);
}
}
while(a<=0||ha<=0);
cout<<"S="<<(a*ha)/2<<endl;
}
void func1()
{
double a, b, c;
do
{
cout<<"Strana a:";
cin>>a;
if(!cin)
{
cout<<"ERROR";
exit(1);
}
cout<<"Strana b:";
cin>>b;
if(!cin)
{
cout<<"ERROR";
exit(1);
}
cout<<"Strana c:";
cin>>c;
if(!cin)
{
cout<<"ERROR";
exit(1);
}
}
while(a+b<=c||a+c<=b||b+c<=a||a<=0||b<=0||c<=0);
double p=(a+b+c)/2;
cout<<"S="<<sqrt(p*(p-a)*(p-b)*(p-c))<<endl;
}
void func2()
{
int age;
do
{
cout<<"Vavedete vazrast:";
cin>>age;
if(!cin)
{
cout<<"ERROR";
exit(1);
}
}
while(age<=0||age>100);
int days=age*365;
int hours=days*24;
int minutes=hours*60;
int seconds=minutes*60;
cout<<"Dni:"<<days<<endl<<"4asove:"<<hours<<endl
<<"Minuti:"<<minutes<<endl<<"Sekundi:"<<seconds<<endl;
}
void main()
{
int a;
do
{
cout<<"Izberete 1 za lice na triagalnik po viso4ina i strana,"<<endl
<<"izberete 2 za lice na triagalnik po 3 strani,"<<endl
<<"izberete 3 za da uznate kolko dni...sekundi ste jiveli."<<endl;
cin>>a;
if(!cin)
{
cout<<"ERROR";
exit(1);
}
}
while(a<1||a>3);
switch(a)
{
case 1:func();break;
case 2:func1();break;
case 3:func2();break;
default:cout<<"ERROR \n";
}
cin.sync();
cin.get();
}

ПП: На кирилица нещо не се компилира :drunk mhihi
ПП2: Оххх, съсипа ми красиво форматирания код... :evil:


Потребителски аватар
apa6o
Мнения: 1101
Регистриран на: Пон 27 ное 2006 9:56
Автомобил: Skoda Octavia 1Z
Двигател: BKD
Местоположение: Перник

Re: Задачи на C++

Мнениеот apa6o » Сря 30 май 2012 21:54


И една задачка-закачка на ниво начално ООП на C++, ако някой реши да се пробва :)

Пукане на балони

Напишете програма за игра на "пукане на балони"!

Играта се състои в следното:
Пред играча има правоъгълна стена с балони с четири различни цвята(представени с числата от 1 до 4). Играчът избира балон и го пука. Също се пукат всички балони наоколо, които имат същия цвят . Балоните под току-що спуканите се качват нагоре, а тези в дясно от тях отиват на ляво.

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

Реализирайте конструктор, копи-конструктор, деструктор и оператор= за дефинираните собствени типове, където това се налага (дори да не го ползвате за решение на задачата). Реализирайте КРАСИВО изпечатване на матрицата с предефиниране на оператор<<.

Успех!



Върни се в “ОФФ-Топик - други”

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 38 госта