Hjälp med skoluppgift [inmatning och konvertering av flyttal->heltal i C++ - mod]

Permalänk
Medlem

Hjälp med skoluppgift [inmatning och konvertering av flyttal->heltal i C++ - mod]

Hej har fått i uppgift att göra denna uppgiften i DevC++ men jag fattar inte riktigt hur man ska göra den kan ngn skriva koden till detta program så kan jag kolla på den och lära mig?

Skapa ett program som låter användaren mata in ett flyttal. Programmet ska sedan konvertera flyttalet till heltal. Här är ett exempel:
Ange ett decimaltal: 11,534
Decimaltalet 11,534 avrundas till heltalet 12

Tack i förhand

Trådrubriker ska tydligt visa vad tråden handlar om.
Permalänk
Skrivet av Alex96:

Hej har fått i uppgift att göra denna uppgiften i DevC++ men jag fattar inte riktigt hur man ska göra den kan ngn skriva koden till detta program så kan jag kolla på den och lära mig?

Skapa ett program som låter användaren mata in ett flyttal. Programmet ska sedan konvertera flyttalet till heltal. Här är ett exempel:
Ange ett decimaltal: 11,534
Decimaltalet 11,534 avrundas till heltalet 12

Tack i förhand

Nej, jag tror ingen kommer att skriva programmet åt dig.

Visa signatur
Permalänk
Hedersmedlem

Det är inte tillåtet enligt reglerna att bara be att någon annan ska göra uppgifter åt dig. Gör istället ett helhjärtat försök, där du gör så gott du kan. Sedan kan du be om hjälp med vad du nu inte förstod.

Visa signatur

CPU: Intel i5 2550K (NH D-14) GPU: Nvidia GTX 570 Mobo: Gigabyte GA-P67-UD7(B2) PSU: Cooler Master Silent Pro 700W

Visste du att om Du inte håller dig till reglerna varje dag, så kommer Arla-haren och skjuter dig i huvudet eller ibland i magen.

Permalänk
Medlem

Alltså jag fattar inte, lär sig folk inget i skolorna nuförtiden?. Dessutom har ni tillgång till världens största bibliotek i fickan.
Eller är bara ungdomar betydligt mer lata nuförtiden, kanske en kombination?
Nä det var fan bättre förr

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770

Permalänk
Medlem

Gjort liknande i C#. Det var inge svårt! Kan du "the basics" så klarar du det enkelt. Finns säkert massor med guider på nätet också, Google is your friend

Visa signatur

CPU:AMD 7950X3D UV (Noctua NH-D15) GPU: Powercolor 7900XTX Red Devil UV MINNE:32gb 6000mhz CL 32-36-36-72 MODERKORT:ASUS x670e PRIME NÄTAGG:Gigabyte 1000w SSD: Samung 980 PRO 2TB m.2, SK hynix PC401 512gb m.2, Samsung 860 EVO 500GB, Samsung SM871b 512GB, Samsung 830 256GB, Samsung 840 PRO 256GB CHASSI: Fractal Design Define R5 Titanium LJUDKORT: Creative Sound Blaster X4 HÖRLURAR: Beyerdynamics MMX300 V2OS: Windows 11 Pro

Permalänk
Skrivet av NoPaiN^:

Alltså jag fattar inte, lär sig folk inget i skolorna nuförtiden?. Dessutom har ni tillgång till världens största bibliotek i fickan.
Eller är bara ungdomar betydligt mer lata nuförtiden, kanske en kombination?
Nä det var fan bättre förr

Eller så är det din generation som är sämst på att lära ut?

Permalänk
Medlem
Skrivet av tachiibou:

Eller så är det din generation som är sämst på att lära ut?

Jag är 37 bast. I min ungdom fick jag låna böcker (om det fanns) om BASIC vars dialekt naturligtvis skiljde sig mot den jag hade så jag fick testa alla möjliga grejjer för att få det att funka. Jämför man med idag med miljontals sidor om programmering så är det inte konstigt att folk undrar hur det är ställt med de aspirerande programmerarna då de frågar de mest banala frågorna vars lösning är 2-3 rader effektiv kod (i detta fallet).
Det enda som är sämre idag är steget till programmering då man många gånger bootade direkt upp i BASIC på den gamla "goda" tiden och nu faktiskt behöver starta en texteditor och en browser för att sätta igång med programmering utan att behöva ladda ner någonting.

