C++ - Četiri matematička zadatka
Evo ovaj 4. ali u C-u, C mi je nekako drazi za ovakvezadatcice, a ti ga nadam se lako prebacis na c++.
Ovaj sam cisto napisao da se prisjetim zadatcica sa prve godine ostatak mi se ne da sad pisati... mozda sutra ako vec netko ne rijesi.
#include <stdio.h>
void main ()
{
float pi=3.14; //konstanta bilo kakva, uneses je prije//
float r, p, o; //varijable koje se koriste//
printf ("Unesi vrijednost polumjera\n");
scanf ("%f", &r); //pokupiti radijus sa tipkovnice i spremiti ga u r//
p=(r*r)*pi; //povrsina moze se pisati i (r^2)*pi//
printf ("Povrsina kruga je %.2f. \n", p);
o=(2*r)*pi; //opseg 2*r*pi//
printf ("Opseg kruga je %.2f. \n", o);
}Nadam se da sam bio bar malo od pomoci.
Hvaaala puno,sad sam ju prebacio u devc++ i radi perfektno.Sutra imam školu u 2 popodne pa ako stignes ujutro riješit ove ostale bio bi ti dužnik zauvijek.
evo i treci zadatak ako sam ga dobro shvatio:
#include <stdlib.h>
#include <stdio.h>
int main()
{
int brojsekundi, sati, minute, sekunde;
printf("Unesi broj sekundi: ");
scanf("%i", &brojsekundi);
sati=brojsekundi/3600;
minute=(brojsekundi%3600)/60;
sekunde=(brojsekundi%3600)%60;
printf("\n%d:%d:%d\n", sati, minute, sekunde);
system("pause");
return 0;
}
evo i treci zadatak ako sam ga dobro shvatio:
#include <stdlib.h>
#include <stdio.h>
int main()
{
int brojsekundi, sati, minute, sekunde;
printf("Unesi broj sekundi: ");
scanf("%i", &brojsekundi);
sati=brojsekundi/3600;
minute=(brojsekundi%3600)/60;
sekunde=(brojsekundi%3600)%60;
printf("\n%d:%d:%d\n", sati, minute, sekunde);
system("pause");
return 0;
}
sve bez problema radi, ako znaš ova ostala dva,punoo bi pomogao
još jednom hvala puno
2.Program treba učitati vrijednosti za 2 el.naboja i njihovu udaljenost te će izračunati i prikazati vrijednost sile među njima.Koristi konstantu k=9*10na9.
pseudokod: (ako sam dobro razumio zadatak)
Na početku imamo konstantu double tipa koju moramo deklarirati,također treba deklarirati i varijablu za silu kao double sila i inicijalizirati je na neku vrijednost,
zatim učitavamo dvije varijable istog tipa kao elektron_1 i elektron_2
nakon toga također učitavamo i udaljenost također double tipa da ne bi došlo do bilo kakvog gubitka informacija.
Izračun je ,jednostavno sve ove vrijednosti uvrstiti u formulu tj. varijablu sila i prikazati na ekranu....ovako napamet neka budu sve double vrijednosti ili float da ne bi bilo gubitka podataka....
Sličan pseudokod ti je i na prvom zadatku ,bitne su tvoje formule koje raščlaniš na varijable i samo zatim uvrstiš sve u zadnji izračun.
Koliko sam svatio, i vidio, ni double nece podnijeti toliko velik broj. Moze li biti zadatak zadan na principu da se to racunanje radi preko stringova/karaktera. Vjerojatno je stavljeno da se i ta logika nauci (ne znam koja je skola, koji razred, i koliko je uceno programiranje). To je vec onda malo kompliciraniji problem, a ne da mi se sekati oko toga. Znam da smo imali mi takvih zadataka, da bi povezali logiku, tj skontali kako to haymo-rec komp radi (zbraja, oduzima, dijeli, mnozi).
Moze biti i da sam u krivu ali koliko vidim najveci broj koji folat podnosi je "410065408.000000".
@Private, @Gh0sT
Ne, zadaci ovakvog tipa se rade tako da računaš samo s onim dijelovima brojeva koji su ispred × 10y. Množenje/dijeljenje/štoveć s potencijama obaviš pomoću zasebnih varijabli i samo onda u konačnom rezultatu (dakle, prilikom ispisa) ispišeš rezultat bez potencija + rezultat operacija s potencijama.
Barem bi ja to tako riješi na tom nekom vašem levelu programiranja (nema smisla da sad ulazimo u pokazivače i sl. stvari, ne? xD).
EDIT:
Da pojasnim... Ako trebate izmnožiti 2 broja koja su npr. 2,34×1019 i 7,1×10-7, onda bi to bilo ovako (pseudo jer mi se ne da kucati kod):
1) 2,34 × 7,1 = 16,614
2) 19 - 7 = 12
3) Ispis: "Rezultat je 16,614×1012"
Shvatili?
Bravo majstore vlad0, svaka cast. Najjednostavnije, i najbolje moguce rijesenje!
EDIT: evo onda rijesenja drugoga zadatka!
#include <stdio.h>
void main ()
{
float k=9, pi=3.14;
float q1, q2, r, f;
printf ("\nUnesite vrijednost naboja Q1:");
scanf ("%f", &q1);
printf ("\nUnesite vrijednost naboja Q2:");
scanf ("%f", &q2);
printf ("\nUnesite udaljenost izmedju naboja:");
scanf ("%f", &r);
f=((1/(4*pi*k))*(( q1*q2)/r*r));
printf ("\nSila izmedju naboja je: %f*10^9.\n", f);
}Mislim da bi trebalo raditi!
Ako tocno interpretiram podatke sa ove stranice, onda double bez problema guta takav broj jer je njegovo ogranicenje (bez gubitaka na preciznosti): 2.2250738585072014-308
Dok je ogranicenje za obican float 1.175494351-38
Tako pise i na wikipedij, ali jednostavno ne radi. Probaj pa ces vidjeti!
Ne znam, gle ovo:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
double a=1.6*pow(10,-19);
printf("%.40f\n", a);
system("pause");
return 0;
}
Pa pogledaj na kojoj se decimali tek nepreciznost pojavljuje...
Isto tako engleska wikipedija je puno deskriptivnija sto se tice nacina na koji se brojevi s pomicnim zarezom pohranjuju u memoriju.
*ebi ga kralju, nije mi se dalo traziti, nego sam pogledao da mi se greska tu pojavljuje. Al svejedno je sad. Et' ima sada dva nacina (neka iskoristi i ovo tvoje ako hoce, pa moze koji zeli odabrati.
Ma no, ne proturam ja tu nekakvo svoje rjesenje nego sam primjetio onu tvoju opasku o velicini float brojeva i ucinilo mi se malo premalo, a kako nikada ne radim s tolikim brojevima, ne znam iz iskustva pa sam malo prokopao po netu.
Vlad0 i ti ste onaj zadatak sasvim dobro rijesili...
U koju ti skolu ides da cpp radis s 14 godina?
Evo hvala svima na odgovorima.Riješio sam svih 14 zadataka bez greške i dobio 5 iz testa.Hvala punooo!
Sigurno ide u 2 raz tehničar za računalstvo to sam i ja radio i moram reći da je to jedna od najtežih cjelina u računalstvu
Ako tocno interpretiram podatke sa ove stranice, onda double bez problema guta takav broj jer je njegovo ogranicenje (bez gubitaka na preciznosti): 2.2250738585072014-308
Dok je ogranicenje za obican float 1.175494351-38
Što se tiče preciznosti i sličnih - imaš (najveću) relativnu i apsolutnu pogrešku kod oboje. Iznosi otprilike 6*10^-8 za float te 1.1*10^-16 za double, a apsolutna je ta konstanta*broj koji spremate u memoriju. Dakle float i double mogu prikazat puno brojeva no gube preciznost zbog ograničenog broja mantise (23 + 1 skriveni odnosno 52 bita + 1 skriveni bit).
Ma jesam i ja debil bio kad sam gimnaziju upisivao...Umjesto da se bavim programiranjem i sl. Stvarima moje slobodno vrijeme gutaju latinski i kemija
Drzi se gimnazije, i matematike u njoj, najvise ce ti pomoci (na fax-u)...
Eventualno elektrotehnicka, racunalni smijer (osobno iskustvo), dotice se mnogih predmeta sada,
a ovo ostalo...
E ovako ljudi trebam pomoć i to hitno! Naime moram do pola noći poslati 3 programa iz c++ a ja eto nemam vremena da sada proučavam materiju svega i sam složim... Uglavnom radi se o tome da radimo o naredbama za kontrolu toka programa, znači valjda ono if-then-else naredbe i tako? Bio bih beskrajno zahvalan ako netko uspije to složiti u manje od 40-ak minuta da to pošaljem da ne ispušim bodove na faksu...
jbg rado bi pomogao da sam na kompu,al ako nije nesto preko 70 lajni koda potrebno mogo bi i na mobu naklesat..
Evo ovako,sutra pišem svoj prvi test iz programiranja u devc++ i imam problema s čak 4 zadatka.Ali od 14 što i nije tako loše.Tek sam počeo s programiranjem pa zato molim vas suzdržite se od komentara,"kako je ovo lagano pa nemreš bit tolko glup" i slično.Siguran sam da svi vi ove zadatke možete rješiti u 5 min pa bi vas molio da to učinite.Ja sam pokušao ali uvijek nešto zehebem.
1.Program treba učitati vrijednost za udaljenost elektrona i protona te će izračunati i prikazati vrijednost sile među njima.Koristi konstante k=9*10na9 i 1,6*10na-19.
Mislim da je formula za ovaj F=k*e*e/(r*r)
2.Program treba učitati vrijednosti za 2 el.naboja i njihovu udaljenost te će izračunati i prikazati vrijednost sile među njima.Koristi konstantu k=9*10na9.
3.Program treba učitati vrijednost prijeđenog puta u sekundama te iz njega pomoću dijeljenja i ostatka cjelobrojnog dijeljenja pronaći koliko je to sati,koliko munuta i koliko sekunda.
4.Program treba učitati polumjer kružnice te izračunati njezin opseg i površinu.Koristi konstantu Pi=3,14.
Već možete shvatit da me *ebu ove konstante.Molim vas da kad rješavate da rješavate na najjednostavniji mogući način.Sumnjivo bi bilo na testu da počnem pisati funkcije koje ćemo tek raditi u 3 ili 4 razredu.
Hvala punooo onom tko mi riješi.