Предишната тема :: Следващата тема |
Автор |
Съобщение |
viki_di Начинаещ
Регистриран на: 05 Mar 2008 Мнения: 26
|
Пуснато на: Thu Mar 06, 2008 8:20 pm Заглавие: ммм .. ами сега ? |
|
|
ами имам един проблем.. значи трябва да направя една програма която да изчислява по зададени два ъгъла и една страна .. другите две страни и ъгъл ... опитах се да направя нещо но май не е вярно защото не излизат резултатите ...
Това което написах има следния вид .. ако можете да ми помогнете малко или поне да ми подскажете .. защото имам голямо желание да го науча как става ..
# include<iostream>
#include<cmath>
using namespace std;
int main ()
{
double a, b, c;
double cosa, cosb, cosc;
cout<<"vyvedete stranata c:";
cin>>c;
cout<<"vyvedet ygyl alpha:";
cin>>cosa;
cout<<"vyvedete ygyl beta:";
cin>>cosb;
a= c*acos(cosb);
b= c*acos(cosa);
double cgama=(a*a+b*b-c*c)/(2*a*b);
double alpha= acos(cosb)*180/M_PI;
double beta= acos(cosa)*180/M_PI;
double gama= acos(cosc)*180/M_PI;
cout<< "a=" <<a<<"\n b="<<b<<"\n Gama="<<gama<<endl;
system("pause");
return 0;
}
|
|
Върнете се в началото |
|
|
Реклама
|
Пуснато на: Заглавие: Реклама |
|
|
|
|
Върнете се в началото |
|
|
krassi__holmz Начинаещ
Регистриран на: 01 Mar 2008 Мнения: 7
гласове: 3
|
Пуснато на: Fri Mar 07, 2008 1:29 pm Заглавие: |
|
|
За да получиш страна в триъгълник, умножаваш страна по косинус, няма нужда да превръщаш косинуса отново във ъгъл:
Код: |
a = c*cosb;
b = c*cosa;
...
|
|
|
Върнете се в началото |
|
|
viki_di Начинаещ
Регистриран на: 05 Mar 2008 Мнения: 26
|
Пуснато на: Fri Mar 07, 2008 1:57 pm Заглавие: |
|
|
да благодаря така се получи .. по принцип трябва да напиша ъгъла в градуси и то да го преобразува в радиани .. правилно ли сам го записал щото ми излизат сега а и б страните .. но пък нещо гама ми се получава много странно -1.#IND така ми изписва ..
|
|
Върнете се в началото |
|
|
krassi__holmz Начинаещ
Регистриран на: 01 Mar 2008 Мнения: 7
гласове: 3
|
Пуснато на: Sat Mar 08, 2008 2:33 pm Заглавие: |
|
|
Ами да - първо смяташ cgama а после използваш cosc което не е инициализирано и дава непредвидим резултат.
|
|
Върнете се в началото |
|
|
viki_di Начинаещ
Регистриран на: 05 Mar 2008 Мнения: 26
|
Пуснато на: Sun Mar 09, 2008 7:11 pm Заглавие: |
|
|
незная така го правихме в час и целта беше да се превърне ъгъла от градуси в радиани
|
|
Върнете се в началото |
|
|
krassi__holmz Начинаещ
Регистриран на: 01 Mar 2008 Мнения: 7
гласове: 3
|
Пуснато на: Sun Mar 09, 2008 10:56 pm Заглавие: |
|
|
Оф, не ме разбра - синуса на гама го пресмяташ в cgama:
double cgama=(a*a+b*b-c*c)/(2*a*b);
после за да намериш ъгъла, вместо пресметнатия cgama, използваш cosc, на който не си присвоил стойност.
Трябва да е:
Код: |
double gama = acos(cgama)*180/M_PI;
|
|
|
Върнете се в началото |
|
|
viki_di Начинаещ
Регистриран на: 05 Mar 2008 Мнения: 26
|
Пуснато на: Thu Mar 20, 2008 7:18 pm Заглавие: |
|
|
За да не отварям нова тема ще пиша тука ... ако може някой да ми обясни долу горе кое нещо какво прави .. че госпожата неможах да я разбера .. а имам домашна ..
#include <iostream>
using namespace std;
int main()
{int n;
cout<<"Vywedete n = ";
cin>>n;
long fact=1;
double x;
cout<<"Vywedete x = ";
cin>>x;
double suma = 1, sub = 1;
for (int i=1; i<=n; i+2)
{sub=sub*x/i;
suma= suma+sub;
}
cout<<"Suma="<<suma<<endl;
system ("pause");
return 0;
}
|
|
Върнете се в началото |
|
|
Irrefutable Напреднал
Регистриран на: 15 Jul 2007 Мнения: 298 Местожителство: София гласове: 5
|
Пуснато на: Fri Mar 21, 2008 4:09 pm Заглавие: |
|
|
#include <iostream> // казва на компилатора да ползва библиотеката iostream
using namespace std; // казва на компилатора да използва пространството от имена STD като пространство по подразбиране.
int main() // главна функция на програмата ти
{int n; // деклариране на променливата n от целочислен тип
cout<<"Vywedete n = "; // изкарване на съобщение на екрана
cin>>n; // въвеждане на число от клавиатурата
long fact=1; // деклариране на променлива fact от целочислен 64 битов тип
double x; // деклариране на променлива от тип с плаваща запетая
cout<<"Vywedete x = "; // извеждане на съобщение
cin>>x; // въвеждане на стойност от клавиатурата и присвояването върху променливата x
double suma = 1, sub = 1; // деклариране на 2 нови променливи
for (int i=1; i<=n; i+2) // цикъл който се изпълнява за нечетните стойности на i от 1 до n
{sub=sub*x/i; //на променливата suб се присвоява стойност на произведението на себе си с i/x
suma= suma+sub; //на променливта suma увеличава с sub
} // затваря се цикъла
cout<<"Suma="<<suma<<endl; // извежда се надписа "suma=" и стойноста на променливата suma
system ("pause"); // изчаква се потребителя да натисне някакъв клавиш.
return 0; // главната функция връща стойност и с това програмата приключва
} // последна затваряща скоба
|
|
Върнете се в началото |
|
|
viki_di Начинаещ
Регистриран на: 05 Mar 2008 Мнения: 26
|
Пуснато на: Wed May 14, 2008 10:15 am Заглавие: |
|
|
Някой може ли да ми помогне за следната задача ..
Да се въведе масив от 13 елемента. При въвеждане на число, да се извежда елемент от
масивa, чиято стойност е най-близо до въведеното число
#include <iostream>
using namespace std;
const int Max=13;
int broi(double a[],double x)
{int br=0;
for(int i=0;i<Max;i++)
if (a[i]==x)br++;
return br;
}
int main()
{double m[Max];
cout<<"Vyvedete elementite na masiva:\n";
for(int i=0;i<Max;i++)
{cout<<"m=["<<i<<"]=";
cin>>m[i];
}
double x;
cout<<"Vyvedete chislo:\n";
cin>>x;
стигнах до нещо такова засега но незнам дали е правилно .. и незнам как да го завърша ако някой може да ми помогне ще съм ви много благодарен ..
|
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Wed May 14, 2008 1:26 pm Заглавие: |
|
|
това, за което аз се сещам, е да подрудиш масива по големина, примерно във възходяш ред, след което да гледаш въведеното число от кое число е по-малко примерно ето пример масива след като си го подредила ти е 1, 3, 5, 6, 7.5, 8.345, 10, а избраното число е 6.6, сега програмата сравнявя 6.6 със всеки от елементите докато намери елемент, който е по-голям от даденото число, в случая това ще е 7.5, после програмата ще сравни разликите 6.6-6 и 7.5-6.6 и която разлика се окаже по-малка, това число ще изведе надявам се да се сещаш как трябва да се напишетази програма
Друго, което ми дойде ей сега на акъла, е директно да сраниш разликата от избрания елемент и елементите от масива, и която разлика по модул се окаже най-малка, то това число е най-близко до въведеното
Не знам кое ще е по-лесно, мисля че второто
|
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Wed May 14, 2008 1:34 pm Заглавие: |
|
|
Irrefutable написа: | #include <iostream> // казва на компилатора да ползва библиотеката iostream
using namespace std; // казва на компилатора да използва пространството от имена STD като пространство по подразбиране.
int main() // главна функция на програмата ти
{int n; // деклариране на променливата n от целочислен тип
cout<<"Vywedete n = "; // изкарване на съобщение на екрана
cin>>n; // въвеждане на число от клавиатурата
long fact=1; // деклариране на променлива fact от целочислен 64 битов тип
double x; // деклариране на променлива от тип с плаваща запетая
cout<<"Vywedete x = "; // извеждане на съобщение
cin>>x; // въвеждане на стойност от клавиатурата и присвояването върху променливата x
double suma = 1, sub = 1; // деклариране на 2 нови променливи
for (int i=1; i<=n; i+2) // цикъл който се изпълнява за нечетните стойности на i от 1 до n
{sub=sub*x/i; //на променливата suб се присвоява стойност на произведението на себе си с i/x
suma= suma+sub; //на променливта suma увеличава с sub
} // затваря се цикъла
cout<<"Suma="<<suma<<endl; // извежда се надписа "suma=" и стойноста на променливата suma
system ("pause"); // изчаква се потребителя да натисне някакъв клавиш.
return 0; // главната функция връща стойност и с това програмата приключва
} // последна затваряща скоба |
Благодаря на Irrefutable за това, което е написал, надявам се то да е полезно за потребителите за в бъдеще!
Относно товасъобщение все пак имам няколко въпроса, аз мога да си пиша програмите в училище сам и имам 6-ци, но все пак не съм информатик и някои неща не са ми ясни
1) using namespace std - kakvi sa tezi imena STD, защо да ги използва по подразбиране, какво ще стане ако го няма?
2) cout<<suma;
return 0;
Защо ни е да извеждаме сумата, като има опция тази сума да бъде изведена от главната функция чрез return 0, изобщо това return 0 Не може ли да му се зададе да извежда число от тип, различен от целочислен(примерно ирреален - √3), защо е
3)Защо е INT main, не може ли да е примерно double main? Ако е double main и напишем return 0 Накрая какъв тип число ще ни изведе?
Тия неща ги няма в нашите учебници, а пък аз съм свикнал да знам всяка една подробност от това, което правя(тоест всяко едно нещо какво прави) и като има неща, които не знам какво правят, се чувствам некомфортно(което не ми харесва )
|
|
Върнете се в началото |
|
|
viki_di Начинаещ
Регистриран на: 05 Mar 2008 Мнения: 26
|
Пуснато на: Wed May 14, 2008 1:56 pm Заглавие: |
|
|
честно да си призная незнам как да я завърша и как да го напиша .. много малко ни обясняват за да не кажа дори че не ни обясняват .. през времето което съм аз там дори .. не помня да са ни обяснявали нещо подобно ..
|
|
Върнете се в началото |
|
|
nikolavp Фен на форума
Регистриран на: 20 Apr 2008 Мнения: 701
гласове: 13
|
Пуснато на: Wed May 14, 2008 2:02 pm Заглавие: |
|
|
main трябва да е int, за да може операционната система да знае как е свършила програмата. Ако главната фунцкия върне 0 значи всичко е наред ако е число различно от 0 => нещо лошо се е случило . Ето ти пример илюстриран в обвивката:
Код: | gentoo@Nikolavp ~/Desktop/eclipse $ echo "Hello world"
Hello world
gentoo@Nikolavp ~/Desktop/eclipse $ echo $?
0
gentoo@Nikolavp ~/Desktop/eclipse $ This_is_not_a_command
bash: This_is_not_a_command: command not found
gentoo@Nikolavp ~/Desktop/eclipse $ echo $?
127 |
Namespace-a std представлява namespace-a на главната стандартна библиотека. Създаден е, за да може нещата да не се бъркат и доста от програмистите ще ти кажат, че не е добре за четимостта на програмата да слагаш генерално using namespace std; , но за малки програми няма значение.
Този въпрос за сумата не го разбрах... Ти на практика не връщаш сумата с return 0, а казваш какъв код(число) да върне програмата на операционната система. Все пак main не е стандартна функция и си има ососбености
|
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Wed May 14, 2008 2:08 pm Заглавие: |
|
|
nikolavp написа: | main трябва да е int, за да може операционната система да знае как е свършила програмата. Ако главната фунцкия върне 0 значи всичко е наред ако е число различно от 0 => нещо лошо се е случило . Ето ти пример илюстриран в обвивката:
Код: | gentoo@Nikolavp ~/Desktop/eclipse $ echo "Hello world"
Hello world
gentoo@Nikolavp ~/Desktop/eclipse $ echo $?
0
gentoo@Nikolavp ~/Desktop/eclipse $ This_is_not_a_command
bash: This_is_not_a_command: command not found
gentoo@Nikolavp ~/Desktop/eclipse $ echo $?
127 |
Namespace-a std представлява namespace-a на главната стандартна библиотека. Създаден е, за да може нещата да не се бъркат и доста от програмистите ще ти кажат, че не е добре за четимостта на програмата да слагаш генерално using namespace std; , но за малки програми няма значение.
Този въпрос за сумата не го разбрах [/code] |
Какво е namespace на главната стандартна библиотека, обясни го като за хора, които си нямат и понятие от това аз само знам коя команда какво кара компа да върши...
това с return 0 - Не може ли да напишеш на това място нещо различно от 0 и програмата да го извежда накрая, примерно return S(някаква сума) и вместо cout<<S и после return 0 пишеш само retusn S и готово Аз доколкото разбрах от нашта госпожа това "return" се използва за връщане на стойности
От това което си написал, разбирам че има и други namespace-oве освен std... ще кажеш ли за какво служи това животно?
|
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Wed May 14, 2008 2:13 pm Заглавие: |
|
|
viki_di написа: | честно да си призная незнам как да я завърша и как да го напиша .. много малко ни обясняват за да не кажа дори че не ни обясняват .. през времето което съм аз там дори .. не помня да са ни обяснявали нещо подобно .. |
Значи аз да ти я реша? Ми ще се опитам
|
|
Върнете се в началото |
|
|
viki_di Начинаещ
Регистриран на: 05 Mar 2008 Мнения: 26
|
Пуснато на: Wed May 14, 2008 2:14 pm Заглавие: |
|
|
за учебника ще се постарая да го намеря .. въпреки че вече е късно защото годината почти свърши .. но по-добре късно отколкото никога
|
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Wed May 14, 2008 2:16 pm Заглавие: |
|
|
е ми в тоя учебник са натъпкани доста дефиниции.. примерно какъв тип променливи може да въвеждаш(celi - int, drobi - double....) има тестове, задачи, каквото искаш аз лично съм останал доволен от учебника
|
|
Върнете се в началото |
|
|
viki_di Начинаещ
Регистриран на: 05 Mar 2008 Мнения: 26
|
Пуснато на: Wed May 14, 2008 2:18 pm Заглавие: |
|
|
няма значение .. все от някаде трябва да се започне иначе ще стане по-зле
|
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Wed May 14, 2008 2:37 pm Заглавие: |
|
|
За сега съм до тук. сега остава да го подкарам да тръгне, може ли някой да ми каже как мога да направя модул? В учебника пише че връща int, а пък мен ми трябва да връща double това ми е основната причина да не тръгва програмата.... сещам се за решение, да сложа едно условие тази разлика ако е отрицателна да си сменя знака.... ама не знам няма ли просто функция МОДУЛ ?
Код: |
#include<iostream.h>
#include<math.h>
const int Max=13;
int broi(double a[], double x)
{ double MINRazl=abs(a[0]-x);
int br=0;//tova 6te e nomera na elementa,koito e nai-blizko
for(int i=1;i<13;i++)//tuk preglejdam vsi4ki elementi
{ if(MINRazl>abs(a[i]-x))//otkrivam nai-malkata razlika
{ MINRazl=abs(a[i]-x);
br=i;
}
}
cout<<a[br];
}
int main()
{ double m[Max];
cout<<"Vyvedete elementite na masiva:\n";
for(int i=0;i<Max;i++)
{ cout<<"m=["<<i<<"]=";
cin>>m[i];
}
double x;
cout<<"Vyvedete chislo:\n";
cin>>x;
broi(m,x);
return 0;
}
|
|
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Wed May 14, 2008 2:41 pm Заглавие: |
|
|
Е ми и аз така го прочетох в учебника, само че там още пише, че функцията abs връща цяло число(тоест не може да и дадеш числото -5.7 и тя да върне 5.7, трябва това, което ти изплюва да е цяло, тоест и това което и даваш също да е цяло, тоест това вътре да е цяло, пък то не е
|
|
Върнете се в началото |
|
|
viki_di Начинаещ
Регистриран на: 05 Mar 2008 Мнения: 26
|
Пуснато на: Wed May 14, 2008 2:45 pm Заглавие: |
|
|
fabs|x| => изкарва double , пробвай така
|
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Wed May 14, 2008 2:49 pm Заглавие: |
|
|
Нов Въпрос, който току що изникна и от много време ме дразни - Мога ли след като е приключило изпълнението на програмата отново да се върна към прозореца, за да видя какво е отпечатало(говоря без използване на system("pause"); )
|
|
Върнете се в началото |
|
|
viki_di Начинаещ
Регистриран на: 05 Mar 2008 Мнения: 26
|
Пуснато на: Wed May 14, 2008 2:50 pm Заглавие: |
|
|
незнам .. аз се опитвам да го стопирам с паузата .. че иначе изчезва
|
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Wed May 14, 2008 2:52 pm Заглавие: |
|
|
Да, и аз така, ама гледах че госпожата натиска някакви копчета от сорта на cntrl+F5 бяха и връща прозореца няма значение, ето я програмата, при мен върви, пробвай я и ти
Код: | #include<iostream.h>
#include<math.h>
const int Max=13;
int broi(double a[], double x)
{ double MINRazl=fabs(a[0]-x);
int br=0;//tova 6te e nomera na elementa,koito e nai-blizko
for(int i=1;i<13;i++)//tuk preglejdam vsi4ki elementi
{ if(MINRazl>fabs(a[i]-x))//otkrivam nai-malkata razlika
{ MINRazl=fabs(a[i]-x);
br=i;
}
}
cout<<a[br];
}
int main()
{ double m[Max];
cout<<"Vyvedete elementite na masiva:\n";
for(int i=0;i<Max;i++)
{ cout<<"m=["<<i<<"]=";
cin>>m[i];
}
double x;
cout<<"Vyvedete chislo:\n";
cin>>x;
broi(m,x);
system("pause");
return 0;
} |
|
|
Върнете се в началото |
|
|
viki_di Начинаещ
Регистриран на: 05 Mar 2008 Мнения: 26
|
Пуснато на: Wed May 14, 2008 2:54 pm Заглавие: |
|
|
и аз това направих .. само не разбирам "а" ли е числото което е най-близко до това което сме въвели .. ?
|
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Wed May 14, 2008 2:57 pm Заглавие: |
|
|
Да, и по-точно a[br], или в случая m[br] Най-близкото число е някое от масива, търсим само номерчето му... което номерче съм означил с br, и като намерим минималната разлика сме намерили и номерчето, тоест числото е a[br], където "a" ни е "примерния" масив във функцията масив(в случая в главната функция сме декларирали масив m)
|
|
Върнете се в началото |
|
|
viki_di Начинаещ
Регистриран на: 05 Mar 2008 Мнения: 26
|
Пуснато на: Wed May 14, 2008 3:06 pm Заглавие: |
|
|
щото искам да изписва .. примерно "най-близкото число е : .. " .. само че немога да се сетя как беше да вкарам надписа и после числото cout<<"nai blizkoto chislo e :">>a[br]<<"\n"; написах това .. но ми извежда само надписа ... и нещо бъркам явно
|
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Wed May 14, 2008 3:09 pm Заглавие: |
|
|
viki_di написа: | щото искам да изписва .. примерно "най-близкото число е : .. " .. само че немога да се сетя как беше да вкарам надписа и после числото cout<<"nai blizkoto chislo e :">>a[br]<<"\n"; написах това .. но ми извежда само надписа ... и нещо бъркам явно |
Трябва да напишеш
cout<<"nai blizkoto chislo e :>>"<<a[br]<<"<<\n"; примерно, не знам човките дали искаш да се показват, ако не искаш просто ги триеш
|
|
Върнете се в началото |
|
|
viki_di Начинаещ
Регистриран на: 05 Mar 2008 Мнения: 26
|
Пуснато на: Wed May 14, 2008 3:16 pm Заглавие: |
|
|
хахаха обърнал съм дъпите стрелкички .. аз се чудя що не става ... благодаря много .. като дойдеш кам Бургас ще трябва да те водя на дискотека
|
|
Върнете се в началото |
|
|
|