Så OPs frågan skulle kunna lösas med två-tre googlesökningar.
"how do i read a decimal number in c"
"how do i convert a decimal number to integer in c"
"how do i print a number in c"

Permalänk
Medlem

Tror det är förra generationen som visste hur man googlade, numera förlitar de sig på att vi gamlingar ska googla det åt dem.

Permalänk
Skrivet av iXam:

Jag är 37 bast. I min ungdom fick jag låna böcker (om det fanns) om BASIC vars dialekt naturligtvis skiljde sig mot den jag hade så jag fick testa alla möjliga grejjer för att få det att funka. Jämför man med idag med miljontals sidor om programmering så är det inte konstigt att folk undrar hur det är ställt med de aspirerande programmerarna då de frågar de mest banala frågorna vars lösning är 2-3 rader effektiv kod (i detta fallet).
Det enda som är sämre idag är steget till programmering då man många gånger bootade direkt upp i BASIC på den gamla "goda" tiden och nu faktiskt behöver starta en texteditor och en browser för att sätta igång med programmering utan att behöva ladda ner någonting.

Så OPs frågan skulle kunna lösas med två-tre googlesökningar.
"how do i read a decimal number in c"
"how do i convert a decimal number to integer in c"
"how do i print a number in c"

Påstod aldrig att TS hade det svårare än du hade det eller att han inte var lat.
Tycker bara det är korkat att dra alla programmerare under 20 över en kant på grund av en tråd. Det finns dom som är extremt bra för sin ålder också. Och att bli kritiserad av de som är äldre och mer erfarna tror inte jag kommer hjälpa, förmodligen tvärt om. Om man nyss har börjat med programmering är det dessutom svårt att veta vad man ska söka på. Hur ska man veta vad integer,double,float eller print är om ingen har lärt en det? Det är lärarens ansvar, vilket denne uppenbarligen misslyckats med.
Men bra att du kom med ett exempel till TS så han får lite hjälp på vägen!
Förövrigt så drar alltid den äldre generationen samma visa som du gör nu. Era föräldrar gjorde säkert det också och vi kommer nog göra det när vi blir 30+. Det kanske är sant, men är det nödvändigt att påpeka? De yngre kommer alltid att ha det lättare och det kommer fortsätta att bli lättare och lättare, för mänskligheten utvecklas. Det är ett faktum att alla äldre än mig förmodligen hade det svårare att hitta information. Alla ungdomar vet detta.

Permalänk
Medlem
Skrivet av tachiibou:

Påstod aldrig att TS hade det svårare än du hade det eller att han inte var lat.
Tycker bara det är korkat att dra alla programmerare under 20 över en kant på grund av en tråd. Det finns dom som är extremt bra för sin ålder också. Och att bli kritiserad av de som är äldre och mer erfarna tror inte jag kommer hjälpa, förmodligen tvärt om. Om man nyss har börjat med programmering är det dessutom svårt att veta vad man ska söka på. Hur ska man veta vad integer,double,float eller print är om ingen har lärt en det? Det är lärarens ansvar, vilket denne uppenbarligen misslyckats med.
Men bra att du kom med ett exempel till TS så han får lite hjälp på vägen!
Förövrigt så drar alltid den äldre generationen samma visa som du gör nu. Era föräldrar gjorde säkert det också och vi kommer nog göra det när vi blir 30+. Det kanske är sant, men är det nödvändigt att påpeka? De yngre kommer alltid att ha det lättare och det kommer fortsätta att bli lättare och lättare, för mänskligheten utvecklas. Det är ett faktum att alla äldre än mig förmodligen hade det svårare att hitta information. Alla ungdomar vet detta.

Jo. Jag börjar bli en grinig gammal gubbe sm hyttar med näven när ungdomen inte vet hut Men det innebär inte att jag kan ha rätt. Men ofta vet jag (tyvärr) med mig att jag kan vara lite tvär, men jag försöker att alltid vara relevant och bland mitt muttrande ska det finnas iaf något som är vettigt att ta till sig.

Permalänk
Medlem
Skrivet av tachiibou:

Hur ska man veta vad integer,double,float eller print är om ingen har lärt en det?

Mmm, synd att det inte finns varken böcker eller websidor om programmering.

Skrivet av tachiibou:

