- Форум
- Тийн интереси и проблеми
- Училище и приятели
- Информатика/Програмиране (пишете програмния език)
Бтв м бях тръгнала да правя нещо ... ама не мога да се меря с Чачо. Той е моят IT god!
maDamn
^Google that shit. Когато си търсиш алгоритми, търси ги на английски. Математическите ги има с кофите в нета. Само трябва да знаеш как се казва нещото, което търсиш. НОД = GCD (Greatest common devisor). НОК, ако трябва да търсиш, ще ти е LCM (Least common multiple), макар че той е просто a.b/GCD(a,b):
function gcd(a, b:integer):integer;
var
t:integer;
begin
while b <> 0 do
begin
t := b;
b := a mod b;
a := t;
end;
gcd := a;
end;
Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.
Здравейте,
Опитвам се да направя една програма за теоремата на Питагор и обратната му такава. Кодът ми изглежда по следния начин:
#include<iostream>
#include<cmath>
int main()
{
using namespace std;
double a, b, c;
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
cout<<"c=";
cin>>c;
if(a*a=b*b+c*c) cout<<"Triagalnikat e pravoagalen s agal A=90 gradusa i hipotenuza a="<<a<<"."<<endl;
else if(a*a=b*b+c*c) cout<<"Triagalnikat e pravoagalen s agal B=90 gradusa i hipotenuza b="<<b<<"."<<endl;
else if(b*b=a*a+c*c) cout<<"Triagalnikat e pravoagalen s agal C=90 gradusa i hipotenuza c="<<c<<"."<<endl;
else if(c*c!=a*a+b*b) cout<<"Triagalnikat ne e pravoagalen.";
else if(a*a!=b*b+c*c) cout<<"Triagalnikat ne e pravoagalen.";
else if(a*a!=b*b+c*c) cout<<"Triagalnikat ne e pravoagalen.";
system("pause");
return 0;
}
Проблемът идва от това, което съм написал в if-овете, но не знам как по друг начин бих могъл да изразя същото нещо. Надявам се, че разбирате идеята ми и можете да ми помогнете.
^Ами написал си а*а=b*b+c*c вместо a*a==b*b+c*c (обърни внимание на равното).
Опитваш се да запаметиш b*b+c*c в променлива а*а, което обаче е израз. За да ги сравниш, ползвай операторът ==, а не операторът за присвояване.
И не ти трябват последните три else if.
Можеш да го запишеш:
if(a*a==b*b+c*c) cout<<"Triagalnikat e pravoagalen s agal A=90 gradusa i hipotenuza a="<<a<<"."<<endl;
else if(c*c==b*b+a*a) cout<<"Triagalnikat e pravoagalen s agal B=90 gradusa i hipotenuza b="<<b<<"."<<endl;
else if(b*b==a*a+c*c) cout<<"Triagalnikat e pravoagalen s agal C=90 gradusa i hipotenuza c="<<c<<"."<<endl;
else cout<<"Triagalnikat ne e pravoagalen.";
Също така си погледни първият else if, условието му се препокрива с първият if. Тоест, в скобите му вместо да имаш пак (а*а==b*b+c*c), трябва да сложиш (c*c==a*a+b*b). И хипотенузите си ги объркал малко в извеждането. Трябва да са а, с, b, ако направиш условието така, както ти казах.
Библиотеката cmath не ти трябва.
Ето ти целият код:
Код:#include<iostream> int main() { using namespace std; double a, b, c; cout<<"a="; cin>>a; cout<<"b="; cin>>b; cout<<"c="; cin>>c; if(a*a==b*b+c*c) cout<<"Triagalnikat e pravoagalen s agal A=90 gradusa i hipotenuza a="<<a<<"."<<endl; else if(c*c==b*b+a*a) cout<<"Triagalnikat e pravoagalen s agal B=90 gradusa i hipotenuza c="<<c<<"."<<endl; else if(b*b==a*a+c*c) cout<<"Triagalnikat e pravoagalen s agal C=90 gradusa i hipotenuza b="<<b<<"."<<endl; else cout<<"Triagalnikat ne e pravoagalen."; system("pause"); return 0; }
Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.
Мерси за помощта и разясненията!Може да се каже, че съм начинаещ и затова все още бъркам някои основни неща. Надявам се в бъдеще да не е така, като се има предвид, че учителят ми по информатика си призна, че той самият не може да напише такава програма (тогава ставаше въпрос за една друга подобна задача)...
![]()
Ужас, много е гадно да попаднеш на некадърен даскал. Тва са елементарни неща за преподавател, трябва на сън да ги знае. Иначе може да се каже, че добре се оправяш. Отнема време да свикнеш на начина на мислене в информатиката. Упражнението ще го оправи това. Но си търси някви по-интересни неща да правиш. Бикове и крави, змията, ханойските кули, база данни с книги/филми/хора/друго, компресиращи програми, т.н. Така ще ти е забавно да ги учиш нещата и ще ги разбираш по-добре като ги приложиш в нещо по-различно.
Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.
Днес получих за домашна следната задача:
След няколко самостоятелни опита и търсене в помагала и в Google, успях да напиша следния код:Напишете програма на c++, пресмятаща сумата на четните числа от 1 до 20, като използвате оператор за цикъл.
Тази програма само извежда четните числа от 1 до 20. Някакви идеи как да намира и сбора им, защото аз не мога да се сетя?Код:#include <iostream> using namespace std; int main() { int n, x; for(n=1; n<=20; n++) { if(n%2==0) cout<<n<<endl; } system("pause"); return 0; }
Благодаря предварително!
#include <iostream>
using namespace std;
int main()
{
int n, x = 0;
for(n=1; n<=20; n++)
{
if(n%2==0)
x += n;
}
cout<<x<<endl;
system("pause");
return 0;
}
В нашия случай сумата ще запишем в променливата от тип инт x. За начална стойност и задаваме нула. После в цикъла при всяко завъртане проверяваме дали е четно и ако е го добавяме към x.
x += n;
се равнява на
x = x + n;
Накрая след като цикъла приключи извеждаме стойността на x на монитора.
Последно редактирано от Sh@d0w : 05-20-2013 на 19:32
Може и в цикълът да се сложи n+=2
Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.
А бе, това не е задача, ама ми стана интересно. Някой от тук да е състезател по информатика (C++)??Съжалявам за спама.
^Какво те интересува, може да знаем?
Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.
Не ме интересува нищо, просто аз ходя на състезания и ми стана интересно дали някой от пишещите тук също идва.![]()
Дърт съм за състезания ^^
Пробвала ли си се в projecteuler.net?
Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.
О, ми не. Мерси!
http://oi39.tinypic.com/2yx2ozq.jpg
ще я пусна и тук
C++
❝ Аз те моля, затвори очи,
ти недей да плачеш, знам че те боли,
от мойта стая бяла с безброй врати
защо избяга?..❞
Блок схемата ти я оставям, то са само квадратчета: Начало->Въвеждане на страните а,b,c->Пресмятане и извеждане на sina,cosa,tga,cotga->КрайКод:program HelloWorld; var a, b, c : Real; begin writeln('Nachalo na programata'); writeln(); writeln(); writeln('Vuvedete stranite na triugulnika'); writeln(); write('a='); readln(a); write('b='); readln(b); write('c='); readln(c); writeln(); writeln(); writeln('sina = ', a/c:8:6); writeln('cosa = ', b/c:8:6); writeln('tga = ', a/b:8:6); writeln('cotga = ', b/a:8:6); writeln(); writeln('Vuvedete klavish i enter, za da izlezete ot programata'); readln(c); end.
Нещо такова, еба ли го.
Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.
А тези неща, които пишеш в скобите, примерно writeln('Vuvedete stranite na triugulnika'); така ли да ги напиша в паскала. Също така в момента (направил съм всичко уж,както и ти) но ми изписва Compil Failed. Какъв може да е проблема?
Да, така. Тва е текст, който ще се изписва на монитора.
Няма ли я написана някъде компилационната грешка? С каква програма компилираш кода?
При мен всичко се компилира и тръгва. Виж да не си изпуснала някой символ някъде. Изкопирай всичко и пробвай пак.
Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.
http://www.whistle-bg.tk/uploads/56549288.png Ето това ми изписва. Човече много съм ти благодарен, че си губиш времето за мен и въобще, че си готов да помагаш на непознати...
Хайде де, моля помогнете. А думата компилирам я чувам за 1 път, камо ли да знам как се извършва действието.
Изтрийте ми горните мнения. Справих се, благодаря ти много! Без теб оценката ми не би била същата!
JAVA Да се създаде масив от 10 символни низа, въвеждани от клавиатурата. Да се сортира масива по метода на пряката селекция. Да се въведе символ от клавиатурата и да се изведат на екрана всички елементи на масива, не съдържащи този символ." Ако някой му се занимава![]()