Det är lärarens ansvar, vilket denne uppenbarligen misslyckats med.

Nej, det är inte lärarens ansvar. Läraren bör hjälpa till, men det är studentens ansvar att lära sig.

Permalänk
Avstängd

Googla på C++ och math ceil

edit: Dina krav är dock skitluddigt formulerade, vad händer om flyttalet är 11.45 ska det fortfarande vara 12. Ska det vara Elva? Om det är det senare så är det math round du ska googla på istället för Ceil

Visa signatur
Permalänk
Medlem

Convert float to int c++/cpp?

Försök och återkom med kod om du skulle köra fast!

Visa signatur

~. Citera så jag hittar tillbaka .~

Permalänk
Medlem
Skrivet av CyberVillain:

Googla på C++ och math ceil

edit: Dina krav är dock skitluddigt formulerade, vad händer om flyttalet är 11.45 ska det fortfarande vara 12. Ska det vara Elva? Om det är det senare så är det math round du ska googla på istället för Ceil

Säger sig självt att det avrundas till 11, det är ju närmare 11 än 12. 11,50 avrundas dock upp till 12, allt under det till 11.

Visa signatur

HTPC - Bygglogg; http://www.sweclockers.com/album/?id=2902
HTPC - Galleri; http://www.sweclockers.com/galleri/6562-htpc-galleribilder
42U - Bygglogg; http://www.sweclockers.com/galleri/7862-42u-rackskap-i-hemmet
i7 8700K, Antec kühler 620, Asus ROG Strix Z370-I Gaming, Corsair Vengeance RGB DDR4-2666 2x16GB RAM, ASUS GTX 1070

Permalänk
Medlem

Har nu själv inte använt någon version av C, men räcker inte något simpelt som att addera 0.5 och konvertera till Integer?

Funkar iaf i de språken jag använt.

Permalänk
Medlem
Skrivet av Plxxl:

Har nu själv inte använt någon version av C, men räcker inte något simpelt som att addera 0.5 och konvertera till Integer?

Funkar iaf i de språken jag använt.

Om han ska avrunda neråt då?

OT: Googla på round i C++..

Permalänk
Medlem
Skrivet av Eob:

Om han ska avrunda neråt då?

OT: Googla på round i C++..

Metoden fungerar alldeles utmärkt åt båda hållen. Addera inte 0,5 om du vill avrunda neråt.

11,2 +0.5 = 11,7 = int 11
11,7 +0.5 = 12,2 = int 12

Om man nu vill avrunda neråt:
11,2 = 11,2 = int 11
11,7 = 11,7 = int 11

Permalänk
Medlem
Skrivet av phantom:

Metoden fungerar alldeles utmärkt åt båda hållen. Addera inte 0,5 om du vill avrunda neråt.

11,2 +0.5 = 11,7 = int 11
11,7 +0.5 = 12,2 = int 12

Om man nu vill avrunda neråt:
11,2 = 11,2 = int 11
11,7 = 11,7 = int 11

Fast hur ska programmet veta om den ska addera 0.5 eller inte?

Permalänk
Medlem
Skrivet av Eob:

Fast hur ska programmet veta om den ska addera 0.5 eller inte?

Det får man som programmare välja. En flagga eller liknande för att tala om vilken metod man skall använda.

Permalänk
Skrivet av tufflax:

Mmm, synd att det inte finns varken böcker eller websidor om programmering.

Nej, det är inte lärarens ansvar. Läraren bör hjälpa till, men det är studentens ansvar att lära sig.

Böcker och internet är ett ganska oeffektivt sätt att lära sig något jämfört med att lära sig från någon som verkligen kan (som en lärare).
Och om eleverna inte vet vad integer är efter första lektionen skulle jag nog kalla det ett misslyckande för läraren.

Permalänk
Medlem

Det här är väl ändå absoluta grunden i programmering, att kunna skriva ett ENKELT matteprogram. Jag tror inte att läraren är att skylla i detta fallet. TS har förmodligen suttit och facebookat istället för att lyssna på läraren. Dessutom så måste det väl finnas någon typ av kurslitteratur?

Om nu inte läraren kan lära ut detta så bör några elever gå till rektorn och berätta det för denne. Men tror, som sagt, att detta inte är problemet i detta fallet.

Skickades från m.sweclockers.com

Visa signatur

7800x3d - asus prime x670e-pro - 32gb ddr5 - asus tuf rtx 4090 gaming oc

Permalänk
Medlem
Skrivet av tachiibou:

Böcker och internet är ett ganska oeffektivt sätt att lära sig något jämfört med att lära sig från någon som verkligen kan (som en lärare).
Och om eleverna inte vet vad integer är efter första lektionen skulle jag nog kalla det ett misslyckande för läraren.

Lite OT men när det gäller just programmering så kommer det där timmarna man stått och stampat på att använda ineffektiva/inadekvata metoder och trasslat runt i dokumentation på egen hand osv i slutändan vara mycket nyttigt. Så just när det gäller programmering så skulle jag säga att böcker och internet är otroligt effektivt sätt att lära sig, även om det såklart är ett perfekt komplement med lärartid ibland så man blir knuffad i rätt riktning

/rant
Iofs så förväntas väl inget sådant av en ifall man läser en gymnasiekurs kanske. Min 50p Programmering A jag läste på gymnasiet slutade i ett tic-tac-toe.. Dock så hade jag glömt mitt USB-minne med redovisningen hemma på redovisningsdagen så det slutade med ett IG för mig och MVG till det som gjorde stensax påse UTAN loopar eller något... typ två if-satser och totalt fem rader kod. Tog ju effektivt död på mitt programmeringsintresse något år, så ska inte säga att lärare inte påverkar mycket :>
/rant off

Visa signatur

Topkek

Permalänk
Medlem
Skrivet av Eob:

Fast hur ska programmet veta om den ska addera 0.5 eller inte?

Vad menar du?

När du konverterar från Real elr Double elr vad som kan tänkas användas till en Integer plockas helt enkelt alla decimaler bort. 11.abcdefgh -> 11 och 12.abcd -> 12

Så 11,49999 + 0,5 = 11,....... -> 11
11,50000001 + 0,5 = 12,00..... -> 12

Edit: Detta är för en funktion som ska avrunda ett tal efter reglerna att x,49999 -> x samt x,5+ -> (x+1).

Vill du avrunda efter andra regler får du koda det ist.

Permalänk
Avstängd

varför göra själv när du kan använda round

Visa signatur
Permalänk
Medlem
Skrivet av Plxxl:

Vad menar du?

När du konverterar från Real elr Double elr vad som kan tänkas användas till en Integer plockas helt enkelt alla decimaler bort. 11.abcdefgh -> 11 och 12.abcd -> 12

Så 11,49999 + 0,5 = 11,....... -> 11
11,50000001 + 0,5 = 12,00..... -> 12

Edit: Detta är för en funktion som ska avrunda ett tal efter reglerna att x,49999 -> x samt x,5+ -> (x+1).

Vill du avrunda efter andra regler får du koda det ist.

Jahaa! Nu förstår jag. Smart

Skickades från m.sweclockers.com

Permalänk
Hedersmedlem
Skrivet av Plxxl:

Vad menar du?

När du konverterar från Real elr Double elr vad som kan tänkas användas till en Integer plockas helt enkelt alla decimaler bort. 11.abcdefgh -> 11 och 12.abcd -> 12

Så 11,49999 + 0,5 = 11,....... -> 11
11,50000001 + 0,5 = 12,00..... -> 12

Edit: Detta är för en funktion som ska avrunda ett tal efter reglerna att x,49999 -> x samt x,5+ -> (x+1).

Vill du avrunda efter andra regler får du koda det ist.

Notera att detta ger en avrundning för negativa tal som inte är den "vanliga" för oss. Den intuitivt korrekta avrundningen skulle t ex avrunda -1.9 till -2, men
-1.9 + 0.5 = -1.4 -> -1
Har man en bestämd regel för hur man ska hantera detta så duger +.5->int() (s.k. "round half up"). Varför finns det olika regler? För naiva avrundningar introducerar bias, vilket kan vara högst problematiskt för vissa applikationer. Wikipedia har en del att säga i ämnet.

Sedan finns det andra märkligheter som kan inträffa pga hur flyttal representeras internt av en dator, vilket har lett till svårhittade buggar, inte minst i finansvärlden där det kan spela stor roll.

What Every Computer Scientist Should Know About Floating-Point Arithmetic - väldigt utförlig läsning i ämnet för den extremt intresserade .

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.